Remove unused source code in PPAPI

Bug: 40511450
Change-Id: Id469003594da402cb4cdb3e83f257830dc9e353c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6696273
Reviewed-by: Derek Schuff <[email protected]>
Commit-Queue: Eugene Zemtsov <[email protected]>
Reviewed-by: Tom Sepez <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1481245}
NOKEYCHECK=True
GitOrigin-RevId: b54fb3d12a612c8cba47c8928f52ae873da1071f
diff --git a/BUILD.gn b/BUILD.gn
index 8239f6d..7997c37 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -14,26 +14,3 @@
 }
 
 assert(enable_ppapi)
-
-# PPAPI is not supported (e.g. there is no effective sandbox) and must not be
-# shipped for Chrome on Windows.
-assert(!(is_win && is_official_build))
-
-executable("pepper_hash_for_uma") {
-  sources = [ "tools/pepper_hash_for_uma.cc" ]
-
-  deps = [
-    "//base",
-    "//build/win:default_exe_manifest",
-  ]
-}
-
-source_set("ppapi_gles2_lib") {
-  include_dirs = [ "lib/gl/include" ]
-  sources = [
-    "lib/gl/gles2/gl2ext_ppapi.c",
-    "lib/gl/gles2/gl2ext_ppapi.h",
-    "lib/gl/gles2/gles2.c",
-  ]
-  deps = [ "//ppapi/cpp" ]
-}
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
deleted file mode 100644
index a2f9cd5..0000000
--- a/PRESUBMIT.py
+++ /dev/null
@@ -1,367 +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.
-
-import io
-import os
-import re
-import subprocess
-import sys
-
-
-# In this file `sys.executable` is used instead of
-# `input_api.python3_executable` because on Windows
-# `input_api.python3_executable` is `vpython3.bat` whereas `sys.executable` is
-# `python.exe`. If `input_api.python3_executable` is used, we need to explicitly
-# pass `shell=True` to `subprocess.Popen()`, which is a security risk
-# (https://docs.python.org/3/library/subprocess.html#security-considerations).
-#
-# TODO: Investigate the incompatibility of `input_api.python3_executable` on
-# Windows, for this particular PRESUBMIT script.
-
-def RunCmdAndCheck(cmd, err_string, output_api, cwd=None, warning=False):
-  results = []
-  p = subprocess.Popen(cmd, cwd=cwd,
-                       stdout=subprocess.PIPE,
-                       stderr=subprocess.PIPE)
-  (_, p_stderr) = p.communicate()
-  if p.returncode:
-    if warning:
-      results.append(output_api.PresubmitPromptWarning(
-        '%s\n\n%s' % (err_string, p_stderr.decode('utf-8'))))
-    else:
-      results.append(
-          output_api.PresubmitError(err_string,
-                                    long_text=p_stderr.decode('utf-8')))
-  return results
-
-
-def RunUnittests(input_api, output_api):
-  # Run some Generator unittests if the generator source was changed.
-  results = []
-  files = input_api.LocalPaths()
-  generator_files = []
-  for filename in files:
-    name_parts = filename.split(os.sep)
-    if name_parts[0:2] == ['ppapi', 'generators']:
-      generator_files.append(filename)
-  if generator_files != []:
-    cmd = [sys.executable, 'idl_tests.py']
-    ppapi_dir = input_api.PresubmitLocalPath()
-    results.extend(RunCmdAndCheck(cmd,
-                                  'PPAPI IDL unittests failed.',
-                                  output_api,
-                                  os.path.join(ppapi_dir, 'generators')))
-  return results
-
-
-# Verify that the files do not contain a 'TODO' in them.
-RE_TODO = re.compile(r'\WTODO\W', flags=re.I)
-def CheckTODO(input_api, output_api):
-  live_files = input_api.AffectedFiles(include_deletes=False)
-  files = [f.LocalPath() for f in live_files]
-  todo = []
-
-  for filename in files:
-    name, ext = os.path.splitext(filename)
-    name_parts = name.split(os.sep)
-
-    # Only check normal build sources.
-    if ext not in ['.h', '.idl']:
-      continue
-
-    # Only examine the ppapi directory.
-    if name_parts[0] != 'ppapi':
-      continue
-
-    # Only examine public plugin facing directories.
-    if name_parts[1] not in ['api', 'c', 'cpp', 'utility']:
-      continue
-
-    # Only examine public stable interfaces.
-    if name_parts[2] in ['dev', 'private', 'trusted']:
-      continue
-
-    filepath = os.path.join('..', filename)
-    with io.open(filepath, encoding='utf-8') as f:
-      if RE_TODO.search(f.read()):
-        todo.append(filename)
-
-  if todo:
-    return [output_api.PresubmitPromptWarning(
-        'TODOs found in stable public PPAPI files:',
-        long_text='\n'.join(todo))]
-  return []
-
-# Verify that no CPP wrappers use un-versioned PPB interface name macros.
-RE_UNVERSIONED_PPB = re.compile(r'\bPPB_\w+_INTERFACE\b')
-def CheckUnversionedPPB(input_api, output_api):
-  live_files = input_api.AffectedFiles(include_deletes=False)
-  files = [f.LocalPath() for f in live_files]
-  todo = []
-
-  for filename in files:
-    name, ext = os.path.splitext(filename)
-    name_parts = name.split(os.sep)
-
-    # Only check C++ sources.
-    if ext not in ['.cc']:
-      continue
-
-    # Only examine the public plugin facing ppapi/cpp directory.
-    if name_parts[0:2] != ['ppapi', 'cpp']:
-      continue
-
-    # Only examine public stable and trusted interfaces.
-    if name_parts[2] in ['dev', 'private']:
-      continue
-
-    filepath = os.path.join('..', filename)
-    with io.open(filepath, encoding='utf-8') as f:
-      if RE_UNVERSIONED_PPB.search(f.read()):
-        todo.append(filename)
-
-  if todo:
-    return [output_api.PresubmitError(
-        'Unversioned PPB interface references found in PPAPI C++ wrappers:',
-        long_text='\n'.join(todo))]
-  return []
-
-# Verify that changes to ppapi headers/sources are also made to NaCl SDK.
-def CheckUpdatedNaClSDK(input_api, output_api):
-  files = input_api.LocalPaths()
-
-  # PPAPI files the Native Client SDK cares about.
-  nacl_sdk_files = []
-
-  for filename in files:
-    name, ext = os.path.splitext(filename)
-    name_parts = name.split(os.sep)
-
-    if len(name_parts) <= 2:
-      continue
-
-    if name_parts[0] != 'ppapi':
-      continue
-
-    if ((name_parts[1] == 'c' and ext == '.h') or
-        (name_parts[1] in ('cpp', 'utility') and ext in ('.h', '.cc'))):
-      if name_parts[2] in ('documentation', 'trusted'):
-        continue
-      nacl_sdk_files.append(filename)
-
-  if not nacl_sdk_files:
-    return []
-
-  verify_ppapi_py = os.path.join(input_api.change.RepositoryRoot(),
-                                 'native_client_sdk', 'src', 'build_tools',
-                                 'verify_ppapi.py')
-  # When running git cl presubmit --all this presubmit may be asked to check
-  # ~300 files, leading to a command line that is ~9,500 characters, which
-  # exceeds the Windows 8191 character cmd.exe limit and causes cryptic failures
-  # with no context. To avoid these we break the command up into smaller pieces.
-  # The error is:
-  #     The command line is too long.
-  files_per_command = 25 if input_api.is_windows else 1000
-  results = []
-  for i in range(0, len(nacl_sdk_files), files_per_command):
-    cmd = [sys.executable, verify_ppapi_py
-           ] + nacl_sdk_files[i:i + files_per_command]
-    results.extend(
-        RunCmdAndCheck(
-            cmd,'PPAPI Interface modified without updating NaCl SDK.\n'
-                '(note that some dev interfaces should not be added '
-                'the NaCl SDK; when in doubt, ask a ppapi OWNER.\n'
-                'To ignore a file, add it to IGNORED_FILES in '
-                'native_client_sdk/src/build_tools/verify_ppapi.py)',
-                output_api,
-                warning=True))
-  return results
-
-# Verify that changes to ppapi/thunk/interfaces_* files have a corresponding
-# change to tools/metrics/histograms/enums.xml for UMA tracking.
-def CheckHistogramXml(input_api, output_api):
-  # We can't use input_api.LocalPaths() here because we need to know about
-  # changes outside of ppapi/. See tools/depot_tools/presubmit_support.py for
-  # details on input_api.
-  files = input_api.change.AffectedFiles()
-
-  INTERFACE_FILES = ('ppapi/thunk/interfaces_legacy.h',
-                     'ppapi/thunk/interfaces_ppb_private.h',
-                     'ppapi/thunk/interfaces_ppb_private_no_permissions.h',
-                     'ppapi/thunk/interfaces_ppb_public_dev_channel.h',
-                     'ppapi/thunk/interfaces_ppb_public_dev.h',
-                     'ppapi/thunk/interfaces_ppb_public_stable.h',
-                     'ppapi/thunk/interfaces_ppb_public_socket.h')
-  HISTOGRAM_XML_FILE = 'tools/metrics/histograms/enums.xml'
-  interface_changes = []
-  has_histogram_xml_change = False
-  for filename in files:
-    path = filename.LocalPath()
-    if path in INTERFACE_FILES:
-      interface_changes.append(path)
-    if path == HISTOGRAM_XML_FILE:
-      has_histogram_xml_change = True
-
-  if interface_changes and not has_histogram_xml_change:
-    return [output_api.PresubmitNotifyResult(
-        'Missing change to tools/metrics/histograms/enums.xml.\n' +
-        'Run pepper_hash_for_uma to make get values for new interfaces.\n' +
-        'Interface changes:\n' + '\n'.join(interface_changes))]
-  return []
-
-def CheckChange(input_api, output_api):
-  results = []
-
-  results.extend(RunUnittests(input_api, output_api))
-
-  results.extend(CheckTODO(input_api, output_api))
-
-  results.extend(CheckUnversionedPPB(input_api, output_api))
-
-  results.extend(CheckUpdatedNaClSDK(input_api, output_api))
-
-  results.extend(CheckHistogramXml(input_api, output_api))
-
-  # Verify all modified *.idl have a matching *.h
-  files = input_api.LocalPaths()
-  h_files = []
-  idl_files = []
-  generators_changed = False
-
-  # These are autogenerated by the command buffer generator, they don't go
-  # through idl.
-  whitelist = ['ppb_opengles2', 'ppb_opengles2ext_dev']
-
-  # Find all relevant .h and .idl files.
-  for filename in files:
-    name, ext = os.path.splitext(filename)
-    name_parts = name.split(os.sep)
-    if name_parts[-1] in whitelist:
-      continue
-    if name_parts[0:2] == ['ppapi', 'c'] and ext == '.h':
-      h_files.append('/'.join(name_parts[2:]))
-    elif name_parts[0:2] == ['ppapi', 'api'] and ext == '.idl':
-      idl_files.append('/'.join(name_parts[2:]))
-    elif name_parts[0:2] == ['ppapi', 'generators']:
-      generators_changed = True
-
-  # Generate a list of all appropriate *.h and *.idl changes in this CL.
-  both = h_files + idl_files
-
-  # If there aren't any, we are done checking.
-  if not both: return results
-
-  missing = []
-  for filename in idl_files:
-    if filename not in set(h_files):
-      missing.append('ppapi/api/%s.idl' % filename)
-
-  # An IDL change that includes [generate_thunk] doesn't need to have
-  # an update to the corresponding .h file.
-  new_thunk_files = []
-  for filename in missing:
-    lines = input_api.RightHandSideLines(lambda f: f.LocalPath() == filename)
-    for line in lines:
-      if line[2].strip() == '[generate_thunk]':
-        new_thunk_files.append(filename)
-  for filename in new_thunk_files:
-    missing.remove(filename)
-
-  if missing:
-    results.append(
-        output_api.PresubmitPromptWarning(
-            'Missing PPAPI header, no change or skipped generation?',
-            long_text='\n  '.join(missing)))
-
-  missing_dev = []
-  missing_stable = []
-  missing_priv = []
-  for filename in h_files:
-    if filename not in set(idl_files):
-      name_parts = filename.split(os.sep)
-
-      if name_parts[-1] == 'pp_macros':
-        # The C header generator adds a PPAPI_RELEASE macro based on all the
-        # IDL files, so pp_macros.h may change while its IDL does not.
-        lines = input_api.RightHandSideLines(
-            lambda f: f.LocalPath() == 'ppapi/c/%s.h' % filename)
-        releaseChanged = False
-        for line in lines:
-          if line[2].split()[:2] == ['#define', 'PPAPI_RELEASE']:
-            results.append(
-                output_api.PresubmitPromptOrNotify(
-                    'PPAPI_RELEASE has changed', long_text=line[2]))
-            releaseChanged = True
-            break
-        if releaseChanged:
-          continue
-
-      if 'trusted' in name_parts:
-        missing_priv.append('  ppapi/c/%s.h' % filename)
-        continue
-
-      if 'private' in name_parts:
-        missing_priv.append('  ppapi/c/%s.h' % filename)
-        continue
-
-      if 'dev' in name_parts:
-        missing_dev.append('  ppapi/c/%s.h' % filename)
-        continue
-
-      missing_stable.append('  ppapi/c/%s.h' % filename)
-
-  if missing_priv:
-    results.append(
-        output_api.PresubmitPromptWarning(
-            'Missing PPAPI IDL for private interface, please generate IDL:',
-            long_text='\n'.join(missing_priv)))
-
-  if missing_dev:
-    results.append(
-        output_api.PresubmitPromptWarning(
-            'Missing PPAPI IDL for DEV, required before moving to stable:',
-            long_text='\n'.join(missing_dev)))
-
-  if missing_stable:
-    # It might be okay that the header changed without a corresponding IDL
-    # change. E.g., comment indenting may have been changed. Treat this as a
-    # warning.
-    if generators_changed:
-      results.append(
-          output_api.PresubmitPromptWarning(
-              'Missing PPAPI IDL for stable interface (due to change in ' +
-              'generators?):',
-              long_text='\n'.join(missing_stable)))
-    else:
-      results.append(
-          output_api.PresubmitError(
-              'Missing PPAPI IDL for stable interface:',
-              long_text='\n'.join(missing_stable)))
-
-  # Verify all *.h files match *.idl definitions, use:
-  #   --test to prevent output to disk
-  #   --diff to generate a unified diff
-  #   --out to pick which files to examine (only the ones in the CL)
-  ppapi_dir = input_api.PresubmitLocalPath()
-  cmd = [sys.executable, 'generator.py',
-         '--wnone', '--diff', '--test','--cgen', '--range=start,end']
-
-  # Only generate output for IDL files references (as *.h or *.idl) in this CL
-  cmd.append('--out=' + ','.join([name + '.idl' for name in both]))
-  cmd_results = RunCmdAndCheck(cmd,
-                               'PPAPI IDL Diff detected: Run the generator.',
-                               output_api,
-                               os.path.join(ppapi_dir, 'generators'))
-  if cmd_results:
-    results.extend(cmd_results)
-
-  return results
-
-
-def CheckChangeOnUpload(input_api, output_api):
-  return CheckChange(input_api, output_api)
-
-
-def CheckChangeOnCommit(input_api, output_api):
-  return CheckChange(input_api, output_api)
diff --git a/api/dev/pp_cursor_type_dev.idl b/api/dev/pp_cursor_type_dev.idl
deleted file mode 100644
index 685f25c..0000000
--- a/api/dev/pp_cursor_type_dev.idl
+++ /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.
- */
-
-/**
- * This file defines enumerations for cursor types.
- */
-
-[assert_size(4),notypedef] enum PP_CursorType_Dev {
-  PP_CURSORTYPE_CUSTOM = -1,
-  PP_CURSORTYPE_POINTER = 0,
-  PP_CURSORTYPE_CROSS = 1,
-  PP_CURSORTYPE_HAND = 2,
-  PP_CURSORTYPE_IBEAM = 3,
-  PP_CURSORTYPE_WAIT = 4,
-  PP_CURSORTYPE_HELP = 5,
-  PP_CURSORTYPE_EASTRESIZE = 6,
-  PP_CURSORTYPE_NORTHRESIZE = 7,
-  PP_CURSORTYPE_NORTHEASTRESIZE = 8,
-  PP_CURSORTYPE_NORTHWESTRESIZE = 9,
-  PP_CURSORTYPE_SOUTHRESIZE = 10,
-  PP_CURSORTYPE_SOUTHEASTRESIZE = 11,
-  PP_CURSORTYPE_SOUTHWESTRESIZE = 12,
-  PP_CURSORTYPE_WESTRESIZE = 13,
-  PP_CURSORTYPE_NORTHSOUTHRESIZE = 14,
-  PP_CURSORTYPE_EASTWESTRESIZE = 15,
-  PP_CURSORTYPE_NORTHEASTSOUTHWESTRESIZE = 16,
-  PP_CURSORTYPE_NORTHWESTSOUTHEASTRESIZE = 17,
-  PP_CURSORTYPE_COLUMNRESIZE = 18,
-  PP_CURSORTYPE_ROWRESIZE = 19,
-  PP_CURSORTYPE_MIDDLEPANNING = 20,
-  PP_CURSORTYPE_EASTPANNING = 21,
-  PP_CURSORTYPE_NORTHPANNING = 22,
-  PP_CURSORTYPE_NORTHEASTPANNING = 23,
-  PP_CURSORTYPE_NORTHWESTPANNING = 24,
-  PP_CURSORTYPE_SOUTHPANNING = 25,
-  PP_CURSORTYPE_SOUTHEASTPANNING = 26,
-  PP_CURSORTYPE_SOUTHWESTPANNING = 27,
-  PP_CURSORTYPE_WESTPANNING = 28,
-  PP_CURSORTYPE_MOVE = 29,
-  PP_CURSORTYPE_VERTICALTEXT = 30,
-  PP_CURSORTYPE_CELL = 31,
-  PP_CURSORTYPE_CONTEXTMENU = 32,
-  PP_CURSORTYPE_ALIAS = 33,
-  PP_CURSORTYPE_PROGRESS = 34,
-  PP_CURSORTYPE_NODROP = 35,
-  PP_CURSORTYPE_COPY = 36,
-  PP_CURSORTYPE_NONE = 37,
-  PP_CURSORTYPE_NOTALLOWED = 38,
-  PP_CURSORTYPE_ZOOMIN = 39,
-  PP_CURSORTYPE_ZOOMOUT = 40,
-  PP_CURSORTYPE_GRAB = 41,
-  PP_CURSORTYPE_GRABBING = 42,
-  PP_CURSORTYPE_MIDDLEPANNINGVERTICAL = 43,
-  PP_CURSORTYPE_MIDDLEPANNINGHORIZONTAL = 44
-};
-
diff --git a/api/dev/pp_print_settings_dev.idl b/api/dev/pp_print_settings_dev.idl
deleted file mode 100644
index 42f64b8..0000000
--- a/api/dev/pp_print_settings_dev.idl
+++ /dev/null
@@ -1,48 +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.
- */
-
-/**
- * This file defines the struct for PrintSettings.
- */
-
-[assert_size(4)]
-enum PP_PrintOrientation_Dev {
-  PP_PRINTORIENTATION_NORMAL         = 0,
-  PP_PRINTORIENTATION_ROTATED_90_CW  = 1,
-  PP_PRINTORIENTATION_ROTATED_180    = 2,
-  PP_PRINTORIENTATION_ROTATED_90_CCW = 3,
-  PP_PRINTORIENTATION_ROTATED_LAST = PP_PRINTORIENTATION_ROTATED_90_CCW
-};
-
-[assert_size(4)]
-enum PP_PrintOutputFormat_Dev {
-  PP_PRINTOUTPUTFORMAT_RASTER     = 1u << 0,
-  PP_PRINTOUTPUTFORMAT_PDF        = 1u << 1,
-  PP_PRINTOUTPUTFORMAT_POSTSCRIPT = 1u << 2,
-  PP_PRINTOUTPUTFORMAT_EMF        = 1u << 3
-};
-
-[assert_size(4)]
-enum PP_PrintScalingOption_Dev {
-  PP_PRINTSCALINGOPTION_NONE = 0,
-  PP_PRINTSCALINGOPTION_FIT_TO_PRINTABLE_AREA = 1,
-  PP_PRINTSCALINGOPTION_SOURCE_SIZE = 2,
-  PP_PRINTSCALINGOPTION_FIT_TO_PAPER = 3,
-  PP_PRINTSCALINGOPTION_LAST = PP_PRINTSCALINGOPTION_FIT_TO_PAPER
-};
-
-[assert_size(60)]
-struct PP_PrintSettings_Dev {
-  /** This is the size of the printable area in points (1/72 of an inch). */
-  PP_Rect printable_area;
-  PP_Rect content_area;
-  PP_Size paper_size;
-  int32_t dpi;
-  PP_PrintOrientation_Dev orientation;
-  PP_PrintScalingOption_Dev print_scaling_option;
-  PP_Bool grayscale;
-  /** Note that Chrome currently only supports PDF printing. */
-  PP_PrintOutputFormat_Dev format;
-};
diff --git a/api/dev/pp_video_capture_dev.idl b/api/dev/pp_video_capture_dev.idl
deleted file mode 100644
index a7e0cb4..0000000
--- a/api/dev/pp_video_capture_dev.idl
+++ /dev/null
@@ -1,47 +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.
- */
-
-/**
- * Structs for dealing with video capture.
- */
-
-/**
- * PP_VideoCaptureDeviceInfo_Dev is a structure that represent a video capture
- * configuration, such as resolution and frame rate.
- */
-[assert_size(12)]
-struct PP_VideoCaptureDeviceInfo_Dev {
-  uint32_t width;
-  uint32_t height;
-  uint32_t frames_per_second;
-};
-
-/**
- * PP_VideoCaptureStatus_Dev is an enumeration that defines the various possible
- * states of a VideoCapture.
- */
-[assert_size(4)]
-enum PP_VideoCaptureStatus_Dev {
-  /**
-   * Initial state, capture is stopped.
-   */
-  PP_VIDEO_CAPTURE_STATUS_STOPPED = 0,
-  /**
-   * StartCapture has been called, but capture hasn't started yet.
-   */
-  PP_VIDEO_CAPTURE_STATUS_STARTING = 1,
-  /**
-   * Capture has been started.
-   */
-  PP_VIDEO_CAPTURE_STATUS_STARTED = 2,
-  /**
-   * Capture has been started, but is paused because no buffer is available.
-   */
-  PP_VIDEO_CAPTURE_STATUS_PAUSED = 3,
-  /**
-   * StopCapture has been called, but capture hasn't stopped yet.
-   */
-  PP_VIDEO_CAPTURE_STATUS_STOPPING = 4
-};
diff --git a/api/dev/pp_video_dev.idl b/api/dev/pp_video_dev.idl
deleted file mode 100644
index def1390..0000000
--- a/api/dev/pp_video_dev.idl
+++ /dev/null
@@ -1,130 +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.
- */
-
-/**
- * NOTE: these must be kept in sync with the versions in media/!
- */
-
-
-/**
- * Video format.
- *
- * Keep the values in this enum unique, as they imply format (h.264 vs. VP8,
- * for example), and keep the values for a particular format grouped together
- * for clarity.
- * Note: Keep these in sync with media::VideoCodecProfile.
- */
-[assert_size(4)]
-enum PP_VideoDecoder_Profile {
-  PP_VIDEODECODER_PROFILE_UNKNOWN = -1,
-  PP_VIDEODECODER_PROFILE_FIRST = PP_VIDEODECODER_PROFILE_UNKNOWN,
-  PP_VIDEODECODER_H264PROFILE_NONE = 0,
-  PP_VIDEODECODER_H264PROFILE_BASELINE = 1,
-  PP_VIDEODECODER_H264PROFILE_MAIN = 2,
-  PP_VIDEODECODER_H264PROFILE_EXTENDED = 3,
-  PP_VIDEODECODER_H264PROFILE_HIGH = 4,
-  PP_VIDEODECODER_H264PROFILE_HIGH10PROFILE = 5,
-  PP_VIDEODECODER_H264PROFILE_HIGH422PROFILE = 6,
-  PP_VIDEODECODER_H264PROFILE_HIGH444PREDICTIVEPROFILE = 7,
-  PP_VIDEODECODER_H264PROFILE_SCALABLEBASELINE = 8,
-  PP_VIDEODECODER_H264PROFILE_SCALABLEHIGH = 9,
-  PP_VIDEODECODER_H264PROFILE_STEREOHIGH = 10,
-  PP_VIDEODECODER_H264PROFILE_MULTIVIEWHIGH = 11,
-  PP_VIDEODECODER_VP8PROFILE_ANY = 12,
-  PP_VIDEODECODER_PROFILE_LAST = PP_VIDEODECODER_VP8PROFILE_ANY
-};
-
-/**
- * The data structure for video bitstream buffer.
- */
-[assert_size(12)]
-struct PP_VideoBitstreamBuffer_Dev {
-  /**
-   * Client-specified identifier for the bitstream buffer. Valid values are
-   * non-negative.
-   */
-  int32_t id;
-
-  /**
-   * Buffer to hold the bitstream data. Should be allocated using the
-   * PPB_Buffer interface for consistent interprocess behaviour.
-   */
-  PP_Resource data;
-
-  /**
-   * Size of the bitstream contained in buffer (in bytes).
-   */
-  uint32_t size;
-};
-
-/**
- * Struct for specifying texture-backed picture data.
- */
-[assert_size(16)]
-struct PP_PictureBuffer_Dev {
-  /**
-   * Client-specified id for the picture buffer. By using this value client can
-   * keep track of the buffers it has assigned to the video decoder and how they
-   * are passed back to it. Valid values are non-negative.
-   */
-  int32_t id;
-
-  /**
-   * Dimensions of the buffer.
-   */
-  PP_Size size;
-
-  /**
-   * Texture ID in the given context where picture is stored.
-   */
-  uint32_t texture_id;
-};
-
-/**
- * Structure to describe a decoded output frame.
- */
-[assert_size(8)]
-struct PP_Picture_Dev {
-  /**
-   * ID of the picture buffer where the picture is stored.
-   */
-  int32_t picture_buffer_id;
-
-  /**
-   * ID of the bitstream from which this data was decoded.
-   */
-  int32_t bitstream_buffer_id;
-};
-
-/**
- * Decoder error codes reported to the plugin. A reasonable naive
- * error handling policy is for the plugin to Destroy() the decoder on error.
- */
-[assert_size(4)]
-enum PP_VideoDecodeError_Dev {
-  /**
-   * An operation was attempted during an incompatible decoder state.
-   */
-  PP_VIDEODECODERERROR_ILLEGAL_STATE = 1,
-  PP_VIDEODECODERERROR_FIRST = PP_VIDEODECODERERROR_ILLEGAL_STATE,
-
-  /**
-   * Invalid argument was passed to an API method.
-   */
-  PP_VIDEODECODERERROR_INVALID_ARGUMENT = 2,
-
-  /**
-   * Encoded input is unreadable.
-   */
-  PP_VIDEODECODERERROR_UNREADABLE_INPUT = 3,
-
-  /** 
-   * A failure occurred at the browser layer or lower.  Examples of such
-   * failures include GPU hardware failures, GPU driver failures, GPU library
-   * failures, browser programming errors, and so on.
-   */
-  PP_VIDEODECODERERROR_PLATFORM_FAILURE = 4,
-  PP_VIDEODECODERERROR_LAST = PP_VIDEODECODERERROR_PLATFORM_FAILURE
-};
diff --git a/api/dev/ppb_audio_input_dev.idl b/api/dev/ppb_audio_input_dev.idl
deleted file mode 100644
index cd3431f..0000000
--- a/api/dev/ppb_audio_input_dev.idl
+++ /dev/null
@@ -1,198 +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.
- */
-
-/**
- * This file defines the <code>PPB_AudioInput_Dev</code> interface, which
- * provides realtime audio input capture.
- */
-
-label Chrome {
-  M25 = 0.3,
-  M30 = 0.4
-};
-
-/**
- * <code>PPB_AudioInput_Callback</code> defines the type of an audio callback
- * function used to provide the audio buffer with data. This callback will be
- * called on a separate thread from the creation thread.
- *
- * @param[in] sample_buffer A buffer providing audio input data.
- * @param[in] buffer_size_in_bytes The size of the buffer in bytes.
- * @param[in] latency The time that has elapsed since the data was recorded.
- * @param[inout] user_data An opaque pointer that was passed into
- * <code>PPB_AudioInput_Dev.Open()</code>.
- */
-typedef void PPB_AudioInput_Callback([in] mem_t sample_buffer,
-                                     [in] uint32_t buffer_size_in_bytes,
-                                     [in, version=0.4] PP_TimeDelta latency,
-                                     [inout] mem_t user_data);
-
-/**
- * The <code>PPB_AudioInput_Dev</code> interface contains pointers to several
- * functions for handling audio input resources.
- *
- * TODO(brettw) before moving out of dev, we need to resolve the issue of
- * the mismatch between the current audio config interface and this one.
- * 
- * In particular, the params for input assume stereo, but this class takes
- * everything as mono. We either need to not use an audio config resource, or
- * add mono support.
- *
- * In addition, RecommendSampleFrameCount is completely wrong for audio input.
- * RecommendSampleFrameCount returns the frame count for the current
- * low-latency output device, which is likely inappropriate for a random input
- * device. We may want to move the "recommend" functions to the input or output
- * classes rather than the config.
- */
-[macro="PPB_AUDIO_INPUT_DEV_INTERFACE"]
-interface PPB_AudioInput_Dev {
-  /**
-   * Creates an audio input resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to an audio input resource
-   * if successful, 0 if failed.
-   */
-  PP_Resource Create(
-      [in] PP_Instance instance);
-
-  /**
-   * Determines if the given resource is an audio input resource.
-   *
-   * @param[in] resource A <code>PP_Resource</code> containing a resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if the given
-   * resource is an audio input resource, otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool IsAudioInput(
-      [in] PP_Resource resource);
-
-  /**
-   * Enumerates audio input devices.
-   *
-   * @param[in] audio_input A <code>PP_Resource</code> corresponding to an audio
-   * input resource.
-   * @param[in] output An output array which will receive
-   * <code>PPB_DeviceRef_Dev</code> resources on success. Please note that the
-   * ref count of those resources has already been increased by 1 for the
-   * caller.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * completion.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  [version=0.3]
-  int32_t EnumerateDevices(
-      [in] PP_Resource audio_input,
-      [in] PP_ArrayOutput output,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Requests device change notifications.
-   *
-   * @param[in] audio_input A <code>PP_Resource</code> corresponding to an audio
-   * input resource.
-   * @param[in] callback The callback to receive notifications. If not NULL, it
-   * will be called once for the currently available devices, and then every
-   * time the list of available devices changes. All calls will happen on the
-   * same thread as the one on which MonitorDeviceChange() is called. It will
-   * receive notifications until <code>audio_input</code> is destroyed or
-   * <code>MonitorDeviceChange()</code> is called to set a new callback for
-   * <code>audio_input</code>. You can pass NULL to cancel sending
-   * notifications.
-   * @param[inout] user_data An opaque pointer that will be passed to
-   * <code>callback</code>.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  [version=0.3]
-  int32_t MonitorDeviceChange(
-      [in] PP_Resource audio_input,
-      [in] PP_MonitorDeviceChangeCallback callback,
-      [inout] mem_t user_data);
-
-  /**
-   * Opens an audio input device. No sound will be captured until
-   * StartCapture() is called.
-   *
-   * @param[in] audio_input A <code>PP_Resource</code> corresponding to an audio
-   * input resource.
-   * @param[in] device_ref Identifies an audio input device. It could be one of
-   * the resource in the array returned by EnumerateDevices(), or 0 which means
-   * the default device.
-   * @param[in] config A <code>PPB_AudioConfig</code> audio configuration
-   * resource.
-   * @param[in] audio_input_callback A <code>PPB_AudioInput_Callback</code>
-   * function that will be called when data is available.
-   * @param[inout] user_data An opaque pointer that will be passed into
-   * <code>audio_input_callback</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run when this
-   * open operation is completed.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t Open(
-      [in] PP_Resource audio_input,
-      [in] PP_Resource device_ref,
-      [in] PP_Resource config,
-      [in] PPB_AudioInput_Callback audio_input_callback,
-      [inout] mem_t user_data,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Returns an audio config resource for the given audio input resource.
-   *
-   * @param[in] audio_input A <code>PP_Resource</code> corresponding to an audio
-   * input resource.
-   *
-   * @return A <code>PP_Resource</code> containing the audio config resource if
-   * successful.
-   */
-  PP_Resource GetCurrentConfig(
-      [in] PP_Resource audio_input);
-
-  /**
-   * Starts the capture of the audio input resource and begins periodically
-   * calling the callback.
-   *
-   * @param[in] audio_input A <code>PP_Resource</code> corresponding to an audio
-   * input resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if
-   * successful, otherwise <code>PP_FALSE</code>.
-   * Also returns <code>PP_TRUE</code> (and is a no-op) if called while capture
-   * is already started.
-   */
-  PP_Bool StartCapture(
-      [in] PP_Resource audio_input);
-
-  /**
-   * Stops the capture of the audio input resource.
-   *
-   * @param[in] audio_input A PP_Resource containing the audio input resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if
-   * successful, otherwise <code>PP_FALSE</code>.
-   * Also returns <code>PP_TRUE</code> (and is a no-op) if called while capture
-   * is already stopped. If a buffer is being captured, StopCapture will block
-   * until the call completes.
-   */
-  PP_Bool StopCapture(
-      [in] PP_Resource audio_input);
-
-  /**
-   * Closes the audio input device, and stops capturing if necessary. It is
-   * not valid to call Open() again after a call to this method.
-   * If an audio input resource is destroyed while a device is still open, then
-   * it will be implicitly closed, so you are not required to call this method.
-   *
-   * @param[in] audio_input A <code>PP_Resource</code> corresponding to an audio
-   * input resource.
-   */
-  void Close(
-      [in] PP_Resource audio_input);
-};
diff --git a/api/dev/ppb_audio_output_dev.idl b/api/dev/ppb_audio_output_dev.idl
deleted file mode 100644
index 8087a22..0000000
--- a/api/dev/ppb_audio_output_dev.idl
+++ /dev/null
@@ -1,229 +0,0 @@
-/* Copyright 2017 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/**
- * This file defines the <code>PPB_AudioOutput_dev</code> interface, which
- * provides realtime stereo audio streaming capabilities.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M59 = 0.1
-};
-
-/**
- * <code>PPB_AudioOutput_Callback</code> defines the type of an audio callback
- * function used to fill the audio buffer with data. Please see the
- * Create() function in the <code>PPB_AudioOutput</code> interface for
- * more details on this callback.
- *
- * @param[out] sample_buffer A buffer to fill with audio data.
- * @param[in] buffer_size_in_bytes The size of the buffer in bytes.
- * @param[in] latency How long before the audio data is to be presented.
- * @param[inout] user_data An opaque pointer that was passed into
- * <code>PPB_AudioOutput.Create()</code>.
- */
-typedef void PPB_AudioOutput_Callback([out] mem_t sample_buffer,
-                                      [in] uint32_t buffer_size_in_bytes,
-                                      [in] PP_TimeDelta latency,
-                                      [inout] mem_t user_data);
-
-/**
- * The <code>PPB_AudioOutput</code> interface contains pointers to several
- * functions for handling audio resources.
- * Please see descriptions for each <code>PPB_AudioOutput</code> and
- * <code>PPB_AudioConfig</code> function for more details. A C example using
- * <code>PPB_AudioOutput</code> and <code>PPB_AudioConfig</code> follows.
- *
- * <strong>Example: </strong>
- * 
- * @code
- * void audio_output_callback(void* sample_buffer,
- *                            uint32_t buffer_size_in_bytes,
- *                            PP_TimeDelta latency,
- *                            void* user_data) {
- *   ... quickly fill in the buffer with samples and return to caller ...
- *  }
- *
- * ...Assume the application has cached the audio configuration interface in
- * audio_config_interface and the audio interface in
- * audio_output_interface...
- *
- * uint32_t count = audio_config_interface->RecommendSampleFrameCount(
- *     PP_AUDIOSAMPLERATE_44100, 4096);
- * PP_Resource pp_audio_config = audio_config_interface->CreateStereo16Bit(
- *     pp_instance, PP_AUDIOSAMPLERATE_44100, count);
- * PP_Resource pp_audio_output = audio_interface->Create(pp_instance,
- *     pp_audio_config, audio_callback, NULL);
- * audio_interface->EnumerateDevices(pp_audio_output, output_device_list,
- *     callback);
- * audio_interface->Open(pp_audio_output, device_ref, pp_audio_config,
- *     audio_output_callback, user_data, callback);
- * audio_output_interface->StartPlayback(pp_audio_output);
- *
- * ...audio_output_callback() will now be periodically invoked on a separate
- * thread...
- * @endcode
- */
-
-[macro="PPB_AUDIO_OUTPUT_DEV_INTERFACE"]
-interface PPB_AudioOutput_Dev {
-  /**
-   * Creates an audio output resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to an audio output resource
-   * if successful, 0 if failed.
-   */
-  PP_Resource Create(
-      [in] PP_Instance instance);
-
-  /**
-   * Determines if the given resource is an audio output resource.
-   *
-   * @param[in] resource A <code>PP_Resource</code> containing a resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if the given
-   * resource is an audio output resource, otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool IsAudioOutput(
-      [in] PP_Resource resource);
-
-  /**
-   * Enumerates audio output devices.
-   *
-   * @param[in] audio_output A <code>PP_Resource</code> corresponding to an audio
-   * output resource.
-   * @param[in] output An output array which will receive
-   * <code>PPB_DeviceRef_Dev</code> resources on success. Please note that the
-   * ref count of those resources has already been increased by 1 for the
-   * caller.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * completion.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t EnumerateDevices(
-      [in] PP_Resource audio_output,
-      [in] PP_ArrayOutput output,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Requests device change notifications.
-   *
-   * @param[in] audio_output A <code>PP_Resource</code> corresponding to an audio
-   * output resource.
-   * @param[in] callback The callback to receive notifications. If not NULL, it
-   * will be called once for the currently available devices, and then every
-   * time the list of available devices changes. All calls will happen on the
-   * same thread as the one on which MonitorDeviceChange() is called. It will
-   * receive notifications until <code>audio_output</code> is destroyed or
-   * <code>MonitorDeviceChange()</code> is called to set a new callback for
-   * <code>audio_output</code>. You can pass NULL to cancel sending
-   * notifications.
-   * @param[inout] user_data An opaque pointer that will be passed to
-   * <code>callback</code>.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t MonitorDeviceChange(
-      [in] PP_Resource audio_output,
-      [in] PP_MonitorDeviceChangeCallback callback,
-      [inout] mem_t user_data);
-
-  /**
-   * Open() opens an audio output device. No sound will be heard until
-   * StartPlayback() is called. The callback is called with the buffer address
-   * and given user data whenever the buffer needs to be filled. From within the
-   * callback, you should not call <code>PPB_AudioOutput</code> functions. The
-   * callback will be called on a different thread than the one which created
-   * the interface. For performance-critical applications (i.e. low-latency
-   * audio), the callback should avoid blocking or calling functions that can
-   * obtain locks, such as malloc. The layout and the size of the buffer passed
-   * to the audio callback will be determined by the device configuration and is
-   * specified in the <code>AudioConfig</code> documentation.
-   *
-   * @param[in] audio_output A <code>PP_Resource</code> corresponding to an audio
-   * output resource.
-   * @param[in] device_ref Identifies an audio output device. It could be one of
-   * the resource in the array returned by EnumerateDevices(), or 0 which means
-   * the default device.
-   * @param[in] config A <code>PPB_AudioConfig</code> audio configuration
-   * resource.
-   * @param[in] audio_output_callback A <code>PPB_AudioOutput_Callback</code>
-   * function that will be called when audio buffer needs to be filled.
-   * @param[inout] user_data An opaque pointer that will be passed into
-   * <code>audio_output_callback</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run when this
-   * open operation is completed.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t Open(
-      [in] PP_Resource audio_output,
-      [in] PP_Resource device_ref,
-      [in] PP_Resource config,
-      [in] PPB_AudioOutput_Callback audio_output_callback,
-      [inout] mem_t user_data,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * GetCurrrentConfig() returns an audio config resource for the given audio
-   * output resource.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * output resource.
-   *
-   * @return A <code>PP_Resource</code> containing the audio config resource if
-   * successful.
-   */
-  PP_Resource GetCurrentConfig(
-      [in] PP_Resource audio_output);
-
-  /**
-   * StartPlayback() starts the playback of the audio output resource and begins
-   * periodically calling the callback.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * output resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if
-   * successful, otherwise <code>PP_FALSE</code>. Also returns
-   * <code>PP_TRUE</code> (and be a no-op) if called while playback is already
-   * in progress.
-   */
-  PP_Bool StartPlayback(
-      [in] PP_Resource audio_output);
-
-  /**
-   * StopPlayback() stops the playback of the audio resource.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * output resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if
-   * successful, otherwise <code>PP_FALSE</code>. Also returns
-   * <code>PP_TRUE</code> (and is a no-op) if called while playback is already
-   * stopped. If a callback is in progress, StopPlayback() will block until the
-   * callback completes.
-   */
-  PP_Bool StopPlayback(
-      [in] PP_Resource audio_output);
-
-  /**
-   * Close() closes the audio output device, and stops playback if necessary. It is
-   * not valid to call Open() again after a call to this method.
-   * If an audio output resource is destroyed while a device is still open, then
-   * it will be implicitly closed, so you are not required to call this method.
-   *
-   * @param[in] audio_output A <code>PP_Resource</code> corresponding to an audio
-   * output resource.
-   */
-  void Close(
-      [in] PP_Resource audio_output);
-};
diff --git a/api/dev/ppb_buffer_dev.idl b/api/dev/ppb_buffer_dev.idl
deleted file mode 100644
index 21808f6..0000000
--- a/api/dev/ppb_buffer_dev.idl
+++ /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.
- */
-
-/**
- * This file defines the <code>PPB_Buffer_Dev</code> interface.
- */
-
-label Chrome {
-  M14 = 0.4
-};
-
-interface PPB_Buffer_Dev {
-  /**
-   * Allocates a buffer of the given size in bytes. The return value will have
-   * a non-zero ID on success, or zero on failure. Failure means the module
-   * handle was invalid. The buffer will be initialized to contain zeroes.
-   */
-  PP_Resource Create(
-      [in] PP_Instance instance,
-      [in] uint32_t size_in_bytes);
-
-  /**
-   * Returns PP_TRUE if the given resource is a Buffer. Returns PP_FALSE if the
-   * resource is invalid or some type other than a Buffer.
-   */
-  PP_Bool IsBuffer(
-      [in] PP_Resource resource);
-
-  /**
-   * Gets the size of the buffer. Returns PP_TRUE on success, PP_FALSE
-   * if the resource is not a buffer. On failure, |*size_in_bytes| is not set.
-   */
-  PP_Bool Describe(
-      [in] PP_Resource resource,
-      [out] uint32_t size_in_bytes);
-
-  /**
-   * Maps this buffer into the plugin address space and returns a pointer to
-   * the beginning of the data.
-   */
-  mem_t Map(
-      [in] PP_Resource resource);
-
-  /**
-   * Unmaps this buffer.
-   */
-  void Unmap(
-      [in] PP_Resource resource);
-};
diff --git a/api/dev/ppb_crypto_dev.idl b/api/dev/ppb_crypto_dev.idl
deleted file mode 100644
index cd18f68..0000000
--- a/api/dev/ppb_crypto_dev.idl
+++ /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.
- */
-
-/**
- * This file defines the PPB_Crypto_Dev interface.
- */
-
-label Chrome {
-  M13 = 0.1
-};
-
-interface PPB_Crypto_Dev {
-  /**
-   * Fills the given buffer with random bytes. This is potentially slow so only
-   * request the amount of data you need.
-   */
-  void GetRandomBytes([out] str_t buffer, [in] uint32_t num_bytes);
-};
diff --git a/api/dev/ppb_cursor_control_dev.idl b/api/dev/ppb_cursor_control_dev.idl
deleted file mode 100644
index 8ea40df..0000000
--- a/api/dev/ppb_cursor_control_dev.idl
+++ /dev/null
@@ -1,65 +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.
- */
-
-/**
- * This file defines the <code>PPB_CursorControl_Dev</code> interface
- * implemented by the browser for controlling the cursor.
- */
-
-label Chrome {
-  M14 = 0.4
-};
-
-[macro="PPB_CURSOR_CONTROL_DEV_INTERFACE"]
-interface PPB_CursorControl_Dev {
-  /** 
-   * Set a cursor.  If "type" is PP_CURSORTYPE_CUSTOM, then "custom_image"
-   * must be an ImageData resource containing the cursor and "hot_spot" must
-   * contain the offset within that image that refers to the cursor's position.
-   */
-   PP_Bool SetCursor([in] PP_Instance instance,
-                     [in] PP_CursorType_Dev type,
-                     [in] PP_Resource custom_image,
-                     [in] PP_Point hot_spot);
-
-  /**
-   * This method causes the cursor to be moved to the center of the
-   * instance and be locked, preventing the user from moving it.
-   * The cursor is implicitly hidden from the user while locked.
-   * Cursor lock may only be requested in response to a
-   * PP_InputEvent_MouseDown, and then only if the event was generated via
-   * user gesture.
-   *
-   * While the cursor is locked, any movement of the mouse will
-   * generate a PP_InputEvent_Type_MouseMove, whose x and y values
-   * indicate the position the cursor would have been moved to had
-   * the cursor not been locked, and had the screen been infinite in size.
-   *
-   * The browser may revoke cursor lock for reasons including but not
-   * limited to the user pressing the ESC key, the user activating
-   * another program via a reserved keystroke (e.g., ALT+TAB), or
-   * some other system event.
-   *
-   * Returns PP_TRUE if the cursor could be locked, PP_FALSE otherwise.
-   */
-  PP_Bool LockCursor([in] PP_Instance instance);
-
-  /**
-   * Causes the cursor to be unlocked, allowing it to track user
-   * movement again.
-   */
-  PP_Bool UnlockCursor([in] PP_Instance instance);
-
-  /** 
-   * Returns PP_TRUE if the cursor is locked, PP_FALSE otherwise.
-   */
-  PP_Bool HasCursorLock([in] PP_Instance instance);
-
-  /**
-   * Returns PP_TRUE if the cursor can be locked, PP_FALSE otherwise.
-   */
-  PP_Bool CanLockCursor([in] PP_Instance instance);
-};
-
diff --git a/api/dev/ppb_device_ref_dev.idl b/api/dev/ppb_device_ref_dev.idl
deleted file mode 100644
index 9a6cbf0..0000000
--- a/api/dev/ppb_device_ref_dev.idl
+++ /dev/null
@@ -1,78 +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.
- */
-
-/**
- * This file defines the <code>PPB_DeviceRef_Dev</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M18 = 0.1
-};
-
-/**
- * Defines the callback type to receive device change notifications for
- * <code>PPB_AudioInput_Dev.MonitorDeviceChange()</code> and
- * <code>PPB_VideoCapture_Dev.MonitorDeviceChange()</code>.
- *
- * @param[inout] user_data The opaque pointer that the caller passed into
- * <code>MonitorDeviceChange()</code>.
- * @param[in] device_count How many devices in the array.
- * @param[in] devices An array of <code>PPB_DeviceRef_Dev</code>. Please note
- * that the ref count of the elements is not increased on behalf of the plugin.
- */
-typedef void PP_MonitorDeviceChangeCallback(
-    [inout] mem_t user_data,
-    [in] uint32_t device_count,
-    [in, size_is(device_count)] PP_Resource[] devices);
-
-/**
- * Device types.
- */
-[assert_size(4)]
-enum PP_DeviceType_Dev {
-  PP_DEVICETYPE_DEV_INVALID = 0,
-  PP_DEVICETYPE_DEV_AUDIOCAPTURE = 1,
-  PP_DEVICETYPE_DEV_VIDEOCAPTURE = 2,
-  PP_DEVICETYPE_DEV_AUDIOOUTPUT = 3,
-  PP_DEVICETYPE_DEV_MAX = PP_DEVICETYPE_DEV_AUDIOOUTPUT
-};
-
-interface PPB_DeviceRef_Dev {
-  /**
-   * Determines if the provided resource is a device reference.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a generic
-   * resource.
-   *
-   * @return A <code>PP_Bool</code> that is <code>PP_TRUE</code> if the given
-   * resource is a device reference, otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool IsDeviceRef([in] PP_Resource resource);
-
-  /**
-   * Gets the device type.
-   *
-   * @param[in] device_ref A <code>PP_Resource</code> corresponding to a device
-   * reference.
-   *
-   * @return A <code>PP_DeviceType_Dev</code> value.
-   */
-  [on_failure=PP_DEVICETYPE_DEV_INVALID]
-  PP_DeviceType_Dev GetType([in] PP_Resource device_ref);
-
-  /**
-   * Gets the device name.
-   *
-   * @param[in] device_ref A <code>PP_Resource</code> corresponding to a device
-   * reference.
-   *
-   * @return A <code>PP_Var</code> of type <code>PP_VARTYPE_STRING</code>
-   * containing the name of the device if successful; a <code>PP_Var</code> of
-   * type <code>PP_VARTYPE_UNDEFINED</code> if failed.
-   */
-  PP_Var GetName([in] PP_Resource device_ref);
-};
diff --git a/api/dev/ppb_file_chooser_dev.idl b/api/dev/ppb_file_chooser_dev.idl
deleted file mode 100644
index bb4a60e..0000000
--- a/api/dev/ppb_file_chooser_dev.idl
+++ /dev/null
@@ -1,155 +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.
- */
-
-
-/**
- * This file defines the <code>PPB_FileChooser_Dev</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M16 = 0.5,
-  M19 = 0.6
-};
-
-/**
- * This enumeration contains constants to control the behavior of the file
- * chooser dialog.
- */
-[assert_size(4)]
-enum PP_FileChooserMode_Dev {
-  /**
-   * Mode for choosing a single existing file.
-   */
-  PP_FILECHOOSERMODE_OPEN = 0,
-  /**
-   * Mode for choosing multiple existing files.
-   */
-  PP_FILECHOOSERMODE_OPENMULTIPLE = 1
-};
-
-interface PPB_FileChooser_Dev {
- /**
-  * This function creates a file chooser dialog resource.  The chooser is
-  * associated with a particular instance, so that it may be positioned on the
-  * screen relative to the tab containing the instance.
-  *
-  * @param[in] instance A <code>PP_Instance</code> identifying one instance
-  * of a module.
-  * @param[in] mode A <code>PP_FileChooserMode_Dev</code> value that controls
-  * the behavior of the file chooser dialog.
-  * @param[in] accept_types A comma-separated list of MIME types and file
-  * extensions such as "audio/ *,text/plain,.html" (note there should be no
-  * space between the '/' and the '*', but one is added to avoid confusing C++
-  * comments). The dialog may restrict selectable files to the specified MIME
-  * types and file extensions. If a string in the comma-separated list begins
-  * with a period (.) then the string is interpreted as a file extension,
-  * otherwise it is interpreted as a MIME-type. An empty string or an undefined
-  * var may be given to indicate that all types should be accepted.
-  *
-  * @return A <code>PP_Resource</code> containing the file chooser if
-  * successful or 0 if it could not be created.
-  */
-  PP_Resource Create(
-      [in] PP_Instance instance,
-      [in] PP_FileChooserMode_Dev mode,
-      [in] PP_Var accept_types);
-
-  /**
-   * Determines if the provided resource is a file chooser.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a generic
-   * resource.
-   *
-   * @return A <code>PP_Bool</code> that is <code>PP_TRUE</code> if the given
-   * resource is a file chooser resource, otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool IsFileChooser(
-      [in] PP_Resource resource);
-
-  /**
-   * This function displays a previously created file chooser resource as a
-   * dialog box, prompting the user to choose a file or files. This function
-   * must be called in response to a user gesture, such as a mouse click or
-   * touch event. The callback is called with PP_OK on successful completion
-   * with a file (or files) selected, PP_ERROR_USERCANCEL if the user selected
-   * no file, or another error code from pp_errors.h on failure.
-   *
-   * <b>Subtle note:</b> This function will only work when the tab containing
-   * the plugin is visible. Show will fail if the tab is in the background.
-   * Since it's not normally possible to get input events while invisible, this
-   * is not an issue. But there is a race condition because events are
-   * processed asynchronously that authors should be aware of. If the user
-   * clicks and switches tabs very quickly, a plugin could believe the tab is
-   * visible while Chrome believes it is invisible and the Show() call will
-   * fail. This will not generally cause user confusion since the user will
-   * have switched tabs and will not want to see a file chooser from a
-   * different tab.
-   *
-   * @param[in] chooser The file chooser resource.
-   * @param[in] callback A <code>CompletionCallback</code> to be called after
-   * the user has closed the file chooser dialog.
-   *
-   * @return PP_OK_COMPLETIONPENDING if request to show the dialog was
-   * successful, another error code from pp_errors.h on failure.
-   */
-  [deprecate=0.6]
-  int32_t Show(
-      [in] PP_Resource chooser,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * After a successful completion callback call from Show, this method may be
-   * used to query the chosen files.  It should be called in a loop until it
-   * returns 0.  Their file system type will be PP_FileSystemType_External.  If
-   * the user chose no files or canceled the dialog, then this method will
-   * simply return 0 the first time it is called.
-   *
-   * @param[in] chooser The file chooser resource.
-   *
-   * @return A <code>PP_Resource</code> containing the next file chosen by the
-   * user, or 0 if there are no more files.
-   */
-  [deprecate=0.6]
-  PP_Resource GetNextChosenFile(
-      [in] PP_Resource chooser);
-
-  /**
-   * This function displays a previously created file chooser resource as a
-   * dialog box, prompting the user to choose a file or files. This function
-   * must be called in response to a user gesture, such as a mouse click or
-   * touch event. The callback is called with PP_OK on successful completion
-   * with a file (or files) selected, PP_ERROR_USERCANCEL if the user selected
-   * no file, or another error code from pp_errors.h on failure.
-   *
-   * <b>Subtle note:</b> This function will only work when the tab containing
-   * the plugin is visible. Show() will fail if the tab is in the background.
-   * Since it's not normally possible to get input events while invisible, this
-   * is not normally an issue. But there is a race condition because events are
-   * processed asynchronously. If the user clicks and switches tabs very
-   * quickly, a plugin could believe the tab is visible while Chrome believes
-   * it is invisible and the Show() call will fail. This will not generally
-   * cause user confusion since the user will have switched tabs and will not
-   * want to see a file chooser from a different tab.
-   *
-   * @param[in] chooser The file chooser resource.
-   *
-   * @param[in] output An output array which will receive PP_Resource(s)
-   * identifying the <code>PPB_FileRef</code> objects that the user selected on
-   * success.
-   *
-   * @param[in] callback A <code>CompletionCallback</code> to be called after
-   * the user has closed the file chooser dialog.
-   *
-   * @return PP_OK_COMPLETIONPENDING if request to show the dialog was
-   * successful, another error code from pp_errors.h on failure.
-   */
-  [version=0.6]
-  int32_t Show([in] PP_Resource chooser,
-               [in] PP_ArrayOutput output,
-               [in] PP_CompletionCallback callback);
-};
-
diff --git a/api/dev/ppb_ime_input_event_dev.idl b/api/dev/ppb_ime_input_event_dev.idl
deleted file mode 100644
index ddc0d55..0000000
--- a/api/dev/ppb_ime_input_event_dev.idl
+++ /dev/null
@@ -1,143 +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.
- */
-
-/**
- * This file defines the <code>PPB_IMEInputEvent_Dev</code> interface.
- */
-
-label Chrome {
-  M16 = 0.1,
-  M21 = 0.2
-};
-
-[macro="PPB_IME_INPUT_EVENT_DEV_INTERFACE"]
-interface PPB_IMEInputEvent_Dev {
-  /**
-   * Create() creates an IME input event with the given parameters. Normally
-   * you will get an IME event passed through the <code>HandleInputEvent</code>
-   * and will not need to create them, but some applications may want to create
-   * their own for internal use.
-   *
-   * @param[in] instance The instance for which this event occurred.
-   *
-   * @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-   * input event. The type must be one of the IME event types.
-   *
-   * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-   * when the event occurred.
-   *
-   * @param[in] text The string returned by <code>GetText</code>.
-   *
-   * @param[in] segment_number The number returned by
-   * <code>GetSegmentNumber</code>.
-   *
-   * @param[in] segment_offsets The array of numbers returned by
-   * <code>GetSegmentOffset</code>. If <code>segment_number</code> is zero,
-   * the number of elements of the array should be zero. If
-   * <code>segment_number</code> is non-zero, the length of the array must be
-   * <code>segment_number</code> + 1.
-   *
-   * @param[in] target_segment The number returned by
-   * <code>GetTargetSegment</code>.
-   *
-   * @param[in] selection_start The start index returned by
-   * <code>GetSelection</code>.
-   *
-   * @param[in] selection_end The end index returned by
-   * <code>GetSelection</code>.
-   *
-   * @return A <code>PP_Resource</code> containing the new IME input event.
-   */
-  [version=0.2]
-  PP_Resource Create([in] PP_Instance instance,
-                     [in] PP_InputEvent_Type type,
-                     [in] PP_TimeTicks time_stamp,
-                     [in] PP_Var text,
-                     [in] uint32_t segment_number,
-                     [in] uint32_t[] segment_offsets,
-                     [in] int32_t target_segment,
-                     [in] uint32_t selection_start,
-                     [in] uint32_t selection_end);
-
-  /**
-   * IsIMEInputEvent() determines if a resource is an IME event.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an event.
-   *
-   * @return <code>PP_TRUE</code> if the given resource is a valid input event.
-   */
-  PP_Bool IsIMEInputEvent([in] PP_Resource resource);
-
-  /**
-   * GetText() returns the composition text as a UTF-8 string for the given IME
-   * event.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @return A string var representing the composition text. For non-IME input
-   * events the return value will be an undefined var.
-   */
-  PP_Var GetText([in] PP_Resource ime_event);
-
-  /**
-   * GetSegmentNumber() returns the number of segments in the composition text.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @return The number of segments. For events other than COMPOSITION_UPDATE,
-   * returns 0.
-   */
-  uint32_t GetSegmentNumber([in] PP_Resource ime_event);
-
-  /**
-   * GetSegmentOffset() returns the position of the index-th segmentation point
-   * in the composition text. The position is given by a byte-offset (not a
-   * character-offset) of the string returned by GetText(). It always satisfies
-   * 0=GetSegmentOffset(0) < ... < GetSegmentOffset(i) < GetSegmentOffset(i+1)
-   * < ... < GetSegmentOffset(GetSegmentNumber())=(byte-length of GetText()).
-   * Note that [GetSegmentOffset(i), GetSegmentOffset(i+1)) represents the range
-   * of the i-th segment, and hence GetSegmentNumber() can be a valid argument
-   * to this function instead of an off-by-1 error.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @param[in] index An integer indicating a segment.
-   *
-   * @return The byte-offset of the segmentation point. If the event is not
-   * COMPOSITION_UPDATE or index is out of range, returns 0.
-   */
-  uint32_t GetSegmentOffset([in] PP_Resource ime_event,
-                            [in] uint32_t index);
-
-  /**
-   * GetTargetSegment() returns the index of the current target segment of
-   * composition.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @return An integer indicating the index of the target segment. When there
-   * is no active target segment, or the event is not COMPOSITION_UPDATE,
-   * returns -1.
-   */
-  int32_t GetTargetSegment([in] PP_Resource ime_event);
-
-  /**
-   * GetSelection() returns the range selected by caret in the composition text.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @param[out] start The start position of the current selection.
-   *
-   * @param[out] end The end position of the current selection.
-   */
-  void GetSelection([in] PP_Resource ime_event,
-                    [out] uint32_t start,
-                    [out] uint32_t end);
-};
diff --git a/api/dev/ppb_memory_dev.idl b/api/dev/ppb_memory_dev.idl
deleted file mode 100644
index 71d148e..0000000
--- a/api/dev/ppb_memory_dev.idl
+++ /dev/null
@@ -1,37 +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.
- */
-
-/**
- * This file defines the <code>PPB_Memory interface</code> for functions
- * related to memory management.
- */
-
-label Chrome {
-  M14 = 0.1
-};
-
-/**
- * The PPB_Memory_Dev interface contains pointers to functions related to memory
- * management.
- *
- */
-interface PPB_Memory_Dev {
-  /**
-   * MemAlloc is a pointer to a function that allocate memory.
-   *
-   * @param[in] num_bytes A number of bytes to allocate.
-   * @return A pointer to the memory if successful, NULL If the
-   * allocation fails.
-   */
-  mem_t MemAlloc([in] uint32_t num_bytes);
-
-  /**
-   * MemFree is a pointer to a function that deallocates memory.
-   *
-   * @param[in] ptr A pointer to the memory to deallocate. It is safe to
-   * pass NULL to this function.
-   */
-  void MemFree([inout] mem_t ptr);
-};
diff --git a/api/dev/ppb_opengles2ext_dev.idl b/api/dev/ppb_opengles2ext_dev.idl
deleted file mode 100644
index 34d76e8..0000000
--- a/api/dev/ppb_opengles2ext_dev.idl
+++ /dev/null
@@ -1,27 +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.
-
-// This file is auto-generated from
-// gpu/command_buffer/build_gles2_cmd_buffer.py
-// It's formatted by clang-format using chromium coding style:
-//    clang-format -i -style=chromium filename
-// DO NOT EDIT!
-
-label Chrome {
-  M39 = 1.0
-};
-
-#inline c
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/ppb_opengles2.h"
-
-#endinl
-
-[macro="PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE", force_struct_namespace]
-interface PPB_OpenGLES2DrawBuffers_Dev {
-  void DrawBuffersEXT([in] PP_Resource context,
-                      [in] GLsizei count,
-                      [in] GLenum_ptr_t bufs);
-};
-
diff --git a/api/dev/ppb_printing_dev.idl b/api/dev/ppb_printing_dev.idl
deleted file mode 100644
index 948ba18..0000000
--- a/api/dev/ppb_printing_dev.idl
+++ /dev/null
@@ -1,44 +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.
- */
-
-/**
- * Definition of the PPB_Printing interface.
- */
-
-[generate_thunk]
-
-// Note: This version should always match the PPP_Printing_Dev interface.
-label Chrome {
-  M23 = 0.7
-};
-
-interface PPB_Printing_Dev {
-  /** Create a resource for accessing printing functionality.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   *
-   * @return A <code>PP_Resource</code> containing the printing resource if
-   * successful or 0 if it could not be created.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-
-  /**
-   * Outputs the default print settings for the default printer into
-   * <code>print_settings</code>. The callback is called with
-   * <code>PP_OK</code> when the settings have been retrieved successfully.
-   *
-   * @param[in] resource The printing resource.
-   *
-   * @param[in] callback A <code>CompletionCallback</code> to be called when
-   * <code>print_settings</code> have been retrieved.
-   *
-   * @return PP_OK_COMPLETIONPENDING if request for the default print settings
-   * was successful, another error code from pp_errors.h on failure.
-   */
-  int32_t GetDefaultPrintSettings([in] PP_Resource resource,
-                                  [out] PP_PrintSettings_Dev print_settings,
-                                  [in] PP_CompletionCallback callback);
-};
diff --git a/api/dev/ppb_text_input_dev.idl b/api/dev/ppb_text_input_dev.idl
deleted file mode 100644
index e3a0df9..0000000
--- a/api/dev/ppb_text_input_dev.idl
+++ /dev/null
@@ -1,109 +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.
- */
-
-/**
- * This file defines the <code>PPB_TextInput_Dev</code> interface.
- */
-
-label Chrome {
-  M16 = 0.1,
-  M19 = 0.2
-};
-
-/**
- * PP_TextInput_Type is used to indicate the status of a plugin in regard to
- * text input.
- */
-[assert_size(4)]
-enum PP_TextInput_Type_Dev {
-  /**
-   * Input caret is not in an editable mode, no input method shall be used.
-   */
-  PP_TEXTINPUT_TYPE_DEV_NONE = 0,
-  /**
-   * Input caret is in a normal editable mode, any input method can be used.
-   */
-  PP_TEXTINPUT_TYPE_DEV_TEXT = 1,
-  /**
-   * Input caret is in a password box, an input method may be used only if
-   * it's suitable for password input.
-   */
-  PP_TEXTINPUT_TYPE_DEV_PASSWORD = 2,
-  PP_TEXTINPUT_TYPE_DEV_SEARCH = 3,
-  PP_TEXTINPUT_TYPE_DEV_EMAIL = 4,
-  PP_TEXTINPUT_TYPE_DEV_NUMBER = 5,
-  PP_TEXTINPUT_TYPE_DEV_TELEPHONE = 6,
-  PP_TEXTINPUT_TYPE_DEV_URL = 7
-};
-
-/**
- * <code>PPB_TextInput_Dev</code> provides a set of functions for giving hints
- * to the browser about the text input status of plugins, and functions for
- * controlling input method editors (IMEs).
- */
-interface PPB_TextInput_Dev {
-  /**
-   * Informs the browser about the current text input mode of the plugin.
-   * Typical use of this information in the browser is to properly
-   * display/suppress tools for supporting text inputs (such as virtual
-   * keyboards in touch screen based devices, or input method editors often
-   * used for composing East Asian characters).
-   */
-  void SetTextInputType([in] PP_Instance instance,
-                        [in] PP_TextInput_Type_Dev type);
-
-  /**
-   * Informs the browser about the coordinates of the text input caret and the
-   * bounding box of the text input area. Typical use of this information in
-   * the browser is to layout IME windows etc.
-   */
-  void UpdateCaretPosition([in] PP_Instance instance,
-                           [in] PP_Rect caret,
-                           [in] PP_Rect bounding_box);
-
-  /**
-   * Cancels the current composition in IME.
-   */
-  void CancelCompositionText([in] PP_Instance instance);
-
-  /**
-   * In response to the <code>PPP_TextInput_Dev::RequestSurroundingText</code>
-   * call, informs the browser about the current text selection and surrounding
-   * text. <code>text</code> is a UTF-8 string that contains the current range
-   * of text selection in the plugin. <code>caret</code> is the byte-index of
-   * the caret position within <code>text</code>. <code>anchor</code> is the
-   * byte-index of the anchor position (i.e., if a range of text is selected,
-   * it is the other edge of selection different from <code>caret</code>. If
-   * there are no selection, <code>anchor</code> is equal to <code>caret</code>.
-   *
-   * Typical use of this information in the browser is to enable "reconversion"
-   * features of IME that puts back the already committed text into the
-   * pre-commit composition state. Another use is to improve the precision
-   * of suggestion of IME by taking the context into account (e.g., if the caret
-   * looks to be on the beginning of a sentence, suggest capital letters in a
-   * virtual keyboard).
-   *
-   * When the focus is not on text, call this function setting <code>text</code>
-   * to an empty string and <code>caret</code> and <code>anchor</code> to zero.
-   * Also, the plugin should send the empty text when it does not want to reveal
-   * the selection to IME (e.g., when the surrounding text is containing
-   * password text).
-   */
-  [version=0.2]
-  void UpdateSurroundingText([in] PP_Instance instance,
-                             [in] str_t text,
-                             [in] uint32_t caret,
-                             [in] uint32_t anchor);
-
-  /**
-   * Informs the browser when a range of text selection is changed in a plugin.
-   * When the browser needs to know the content of the updated selection, it
-   * pings back by <code>PPP_TextInput_Dev::RequestSurroundingText</code>. The
-   * plugin then should send the information with
-   * <code>UpdateSurroundingText</code>.
-   */
-  [version=0.2]
-  void SelectionChanged([in] PP_Instance instance);
-};
diff --git a/api/dev/ppb_trace_event_dev.idl b/api/dev/ppb_trace_event_dev.idl
deleted file mode 100644
index 538d545..0000000
--- a/api/dev/ppb_trace_event_dev.idl
+++ /dev/null
@@ -1,84 +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.
- */
-
-/**
- * This file defines the <code>PPB_Trace_Event</code> interface. It is meant
- * to be used in plugins as the API that trace macros from trace_event.h use.
- */
-
-label Chrome {
-  M25 = 0.1,
-  M29 = 0.2
-};
-
-/**
- * A trace event timestamp.
- */
-typedef int64_t PP_TraceEventTime;
-
-interface PPB_Trace_Event_Dev {
-  /**
-   * Gets a pointer to a character for identifying a category name in the
-   * tracing system as well as for being able to early exit in client-side
-   * tracing code.
-   *
-   * NB: This mem_t return value should technically be const, but return values
-   * for Pepper IDL of mem_t type are not const.  The same is true for the arg
-   * |category_enabled| for AddTraceEvent.
-   */
-  mem_t GetCategoryEnabled([in] cstr_t category_name);
-
-  /**
-   * Adds a trace event to the platform tracing system. This function call is
-   * usually the result of a TRACE_* macro from trace_event.h when tracing and
-   * the category of the particular trace are enabled. It is not advisable to
-   * call this function on its own; it is really only meant to be used by the
-   * trace macros.
-   */
-  void AddTraceEvent(
-      [in] int8_t phase,
-      [in] mem_t category_enabled,
-      [in] cstr_t name,
-      [in] uint64_t id,
-      [in] uint32_t num_args,
-      [in, size_as=num_args] str_t[] arg_names,
-      [in, size_as=num_args] uint8_t[] arg_types,
-      [in, size_as=num_args] uint64_t[] arg_values,
-      [in] uint8_t flags);
-
-  /**
-   * Version of the above interface that allows specifying a custom thread id
-   * and timestamp. This is useful for when tracing data cannot be registered
-   * in real time. For example, this could be used by storing timestamps
-   * internally and then registering the events retroactively.
-   */
-  [version=0.2]
-  void AddTraceEventWithThreadIdAndTimestamp(
-      [in] int8_t phase,
-      [in] mem_t category_enabled,
-      [in] cstr_t name,
-      [in] uint64_t id,
-      [in] int32_t thread_id,
-      [in] PP_TraceEventTime timestamp,
-      [in] uint32_t num_args,
-      [in, size_as=num_args] str_t[] arg_names,
-      [in, size_as=num_args] uint8_t[] arg_types,
-      [in, size_as=num_args] uint64_t[] arg_values,
-      [in] uint8_t flags);
-
-  /**
-   * Get the current clock value. Since this uses the same function as the trace
-   * events use internally, it can be used to create events with explicit time
-   * stamps.
-   */
-  [version=0.2]
-  PP_TraceEventTime Now();
-
-  /**
-   * Sets the thread name of the calling thread in the tracing system so it will
-   * show up properly in chrome://tracing.
-   */
-  void SetThreadName([in] cstr_t thread_name);
-};
diff --git a/api/dev/ppb_url_util_dev.idl b/api/dev/ppb_url_util_dev.idl
deleted file mode 100644
index 4f35564..0000000
--- a/api/dev/ppb_url_util_dev.idl
+++ /dev/null
@@ -1,162 +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.
- */
-
-/**
- * This file defines the <code>PPB_URLUtil_Dev</code> interface.
- */
-
-label Chrome {
-  M17 = 0.6,
-  M31 = 0.7
-};
-
-/*
- * A component specifies the range of the part of the URL. The begin specifies
- * the index into the string of the first character of that component. The len
- * specifies the length of that component.
- *
- * This range does not include any special delimiter for that component, so
- * the scheme doesn't include the trailing colon, the username and password
- * don't include the @ and :, the port doesn't include the colon, the query
- * doesn't include the ?, and the ref doesn't include the #.
- *
- * The exception is that the path *does* include the first /, since that's an
- * integral part of the path.
- *
- * If the component is not present at all, begin will be 0 and len will be -1.
- * If the component is present but empty, the length will be 0 instead. Example:
- *   http://foo/search    -> query = (0, -1)
- *   http://foo/search?   -> query = (18, 0)
- */
-[assert_size(8)]
-struct PP_URLComponent_Dev {
-  int32_t begin;
-  int32_t len;
-};
-
-[assert_size(64)]
-struct PP_URLComponents_Dev {
-  PP_URLComponent_Dev scheme;
-  PP_URLComponent_Dev username;
-  PP_URLComponent_Dev password;
-  PP_URLComponent_Dev host;
-  PP_URLComponent_Dev port;
-  PP_URLComponent_Dev path;
-  PP_URLComponent_Dev query;
-  PP_URLComponent_Dev ref;
-};
-
-/*
- * URL encoding: URLs are supplied to this interface as NULL-terminated 8-bit
- * strings. You can pass non-ASCII characters which will be interpreted as
- * UTF-8. Canonicalized URL strings returned by these functions will be ASCII
- * except for the reference fragment (stuff after the '#') which will be
- * encoded as UTF-8.
- */
-interface PPB_URLUtil_Dev {
-  /*
-   * Canonicalizes the given URL string according to the rules of the host
-   * browser. If the URL is invalid or the var is not a string, this will
-   * return a Null var and the components structure will be unchanged.
-   *
-   * The components pointer, if non-NULL and the canonicalized URL is valid,
-   * will identify the components of the resulting URL. Components may be NULL
-   * to specify that no component information is necessary.
-   */
-  PP_Var Canonicalize([in] PP_Var url, [out] PP_URLComponents_Dev components);
-
-  /*
-   *  Resolves the given URL relative to the given base URL. The resulting URL
-   *  is returned as a string. If the resolution is invalid or either of the
-   *  inputs are not strings, a Null var will be returned. The resulting URL
-   *  will also be canonicalized according to the rules of the browser.
-   *
-   *  Note that the "relative" URL may in fact be absolute, in which case it
-   *  will be returned. This function is identical to resolving the full URL
-   *  for an <a href="..."> on a web page. Attempting to resolve a relative URL
-   *  on a base URL that doesn't support this (e.g. "data") will fail and will
-   *  return a Null var, unless the relative URL is itself absolute.
-   *
-   *  The components pointer, if non-NULL and the canonicalized URL is valid,
-   *  will identify the components of the resulting URL. Components may be NULL
-   *  to specify that no component information is necessary.
-   */
-  PP_Var ResolveRelativeToURL(
-      [in] PP_Var base_url,
-      [in] PP_Var relative_string,
-      [out] PP_URLComponents_Dev components);
-
-  /*
-   *  Identical to ResolveRelativeToURL except that the base URL is the base
-   *  URL of the document containing the given plugin instance.
-   *
-   *  Danger: This will be identical to resolving a relative URL on the page,
-   *  and might be overridden by the page to something different than its actual
-   *  URL via the <base> tag. Therefore, resolving a relative URL of "" won't
-   *  necessarily give you the URL of the page!
-   */
-  PP_Var ResolveRelativeToDocument(
-      [in] PP_Instance instance,
-      [in] PP_Var relative_string,
-      [out] PP_URLComponents_Dev components);
-
-  /*
-   * Checks whether the given two URLs are in the same security origin. Returns
-   * FALSE if either of the URLs are invalid.
-   */
-  PP_Bool IsSameSecurityOrigin([in] PP_Var url_a, [in] PP_Var url_b);
-
-  /*
-   * Checks whether the document hosting the given plugin instance can access
-   * the given URL according to the same origin policy of the browser. Returns
-   * PP_FALSE if the instance or the URL is invalid.
-   */
-  PP_Bool DocumentCanRequest([in] PP_Instance instance, [in] PP_Var url);
-
-  /*
-   * Checks whether the document containing the |active| plugin instance can
-   * access the document containing the |target| plugin instance according to
-   * the security policy of the browser. This includes the same origin policy
-   * and any cross-origin capabilities enabled by the document. If either of
-   * the plugin instances are invalid, returns PP_FALSE.
-   */
-  PP_Bool DocumentCanAccessDocument([in] PP_Instance active,
-                                    [in] PP_Instance target);
-
-  /*
-   * Returns the URL for the document. This is a safe way to retrieve
-   * window.location.href.
-   * The components pointer, if non-NULL and the canonicalized URL is valid,
-   * will identify the components of the resulting URL. Components may be NULL
-   * to specify that no component information is necessary.
-   */
-  PP_Var GetDocumentURL([in] PP_Instance instance,
-                        [out] PP_URLComponents_Dev components);
-
-  /*
-   * Returns the Source URL for the plugin. This returns the URL that would be
-   * streamed to the plugin if it were a NPAPI plugin. This is usually the src
-   * attribute on the <embed> element, but the rules are obscure and different
-   * based on whether the plugin is loaded from an <embed> element or an
-   * <object> element.
-   * The components pointer, if non-NULL and the canonicalized URL is valid,
-   * will identify the components of the resulting URL. Components may be NULL
-   * to specify that no component information is necessary.
-   */
-  PP_Var GetPluginInstanceURL([in] PP_Instance instance,
-                              [out] PP_URLComponents_Dev components);
-
-  /*
-   * Returns the Referrer URL of the HTTP request that loaded the plugin. This
-   * is the value of the 'Referer' header of the request. An undefined value
-   * means the 'Referer' header was absent.
-   * The components pointer, if non-NULL and the canonicalized URL is valid,
-   * will identify the components of the resulting URL. Components may be NULL
-   * to specify that no component information is necessary.
-   */
-  [version=0.7]
-  PP_Var GetPluginReferrerURL([in] PP_Instance instance,
-                              [out] PP_URLComponents_Dev components);
-};
diff --git a/api/dev/ppb_video_capture_dev.idl b/api/dev/ppb_video_capture_dev.idl
deleted file mode 100644
index 51cc3e1..0000000
--- a/api/dev/ppb_video_capture_dev.idl
+++ /dev/null
@@ -1,158 +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.
- */
-
-/**
- * This file defines the <code>PPB_VideoCapture_Dev</code> interface.
- */
-label Chrome {
-  M25 = 0.3
-};
-
-/**
- * Video capture interface. It goes hand-in-hand with PPP_VideoCapture_Dev.
- *
- * Theory of operation:
- * 1- Create a VideoCapture resource using Create.
- * 2- Find available video capture devices using EnumerateDevices.
- * 3- Open a video capture device. In addition to a device reference (0 can be
- * used to indicate the default device), you pass in the requested info
- * (resolution, frame rate), as well as suggest a number of buffers you will
- * need.
- * 4- Start the capture using StartCapture.
- * 5- Receive the OnDeviceInfo callback, in PPP_VideoCapture_Dev, which will
- * give you the actual capture info (the requested one is not guaranteed), as
- * well as an array of buffers allocated by the browser.
- * 6- On every frame captured by the browser, OnBufferReady (in
- * PPP_VideoCapture_Dev) is called with the index of the buffer from the array
- * containing the new frame. The buffer is now "owned" by the plugin, and the
- * browser won't reuse it until ReuseBuffer is called.
- * 7- When the plugin is done with the buffer, call ReuseBuffer.
- * 8- Stop the capture using StopCapture.
- * 9- Close the device.
- *
- * The browser may change the resolution based on the constraints of the system,
- * in which case OnDeviceInfo will be called again, with new buffers.
- *
- * The buffers contain the pixel data for a frame. The format is planar YUV
- * 4:2:0, one byte per pixel, tightly packed (width x height Y values, then
- * width/2 x height/2 U values, then width/2 x height/2 V values).
- */
-interface PPB_VideoCapture_Dev {
-  /**
-   * Creates a new VideoCapture.
-   */
-  PP_Resource Create(
-      [in] PP_Instance instance);
-
-  /**
-   * Returns PP_TRUE if the given resource is a VideoCapture.
-   */
-  PP_Bool IsVideoCapture(
-      [in] PP_Resource video_capture);
-
-  /**
-   * Enumerates video capture devices.
-   *
-   * @param[in] video_capture A <code>PP_Resource</code> corresponding to a
-   * video capture resource.
-   * @param[in] output An output array which will receive
-   * <code>PPB_DeviceRef_Dev</code> resources on success. Please note that the
-   * ref count of those resources has already been increased by 1 for the
-   * caller.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * completion.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  [version=0.3]
-  int32_t EnumerateDevices(
-      [in] PP_Resource video_capture,
-      [in] PP_ArrayOutput output,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Requests device change notifications.
-   *
-   * @param[in] video_capture A <code>PP_Resource</code> corresponding to a
-   * video capture resource.
-   * @param[in] callback The callback to receive notifications. If not NULL, it
-   * will be called once for the currently available devices, and then every
-   * time the list of available devices changes. All calls will happen on the
-   * same thread as the one on which MonitorDeviceChange() is called. It will
-   * receive notifications until <code>video_capture</code> is destroyed or
-   * <code>MonitorDeviceChange()</code> is called to set a new callback for
-   * <code>video_capture</code>. You can pass NULL to cancel sending
-   * notifications.
-   * @param[inout] user_data An opaque pointer that will be passed to
-   * <code>callback</code>.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  [version=0.3]
-  int32_t MonitorDeviceChange(
-      [in] PP_Resource video_capture,
-      [in] PP_MonitorDeviceChangeCallback callback,
-      [inout] mem_t user_data);
-
-  /**
-   * Opens a video capture device. |device_ref| identifies a video capture
-   * device. It could be one of the resource in the array returned by
-   * |EnumerateDevices()|, or 0 which means the default device.
-   * |requested_info| is a pointer to a structure containing the requested
-   * resolution and frame rate. |buffer_count| is the number of buffers
-   * requested by the plugin. Note: it is only used as advisory, the browser may
-   * allocate more or fewer based on available resources. How many buffers
-   * depends on usage. At least 2 to make sure latency doesn't cause lost
-   * frames. If the plugin expects to hold on to more than one buffer at a time
-   * (e.g. to do multi-frame processing, like video encoding), it should request
-   * that many more.
-   */
-  int32_t Open(
-      [in] PP_Resource video_capture,
-      [in] PP_Resource device_ref,
-      [in] PP_VideoCaptureDeviceInfo_Dev requested_info,
-      [in] uint32_t buffer_count,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Starts the capture.
-   *
-   * Returns PP_ERROR_FAILED if called when the capture was already started, or
-   * PP_OK on success.
-   */
-  int32_t StartCapture(
-      [in] PP_Resource video_capture);
-
-  /**
-   * Allows the browser to reuse a buffer that was previously sent by
-   * PPP_VideoCapture_Dev.OnBufferReady. |buffer| is the index of the buffer in
-   * the array returned by PPP_VideoCapture_Dev.OnDeviceInfo.
-   *
-   * Returns PP_ERROR_BADARGUMENT if buffer is out of range (greater than the
-   * number of buffers returned by PPP_VideoCapture_Dev.OnDeviceInfo), or if it
-   * is not currently owned by the plugin. Returns PP_OK otherwise.
-   */
-  int32_t ReuseBuffer(
-      [in] PP_Resource video_capture,
-      [in] uint32_t buffer);
-
-  /**
-   * Stops the capture.
-   *
-   * Returns PP_ERROR_FAILED if the capture wasn't already started, or PP_OK on
-   * success.
-   */
-  int32_t StopCapture(
-      [in] PP_Resource video_capture);
-
-  /**
-   * Closes the video capture device, and stops capturing if necessary. It is
-   * not valid to call |Open()| again after a call to this method.
-   * If a video capture resource is destroyed while a device is still open, then
-   * it will be implicitly closed, so you are not required to call this method.
-   */
-  void Close(
-      [in] PP_Resource video_capture);
-};
diff --git a/api/dev/ppb_video_decoder_dev.idl b/api/dev/ppb_video_decoder_dev.idl
deleted file mode 100644
index e0202b7..0000000
--- a/api/dev/ppb_video_decoder_dev.idl
+++ /dev/null
@@ -1,155 +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.
- */
-
-/**
- * This file defines the <code>PPB_VideoDecoder_Dev</code> interface.
- */
-label Chrome {
-  M14 = 0.16
-};
-
-/**
- * Video decoder interface.
- *
- * Typical usage:
- * - Use Create() to create & configure a new PPB_VideoDecoder_Dev resource.
- * - Call Decode() to decode some video data.
- * - Receive ProvidePictureBuffers callback
- *   - Supply the decoder with textures using AssignPictureBuffers.
- * - Receive PictureReady callbacks
- *   - Hand the textures back to the decoder using ReusePictureBuffer.
- * - To signal EOS to the decoder: call Flush() and wait for NotifyFlushDone
- *   callback.
- * - To reset the decoder (e.g. to implement Seek): call Reset() and wait for
- *   NotifyResetDone callback.
- * - To tear down the decoder call Destroy().
- *
- * See PPP_VideoDecoder_Dev for the notifications the decoder may send the
- * plugin.
- */
-interface PPB_VideoDecoder_Dev {
-  /**
-   * Creates & initializes a video decoder.
-   *
-   * Parameters:
-   *   |instance| pointer to the plugin instance.
-   *   |context| a PPB_Graphics3D resource in which decoding will happen.
-   *   |profile| the video stream's format profile.
-   *
-   * The created decoder is returned as PP_Resource. 0 means failure.
-   */
-  PP_Resource Create(
-      [in] PP_Instance instance,
-      [in] PP_Resource context,
-      [in] PP_VideoDecoder_Profile profile);
-
-  /**
-   * Tests whether |resource| is a video decoder created through Create
-   * function of this interface.
-   *
-   * Parameters:
-   *   |resource| is handle to resource to test.
-   *
-   * Returns true if is a video decoder, false otherwise.
-   */
-  PP_Bool IsVideoDecoder(
-      [in] PP_Resource resource);
-
-  /**
-   * Dispatches bitstream buffer to the decoder.
-   *
-   * Parameters:
-   *   |video_decoder| is the previously created handle to the decoder resource.
-   *   |bitstream_buffer| is the bitstream buffer that contains at most one
-   *   input frame.
-   *   |callback| will be called when |bitstream_buffer| has been processed by
-   *   the decoder.
-   *
-   * Returns an error code from pp_errors.h.
-   */
-  int32_t Decode(
-      [in] PP_Resource video_decoder,
-      [in] PP_VideoBitstreamBuffer_Dev bitstream_buffer,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Provides the decoder with texture-backed picture buffers for video
-   * decoding.
-   *
-   * This function should be called when the plugin has its
-   * ProvidePictureBuffers method called.  The decoder will stall until it has
-   * received all the buffers it's asked for.
-   *
-   * Parameters:
-   *   |video_decoder| is the previously created handle to the decoder resource.
-   *   |no_of_buffers| how many buffers are behind picture buffer pointer.
-   *   |buffers| contains the reference to the picture buffer that was
-   *   allocated.
-   */
-  void AssignPictureBuffers(
-      [in] PP_Resource video_decoder,
-      [in] uint32_t no_of_buffers,
-      [in, size_as=no_of_buffers] PP_PictureBuffer_Dev[] buffers);
-
-  /**
-   * Tells the decoder to reuse the given picture buffer. Typical use of this
-   * function is to call from PictureReady callback to recycle picture buffer
-   * back to the decoder after blitting the image so that decoder can use the
-   * image for output again.
-   *
-   * Parameters:
-   *   |video_decoder| is the previously created handle to the decoder resource.
-   *   |picture_buffer_id| contains the id of the picture buffer that was
-   *   processed.
-   */
-  void ReusePictureBuffer(
-      [in] PP_Resource video_decoder,
-      [in] int32_t picture_buffer_id);
-
-  /**
-   * Flush input and output buffers in the decoder.  Any pending inputs are
-   * decoded and pending outputs are delivered to the plugin.  Once done
-   * flushing, the decoder will call |callback|.
-   *
-   * Parameters:
-   *   |video_decoder| is the previously created handle to the decoder resource.
-   *   |callback| is one-time callback that will be called once the flushing
-   *   request has been completed.
-   *
-   * Returns an error code from pp_errors.h.
-   */
-  int32_t Flush(
-      [in] PP_Resource video_decoder,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Reset the decoder as quickly as possible.  Pending inputs and outputs are
-   * dropped and the decoder is put back into a state ready to receive further
-   * Decode() calls.  |callback| will be called when the reset is done.
-   *
-   * Parameters:
-   *   |video_decoder| is the previously created handle to the decoder resource.
-   *   |callback| is one-time callback that will be called once the reset
-   *   request has been completed.
-   *
-   * Returns an error code from pp_errors.h.
-   */
-  int32_t Reset(
-      [in] PP_Resource video_decoder,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Tear down the decoder as quickly as possible.  Pending inputs and outputs
-   * are dropped and the decoder frees all of its resources.  Although resources
-   * may be freed asynchronously, after this method returns no more callbacks
-   * will be made on the client.  Any resources held by the client at that point
-   * may be freed.
-   *
-   * Parameters:
-   *   |video_decoder| is the previously created handle to the decoder resource.
-   */
-  void Destroy(
-      [in] PP_Resource video_decoder);
-};
diff --git a/api/dev/ppb_view_dev.idl b/api/dev/ppb_view_dev.idl
deleted file mode 100644
index 26595f4..0000000
--- a/api/dev/ppb_view_dev.idl
+++ /dev/null
@@ -1,46 +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.
- */
-
-/* This file contains the <code>PPB_View_Dev</code> interface. */
-
-[generate_thunk]
-
-label Chrome {
-  M22 = 0.1
-};
-
-/* PPB_View_Dev interface */
-interface PPB_View_Dev {
-  /**
-   * GetDeviceScale returns the scale factor between device pixels and DIPs
-   * (also known as logical pixels or UI pixels on some platforms). This allows
-   * the developer to render their contents at device resolution, even as
-   * coordinates / sizes are given in DIPs through the API.
-   *
-   * Note that the coordinate system for Pepper APIs is DIPs. Also note that
-   * one DIP might not equal one CSS pixel - when page scale/zoom is in effect.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return A <code>float</code> value representing the number of device pixels
-   * per DIP. If the resource is invalid, the value will be 0.0.
-   */
-  float_t GetDeviceScale([in] PP_Resource resource);
-
-  /**
-   * GetCSSScale returns the scale factor between DIPs and CSS pixels. This
-   * allows proper scaling between DIPs - as sent via the Pepper API - and CSS
-   * pixel coordinates used for Web content.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return css_scale A <code>float</code> value representing the number of
-   * DIPs per CSS pixel. If the resource is invalid, the value will be 0.0.
-   */
-  float_t GetCSSScale([in] PP_Resource resource);
-};
-
diff --git a/api/dev/ppp_network_state_dev.idl b/api/dev/ppp_network_state_dev.idl
deleted file mode 100644
index 30c51e0..0000000
--- a/api/dev/ppp_network_state_dev.idl
+++ /dev/null
@@ -1,25 +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.
- */
-
-/**
- * This file defines the PPP_NetworkState interface.
- */
-
-label Chrome {
-  M14 = 0.1
-};
-
-[macro="PPP_NETWORK_STATE_DEV_INTERFACE"]
-interface PPP_NetworkState_Dev {
-  /**
-   * Notification that the online state has changed for the user's network.
-   * This will change as a result of a network cable being plugged or
-   * unplugged, WiFi connections going up and down, or other events.
-   *
-   * Note that being "online" isn't a guarantee that any particular connections
-   * will succeed.
-   */
-  void SetOnLine([in] PP_Bool is_online);
-};
diff --git a/api/dev/ppp_printing_dev.idl b/api/dev/ppp_printing_dev.idl
deleted file mode 100644
index a4a0272..0000000
--- a/api/dev/ppp_printing_dev.idl
+++ /dev/null
@@ -1,60 +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.
- */
-
-/**
- * Definition of the PPP_Printing interface.
- */
-
-// Note: This version should always match the PPB_Printing_Dev interface.
-label Chrome {
-  M21 = 0.6
-};
-
-/**
- * Specifies a contiguous range of page numbers to be printed.
- * The page numbers use a zero-based index.
- */
-[assert_size(8)]
-struct PP_PrintPageNumberRange_Dev {
-  uint32_t first_page_number;
-  uint32_t last_page_number;
-};
-
-interface PPP_Printing_Dev {
-  /**
-   *  Returns a bit field representing the supported print output formats.  For
-   *  example, if only PDF and PostScript are supported,
-   *  QuerySupportedFormats returns a value equivalent to:
-   *  (PP_PRINTOUTPUTFORMAT_PDF | PP_PRINTOUTPUTFORMAT_POSTSCRIPT)
-   */
-  uint32_t QuerySupportedFormats([in] PP_Instance instance);
-
-  /**
-   * Begins a print session with the given print settings. Calls to PrintPages
-   * can only be made after a successful call to Begin. Returns the number of
-   * pages required for the print output at the given page size (0 indicates
-   * a failure).
-   */
-  int32_t Begin([in] PP_Instance instance,
-                [in] PP_PrintSettings_Dev print_settings);
-
-  /**
-   * Prints the specified pages using the format specified in Begin.
-   * Returns a PPB_Buffer resource that represents the printed output. Returns
-   * 0 on failure.
-   */
-  PP_Resource PrintPages([in] PP_Instance instance,
-                         [in] PP_PrintPageNumberRange_Dev page_ranges,
-                         [in] uint32_t page_range_count);
-
-  /** Ends the print session. Further calls to PrintPages will fail. */
-  void End([in] PP_Instance instance);
-
-  /**
-   *  Returns true if the current content should be printed into the full page
-   *  and not scaled down to fit within the printer's printable area.
-   */
-  PP_Bool IsScalingDisabled([in] PP_Instance instance);
-};
diff --git a/api/dev/ppp_text_input_dev.idl b/api/dev/ppp_text_input_dev.idl
deleted file mode 100644
index f5f02f5..0000000
--- a/api/dev/ppp_text_input_dev.idl
+++ /dev/null
@@ -1,27 +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.
- */
-
-/**
- * This file defines the <code>PPP_TextInput_Dev</code> interface.
- */
-
-label Chrome {
-  M19 = 0.1
-};
-
-/**
- * <code>PPP_TextInput_Dev</code> is a set of function pointers that the
- * plugin has to implement to provide hints for text input system (IME).
- */
-interface PPP_TextInput_Dev {
-  /**
-   * Requests the plugin to send back the text around the current caret or
-   * selection by <code>PPB_TextInput_Dev::UpdateSurroundingText</code>.
-   * It is recommended to include the <code>desired_number_of_characters</code>
-   * characters before and after the selection, but not mandatory.
-   */
-  void RequestSurroundingText([in] PP_Instance instance,
-                              [in] uint32_t desired_number_of_characters);
-};
diff --git a/api/dev/ppp_video_capture_dev.idl b/api/dev/ppp_video_capture_dev.idl
deleted file mode 100644
index 8b2fe10..0000000
--- a/api/dev/ppp_video_capture_dev.idl
+++ /dev/null
@@ -1,64 +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.
- */
-
-/**
- * This file defines the <code>PPP_VideoCapture_Dev</code> interface.
- */
-label Chrome {
-  M15 = 0.1
-};
-
-/**
- * Video Capture client interface. See |PPB_VideoCapture_Dev| for general theory
- * of operation.
- */
-[macro="PPP_VIDEO_CAPTURE_DEV_INTERFACE"]
-interface PPP_VideoCapture_Dev {
-  /**
-   * Signals the capture device information, such as resolution and frame rate,
-   * and the array of buffers that the browser will use to send pixel data.
-   *
-   * |info| is a pointer to the PP_VideoCaptureDeviceInfo_Dev structure
-   * containing resolution and frame rate.
-   * |buffer_count| is the number of buffers, and |buffers| is the array of
-   * PPB_Buffer_Dev buffers.
-   *
-   * Note: the buffers are passed without an extra reference. The plugin is
-   * expected to add its own references to the buffers.
-   */
-  void OnDeviceInfo([in] PP_Instance instance,
-                    [in] PP_Resource video_capture,
-                    [in] PP_VideoCaptureDeviceInfo_Dev info,
-                    [in] uint32_t buffer_count,
-                    [in, size_is(buffer_count)] PP_Resource[] buffers);
-
-  /**
-   * Signals status changes on the VideoCapture. |status| is a
-   * one of the values from PP_VideoCaptureStatus_Dev;
-   */
-  void OnStatus([in] PP_Instance instance,
-                [in] PP_Resource video_capture,
-                [in] uint32_t status);
-
-  /**
-   * Signals an error from the video capture system.
-   *
-   * Errors that can be generated:
-   * - PP_ERROR_NOMEMORY: not enough memory was available to allocate buffers.
-   * - PP_ERROR_FAILED: video capture could not start.
-   */
-  void OnError([in] PP_Instance instance,
-               [in] PP_Resource video_capture,
-               [in] uint32_t error_code);
-
-  /**
-   * Signals that a buffer is available for consumption by the plugin.
-   *
-   * |buffer| is the index of the buffer, in the array returned by OnDeviceInfo.
-   */
-  void OnBufferReady([in] PP_Instance instance,
-                     [in] PP_Resource video_capture,
-                     [in] uint32_t buffer);
-};
diff --git a/api/dev/ppp_video_decoder_dev.idl b/api/dev/ppp_video_decoder_dev.idl
deleted file mode 100644
index 022eef9..0000000
--- a/api/dev/ppp_video_decoder_dev.idl
+++ /dev/null
@@ -1,87 +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.
- */
-
-/**
- * This file defines the <code>PPP_VideoDecoder_Dev</code> interface.
- */
-label Chrome {
-  M21 = 0.11
-};
-
-/**
- * PPP_VideoDecoder_Dev structure contains the function pointers that the
- * plugin MUST implement to provide services needed by the video decoder
- * implementation.
- *
- * See PPB_VideoDecoder_Dev for general usage tips.
- */
-interface PPP_VideoDecoder_Dev {
-  /**
-   * Callback function to provide buffers for the decoded output pictures. If
-   * succeeds plugin must provide buffers through AssignPictureBuffers function
-   * to the API. If |req_num_of_bufs| matching exactly the specification
-   * given in the parameters cannot be allocated decoder should be destroyed.
-   *
-   * Decoding will not proceed until buffers have been provided.
-   *
-   * Parameters:
-   *  |instance| the plugin instance to which the callback is responding.
-   *  |decoder| the PPB_VideoDecoder_Dev resource.
-   *  |req_num_of_bufs| tells how many buffers are needed by the decoder.
-   *  |dimensions| tells the dimensions of the buffer to allocate.
-   *  |texture_target| the type of texture used. Sample targets in use are
-   *      TEXTURE_2D (most platforms) and TEXTURE_EXTERNAL_OES (on ARM).
-   */
-  [version=0.11]
-  void ProvidePictureBuffers(
-      [in] PP_Instance instance,
-      [in] PP_Resource decoder,
-      [in] uint32_t req_num_of_bufs,
-      [in] PP_Size dimensions,
-      [in] uint32_t texture_target);
-
-  /**
-   * Callback function for decoder to deliver unneeded picture buffers back to
-   * the plugin.
-   *
-   * Parameters:
-   *  |instance| the plugin instance to which the callback is responding.
-   *  |decoder| the PPB_VideoDecoder_Dev resource.
-   *  |picture_buffer| points to the picture buffer that is no longer needed.
-   */
-  void DismissPictureBuffer(
-      [in] PP_Instance instance,
-      [in] PP_Resource decoder,
-      [in] int32_t picture_buffer_id);
-
-  /**
-   * Callback function for decoder to deliver decoded pictures ready to be
-   * displayed. Decoder expects the plugin to return the buffer back to the
-   * decoder through ReusePictureBuffer function in PPB Video Decoder API.
-   *
-   * Parameters:
-   *  |instance| the plugin instance to which the callback is responding.
-   *  |decoder| the PPB_VideoDecoder_Dev resource.
-   *  |picture| is the picture that is ready.
-   */
-  void PictureReady(
-      [in] PP_Instance instance,
-      [in] PP_Resource decoder,
-      [in] PP_Picture_Dev picture);
-
-  /**
-   * Error handler callback for decoder to deliver information about detected
-   * errors to the plugin.
-   *
-   * Parameters:
-   *  |instance| the plugin instance to which the callback is responding.
-   *  |decoder| the PPB_VideoDecoder_Dev resource.
-   *  |error| error is the enumeration specifying the error.
-   */
-  void NotifyError(
-      [in] PP_Instance instance,
-      [in] PP_Resource decoder,
-      [in] PP_VideoDecodeError_Dev error);
-};
diff --git a/api/pp_array_output.idl b/api/pp_array_output.idl
deleted file mode 100644
index ab61b95..0000000
--- a/api/pp_array_output.idl
+++ /dev/null
@@ -1,93 +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.
- */
-
-/**
- * PP_ArrayOutput_GetDataBuffer is a callback function to allocate plugin
- * memory for an array. It returns the allocated memory or null on failure.
- *
- * This function will be called reentrantly. This means that if you call a
- * function PPB_Foo.GetData(&array_output), GetData will call your
- * GetDataBuffer function before it returns.
- *
- * This function will be called even when returning 0-length arrays, so be sure
- * your implementation can support that. You can return NULL for 0 length
- * arrays and it will not be treated as a failure.
-
- * You should not perform any processing in this callback, including calling
- * other PPAPI functions, outside of allocating memory. You should not throw
- * any exceptions. In C++, this means using "new (nothrow)" or being sure to
- * catch any exceptions before returning.
- *
- * The C++ wrapper provides a convenient templatized implementation around
- * std::vector which you should generally use instead of coding this
- * specifically.
- *
- * @param user_data The pointer provided in the PP_ArrayOutput structure. This
- * has no meaning to the browser, it is intended to be used by the
- * implementation to figure out where to put the data.
- *
- * @param element_count The number of elements in the array. This will be 0
- * if there is no data to return.
- *
- * @param element_size The size of each element in bytes.
- *
- * @return Returns a pointer to the allocated memory. On failure, returns null.
- * You can also return null if the element_count is 0. When a non-null value is
- * returned, the buffer must remain valid until after the callback runs. If used
- * with a blocking callback, the buffer must remain valid until after the
- * function returns. The plugin can then free any memory that it allocated.
- */
-typedef mem_t PP_ArrayOutput_GetDataBuffer([inout] mem_t user_data,
-                                           [in] uint32_t element_count,
-                                           [in] uint32_t element_size);
-
-/**
- * A structure that defines a way for the browser to return arrays of data
- * to the plugin. The browser can not allocate memory on behalf of the plugin
- * because the plugin and browser may have different allocators.
- *
- * Array output works by having the browser call to the plugin to allocate a
- * buffer, and then the browser will copy the contents of the array into that
- * buffer.
- *
- * In C, you would typically implement this as follows:
- *
- * @code
- * struct MyArrayOutput {
- *   void* data;
- *   int element_count;
- * };
- * void* MyGetDataBuffer(void* user_data, uint32_t count, uint32_t size) {
- *   MyArrayOutput* output = (MyArrayOutput*)user_data;
- *   output->element_count = count;
- *   if (size) {
- *     output->data = malloc(count * size);
- *     if (!output->data)  // Be careful to set size properly on malloc failure.
- *       output->element_count = 0;
- *   } else {
- *     output->data = NULL;
- *   }
- *   return output->data;
- * }
- * void MyFunction() {
- *   MyArrayOutput array = { NULL, 0 };
- *   PP_ArrayOutput output = { &MyGetDataBuffer, &array };
- *   ppb_foo->GetData(&output);
- * }
- * @endcode
- */
-[passByValue]
-struct PP_ArrayOutput {
-  /**
-   * A pointer to the allocation function that the browser will call.
-   */
-  PP_ArrayOutput_GetDataBuffer GetDataBuffer;
-
-  /**
-   * Data that is passed to the allocation function. Typically, this is used
-   * to communicate how the data should be stored.
-   */
-  mem_t user_data;
-};
diff --git a/api/pp_bool.idl b/api/pp_bool.idl
deleted file mode 100644
index f3aae14..0000000
--- a/api/pp_bool.idl
+++ /dev/null
@@ -1,44 +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.
- */
-
-/**
- * This file defines the <code>PP_Bool</code> enumeration for use in PPAPI C
- * headers.
- */
-
-/**
- * The <code>PP_Bool</code> enum is a boolean value for use in PPAPI C headers.
- * The standard bool type is not available to pre-C99 compilers, and is not
- * guaranteed to be compatible between C and C++, whereas the PPAPI C headers
- * can be included from C or C++ code.
- */
-[assert_size(4)] enum PP_Bool {
-  PP_FALSE = 0,
-  PP_TRUE  = 1
-};
-
-#inline cc
-/**
- * Converts a C++ "bool" type to a PP_Bool.
- *
- * @param[in] b A C++ "bool" type.
- *
- * @return A PP_Bool.
- */
-inline PP_Bool PP_FromBool(bool b) {
-  return b ? PP_TRUE : PP_FALSE;
-}
-
-/**
- * Converts a PP_Bool to a C++ "bool" type.
- *
- * @param[in] b A PP_Bool.
- *
- * @return A C++ "bool" type.
- */
-inline bool PP_ToBool(PP_Bool b) {
-  return (b != PP_FALSE);
-}
-#endinl
diff --git a/api/pp_codecs.idl b/api/pp_codecs.idl
deleted file mode 100644
index 855cf79..0000000
--- a/api/pp_codecs.idl
+++ /dev/null
@@ -1,215 +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.
- */
-
-/**
- * Video profiles.
- */
-enum PP_VideoProfile {
-  PP_VIDEOPROFILE_H264BASELINE = 0,
-  PP_VIDEOPROFILE_H264MAIN = 1,
-  PP_VIDEOPROFILE_H264EXTENDED = 2,
-  PP_VIDEOPROFILE_H264HIGH = 3,
-  PP_VIDEOPROFILE_H264HIGH10PROFILE = 4,
-  PP_VIDEOPROFILE_H264HIGH422PROFILE = 5,
-  PP_VIDEOPROFILE_H264HIGH444PREDICTIVEPROFILE = 6,
-  PP_VIDEOPROFILE_H264SCALABLEBASELINE = 7,
-  PP_VIDEOPROFILE_H264SCALABLEHIGH = 8,
-  PP_VIDEOPROFILE_H264STEREOHIGH = 9,
-  PP_VIDEOPROFILE_H264MULTIVIEWHIGH = 10,
-  PP_VIDEOPROFILE_VP8_ANY = 11,
-  PP_VIDEOPROFILE_VP9_ANY = 12,
-  PP_VIDEOPROFILE_MAX = PP_VIDEOPROFILE_VP9_ANY
-};
-
-/**
- * Hardware acceleration options.
- */
-enum PP_HardwareAcceleration {
-  /** Create a hardware accelerated resource only. */
-  PP_HARDWAREACCELERATION_ONLY = 0,
-
-  /**
-   * Create a hardware accelerated resource if possible. Otherwise, fall back
-   * to the software implementation.
-   */
-  PP_HARDWAREACCELERATION_WITHFALLBACK = 1,
-
-  /** Create the software implementation only. */
-  PP_HARDWAREACCELERATION_NONE = 2,
-
-  PP_HARDWAREACCELERATION_LAST = PP_HARDWAREACCELERATION_NONE
-};
-
-/**
- * Struct describing a decoded video picture. The decoded picture data is stored
- * in the GL texture corresponding to |texture_id|. The plugin can determine
- * which Decode call generated the picture using |decode_id|.
- */
-struct PP_VideoPicture {
-  /**
-   * |decode_id| parameter of the Decode call which generated this picture.
-   * See the PPB_VideoDecoder function Decode() for more details.
-   */
-  uint32_t decode_id;
-
-  /**
-   * Texture ID in the plugin's GL context. The plugin can use this to render
-   * the decoded picture.
-   */
-  uint32_t texture_id;
-
-  /**
-   * The GL texture target for the decoded picture. Possible values are:
-   *   GL_TEXTURE_2D
-   *   GL_TEXTURE_RECTANGLE_ARB
-   *   GL_TEXTURE_EXTERNAL_OES
-   *
-   * The pixel format of the texture is GL_RGBA.
-   */
-  uint32_t texture_target;
-
-  /**
-   * Dimensions of the texture holding the decoded picture.
-   */
-  PP_Size texture_size;
-
-  /**
-   * The visible subrectangle of the picture. The plugin should display only
-   * this part of the picture.
-   */
-  PP_Rect visible_rect;
-};
-
-/**
- * Struct describing a decoded video picture. The decoded picture data is stored
- * in the GL texture corresponding to |texture_id|. The plugin can determine
- * which Decode call generated the picture using |decode_id|.
- */
-struct PP_VideoPicture_0_1 {
-  /**
-   * |decode_id| parameter of the Decode call which generated this picture.
-   * See the PPB_VideoDecoder function Decode() for more details.
-   */
-  uint32_t decode_id;
-
-  /**
-   * Texture ID in the plugin's GL context. The plugin can use this to render
-   * the decoded picture.
-   */
-  uint32_t texture_id;
-
-  /**
-   * The GL texture target for the decoded picture. Possible values are:
-   *   GL_TEXTURE_2D
-   *   GL_TEXTURE_RECTANGLE_ARB
-   *   GL_TEXTURE_EXTERNAL_OES
-   *
-   * The pixel format of the texture is GL_RGBA.
-   */
-  uint32_t texture_target;
-
-  /**
-   * Dimensions of the texture holding the decoded picture.
-   */
-  PP_Size texture_size;
-};
-
-/**
- * Supported video profile information. See the PPB_VideoEncoder function
- * GetSupportedProfiles() for more details.
- */
-struct PP_VideoProfileDescription {
-  /**
-   * The codec profile.
-   */
-  PP_VideoProfile profile;
-
-  /**
-   * Dimensions of the maximum resolution of video frames, in pixels.
-   */
-  PP_Size max_resolution;
-
-  /**
-   * The numerator of the maximum frame rate.
-   */
-  uint32_t max_framerate_numerator;
-
-  /**
-   * The denominator of the maximum frame rate.
-   */
-  uint32_t max_framerate_denominator;
-
-  /**
-   * Whether the profile is hardware accelerated.
-   */
-  PP_Bool hardware_accelerated;
-};
-
-/**
- * Supported video profile information. See the PPB_VideoEncoder function
- * GetSupportedProfiles() for more details.
- */
-struct PP_VideoProfileDescription_0_1 {
-  /**
-   * The codec profile.
-   */
-  PP_VideoProfile profile;
-
-  /**
-   * Dimensions of the maximum resolution of video frames, in pixels.
-   */
-  PP_Size max_resolution;
-
-  /**
-   * The numerator of the maximum frame rate.
-   */
-  uint32_t max_framerate_numerator;
-
-  /**
-   * The denominator of the maximum frame rate.
-   */
-  uint32_t max_framerate_denominator;
-
-  /**
-   * A value indicating if the profile is available in hardware, software, or
-   * both.
-   */
-  PP_HardwareAcceleration acceleration;
-};
-
-/**
- * Struct describing a bitstream buffer.
- */
-struct PP_BitstreamBuffer {
-  /**
-   * The size, in bytes, of the bitstream data.
-   */
-  uint32_t size;
-
-  /**
-   * The base address of the bitstream data.
-   */
-  mem_t buffer;
-
-  /**
-   * Whether the buffer represents a key frame.
-   */
-  PP_Bool key_frame;
-};
-
-/**
- * Struct describing an audio bitstream buffer.
- */
-struct PP_AudioBitstreamBuffer {
-  /**
-   * The size, in bytes, of the bitstream data.
-   */
-  uint32_t size;
-
-  /**
-   * The base address of the bitstream data.
-   */
-  mem_t buffer;
-};
diff --git a/api/pp_completion_callback.idl b/api/pp_completion_callback.idl
deleted file mode 100644
index 98d8561..0000000
--- a/api/pp_completion_callback.idl
+++ /dev/null
@@ -1,262 +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.
- */
-
-/**
- * This file defines the API to create and run a callback.
- */
-
-/**
- * This typedef defines the signature that you implement to receive callbacks
- * on asynchronous completion of an operation.
- *
- * @param[in] user_data A pointer to user data passed to a callback function.
- * @param[in] result If result is 0 (PP_OK), the operation succeeded.  Negative
- * values (other than -1 or PP_OK_COMPLETE) indicate error and are specified
- * in pp_errors.h. Positive values for result usually indicate success and have
- * some operation-dependent meaning (such as bytes read).
- */
-typedef void PP_CompletionCallback_Func([inout] mem_t user_data,
-                                        [in] int32_t result);
-
-/**
- * This enumeration contains flags used to control how non-NULL callbacks are
- * scheduled by asynchronous methods.
- */
-[assert_size(4)]
-enum PP_CompletionCallback_Flag {
-  /**
-   * By default any non-NULL callback will always invoked asynchronously,
-   * on success or error, even if the operation could complete synchronously
-   * without blocking.
-   *
-   * The method taking such callback will always return PP_OK_COMPLETIONPENDING.
-   * The callback will be invoked on the same thread on which the method was
-   * invoked.
-   *
-   * NOTE: If the method taking the callback is invoked on a background
-   * thread that has no valid PPB_MessageLoop resource attached, the system has
-   * no way to run the callback on the correct thread. In this case, a log
-   * message will be emitted and the plugin will be made to crash.
-   */
-  PP_COMPLETIONCALLBACK_FLAG_NONE = 0 << 0,
-  /**
-   * This flag allows any method taking such callback to complete synchronously
-   * and not call the callback if the operation would not block. This is useful
-   * when performance is an issue, and the operation bandwidth should not be
-   * limited to the processing speed of the message loop.
-   *
-   * On synchronous method completion, the completion result will be returned
-   * by the method itself. Otherwise, the method will return
-   * PP_OK_COMPLETIONPENDING, and the callback will be invoked asynchronously on
-   * the same thread on which the method was invoked. If there is no valid
-   * PPB_MessageLoop attached to that thread, and the callback would normally
-   * run asynchronously, the invoked method will return
-   * PP_ERROR_NO_MESSAGE_LOOP.
-   */
-  PP_COMPLETIONCALLBACK_FLAG_OPTIONAL = 1 << 0
-};
-
-
-/**
- * <code>PP_CompletionCallback</code> is a common mechanism for supporting
- * potentially asynchronous calls in browser interfaces. Any method that takes a
- * <code>PP_CompletionCallback</code> can be used in one of three different
- * ways:
- *   - Required: The callback will always be invoked asynchronously on the
- *               thread where the associated PPB method was invoked. The method
- *               will always return PP_OK_COMPLETIONPENDING when a required
- *               callback, and the callback will be invoked later (barring
- *               system or thread shutdown; see PPB_MessageLoop for details).
- *               Required callbacks are the default.
- *               <br /><br />
- *               NOTE: If you use a required callback on a background thread,
- *               you must have created and attached a PPB_MessageLoop.
- *               Otherwise, the system can not run your callback on that thread,
- *               and will instead emit a log message and crash your plugin to
- *               make the problem more obvious.
- *
- *   - Optional: The callback may be invoked asynchronously, or the PPB method
- *               may complete synchronously if it can do so without blocking.
- *               If the method will complete asynchronously, it will return
- *               PP_OK_COMPLETIONPENDING. Otherwise, it will complete
- *               synchronously and return an appropriate code (see below for
- *               more information on the return code). Optional callbacks are
- *               generally more difficult to use correctly than Required
- *               callbacks, but can provide better performance for some APIs
- *               (especially APIs with buffered reads, such as PPB_URLLoader or
- *               PPB_FileIO).
- *               <br /><br />
- *               NOTE: If you use an optional callback on a background thread,
- *               and you have not created and attached a PPB_MessageLoop, then
- *               the method you invoke will fail without running and return
- *               PP_ERROR_NO_MESSAGE_LOOP.
- *
- *   - Blocking: In this case, the callback's function pointer is NULL, and the
- *               invoked method must complete synchronously. The method will
- *               run to completion and return an appropriate code when finished
- *               (see below for more information). Blocking completion
- *               callbacks are only supported on background threads.
- *               <br /><br />
- *               <code>PP_BlockUntilComplete()</code> provides a convenient way
- *               to specify blocking behavior. Refer to
- *               <code>PP_BlockUntilComplete</code> for more information.
- *
- * When the callback is run asynchronously, the result parameter passed to
- * <code>func</code> is an int32_t that, if negative indicates an error code
- * whose meaning is specific to the calling method (refer to
- * <code>pp_error.h</code> for further information). A positive or 0 value is a
- * return result indicating success whose meaning depends on the calling method
- * (e.g. number of bytes read).
- */
-[passByValue] struct PP_CompletionCallback {
-  /**
-   * This value is a callback function that will be called, or NULL if this is
-   * a blocking completion callback.
-   */
-  PP_CompletionCallback_Func func;
-  /**
-   * This value is a pointer to user data passed to a callback function.
-   */
-  mem_t user_data;
-
-  /**
-   * Flags used to control how non-NULL callbacks are scheduled by
-   * asynchronous methods.
-   */
-  int32_t flags;
-};
-
-#inline c
-#include <stdlib.h>
-
-/**
- * @addtogroup Functions
- * @{
- */
-/**
- * PP_MakeCompletionCallback() is used to create a
- * <code>PP_CompletionCallback</code>.
- *
- * <strong>Example, creating a Required callback:</strong>
- *
- * @code
- * struct PP_CompletionCallback cc = PP_MakeCompletionCallback(Foo, NULL);
- * @endcode
- *
- * <strong>Example, creating an Optional callback:</strong>
- *
- * @code
- * struct PP_CompletionCallback cc = PP_MakeCompletionCallback(Foo, NULL);
- * cc.flags = cc.flags | PP_COMPLETIONCALLBACK_FLAG_OPTIONAL;
- * @endcode
- *
- * @param[in] func A <code>PP_CompletionCallback_Func</code> that will be
- * called.
- * @param[in] user_data A pointer to user data passed to your callback
- * function. This is optional and is typically used to help track state
- * when you may have multiple callbacks pending.
- *
- * @return A <code>PP_CompletionCallback</code> structure.
- */
-PP_INLINE struct PP_CompletionCallback PP_MakeCompletionCallback(
-    PP_CompletionCallback_Func func,
-    void* user_data) {
-  struct PP_CompletionCallback cc;
-  cc.func = func;
-  cc.user_data = user_data;
-  cc.flags = PP_COMPLETIONCALLBACK_FLAG_NONE;
-  return cc;
-}
-
-/**
- * PP_MakeOptionalCompletionCallback() is used to create a PP_CompletionCallback
- * with PP_COMPLETIONCALLBACK_FLAG_OPTIONAL set.
- *
- * @param[in] func A PP_CompletionCallback_Func to be called on completion.
- * @param[in] user_data A pointer to user data passed to be passed to the
- * callback function. This is optional and is typically used to help track state
- * in case of multiple pending callbacks.
- *
- * @return A PP_CompletionCallback structure.
- */
-PP_INLINE struct PP_CompletionCallback PP_MakeOptionalCompletionCallback(
-    PP_CompletionCallback_Func func,
-    void* user_data) {
-  struct PP_CompletionCallback cc = PP_MakeCompletionCallback(func, user_data);
-  cc.flags = cc.flags | PP_COMPLETIONCALLBACK_FLAG_OPTIONAL;
-  return cc;
-}
-/**
- * @}
- */
-
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PP_RunCompletionCallback() is used to run a callback. It invokes
- * the callback function passing it user data specified on creation and
- * completion |result|.
- *
- * @param[in] cc A pointer to a <code>PP_CompletionCallback</code> that will be
- * run.
- * @param[in] result The result of the operation. Non-positive values correspond
- * to the error codes from pp_errors.h (excluding PP_OK_COMPLETIONPENDING).
- * Positive values indicate additional information such as bytes read.
- */
-PP_INLINE void PP_RunCompletionCallback(struct PP_CompletionCallback* cc,
-                                        int32_t result) {
-  cc->func(cc->user_data, result);
-}
-
-/**
- * @}
- */
-
-/**
- * @addtogroup Functions
- * @{
- */
-
- /**
- * PP_BlockUntilComplete() is used in place of an actual completion callback
- * to request blocking behavior. If specified, the calling thread will block
- * until the function completes. Blocking completion callbacks are only allowed
- * from background threads.
- *
- * @return A <code>PP_CompletionCallback</code> structure.
- */
-PP_INLINE struct PP_CompletionCallback PP_BlockUntilComplete(void) {
-  return PP_MakeCompletionCallback(NULL, NULL);
-}
-
-/**
- * PP_RunAndClearCompletionCallback() runs a callback and clears the reference
- * to that callback.
- *
- * This function is used when the null-ness of a completion callback is used as
- * a signal for whether a completion callback has been registered. In this
- * case, after the execution of the callback, it should be cleared. However,
- * this introduces a conflict if the completion callback wants to schedule more
- * work that involves the same completion callback again (for example, when
- * reading data from an URLLoader, one would typically queue up another read
- * callback). As a result, this function clears the pointer
- * before the provided callback is executed.
- */
-PP_INLINE void PP_RunAndClearCompletionCallback(
-    struct PP_CompletionCallback* cc,
-    int32_t res) {
-  struct PP_CompletionCallback temp = *cc;
-  *cc = PP_BlockUntilComplete();
-  PP_RunCompletionCallback(&temp, res);
-}
-/**
- * @}
- */
-
-#endinl
-
diff --git a/api/pp_directory_entry.idl b/api/pp_directory_entry.idl
deleted file mode 100644
index 703e214..0000000
--- a/api/pp_directory_entry.idl
+++ /dev/null
@@ -1,14 +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.
- */
-
-/*
- * This file defines the <code>PP_DirectoryEntry</code> struct.
- */
-
-[assert_size(8)]
-struct PP_DirectoryEntry {
-  PP_Resource file_ref;
-  PP_FileType file_type;
-};
diff --git a/api/pp_errors.idl b/api/pp_errors.idl
deleted file mode 100644
index 9ece477..0000000
--- a/api/pp_errors.idl
+++ /dev/null
@@ -1,202 +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.
- */
-
-/**
- * This file defines an enumeration of all PPAPI error codes.
- */
-
-/**
- * This enumeration contains enumerators of all PPAPI error codes.
- *
- * Errors are negative valued. Callers should treat all negative values as a
- * failure, even if it's not in the list, since the possible errors are likely
- * to expand and change over time.
- */
-[unnamed] enum PP_Error {
-  /**
-   * This value is returned by a function on successful synchronous completion
-   * or is passed as a result to a PP_CompletionCallback_Func on successful
-   * asynchronous completion.
-   */
-  PP_OK                   = 0,
-  /**
-   * This value is returned by a function that accepts a PP_CompletionCallback
-   * and cannot complete synchronously. This code indicates that the given
-   * callback will be asynchronously notified of the final result once it is
-   * available.
-   */
-  PP_OK_COMPLETIONPENDING = -1,
-
-  /**This value indicates failure for unspecified reasons. */
-  PP_ERROR_FAILED         = -2,
-
-  /**
-   * This value indicates failure due to an asynchronous operation being
-   * interrupted. The most common cause of this error code is destroying a
-   * resource that still has a callback pending. All callbacks are guaranteed
-   * to execute, so any callbacks pending on a destroyed resource will be
-   * issued with PP_ERROR_ABORTED.
-   *
-   * If you get an aborted notification that you aren't expecting, check to
-   * make sure that the resource you're using is still in scope. A common
-   * mistake is to create a resource on the stack, which will destroy the
-   * resource as soon as the function returns.
-   */
-  PP_ERROR_ABORTED        = -3,
-
-  /** This value indicates failure due to an invalid argument. */
-  PP_ERROR_BADARGUMENT    = -4,
-
-  /** This value indicates failure due to an invalid PP_Resource. */
-  PP_ERROR_BADRESOURCE    = -5,
-
-  /** This value indicates failure due to an unavailable PPAPI interface. */
-  PP_ERROR_NOINTERFACE    = -6,
-
-  /** This value indicates failure due to insufficient privileges. */
-  PP_ERROR_NOACCESS       = -7,
-
-  /** This value indicates failure due to insufficient memory. */
-  PP_ERROR_NOMEMORY       = -8,
-
-  /** This value indicates failure due to insufficient storage space. */
-  PP_ERROR_NOSPACE        = -9,
-
-  /** This value indicates failure due to insufficient storage quota. */
-  PP_ERROR_NOQUOTA        = -10,
-
-  /**
-   * This value indicates failure due to an action already being in
-   * progress.
-   */
-  PP_ERROR_INPROGRESS     = -11,
-
-  /**
-   * The requested command is not supported by the browser.
-   */
-  PP_ERROR_NOTSUPPORTED = -12,
-
-  /**
-   * Returned if you try to use a null completion callback to "block until
-   * complete" on the main thread. Blocking the main thread is not permitted
-   * to keep the browser responsive (otherwise, you may not be able to handle
-   * input events, and there are reentrancy and deadlock issues).
-   */
-  PP_ERROR_BLOCKS_MAIN_THREAD = -13,
-  /**
-   * This value indicates that the plugin sent bad input data to a resource,
-   * leaving it in an invalid state. The resource can't be used after returning
-   * this error and should be released.
-   */
-  PP_ERROR_MALFORMED_INPUT = -14,
-  /**
-   * This value indicates that a resource has failed.  The resource can't be
-   * used after returning this error and should be released.
-   */
-  PP_ERROR_RESOURCE_FAILED = -15,
-
-  /** This value indicates failure due to a file that does not exist. */
-  PP_ERROR_FILENOTFOUND   = -20,
-  /** This value indicates failure due to a file that already exists. */
-  PP_ERROR_FILEEXISTS     = -21,
-  /** This value indicates failure due to a file that is too big. */
-  PP_ERROR_FILETOOBIG     = -22,
-  /**
-   * This value indicates failure due to a file having been modified
-   * unexpectedly.
-   */
-  PP_ERROR_FILECHANGED    = -23,
-  /** This value indicates that the pathname does not reference a file. */
-  PP_ERROR_NOTAFILE       = -24,
-  /** This value indicates failure due to a time limit being exceeded. */
-  PP_ERROR_TIMEDOUT       = -30,
-  /**
-   * This value indicates that the user cancelled rather than providing
-   * expected input.
-   */
-  PP_ERROR_USERCANCEL     = -40,
-  /**
-   * This value indicates failure due to lack of a user gesture such as a
-   * mouse click or key input event. Examples of actions requiring a user
-   * gesture are showing the file chooser dialog and going into fullscreen
-   * mode.
-   */
-  PP_ERROR_NO_USER_GESTURE = -41,
-  /**
-   * This value indicates that the graphics context was lost due to a
-   * power management event.
-   */
-  PP_ERROR_CONTEXT_LOST   = -50,
-  /**
-   * Indicates an attempt to make a PPAPI call on a thread without previously
-   * registering a message loop via PPB_MessageLoop.AttachToCurrentThread.
-   * Without this registration step, no PPAPI calls are supported.
-   */
-  PP_ERROR_NO_MESSAGE_LOOP = -51,
-  /**
-   * Indicates that the requested operation is not permitted on the current
-   * thread.
-   */
-  PP_ERROR_WRONG_THREAD   = -52,
-  /**
-   * Indicates that a null completion callback was used on a thread handling a
-   * blocking message from JavaScript. Null completion callbacks "block until
-   * complete", which could cause the main JavaScript thread to be blocked
-   * excessively.
-   */
-  PP_ERROR_WOULD_BLOCK_THREAD   = -53,
-
-  /**
-   * This value indicates that the connection was closed. For TCP sockets, it
-   * corresponds to a TCP FIN.
-   */
-  PP_ERROR_CONNECTION_CLOSED = -100,
-  /**
-   * This value indicates that the connection was reset. For TCP sockets, it
-   * corresponds to a TCP RST.
-   */
-  PP_ERROR_CONNECTION_RESET = -101,
-  /**
-   * This value indicates that the connection attempt was refused.
-   */
-  PP_ERROR_CONNECTION_REFUSED = -102,
-  /**
-   * This value indicates that the connection was aborted. For TCP sockets, it
-   * means the connection timed out as a result of not receiving an ACK for data
-   * sent. This can include a FIN packet that did not get ACK'd.
-   */
-  PP_ERROR_CONNECTION_ABORTED = -103,
-  /**
-   * This value indicates that the connection attempt failed.
-   */
-  PP_ERROR_CONNECTION_FAILED = -104,
-  /**
-   * This value indicates that the connection attempt timed out.
-   */
-  PP_ERROR_CONNECTION_TIMEDOUT = -105,
-  /**
-   * This value indicates that the IP address or port number is invalid.
-   */
-  PP_ERROR_ADDRESS_INVALID = -106,
-  /**
-   * This value indicates that the IP address is unreachable. This usually means
-   * that there is no route to the specified host or network.
-   */
-  PP_ERROR_ADDRESS_UNREACHABLE = -107,
-  /**
-   * This value is returned when attempting to bind an address that is already
-   * in use.
-   */
-  PP_ERROR_ADDRESS_IN_USE = -108,
-  /**
-   * This value indicates that the message was too large for the transport.
-   */
-  PP_ERROR_MESSAGE_TOO_BIG = -109,
-  /**
-   * This value indicates that the host name could not be resolved.
-   */
-  PP_ERROR_NAME_NOT_RESOLVED = -110
-};
-
diff --git a/api/pp_file_info.idl b/api/pp_file_info.idl
deleted file mode 100644
index a6587fb..0000000
--- a/api/pp_file_info.idl
+++ /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.
- */
-
-/**
- * This file defines three enumerations for use in the PPAPI C file IO APIs.
- */
-
-/**
- * The <code>PP_FileType</code> enum contains file type constants.
- */
-[assert_size(4)]
-enum PP_FileType {
-  /** A regular file type */
-  PP_FILETYPE_REGULAR = 0,
-  /** A directory */
-  PP_FILETYPE_DIRECTORY = 1,
-  /** A catch-all for unidentified types */
-  PP_FILETYPE_OTHER = 2
-};
-
-/**
- * The <code>PP_FileSystemType</code> enum contains file system type constants.
- */
-[assert_size(4)]
-enum PP_FileSystemType {
-  /** For identified invalid return values */
-  PP_FILESYSTEMTYPE_INVALID = 0,
-  /** For external file system types */
-  PP_FILESYSTEMTYPE_EXTERNAL = 1,
-  /** For local persistent file system types */
-  PP_FILESYSTEMTYPE_LOCALPERSISTENT = 2,
-  /** For local temporary file system types */
-  PP_FILESYSTEMTYPE_LOCALTEMPORARY = 3,
-  /** For isolated file system types */
-  PP_FILESYSTEMTYPE_ISOLATED = 4
-};
-
-/**
- * The <code>PP_FileInfo</code> struct represents all information about a file,
- * such as size, type, and creation time.
- */
-[assert_size(40)]
-struct PP_FileInfo {
-  /** This value represents the size of the file measured in bytes */
-  int64_t size;
-
-  /**
-   * This value represents the type of file as defined by the
-   * <code>PP_FileType</code> enum
-   */
-  PP_FileType type;
-
-  /**
-   * This value represents the file system type of the file as defined by the
-   * <code>PP_FileSystemType</code> enum.
-   */
-  PP_FileSystemType system_type;
-
-  /**
-   * This value represents the creation time of the file.
-   */
-  PP_Time creation_time;
-
-  /**
-   * This value represents the last time the file was accessed.
-   */
-  PP_Time last_access_time;
-
-  /**
-   * This value represents the last time the file was modified.
-   */
-  PP_Time last_modified_time;
-};
-
diff --git a/api/pp_graphics_3d.idl b/api/pp_graphics_3d.idl
deleted file mode 100644
index 92f9a56..0000000
--- a/api/pp_graphics_3d.idl
+++ /dev/null
@@ -1,88 +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.
- */
-
-/**
- * This file defines the <code>PP_Graphics3DAttrib</code> enumeration for use in
- * PPAPI C headers.
- */
-
-[assert_size(4)] enum PP_Graphics3DAttrib {
-  /**
-   * Bits of Alpha in the color buffer.
-   */
-  PP_GRAPHICS3DATTRIB_ALPHA_SIZE = 0x3021,
-  /**
-   * Bits of Blue in the color buffer.
-   */
-  PP_GRAPHICS3DATTRIB_BLUE_SIZE = 0x3022,
-  /**
-   * Bits of Green in the color buffer.
-   */
-  PP_GRAPHICS3DATTRIB_GREEN_SIZE = 0x3023,
-  /**
-   * Bits of Red in the color buffer.
-   */
-  PP_GRAPHICS3DATTRIB_RED_SIZE = 0x3024,
-  /**
-   * Bits of Z in the depth buffer.
-   */
-  PP_GRAPHICS3DATTRIB_DEPTH_SIZE = 0x3025,
-  /**
-   * Bits of Stencil in the stencil buffer.
-   */
-  PP_GRAPHICS3DATTRIB_STENCIL_SIZE = 0x3026,
-  /**
-   * Number of samples per pixel.
-   */
-  PP_GRAPHICS3DATTRIB_SAMPLES = 0x3031,
-  /**
-   * Number of multisample buffers.
-   */
-  PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS = 0x3032,
-  /**
-   * Attrib list terminator.
-   */
-  PP_GRAPHICS3DATTRIB_NONE = 0x3038,
-  /**
-   * Height of surface in pixels.
-   */
-  PP_GRAPHICS3DATTRIB_HEIGHT = 0x3056,
-  /**
-   * Width of surface in pixels.
-   */
-  PP_GRAPHICS3DATTRIB_WIDTH = 0x3057,
-  /**
-   * Specifies the effect on the color buffer of posting a surface
-   * with SwapBuffers. The initial value is chosen by the implementation.
-   */
-  PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR = 0x3093,
-  /**
-   * Indicates that color buffer contents are unaffected.
-   */
-  PP_GRAPHICS3DATTRIB_BUFFER_PRESERVED = 0x3094,
-  /**
-   * Indicates that color buffer contents may be destroyed or changed.
-   */
-  PP_GRAPHICS3DATTRIB_BUFFER_DESTROYED = 0x3095,
-  /**
-   * Specifies whether the context is intended to be low-power or
-   * high-performance. The initial value is
-   * PP_GRAPHICS3DATTRIB_GPU_PREFERENCE_PERFORMANCE.
-   */
-  PP_GRAPHICS3DATTRIB_GPU_PREFERENCE = 0x11000,
-  /**
-   * The context should be low-power, and may be created on an integrated gpu.
-   */
-  PP_GRAPHICS3DATTRIB_GPU_PREFERENCE_LOW_POWER = 0x11001,
-  /**
-   * The context may be high-power and may be created on a discrete gpu.
-   */
-  PP_GRAPHICS3DATTRIB_GPU_PREFERENCE_PERFORMANCE = 0x11002,
-  /**
-   * Whether or not offscreen color buffers exist in front/back pairs that
-   * can be swapped.
-   */
-  PP_GRAPHICS3DATTRIB_SINGLE_BUFFER = 0x3085
-};
diff --git a/api/pp_input_event.idl b/api/pp_input_event.idl
deleted file mode 100644
index 7e300d6..0000000
--- a/api/pp_input_event.idl
+++ /dev/null
@@ -1,201 +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.
- */
-
-/**
- * This file defines the API used to handle mouse and keyboard input events.
- */
-
-/**
- * The <code>PP_InputEvent_Key</code> struct represents a key up or key down
- * event.
- *
- * Key up and key down events correspond to physical keys on the keyboard. The
- * actual character that the user typed (if any) will be delivered in a
- * "character" event.
- *
- * If the user loses focus on the module while a key is down, a key up
- * event might not occur. For example, if the module has focus and the user
- * presses and holds the shift key, the module will see a "shift down" message.
- * Then if the user clicks elsewhere on the web page, the module's focus will
- * be lost and no more input events will be delivered.
- *
- * If your module depends on receiving key up events, it should also handle
- * "lost focus" as the equivalent of "all keys up."
- */
-[assert_size(8)]
-struct PP_InputEvent_Key {
-  /** This value is a bit field combination of the EVENT_MODIFIER flags. */
-  uint32_t modifier;
-
-  /**
-   * This value reflects the DOM KeyboardEvent <code>keyCode</code> field.
-   * Chrome populates this with the Windows-style Virtual Key code of the key.
-   */
-
-  uint32_t key_code;
-};
-
-/**
- * The <code>PP_InputEvent_Character</code> struct represents a typed character
- * event.
- *
- * Normally, the program will receive a key down event, followed by a character
- * event, followed by a key up event. The character event will have any
- * modifier keys applied. Obvious examples are symbols, where Shift-5 gives you
- * a '%'. The key down and up events will give you the scan code for the "5"
- * key, and the character event will give you the '%' character.
- *
- * You may not get a character event for all key down events if the key doesn't
- * generate a character. Likewise, you may actually get multiple character
- * events in a row. For example, some locales have an accent key that modifies
- * the next character typed. You might get this stream of events: accent down,
- * accent up (it didn't generate a character), letter key down, letter with
- * accent character event (it was modified by the previous accent key), letter
- * key up.  If the letter can't be combined with the accent, like an umlaut and
- * an 'R', the system might send umlaut down, umlaut up, 'R' key down, umlaut
- * character (can't combine it with 'R', so just send the raw umlaut so it
- * isn't lost"), 'R' character event, 'R' key up.
- */
-[assert_size(12)]
-struct PP_InputEvent_Character {
-  /** A combination of the <code>PP_InputEvent_Modifier</code> flags. */
-  uint32_t modifier;
-
-  /**
-   * This value represents the typed character as a single null-terminated UTF-8
-   * character. Any unused bytes will be filled with null bytes. Since the
-   * maximum UTF-8 character is 4 bytes, there will always be at least one null
-   * at the end so you can treat this as a null-terminated UTF-8 string.
-   */
-  int8_t[5] text;
-};
-
-/**
- * The <code>PP_InputEvent_Mouse</code> struct represents all mouse events
- * except mouse wheel events.
- */
-[assert_size(20)]
-struct PP_InputEvent_Mouse {
-  /**
-   * This value is a bit field combination of the
-   * <code>PP_InputEvent_Modifier</code> flags.
-   */
-  uint32_t modifier;
-
-  /**
-   * This value represents the button that changed for mouse down or up events.
-   * This value will be <code>PP_EVENT_MOUSEBUTTON_NONE</code> for mouse move,
-   * enter, and leave events.
-   */
-  PP_InputEvent_MouseButton button;
-
-  /**
-   * This values represents the x coordinate of the mouse when the event
-   * occurred.
-   *
-   * In most, but not all, cases these coordinates will just be integers.
-   * For example, the plugin element might be arbitrarily scaled or transformed
-   * in the DOM, and translating a mouse event into the coordinate space of the
-   * plugin will give non-integer values.
-   */
-  float_t x;
-  /**
-   * This values represents the y coordinate of the mouse when the event
-   * occurred.
-   *
-   * In most, but not all, cases these coordinates will just be integers.
-   * For example, the plugin element might be arbitrarily scaled or transformed
-   * in the DOM, and translating a mouse event into the coordinate space of the
-   * plugin will give non-integer values.
-   */
-  float_t y;
-  int32_t click_count;
-};
-
-/**
- * The <code>PP_InputEvent_Wheel</code> struct represents all mouse wheel
- * events.
- */
-[assert_size(24)] struct PP_InputEvent_Wheel {
-  /**
-   * This value represents a combination of the <code>EVENT_MODIFIER</code>
-   * flags.
-   */
-  uint32_t modifier;
-
-  /**
-   * The mouse wheel's horizontal scroll amount. A scroll to the right
-   * (where the content moves left) is represented as positive values,
-   * and a scroll to the left (where the content moves right) is
-   * represented as negative values.
-   *
-   * The units are either in pixels (when scroll_by_page is false) or pages
-   * (when scroll_by_page is true). For example, delta_y = -3 means scroll up 3
-   * pixels when scroll_by_page is false, and scroll up 3 pages when
-   * scroll_by_page is true.
-   *
-   * This amount is system dependent and will take into account the user's
-   * preferred scroll sensitivity and potentially also nonlinear acceleration
-   * based on the speed of the scrolling.
-   *
-   * Devices will be of varying resolution. Some mice with large detents will
-   * only generate integer scroll amounts. But fractional values are also
-   * possible, for example, on some trackpads and newer mice that don't have
-   * "clicks".
-   */
-  float_t delta_x;
-
-  /**
-   * The mouse wheel's vertical scroll amount. A scroll down (where the
-   * content moves up) is represented as positive values, and a scroll up
-   * (where the content moves down) is represented as negative values.
-   *
-   * The units are either in pixels (when scroll_by_page is false) or pages
-   * (when scroll_by_page is true). For example, delta_y = -3 means scroll up 3
-   * pixels when scroll_by_page is false, and scroll up 3 pages when
-   * scroll_by_page is true.
-   *
-   * This amount is system dependent and will take into account the user's
-   * preferred scroll sensitivity and potentially also nonlinear acceleration
-   * based on the speed of the scrolling.
-   *
-   * Devices will be of varying resolution. Some mice with large detents will
-   * only generate integer scroll amounts. But fractional values are also
-   * possible, for example, on some trackpads and newer mice that don't have
-   * "clicks".
-   */
-  float_t delta_y;
-
-  /**
-   * The number of "clicks" of the scroll wheel that have produced the
-   * event. The value may have system-specific acceleration applied to it,
-   * depending on the device. The positive and negative meanings are the same
-   * as for <code>delta_x</code> and <code>delta_y</code>.
-   *
-   * If you are scrolling, you probably want to use the delta values above.
-   * These tick events can be useful if you aren't doing actual scrolling and
-   * don't want or pixel values. An example may be cycling between different
-   * items in a game.
-   *
-   * You may receive fractional values for the wheel ticks if the mouse wheel
-   * is high resolution or doesn't have "clicks". If your program wants
-   * discrete events (as in the "picking items" example) you should accumulate
-   * fractional click values from multiple messages until the total value
-   * reaches positive or negative one. This should represent a similar amount
-   * of scrolling as for a mouse that has a discrete mouse wheel.
-   */
-  float_t wheel_ticks_x;
-
-  /** This value represents */
-  float_t wheel_ticks_y;
-
-  /**
-   * Indicates if the scroll <code>delta_x</code>/<code>delta_y</code>
-   * indicates pages or lines to scroll by. When true, the user is requesting
-   * to scroll by pages.
-   */
-  PP_Bool scroll_by_page;
-};
-
diff --git a/api/pp_instance.idl b/api/pp_instance.idl
deleted file mode 100644
index f67df7c..0000000
--- a/api/pp_instance.idl
+++ /dev/null
@@ -1,21 +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.
- */
-
-/**
- * This file defines the PP_Instance type which uniquely identifies one module
- * instance.
- */
-
-/**
- * The <code>PP_Instance</code> value uniquely identifies one instance of a
- * module (.nexe/PP_Module). There will be one module instance for every
- * \<embed> tag on a page.
- *
- * This identifier is an opaque handle assigned by the browser to the module.
- * It is guaranteed never to be 0, so a module can initialize it to 0 to
- * indicate a "NULL handle."
- */
-[assert_size(4)] typedef int32_t PP_Instance;
-
diff --git a/api/pp_macros.idl b/api/pp_macros.idl
deleted file mode 100644
index 78259f8..0000000
--- a/api/pp_macros.idl
+++ /dev/null
@@ -1,94 +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.
- */
-
-/**
- * Defines the common macros such as assert, inline, ...
- */
-
-#inline c
-
-/*
- * @addtogroup PP
- * @{
- */
-
-/* Use PP_INLINE to tell the compiler to inline functions.  The main purpose of
- * inline functions in ppapi is to allow us to define convenience functions in
- * the ppapi header files, without requiring clients or implementers to link a
- * PPAPI C library.  The "inline" keyword is not supported by pre-C99 C
- * compilers (such as MS Visual Studio 2008 and older versions of GCC).  MSVS
- * supports __forceinline and GCC supports __inline__.  Use of the static
- * keyword ensures (in C) that the function is not compiled on its own, which
- * could cause multiple definition errors.
- *  http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx
- *  http://gcc.gnu.org/onlinedocs/gcc/Inline.html
- */
-#if defined(__cplusplus)
-/* The inline keyword is part of C++ and guarantees we won't get multiple
- * definition errors.
- */
-# define PP_INLINE inline
-#else
-# if defined(_MSC_VER)
-#  define PP_INLINE static __forceinline
-# else
-#  define PP_INLINE static __inline__
-# endif
-#endif
-
-/* This is a compile-time assertion useful for ensuring that a given type is
-   a given number of bytes wide.  The size of the array is designed to be 1
-   (which should always be valid) if the enum's size is SIZE, and otherwise the
-   size of the array will be -1 (which all/most compilers should flag as an
-   error).  This is wrapped inside a struct, because if it is a simple global
-   we get multiple definition errors at link time.
-
-   NAME is the name of the type without any spaces or the struct or enum
-   keywords.
-
-   CTYPENAME is the typename required by C.  I.e., for a struct or enum, the
-   appropriate keyword must be included.
-
-   SIZE is the expected size in bytes.
- */
-#define PP_COMPILE_ASSERT_SIZE_IN_BYTES_IMPL(NAME, CTYPENAME, SIZE) \
-struct PP_Dummy_Struct_For_##NAME { \
-char _COMPILE_ASSERT_FAILED_The_type_named_ \
-## NAME ## _is_not_ ## SIZE ## \
-_bytes_wide[(sizeof(CTYPENAME) == SIZE) ? 1 : -1]; }
-
-/* PP_COMPILE_ASSERT_SIZE_IN_BYTES is for typenames that contain no spaces.
-   E.g.:
-   PP_COMPILE_ASSERT_SIZE_IN_BYTES(int, 4);
-   typedef struct { int a; } Foo;
-   PP_COMPILE_ASSERT_SIZE_IN_BYTES(Foo, 4);
- */
-#define PP_COMPILE_ASSERT_SIZE_IN_BYTES(NAME, SIZE) \
-PP_COMPILE_ASSERT_SIZE_IN_BYTES_IMPL(NAME, NAME, SIZE)
-
-/* PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES is for typenames that contain 'struct'
-   in C.  That is, struct names that are not typedefs.
-   E.g.:
-   struct Foo { int a; };
-   PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(Foo, 4);
- */
-#define PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(NAME, SIZE) \
-PP_COMPILE_ASSERT_SIZE_IN_BYTES_IMPL(NAME, struct NAME, SIZE)
-
-/* PP_COMPILE_ASSERT_ENUM_SIZE_IN_BYTES is for typenames that contain 'enum'
-   in C.  That is, enum names that are not typedefs.
-   E.g.:
-   enum Bar { A = 0, B = 1 };
-   PP_COMPILE_ASSERT_ENUM_SIZE_IN_BYTES(Foo, 4);
- */
-#define PP_COMPILE_ASSERT_ENUM_SIZE_IN_BYTES(NAME, SIZE) \
-PP_COMPILE_ASSERT_SIZE_IN_BYTES_IMPL(NAME, enum NAME, SIZE)
-
-/**
- * @}
- * End of addtogroup PP
- */
-
-#endinl
diff --git a/api/pp_module.idl b/api/pp_module.idl
deleted file mode 100644
index 425dc43..0000000
--- a/api/pp_module.idl
+++ /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.
- */
-
-/**
- * This file defines the PP_Module type which uniquely identifies the module
- * or .nexe.
- */
-
-/**
- * The PP_Module value uniquely identifies the module or .nexe.
- *
- * This identifier is an opaque handle assigned by the browser to the module. It
- * is guaranteed never to be 0, so a module can initialize it to 0 to
- * indicate a "NULL handle."
- */
-[assert_size(4)]
-typedef int32_t PP_Module;
-
diff --git a/api/pp_point.idl b/api/pp_point.idl
deleted file mode 100644
index 6cbe500..0000000
--- a/api/pp_point.idl
+++ /dev/null
@@ -1,74 +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.
- */
-
-/**
- * This file defines the API to create a 2 dimensional point.
- * 0,0 is the upper-left starting coordinate.
- */
-
-/**
- * The PP_Point structure defines the integer x and y coordinates of a point.
- */
-[assert_size(8), returnByValue]
-struct PP_Point {
-  /**
-   * This value represents the horizontal coordinate of a point, starting with 0
-   * as the left-most coordinate.
-   */
-  int32_t x;
-
-  /**
-   * This value represents the vertical coordinate of a point, starting with 0
-   * as the top-most coordinate.
-   */
-  int32_t y;
-};
-
-/**
- * The PP_FloatPoint structure defines the floating-point x and y coordinates
- * of a point.
- */
-[assert_size(8), returnByValue]
-struct PP_FloatPoint {
-  float_t x;
-  float_t y;
-};
-
-#inline c
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PP_MakePoint() creates a <code>PP_Point</code> given the x and y coordinates
- * as int32_t values.
- *
- * @param[in] x An int32_t value representing a horizontal coordinate of a
- * point, starting with 0 as the left-most coordinate.
- * @param[in] y An int32_t value representing a vertical coordinate of a point,
- * starting with 0 as the top-most coordinate.
- *
- * @return A <code>PP_Point</code> structure.
- */
-PP_INLINE struct PP_Point PP_MakePoint(int32_t x, int32_t y) {
-  struct PP_Point ret;
-  ret.x = x;
-  ret.y = y;
-  return ret;
-}
-
-PP_INLINE struct PP_FloatPoint PP_MakeFloatPoint(float x, float y) {
-  struct PP_FloatPoint ret;
-  ret.x = x;
-  ret.y = y;
-  return ret;
-}
-/**
- * @}
- */
-
-#endinl
-
diff --git a/api/pp_rect.idl b/api/pp_rect.idl
deleted file mode 100644
index 87492d7..0000000
--- a/api/pp_rect.idl
+++ /dev/null
@@ -1,99 +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.
- */
-
-/**
- * This file defines the APIs for creating a 2 dimensional rectangle.
- */
-
-/**
- * The <code>PP_Rect</code> struct contains the size and location of a 2D
- * rectangle.
- */
-[assert_size(16)]
-struct PP_Rect {
-  /**
-   * This value represents the x and y coordinates of the upper-left corner of
-   * the rectangle.
-   */
-  PP_Point point;
-
-  /** This value represents the width and height of the rectangle. */
-  PP_Size size;
-};
-
-/**
- * The <code>PP_FloatRect</code> struct contains the size and location of a 2D
- * rectangle.
- */
-struct PP_FloatRect {
-  /**
-   * This value represents the x and y coordinates of the upper-left corner of
-   * the rectangle.
-   */
-  PP_FloatPoint point;
-
-  /** This value represents the width and height of the rectangle. */
-  PP_FloatSize size;
-};
-
-#inline c
-
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PP_MakeRectFromXYWH() creates a <code>PP_Rect</code> given x and y
- * coordinates and width and height dimensions as int32_t values.
- *
- * @param[in] x An int32_t value representing a horizontal coordinate of a
- * point, starting with 0 as the left-most coordinate.
- * @param[in] y An int32_t value representing a vertical coordinate of a point,
- * starting with 0 as the top-most coordinate.
- * @param[in] w An int32_t value representing a width.
- * @param[in] h An int32_t value representing a height.
- *
- * @return A <code>PP_Rect</code> structure.
- */
-PP_INLINE struct PP_Rect PP_MakeRectFromXYWH(int32_t x, int32_t y,
-                                             int32_t w, int32_t h) {
-  struct PP_Rect ret;
-  ret.point.x = x;
-  ret.point.y = y;
-  ret.size.width = w;
-  ret.size.height = h;
-  return ret;
-}
-
-/**
- * PP_MakeFloatRectFromXYWH() creates a <code>PP_FloatRect</code> given x and y
- * coordinates and width and height dimensions as float values.
- *
- * @param[in] x An float value representing a horizontal coordinate of a
- * point, starting with 0 as the left-most coordinate.
- * @param[in] y An float value representing a vertical coordinate of a point,
- * starting with 0 as the top-most coordinate.
- * @param[in] w An float value representing a width.
- * @param[in] h An float value representing a height.
- *
- * @return A <code>PP_FloatRect</code> structure.
- */
-PP_INLINE struct PP_FloatRect PP_MakeFloatRectFromXYWH(float x, float y,
-                                                       float w, float h) {
-  struct PP_FloatRect ret;
-  ret.point.x = x;
-  ret.point.y = y;
-  ret.size.width = w;
-  ret.size.height = h;
-  return ret;
-}
-
-/**
- * @}
- */
-
-#endinl
-
diff --git a/api/pp_resource.idl b/api/pp_resource.idl
deleted file mode 100644
index 62bdf8e..0000000
--- a/api/pp_resource.idl
+++ /dev/null
@@ -1,27 +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.
- */
-
-/**
- * This file defines the <code>PP_Resource</code> type which represents data
- * associated with the module.
- */
-
-/**
- * This typedef represents an opaque handle assigned by the browser to the
- * resource. The handle is guaranteed never to be 0 for a valid resource, so a
- * module can initialize it to 0 to indicate a "NULL handle." Some interfaces
- * may return a NULL resource to indicate failure.
- *
- * While a Var represents something callable to JS or from the module to
- * the DOM, a resource has no meaning or visibility outside of the module
- * interface.
- *
- * Resources are reference counted. Use <code>AddRefResource()</code>
- * and <code>ReleaseResource()</code> in <code>ppb_core.h</code> to manage the
- * reference count of a resource. The data will be automatically destroyed when
- * the internal reference count reaches 0.
- */
-[assert_size(4)] typedef int32_t PP_Resource;
-
diff --git a/api/pp_size.idl b/api/pp_size.idl
deleted file mode 100644
index eddbc47..0000000
--- a/api/pp_size.idl
+++ /dev/null
@@ -1,72 +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.
- */
-
-/**
- * This file defines the width and height of a 2D rectangle.
- */
-
-/**
- * The <code>PP_Size</code> struct contains the size of a 2D rectangle.
- */
-[assert_size(8)]
-struct PP_Size {
-  /** This value represents the width of the rectangle. */
-  int32_t width;
-  /** This value represents the height of the rectangle. */
-  int32_t height;
-};
-
-/**
- * The <code>PP_FloatSize</code> struct contains the size of a 2D rectangle.
- */
-struct PP_FloatSize {
-   /** This value represents the width of the rectangle. */
-  float_t width;
-  /** This value represents the height of the rectangle. */
-  float_t height;
-};
-
-#inline c
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PP_MakeSize() creates a <code>PP_Size</code> given a width and height as
- * int32_t values.
- *
- * @param[in] w An int32_t value representing a width.
- * @param[in] h An int32_t value representing a height.
- *
- * @return A <code>PP_Size</code> structure.
- */
-PP_INLINE struct PP_Size PP_MakeSize(int32_t w, int32_t h) {
-  struct PP_Size ret;
-  ret.width = w;
-  ret.height = h;
-  return ret;
-}
-
-/**
- * PP_MakeFloatSize() creates a <code>PP_FloatSize</code> given a
- * width and height as float values.
- *
- * @param[in] w An float value representing a width.
- * @param[in] h An float value representing a height.
- *
- * @return A <code>PP_FloatSize</code> structure.
- */
-PP_INLINE struct PP_FloatSize PP_MakeFloatSize(float w, float h) {
-  struct PP_FloatSize ret;
-  ret.width = w;
-  ret.height = h;
-  return ret;
-}
-/**
- * @}
- */
-#endinl
-
diff --git a/api/pp_stdint.idl b/api/pp_stdint.idl
deleted file mode 100644
index fc93d48..0000000
--- a/api/pp_stdint.idl
+++ /dev/null
@@ -1,100 +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.
- */
-
-/**
- * This file provides a definition of C99 sized types
- * for Microsoft compilers. These definitions only apply
- * for trusted modules.
- */
-
-label Chrome {
-  M13 = 0.0
-};
-
-[version=0.0]
-describe {
-  /** Standard Ints. */
-  int8_t;
-  int16_t;
-  int32_t;
-  int64_t;
-  uint8_t;
-  uint16_t;
-  uint32_t;
-  uint64_t;
-  /** Small and large floats. */
-  double_t;
-  float_t;
-
-  /** Native file handle (int). */
-  handle_t;
-
-  /** Interface object (void *). */
-  interface_t;
-
-  /** Used for padding, should be (u)int8_t */
-  char;
-
-  /** Pointer to memory (void *). */
-  mem_t;
-
-  /** Pointer to pointer to memory (void **). */
-  mem_ptr_t;
-
-  /** Pointer to null terminated string (char *). */
-  str_t;
-
-  /** Pointer to constant null terminated string (const char *). */
-  cstr_t;
-
-  /** No return value. */
-  void;
-
-  /** Platform-specific file handle */
-  PP_FileHandle;
-};
-
-#inline c
-
-/**
- *
- * @addtogroup Typedefs
- * @{
- */
-#if defined(_MSC_VER)
-
-/** This value represents a guaranteed unsigned 8 bit integer. */
-typedef unsigned char uint8_t;
-
-/** This value represents a guaranteed signed 8 bit integer. */
-typedef signed char int8_t;
-
-/** This value represents a guaranteed unsigned 16 bit short. */
-typedef unsigned short uint16_t;
-
-/** This value represents a guaranteed signed 16 bit short. */
-typedef short int16_t;
-
-/** This value represents a guaranteed unsigned 32 bit integer. */
-typedef unsigned int uint32_t;
-
-/** This value represents a guaranteed signed 32 bit integer. */
-typedef int int32_t;
-
-/** This value represents a guaranteed signed 64 bit integer. */
-typedef __int64 int64_t;
-
-/** This value represents a guaranteed unsigned 64 bit integer. */
-typedef unsigned __int64 uint64_t;
-
-#else
-#include <stdint.h>
-#endif
-/**
- * @}
- */
-
-#endinl
-
diff --git a/api/pp_time.idl b/api/pp_time.idl
deleted file mode 100644
index 65be2df..0000000
--- a/api/pp_time.idl
+++ /dev/null
@@ -1,37 +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.
- */
-
-/**
- * This file defines time, time ticks and time delta types.
- */
-
-
-/**
- * The <code>PP_Time</code> type represents the "wall clock time" according
- * to the browser and is defined as the number of seconds since the Epoch
- * (00:00:00 UTC, January 1, 1970).
- */
-[assert_size(8)]
-typedef double_t PP_Time;
-
-/**
- * A <code>PP_TimeTicks</code> value represents time ticks which are measured
- * in seconds and are used for indicating the time that certain messages were
- * received. In contrast to <code>PP_Time</code>, <code>PP_TimeTicks</code>
- * does not correspond to any actual wall clock time and will not change
- * discontinuously if the user changes their computer clock.
- *
- * The units are in seconds, but are not measured relative to any particular
- * epoch, so the most you can do is compare two values.
- */
-[assert_size(8)]
-typedef double_t PP_TimeTicks;
-
-/**
- * A <code>PP_TimeDelta</code> value represents a duration of time which is
- * measured in seconds.
- */
-[assert_size(8)]
-typedef double_t PP_TimeDelta;
diff --git a/api/pp_touch_point.idl b/api/pp_touch_point.idl
deleted file mode 100644
index 0cea0c5..0000000
--- a/api/pp_touch_point.idl
+++ /dev/null
@@ -1,74 +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.
- */
-
-
-/**
- * This file defines the API to create a touch point or position where fingers        
- * makes contact with touch screen device.
- */
-
-/**
- * The <code>PP_TouchPoint</code> struct represents all information about a
- * single touch point, such as position, id, rotation angle, and pressure.
- */
-[assert_size(28), returnByValue]
-struct PP_TouchPoint {
-  /**
-   * This value represents the identifier for this TouchPoint. The id
-   * corresponds to the order in which the points were pressed. For example,
-   * the first point to be pressed has an id of 0, the second has an id of 1,
-   * and so on. An id can be reused when a touch point is released.  For
-   * example, if two fingers are down, with id 0 and 1, and finger 0 releases,
-   * the next finger to be pressed can be assigned to id 0.
-   */
-  uint32_t id;
-
-  /**
-   * This value represents the x and y pixel position of this TouchPoint
-   * relative to the upper-left of the module instance receiving the event.
-   */
-  PP_FloatPoint position;
-
-  /**
-   * This value represents the elliptical radii, in screen pixels, in the x
-   * and y direction of this TouchPoint.
-   */
-  PP_FloatPoint radius;
-
-  /**
-   * This value represents the angle of rotation in degrees of the elliptical
-   * model of this TouchPoint clockwise from "up."
-   */
-  float_t rotation_angle;
-
-  /**
-   * This value represents the pressure applied to this TouchPoint.  This value
-   * is typically between 0 and 1, with 0 indicating no pressure and 1
-   * indicating some maximum pressure. Scaling differs depending on the
-   * hardware and the value is not guaranteed to stay within that range.
-   */
-  float_t pressure;
-};
-
-#inline c
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PP_MakeTouchPoint() creates a <code>PP_TouchPoint</code>.
- *
- * @return A <code>PP_TouchPoint</code> structure.
- */
-PP_INLINE struct PP_TouchPoint PP_MakeTouchPoint(void) {
-  struct PP_TouchPoint result = { 0, {0, 0}, {0, 0}, 0, 0 };
-  return result;
-}
-/**
- * @}
- */
-
-#endinl
diff --git a/api/pp_var.idl b/api/pp_var.idl
deleted file mode 100644
index ed8822b..0000000
--- a/api/pp_var.idl
+++ /dev/null
@@ -1,254 +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.
- */
-
-/**
- * This file defines the API for handling the passing of data types between
- * your module and the page.
- */
-
-/**
- * The <code>PP_VarType</code> is an enumeration of the different types that
- * can be contained within a <code>PP_Var</code> structure.
- */
-[assert_size(4)]
-enum PP_VarType {
-  /**
-   * An undefined value.
-   */
-  PP_VARTYPE_UNDEFINED = 0,
-
-  /**
-   * A NULL value. This is similar to undefined, but JavaScript differentiates
-   * the two so it is exposed here as well.
-   */
-  PP_VARTYPE_NULL = 1,
-
-  /**
-   * A boolean value, use the <code>as_bool</code> member of the var.
-   */
-  PP_VARTYPE_BOOL = 2,
-
-  /**
-   * A 32-bit integer value. Use the <code>as_int</code> member of the var.
-   */
-  PP_VARTYPE_INT32 = 3,
-
-  /**
-   * A double-precision floating point value. Use the <code>as_double</code>
-   * member of the var.
-   */
-  PP_VARTYPE_DOUBLE = 4,
-
-  /**
-   * The Var represents a string. The <code>as_id</code> field is used to
-   * identify the string, which may be created and retrieved from the
-   * <code>PPB_Var</code> interface. These objects are reference counted, so
-   * AddRef() and Release() must be used properly to avoid memory leaks.
-   */
-  PP_VARTYPE_STRING = 5,
-
-  /**
-   * Represents a JavaScript object. This vartype is not currently usable
-   * from modules, although it is used internally for some tasks. These objects
-   * are reference counted, so AddRef() and Release() must be used properly to
-   * avoid memory leaks.
-   */
-  PP_VARTYPE_OBJECT = 6,
-
-  /**
-   * Represents an array of Vars. The <code>as_id</code> field is used to
-   * identify the array, which may be created and manipulated from the
-   * <code>PPB_VarArray</code> interface. These objects are reference counted,
-   * so AddRef() and Release() must be used properly to avoid memory leaks.
-   */
-  PP_VARTYPE_ARRAY = 7,
-
-  /**
-   * Represents a mapping from strings to Vars. The <code>as_id</code> field is
-   * used to identify the dictionary, which may be created and manipulated from
-   * the <code>PPB_VarDictionary</code> interface. These objects are reference
-   * counted, so AddRef() and Release() must be used properly to avoid memory
-   * leaks.
-   */
-  PP_VARTYPE_DICTIONARY = 8,
-
-  /**
-   * ArrayBuffer represents a JavaScript ArrayBuffer. This is the type which
-   * represents Typed Arrays in JavaScript. Unlike JavaScript 'Array', it is
-   * only meant to contain basic numeric types, and is always stored
-   * contiguously. See PPB_VarArrayBuffer_Dev for functions special to
-   * ArrayBuffer vars. These objects are reference counted, so AddRef() and
-   * Release() must be used properly to avoid memory leaks.
-   */
-  PP_VARTYPE_ARRAY_BUFFER = 9,
-
-  /**
-   * This type allows the <code>PP_Var</code> to wrap a <code>PP_Resource
-   * </code>. This can be useful for sending or receiving some types of
-   * <code>PP_Resource</code> using <code>PPB_Messaging</code> or
-   * <code>PPP_Messaging</code>.
-   *
-   * These objects are reference counted, so AddRef() and Release() must be used
-   * properly to avoid memory leaks. Under normal circumstances, the
-   * <code>PP_Var</code> will implicitly hold a reference count on the
-   * <code>PP_Resource</code> on your behalf. For example, if you call
-   * VarFromResource(), it implicitly calls PPB_Core::AddRefResource() on the
-   * <code>PP_Resource</code>. Likewise, PPB_Var::Release() on a Resource
-   * <code>PP_Var</code> will invoke PPB_Core::ReleaseResource() when the Var
-   * reference count goes to zero.
-   */
-  PP_VARTYPE_RESOURCE = 10
-};
-
-
-/**
- * The PP_VarValue union stores the data for any one of the types listed
- * in the PP_VarType enum.
- */
-[union] struct PP_VarValue {
-  /**
-   * If <code>type</code> is <code>PP_VARTYPE_BOOL</code>,
-   * <code>as_bool</code> represents the value of this <code>PP_Var</code> as
-   * <code>PP_Bool</code>.
-   */
-  PP_Bool as_bool;
-
-  /**
-   * If <code>type</code> is <code>PP_VARTYPE_INT32</code>,
-   * <code>as_int</code> represents the value of this <code>PP_Var</code> as
-   * <code>int32_t</code>.
-   */
-  int32_t as_int;
-
-  /**
-   * If <code>type</code> is <code>PP_VARTYPE_DOUBLE</code>,
-   * <code>as_double</code> represents the value of this <code>PP_Var</code>
-   * as <code>double</code>.
-   */
-  double_t as_double;
-
-  /**
-   * If <code>type</code> is <code>PP_VARTYPE_STRING</code>,
-   * <code>PP_VARTYPE_OBJECT</code>, <code>PP_VARTYPE_ARRAY</code>,
-   * <code>PP_VARTYPE_DICTIONARY</code>, <code>PP_VARTYPE_ARRAY_BUFFER</code>,
-   * or <code>PP_VARTYPE_RESOURCE</code>, <code>as_id</code> represents the
-   * value of this <code>PP_Var</code> as an opaque handle assigned by the
-   * browser. This handle is guaranteed never to be 0, so a module can
-   * initialize this ID to 0 to indicate a "NULL handle."
-   */
-  int64_t as_id;
-};
-
-/**
- * The <code>PP_VAR</code> struct is a variant data type and can contain any
- * value of one of the types named in the <code>PP_VarType</code> enum. This
- * structure is for passing data between native code which can be strongly
- * typed and the browser (JavaScript) which isn't strongly typed.
- *
- * JavaScript has a "number" type for holding a number, and does not
- * differentiate between floating point and integer numbers. The
- * JavaScript operations will try to optimize operations by using
- * integers when possible, but could end up with doubles. Therefore,
- * you can't assume a numeric <code>PP_Var</code> will be the type you expect.
- * Your code should be capable of handling either int32_t or double for numeric
- * PP_Vars sent from JavaScript.
- */
-[passByValue, returnByValue, assert_size(16)]
-struct PP_Var {
-  PP_VarType type;
-
-  /**
-   * The <code>padding</code> ensures <code>value</code> is aligned on an
-   * 8-byte boundary relative to the start of the struct. Some compilers
-   * align doubles on 8-byte boundaries for 32-bit x86, and some align on
-   * 4-byte boundaries.
-   */
-  int32_t padding;
-
-  /**
-   * This <code>value</code> represents the contents of the PP_Var. Only one of
-   * the fields of <code>value</code> is valid at a time based upon
-   * <code>type</code>.
-   */
-  PP_VarValue value;
-};
-
-
-#inline c
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PP_MakeUndefined() is used to wrap an undefined value into a
- * <code>PP_Var</code> struct for passing to the browser.
- *
- * @return A <code>PP_Var</code> structure.
- */
-PP_INLINE struct PP_Var PP_MakeUndefined(void) {
-  struct PP_Var result = { PP_VARTYPE_UNDEFINED, 0, {PP_FALSE} };
-  return result;
-}
-
-/**
- * PP_MakeNull() is used to wrap a null value into a
- * <code>PP_Var</code> struct for passing to the browser.
- *
- * @return A <code>PP_Var</code> structure,
- */
-PP_INLINE struct PP_Var PP_MakeNull(void) {
-  struct PP_Var result = { PP_VARTYPE_NULL, 0, {PP_FALSE} };
-  return result;
-}
-
-/**
- * PP_MakeBool() is used to wrap a boolean value into a
- * <code>PP_Var</code> struct for passing to the browser.
- *
- * @param[in] value A <code>PP_Bool</code> enumeration to
- * wrap.
- *
- * @return A <code>PP_Var</code> structure.
- */
-PP_INLINE struct PP_Var PP_MakeBool(PP_Bool value) {
-  struct PP_Var result = { PP_VARTYPE_BOOL, 0, {PP_FALSE} };
-  result.value.as_bool = value;
-  return result;
-}
-
-/**
- * PP_MakeInt32() is used to wrap a 32 bit integer value
- * into a <code>PP_Var</code> struct for passing to the browser.
- *
- * @param[in] value An int32 to wrap.
- *
- * @return A <code>PP_Var</code> structure.
- */
-PP_INLINE struct PP_Var PP_MakeInt32(int32_t value) {
-  struct PP_Var result = { PP_VARTYPE_INT32, 0, {PP_FALSE} };
-  result.value.as_int = value;
-  return result;
-}
-
-/**
- * PP_MakeDouble() is used to wrap a double value into a
- * <code>PP_Var</code> struct for passing to the browser.
- *
- * @param[in] value A double to wrap.
- *
- * @return A <code>PP_Var</code> structure.
- */
-PP_INLINE struct PP_Var PP_MakeDouble(double value) {
-  struct PP_Var result = { PP_VARTYPE_DOUBLE, 0, {PP_FALSE} };
-  result.value.as_double = value;
-  return result;
-}
-/**
- * @}
- */
-
-#endinl
-
diff --git a/api/ppb.idl b/api/ppb.idl
deleted file mode 100644
index a46e18c..0000000
--- a/api/ppb.idl
+++ /dev/null
@@ -1,29 +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.
- */
-
-/**
- * This file defines a function pointer type for the
- * <code>PPB_GetInterface</code> function.
- */
-
-/**
- * This function pointer type defines the signature for the
- * <code>PPB_GetInterface</code> function. A generic
- * <code>PPB_GetInterface</code> pointer is passed to
- * <code>PPP_InitializedModule</code> when your module is loaded. You can use
- * this pointer to request a pointer to a specific browser interface. Browser
- * interface names are ASCII strings and are generally defined in the header
- * file for the interface, such as <code>PPB_AUDIO_INTERFACE</code> found in
- * <code>ppb.audio.h</code> or
- * <code>PPB_GRAPHICS_2D_INTERFACE</code> in <code>ppb_graphics_2d.h</code>.
- * Click
- * <a href="globals_defs.html"
- * title="macros">here</a> for a complete list of interface
- * names.
- *
- * This value will be NULL if the interface is not supported on the browser.
- */
-typedef interface_t PPB_GetInterface([in] str_t interface_name);
-
diff --git a/api/ppb_audio.idl b/api/ppb_audio.idl
deleted file mode 100644
index 14e1b79..0000000
--- a/api/ppb_audio.idl
+++ /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.
- */
-
-/**
- * This file defines the <code>PPB_Audio</code> interface, which provides
- * realtime stereo audio streaming capabilities.
- */
-
-label Chrome {
-  M14 = 1.0,
-  M31 = 1.1
-};
-
-/**
- * <code>PPB_Audio_Callback</code> defines the type of an audio callback
- * function used to fill the audio buffer with data. Please see the
- * Create() function in the <code>PPB_Audio</code> interface for
- * more details on this callback.
- *
- * @param[in] sample_buffer A buffer to fill with audio data.
- * @param[in] buffer_size_in_bytes The size of the buffer in bytes.
- * @param[in] latency How long before the audio data is to be presented.
- * @param[inout] user_data An opaque pointer that was passed into
- * <code>PPB_Audio.Create()</code>.
- */
-typedef void PPB_Audio_Callback([out] mem_t sample_buffer,
-                                [in] uint32_t buffer_size_in_bytes,
-                                [in, version=1.1] PP_TimeDelta latency,
-                                [inout] mem_t user_data);
-
-/**
- * The <code>PPB_Audio</code> interface contains pointers to several functions
- * for handling audio resources. Refer to the
- * <a href="/native-client/devguide/coding/audio.html">Audio</a>
- * chapter in the Developer's Guide for information on using this interface.
- * Please see descriptions for each <code>PPB_Audio</code> and
- * <code>PPB_AudioConfig</code> function for more details. A C example using
- * <code>PPB_Audio</code> and <code>PPB_AudioConfig</code> follows.
- *
- * <strong>Example: </strong>
- * 
- * @code
- * void audio_callback(void* sample_buffer,
- *                     uint32_t buffer_size_in_bytes,
- *                     void* user_data) {
- *   ... quickly fill in the buffer with samples and return to caller ...
- *  }
- *
- * ...Assume the application has cached the audio configuration interface in
- * audio_config_interface and the audio interface in
- * audio_interface...
- *
- * uint32_t count = audio_config_interface->RecommendSampleFrameCount(
- *     PP_AUDIOSAMPLERATE_44100, 4096);
- * PP_Resource pp_audio_config = audio_config_interface->CreateStereo16Bit(
- *     pp_instance, PP_AUDIOSAMPLERATE_44100, count);
- * PP_Resource pp_audio = audio_interface->Create(pp_instance, pp_audio_config,
- *     audio_callback, NULL);
- * audio_interface->StartPlayback(pp_audio);
- *
- * ...audio_callback() will now be periodically invoked on a separate thread...
- * @endcode
- */
-interface PPB_Audio {
- /**
-  * Create() creates an audio resource. No sound will be heard until
-  * StartPlayback() is called. The callback is called with the buffer address
-  * and given user data whenever the buffer needs to be filled. From within the
-  * callback, you should not call <code>PPB_Audio</code> functions. The
-  * callback will be called on a different thread than the one which created
-  * the interface. For performance-critical applications (i.e. low-latency
-  * audio), the callback should avoid blocking or calling functions that can
-  * obtain locks, such as malloc. The layout and the size of the buffer passed
-  * to the audio callback will be determined by the device configuration and is
-  * specified in the <code>AudioConfig</code> documentation.
-  *
-  * @param[in] instance A <code>PP_Instance</code> identifying one instance
-  * of a module.
-  * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-  * config resource.
-  * @param[in] audio_callback A <code>PPB_Audio_Callback</code> callback
-  * function that the browser calls when it needs more samples to play.
-  * @param[in] user_data A pointer to user data used in the callback function.
-  *
-  * @return A <code>PP_Resource</code> containing the audio resource if
-  * successful or 0 if the configuration cannot be honored or the callback is
-  * null.
-  */
-  PP_Resource Create(
-      [in] PP_Instance instance,
-      [in] PP_Resource config,
-      [in] PPB_Audio_Callback audio_callback,
-      [inout] mem_t user_data);
-
-  /**
-   * IsAudio() determines if the provided resource is an audio resource.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a generic
-   * resource.
-   *
-   * @return A <code>PP_Bool</code> containing containing <code>PP_TRUE</code>
-   * if the given resource is an Audio resource, otherwise
-   * <code>PP_FALSE</code>.
-   */
-  PP_Bool IsAudio(
-      [in] PP_Resource resource);
-
-  /**
-   * GetCurrrentConfig() returns an audio config resource for the given audio
-   * resource.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * resource.
-   *
-   * @return A <code>PP_Resource</code> containing the audio config resource if
-   * successful.
-   */
-  PP_Resource GetCurrentConfig(
-      [in] PP_Resource audio);
-
-  /**
-   * StartPlayback() starts the playback of the audio resource and begins
-  * periodically calling the callback.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if
-   * successful, otherwise <code>PP_FALSE</code>. Also returns
-   * <code>PP_TRUE</code> (and be a no-op) if called while playback is already
-   * in progress.
-   */
-  PP_Bool StartPlayback(
-      [in] PP_Resource audio);
-
-  /**
-   * StopPlayback() stops the playback of the audio resource.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if
-   * successful, otherwise <code>PP_FALSE</code>. Also returns
-   * <code>PP_TRUE</code> (and is a no-op) if called while playback is already
-   * stopped. If a callback is in progress, StopPlayback() will block until the
-   * callback completes.
-   */
-  PP_Bool StopPlayback(
-      [in] PP_Resource audio);
-};
-
diff --git a/api/ppb_audio_buffer.idl b/api/ppb_audio_buffer.idl
deleted file mode 100644
index 46864d1..0000000
--- a/api/ppb_audio_buffer.idl
+++ /dev/null
@@ -1,140 +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.
- */
-
-/**
- * Defines the <code>PPB_AudioBuffer</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
-  [channel=dev] M34 = 0.1,
-  M35 = 0.1
-};
-
-/**
- * PP_AudioBuffer_SampleRate is an enumeration of the different audio sample
- * rates.
- */
-enum PP_AudioBuffer_SampleRate {
-  PP_AUDIOBUFFER_SAMPLERATE_UNKNOWN = 0,
-  PP_AUDIOBUFFER_SAMPLERATE_8000 = 8000,
-  PP_AUDIOBUFFER_SAMPLERATE_16000 = 16000,
-  PP_AUDIOBUFFER_SAMPLERATE_22050 = 22050,
-  PP_AUDIOBUFFER_SAMPLERATE_32000 = 32000,
-  PP_AUDIOBUFFER_SAMPLERATE_44100 = 44100,
-  PP_AUDIOBUFFER_SAMPLERATE_48000 = 48000,
-  PP_AUDIOBUFFER_SAMPLERATE_96000 = 96000,
-  PP_AUDIOBUFFER_SAMPLERATE_192000 = 192000
-};
-
-/**
- * PP_AudioBuffer_SampleSize is an enumeration of the different audio sample
- * sizes.
- */
-enum PP_AudioBuffer_SampleSize {
-  PP_AUDIOBUFFER_SAMPLESIZE_UNKNOWN = 0,
-  PP_AUDIOBUFFER_SAMPLESIZE_16_BITS = 2
-};
-
-[version=0.1]
-interface PPB_AudioBuffer {
-  /**
-   * Determines if a resource is an AudioBuffer resource.
-   *
-   * @param[in] resource The <code>PP_Resource</code> to test.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * resource is an AudioBuffer resource or <code>PP_FALSE</code> otherwise.
-   */
-  PP_Bool IsAudioBuffer([in] PP_Resource resource);
-
-  /**
-   * Gets the timestamp of the audio buffer.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   *
-   * @return A <code>PP_TimeDelta</code> containing the timestamp of the audio
-   * buffer. Given in seconds since the start of the containing audio stream.
-   */
-  [on_failure=0.0]
-  PP_TimeDelta GetTimestamp([in] PP_Resource buffer);
-
-  /**
-   * Sets the timestamp of the audio buffer.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   * @param[in] timestamp A <code>PP_TimeDelta</code> containing the timestamp
-   * of the audio buffer. Given in seconds since the start of the containing
-   * audio stream.
-   */
-  void SetTimestamp([in] PP_Resource buffer, [in] PP_TimeDelta timestamp);
-
-  /**
-   * Gets the sample rate of the audio buffer.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   *
-   * @return The sample rate of the audio buffer.
-   */
-  [on_failure=PP_AUDIOBUFFER_SAMPLERATE_UNKNOWN]
-  PP_AudioBuffer_SampleRate GetSampleRate([in] PP_Resource buffer);
-
-  /**
-   * Gets the sample size of the audio buffer.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   *
-   * @return The sample size of the audio buffer.
-   */
-  [on_failure=PP_AUDIOBUFFER_SAMPLESIZE_UNKNOWN]
-  PP_AudioBuffer_SampleSize GetSampleSize([in] PP_Resource buffer);
-  
-  /**
-   * Gets the number of channels in the audio buffer.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   *
-   * @return The number of channels in the audio buffer.
-   */
-  uint32_t GetNumberOfChannels([in] PP_Resource buffer);
-
-  /**
-   * Gets the number of samples in the audio buffer.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   *
-   * @return The number of samples in the audio buffer.
-   * For example, at a sampling rate of 44,100 Hz in stereo audio, a buffer
-   * containing 4410 * 2 samples would have a duration of 100 milliseconds.
-   */
-  uint32_t GetNumberOfSamples([in] PP_Resource buffer);
-
-  /**
-   * Gets the data buffer containing the audio samples.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   *
-   * @return A pointer to the beginning of the data buffer.
-   */
-  mem_t GetDataBuffer([in] PP_Resource buffer);
-
-  /**
-   * Gets the size of the data buffer in bytes.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   *
-   * @return The size of the data buffer in bytes.
-   */
-  uint32_t GetDataBufferSize([in] PP_Resource buffer);
-};
diff --git a/api/ppb_audio_config.idl b/api/ppb_audio_config.idl
deleted file mode 100644
index f7e9511..0000000
--- a/api/ppb_audio_config.idl
+++ /dev/null
@@ -1,217 +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.
- */
-
-/**
- * This file defines the PPB_AudioConfig interface for establishing an
- * audio configuration resource within the browser.
- */
-
-label Chrome {
-  M14 = 1.0,
-  M19 = 1.1
-};
-
-/**
- * This enumeration contains audio frame count constants.
- * <code>PP_AUDIOMINSAMPLEFRAMECOUNT</code> is the minimum possible frame
- * count. <code>PP_AUDIOMAXSAMPLEFRAMECOUNT</code> is the maximum possible
- * frame count.
- */
-[unnamed] enum PP_AudioFrameSize {
-  PP_AUDIOMINSAMPLEFRAMECOUNT = 64,
-  PP_AUDIOMAXSAMPLEFRAMECOUNT = 32768
-};
-
-
-/**
- * PP_AudioSampleRate is an enumeration of the different audio sampling rates.
- * <code>PP_AUDIOSAMPLERATE_44100</code> is the sample rate used on CDs and
- * <code>PP_AUDIOSAMPLERATE_48000</code> is the sample rate used on DVDs and
- * Digital Audio Tapes.
- */
-[assert_size(4)]
-enum PP_AudioSampleRate {
-  PP_AUDIOSAMPLERATE_NONE = 0,
-  PP_AUDIOSAMPLERATE_44100 = 44100,
-  PP_AUDIOSAMPLERATE_48000 = 48000,
-  PP_AUDIOSAMPLERATE_LAST = PP_AUDIOSAMPLERATE_48000
-} ;
-
-
-/**
- * The <code>PPB_AudioConfig</code> interface contains pointers to several
- * functions for establishing your audio configuration within the browser.
- * This interface only supports 16-bit stereo output.
- *
- * Refer to the
- * <a href="/native-client/devguide/coding/audio.html">Audio
- * </a> chapter in the Developer's Guide for information on using this
- * interface.
- */
-[macro="PPB_AUDIO_CONFIG_INTERFACE"]
-interface PPB_AudioConfig {
-  /**
-   * CreateStereo16bit() creates a 16 bit audio configuration resource. The
-   * <code>sample_rate</code> should be the result of calling
-   * <code>RecommendSampleRate</code> and <code>sample_frame_count</code> should
-   * be the result of calling <code>RecommendSampleFrameCount</code>. If the
-   * sample frame count or bit rate isn't supported, this function will fail and
-   * return a null resource.
-   *
-   * A single sample frame on a stereo device means one value for the left
-   * channel and one value for the right channel.
-   *
-   * Buffer layout for a stereo int16 configuration:
-   * <code>int16_t *buffer16;</code>
-   * <code>buffer16[0]</code> is the first left channel sample.
-   * <code>buffer16[1]</code> is the first right channel sample.
-   * <code>buffer16[2]</code> is the second left channel sample.
-   * <code>buffer16[3]</code> is the second right channel sample.
-   * ...
-   * <code>buffer16[2 * (sample_frame_count - 1)]</code> is the last left
-   * channel sample.
-   * <code>buffer16[2 * (sample_frame_count - 1) + 1]</code> is the last
-   * right channel sample.
-   * Data will always be in the native endian format of the platform.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] sample_rate A <code>PP_AudioSampleRate</code> which is either
-   * <code>PP_AUDIOSAMPLERATE_44100</code> or
-   * <code>PP_AUDIOSAMPLERATE_48000</code>.
-   * @param[in] sample_frame_count A <code>uint32_t</code> frame count returned
-   * from the <code>RecommendSampleFrameCount</code> function.
-   *
-   * @return A <code>PP_Resource</code> containing the
-   * <code>PPB_Audio_Config</code> if successful or a null resource if the
-   * sample frame count or bit rate are not supported.
-   */
-  PP_Resource CreateStereo16Bit(
-      [in] PP_Instance instance,
-      [in] PP_AudioSampleRate sample_rate,
-      [in] uint32_t sample_frame_count);
-
-  /**
-   * This comment block applies to version 1.0, which is deprecated in favor of
-   * the same function but with slightly different signature and behavior.
-   *
-   * RecommendSampleFrameCount() returns the supported sample frame count
-   * closest to the requested count. The sample frame count determines the
-   * overall latency of audio. Since one "frame" is always buffered in advance,
-   * smaller frame counts will yield lower latency, but higher CPU utilization.
-   * For best audio performance, use the value returned by RecommendSampleRate
-   * as the input sample rate, then use the RecommendSampleFrameCount return
-   * value when creating the audio configuration resource.
-   *
-   * Sample counts less than
-   * <code>PP_AUDIOMINSAMPLEFRAMECOUNT</code> and greater than
-   * <code>PP_AUDIOMAXSAMPLEFRAMECOUNT</code> are never supported on any
-   * system, but values in between aren't necessarily glitch-free.
-   *
-   * @param[in] sample_rate A <code>PP_AudioSampleRate</code> which is either
-   * <code>PP_AUDIOSAMPLERATE_44100</code> or
-   * <code>PP_AUDIOSAMPLERATE_48000.</code>
-   * @param[in] requested_sample_frame_count A <code>uint_32t</code> requested
-   * frame count.
-   *
-   * @return A <code>uint32_t</code> containing the recommended sample frame
-   * count if successful.
-   */
-  [deprecate=1.1]
-  uint32_t RecommendSampleFrameCount(
-      [in] PP_AudioSampleRate sample_rate,
-      [in] uint32_t requested_sample_frame_count);
-
-  /**
-   * RecommendSampleFrameCount() returns the supported sample frame count
-   * closest to the requested count. The sample frame count determines the
-   * overall latency of audio. Since one "frame" is always buffered in advance,
-   * smaller frame counts will yield lower latency, but higher CPU utilization.
-   *
-   * Supported sample frame counts will vary by hardware and system (consider
-   * that the local system might be anywhere from a cell phone or a high-end
-   * audio workstation). Sample counts less than
-   * <code>PP_AUDIOMINSAMPLEFRAMECOUNT</code> and greater than
-   * <code>PP_AUDIOMAXSAMPLEFRAMECOUNT</code> are never supported on any
-   * system, but values in between aren't necessarily valid. This function
-   * will return a supported count closest to the requested frame count.
-   *
-   * RecommendSampleFrameCount() result is intended for audio output devices.
-   *
-   * @param[in] instance
-   * @param[in] sample_rate A <code>PP_AudioSampleRate</code> which is either
-   * <code>PP_AUDIOSAMPLERATE_44100</code> or
-   * <code>PP_AUDIOSAMPLERATE_48000.</code>
-   * @param[in] requested_sample_frame_count A <code>uint_32t</code> requested
-   * frame count.
-   *
-   * @return A <code>uint32_t</code> containing the recommended sample frame
-   * count if successful.
-   */
-  [version=1.1]
-  uint32_t RecommendSampleFrameCount(
-      [in] PP_Instance instance,
-      [in] PP_AudioSampleRate sample_rate,
-      [in] uint32_t requested_sample_frame_count);
-
-  /**
-   * IsAudioConfig() determines if the given resource is a
-   * <code>PPB_Audio_Config</code>.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an audio
-   * config resource.
-   * 
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if the given
-   * resource is an <code>AudioConfig</code> resource, otherwise
-   * <code>PP_FALSE</code>.
-   */
-  PP_Bool IsAudioConfig(
-      [in] PP_Resource resource);
-
-  /**
-   * GetSampleRate() returns the sample rate for the given
-   * <code>PPB_Audio_Config</code>.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_Audio_Config</code>.
-   *
-   * @return A <code>PP_AudioSampleRate</code> containing sample rate or
-   * <code>PP_AUDIOSAMPLERATE_NONE</code> if the resource is invalid.
-   */
-  PP_AudioSampleRate GetSampleRate(
-      [in] PP_Resource config);
-
-  /**
-   * GetSampleFrameCount() returns the sample frame count for the given
-   * <code>PPB_Audio_Config</code>.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * config resource.
-   *
-   * @return A <code>uint32_t</code> containing sample frame count or
-   * 0 if the resource is invalid. Refer to
-   * RecommendSampleFrameCount() for more on sample frame counts.
-   */
-  uint32_t GetSampleFrameCount(
-      [in] PP_Resource config);
-
-  /**
-   * RecommendSampleRate() returns the native sample rate that the browser
-   * is using in the backend.  Applications that use the recommended sample
-   * rate will have potentially better latency and fidelity.  The return value
-   * is intended for audio output devices.  If the output sample rate cannot be
-   * determined, this function can return PP_AUDIOSAMPLERATE_NONE.
-   *
-   * @param[in] instance
-   *
-   * @return A <code>uint32_t</code> containing the recommended sample frame
-   * count if successful.
-   */
-  [version=1.1]
-  PP_AudioSampleRate RecommendSampleRate(
-      [in] PP_Instance instance);
-
-};
-
diff --git a/api/ppb_console.idl b/api/ppb_console.idl
deleted file mode 100644
index 911005d..0000000
--- a/api/ppb_console.idl
+++ /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.
- */
-
-/**
- * This file defines the <code>PPB_Console</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M25 = 1.0
-};
-
-[assert_size(4)]
-enum PP_LogLevel {
-  PP_LOGLEVEL_TIP = 0,
-  PP_LOGLEVEL_LOG = 1,
-  PP_LOGLEVEL_WARNING = 2,
-  PP_LOGLEVEL_ERROR = 3
-};
-
-interface PPB_Console {
-  /**
-   * Logs the given message to the JavaScript console associated with the
-   * given plugin instance with the given logging level. The name of the plugin
-   * issuing the log message will be automatically prepended to the message.
-   * The value may be any type of Var.
-   */
-  void Log(
-      [in] PP_Instance instance,
-      [in] PP_LogLevel level,
-      [in] PP_Var value);
-
-  /**
-   * Logs a message to the console with the given source information rather
-   * than using the internal PPAPI plugin name. The name must be a string var.
-   *
-   * The regular log function will automatically prepend the name of your
-   * plugin to the message as the "source" of the message. Some plugins may
-   * wish to override this. For example, if your plugin is a Python
-   * interpreter, you would want log messages to contain the source .py file
-   * doing the log statement rather than have "python" show up in the console.
-   */
-  void LogWithSource(
-      [in] PP_Instance instance,
-      [in] PP_LogLevel level,
-      [in] PP_Var source,
-      [in] PP_Var value);
-};
diff --git a/api/ppb_core.idl b/api/ppb_core.idl
deleted file mode 100644
index 0bbdc9e..0000000
--- a/api/ppb_core.idl
+++ /dev/null
@@ -1,101 +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.
- */
-
-/**
- * This file defines the <code>PPB_Core</code> interface defined by the browser
- * and containing pointers to functions related to memory management, time, and
- * threads.
- */
-
-label Chrome {
-  M14 = 1.0
-};
-
-/**
- * The <code>PPB_Core</code> interface contains pointers to functions related
- * to memory management, time, and threads on the browser.
- *
- */
-interface PPB_Core {
-  /**
-   *
-   * AddRefResource() adds a reference to a resource.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to a
-   * resource.
-   */
-  void AddRefResource([in] PP_Resource resource);
-
-  /**
-   * ReleaseResource() removes a reference from a resource.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to a
-   * resource.
-   */
-  void ReleaseResource([in] PP_Resource resource);
-
-  /**
-   * GetTime() returns the "wall clock time" according to the
-   * browser.
-   *
-   * @return A <code>PP_Time</code> containing the "wall clock time" according
-   * to the browser.
-   */
-  PP_Time GetTime();
-
-  /**
-   * GetTimeTicks() returns the "tick time" according to the browser.
-   * This clock is used by the browser when passing some event times to the
-   * module (e.g. using the <code>PP_InputEvent::time_stamp_seconds</code>
-   * field). It is not correlated to any actual wall clock time
-   * (like GetTime()). Because of this, it will not run change if the user
-   * changes their computer clock.
-   *
-   * @return A <code>PP_TimeTicks</code> containing the "tick time" according
-   * to the browser.
-   */
-  PP_TimeTicks GetTimeTicks();
-
-  /**
-   * CallOnMainThread() schedules work to be executed on the main module thread
-   * after the specified delay. The delay may be 0 to specify a call back as
-   * soon as possible.
-   *
-   * The <code>result</code> parameter will just be passed as the second
-   * argument to the callback. Many applications won't need this, but it allows
-   * a module to emulate calls of some callbacks which do use this value.
-   *
-   * <strong>Note:</strong> CallOnMainThread, even when used from the main
-   * thread with a delay of 0 milliseconds, will never directly invoke the
-   * callback.  Even in this case, the callback will be scheduled
-   * asynchronously.
-   *
-   * <strong>Note:</strong> If the browser is shutting down or if the module
-   * has no instances, then the callback function may not be called.
-   *
-   * @param[in] delay_in_milliseconds An int32_t delay in milliseconds.
-   * @param[in] callback A <code>PP_CompletionCallback</code> callback function
-   * that the browser will call after the specified delay.
-   * @param[in] result An int32_t that the browser will pass to the given
-   * <code>PP_CompletionCallback</code>.
-   */
-  void CallOnMainThread(
-      [in] int32_t delay_in_milliseconds,
-      [in] PP_CompletionCallback callback,
-      [in] int32_t result);
-
-  /**
-   * IsMainThread() returns true if the current thread is the main pepper
-   * thread.
-   *
-   * This function is useful for implementing sanity checks, and deciding if
-   * dispatching using CallOnMainThread() is required.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if the
-   * current thread is the main pepper thread, otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool IsMainThread();
-};
-
diff --git a/api/ppb_file_io.idl b/api/ppb_file_io.idl
deleted file mode 100644
index e911a37..0000000
--- a/api/ppb_file_io.idl
+++ /dev/null
@@ -1,293 +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.
- */
-
-
-/**
- * This file defines the API to create a file i/o object.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M14 = 1.0,
-  M25 = 1.1,
-  M29 = 1.2
-};
-
-/**
- * The PP_FileOpenFlags enum contains file open constants.
- */
-[assert_size(4)]
- enum PP_FileOpenFlags {
-  /** Requests read access to a file. */
-  PP_FILEOPENFLAG_READ      = 1 << 0,
-
-  /**
-   * Requests write access to a file.  May be combined with
-   * <code>PP_FILEOPENFLAG_READ</code> to request read and write access.
-   */
-  PP_FILEOPENFLAG_WRITE     = 1 << 1,
-
-  /**
-   * Requests that the file be created if it does not exist.  If the file
-   * already exists, then this flag is ignored unless
-   * <code>PP_FILEOPENFLAG_EXCLUSIVE</code> was also specified, in which case
-   * FileIO::Open() will fail.
-   */
-  PP_FILEOPENFLAG_CREATE    = 1 << 2,
-
-  /**
-   * Requests that the file be truncated to length 0 if it exists and is a
-   * regular file. <code>PP_FILEOPENFLAG_WRITE</code> must also be specified.
-   */
-  PP_FILEOPENFLAG_TRUNCATE  = 1 << 3,
-
-  /**
-   * Requests that the file is created when this flag is combined with
-   * <code>PP_FILEOPENFLAG_CREATE</code>.  If this flag is specified, and the
-   * file already exists, then the FileIO::Open() call will fail.
-   */
-  PP_FILEOPENFLAG_EXCLUSIVE = 1 << 4,
-
- /**
-  * Requests write access to a file, but writes will always occur at the end of
-  * the file. Mututally exclusive with <code>PP_FILEOPENFLAG_WRITE</code>.
-  *
-  * This is only supported in version 1.2 (Chrome 29) and later.
-  */
-  [version=1.2]
-  PP_FILEOPENFLAG_APPEND = 1 << 5
-};
-
-
-/**
- * The <code>PPB_FileIO</code> struct is used to operate on a regular file
- * (PP_FileType_Regular).
- */
-interface PPB_FileIO {
-  /**
-   * Create() creates a new FileIO object.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * with the file.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a FileIO if
-   * successful or 0 if the module is invalid.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-  /**
-   * IsFileIO() determines if the provided resource is a FileIO.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a FileIO.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a
-   * <code>PPB_FileIO</code>, <code>PP_FALSE</code> if the resource is
-   * invalid or some type other than <code>PPB_FileIO</code>.
-   */
-  PP_Bool IsFileIO([in] PP_Resource resource);
-
-  /**
-   * Open() opens the specified regular file for I/O according to the given
-   * open flags, which is a bit-mask of the <code>PP_FileOpenFlags</code>
-   * values. Upon success, the corresponding file is classified as "in use"
-   * by this FileIO object until such time as the FileIO object is closed
-   * or destroyed.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a
-   * FileIO.
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[in] open_flags A bit-mask of the <code>PP_FileOpenFlags</code>
-   * values.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Open().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t Open([in] PP_Resource file_io,
-               [in] PP_Resource file_ref,
-               [in] int32_t open_flags,
-               [in] PP_CompletionCallback callback);
-
-  /**
-   * Query() queries info about the file opened by this FileIO object. The
-   * FileIO object must be opened, and there must be no other operations
-   * pending.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a
-   * FileIO.
-   * @param[out] info The <code>PP_FileInfo</code> structure representing all
-   * information about the file.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Query(). <code>info</code> must remain valid until after the
-   * callback runs. If you pass a blocking callback, <code>info</code> must
-   * remain valid until after Query() returns.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * PP_ERROR_FAILED will be returned if the file isn't opened, and
-   * PP_ERROR_INPROGRESS will be returned if there is another operation pending.
-   */
-  int32_t Query([in] PP_Resource file_io,
-                [out] PP_FileInfo info,
-                [in] PP_CompletionCallback callback);
-
-  /**
-   * Touch() Updates time stamps for the file opened by this FileIO object.
-   * This function will fail if the FileIO object has not been opened. The
-   * FileIO object must be opened, and there must be no other operations
-   * pending.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-   * FileIO.
-   * @param[in] last_access_time The last time the FileIO was accessed.
-   * @param[in] last_modified_time The last time the FileIO was modified.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Touch().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * PP_ERROR_FAILED will be returned if the file isn't opened, and
-   * PP_ERROR_INPROGRESS will be returned if there is another operation pending.
-   */
-  int32_t Touch([in] PP_Resource file_io,
-                [in] PP_Time last_access_time,
-                [in] PP_Time last_modified_time,
-                [in] PP_CompletionCallback callback);
-
-  /**
-   * Read() reads from an offset in the file.  The size of the buffer must be
-   * large enough to hold the specified number of bytes to read.  This function
-   * might perform a partial read, meaning all the requested bytes
-   * might not be returned, even if the end of the file has not been reached.
-   * The FileIO object must have been opened with read access.
-   *
-   * ReadToArray() is preferred to Read() when doing asynchronous operations.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-   * FileIO.
-   * @param[in] offset The offset into the file.
-   * @param[in] buffer The buffer to hold the specified number of bytes read.
-   * @param[in] bytes_to_read The number of bytes to read from
-   * <code>offset</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Read(). <code>buffer</code> must remain valid until after
-   * the callback runs. If you pass a blocking callback, <code>buffer</code>
-   * must remain valid until after Read() returns.
-   *
-   * @return The number of bytes read or an error code from
-   * <code>pp_errors.h</code>. If the return value is 0, then end-of-file was
-   * reached. It is valid to call Read() multiple times with a completion
-   * callback to queue up parallel reads from the file, but pending reads
-   * cannot be interleaved with other operations.
-   */
-  int32_t Read([in] PP_Resource file_io,
-               [in] int64_t offset,
-               [inout] str_t buffer,
-               [in] int32_t bytes_to_read,
-               [in] PP_CompletionCallback callback);
-
-  /**
-   * Write() writes to an offset in the file.  This function might perform a
-   * partial write. The FileIO object must have been opened with write access.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-   * FileIO.
-   * @param[in] offset The offset into the file.
-   * @param[in] buffer The buffer to hold the specified number of bytes read.
-   * @param[in] bytes_to_write The number of bytes to write to
-   * <code>offset</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Write().
-   *
-   * @return The number of bytes written or an error code from
-   * <code>pp_errors.h</code>. If the return value is 0, then end-of-file was
-   * reached. It is valid to call Write() multiple times with a completion
-   * callback to queue up parallel writes to the file, but pending writes
-   * cannot be interleaved with other operations.
-   */
-  int32_t Write([in] PP_Resource file_io,
-                [in] int64_t offset,
-                [in] str_t buffer,
-                [in] int32_t bytes_to_write,
-                [in] PP_CompletionCallback callback);
-  /**
-   * SetLength() sets the length of the file.  If the file size is extended,
-   * then the extended area of the file is zero-filled. The FileIO object must
-   * have been opened with write access and there must be no other operations
-   * pending.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-   * FileIO.
-   * @param[in] length The length of the file to be set.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of SetLength().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * PP_ERROR_FAILED will be returned if the file isn't opened, and
-   * PP_ERROR_INPROGRESS will be returned if there is another operation pending.
-   */
-  int32_t SetLength([in] PP_Resource file_io,
-                    [in] int64_t length,
-                    [in] PP_CompletionCallback callback);
-
-  /**
-   * Flush() flushes changes to disk.  This call can be very expensive! The
-   * FileIO object must have been opened with write access and there must be no
-   * other operations pending.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-   * FileIO.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Flush().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * PP_ERROR_FAILED will be returned if the file isn't opened, and
-   * PP_ERROR_INPROGRESS will be returned if there is another operation pending.
-   */
-  int32_t Flush([in] PP_Resource file_io,
-                [in] PP_CompletionCallback callback);
-
-  /**
-   * Close() cancels any IO that may be pending, and closes the FileIO object.
-   * Any pending callbacks will still run, reporting
-   * <code>PP_ERROR_ABORTED</code> if pending IO was interrupted.  It is not
-   * valid to call Open() again after a call to this method.
-   * <strong>Note:</strong> If the FileIO object is destroyed, and it is still
-   * open, then it will be implicitly closed, so you are not required to call
-   * Close().
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-   * FileIO.
-   */
-  void Close([in] PP_Resource file_io);
-
-  /**
-   * ReadToArray() reads from an offset in the file.  A PP_ArrayOutput must be
-   * provided so that output will be stored in its allocated buffer.  This
-   * function might perform a partial read. The FileIO object must have been
-   * opened with read access.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-   * FileIO.
-   * @param[in] offset The offset into the file.
-   * @param[in] max_read_length The maximum number of bytes to read from
-   * <code>offset</code>.
-   * @param[in] output A <code>PP_ArrayOutput</code> to hold the output data.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of ReadToArray().
-   *
-   * @return The number of bytes read or an error code from
-   * <code>pp_errors.h</code>. If the return value is 0, then end-of-file was
-   * reached. It is valid to call ReadToArray() multiple times with a completion
-   * callback to queue up parallel reads from the file, but pending reads
-   * cannot be interleaved with other operations.
-   */
-  [version = 1.1]
-  int32_t ReadToArray([in] PP_Resource file_io,
-                      [in] int64_t offset,
-                      [in] int32_t max_read_length,
-                      [inout] PP_ArrayOutput output,
-                      [in] PP_CompletionCallback callback);
-};
-
diff --git a/api/ppb_file_ref.idl b/api/ppb_file_ref.idl
deleted file mode 100644
index 988c5a6..0000000
--- a/api/ppb_file_ref.idl
+++ /dev/null
@@ -1,247 +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.
- */
-
-/**
- * This file defines the API to create a file reference or "weak pointer" to a
- * file in a file system.
- */
-
-label Chrome {
-  M14 = 1.0,
-  M28 = 1.1,
-  M34 = 1.2
-};
-
-/**
- * The <code>PP_MakeDirectoryFlags</code> enum contains flags used to control
- * behavior of <code>PPB_FileRef.MakeDirectory()</code>.
- */
-enum PP_MakeDirectoryFlags {
-  PP_MAKEDIRECTORYFLAG_NONE           = 0 << 0,
-
-  /** Requests that ancestor directories are created if they do not exist. */
-  PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS = 1 << 0,
-
-  /**
-   * Requests that the PPB_FileRef.MakeDirectory() call fails if the directory
-   * already exists.
-   */
-  PP_MAKEDIRECTORYFLAG_EXCLUSIVE      = 1 << 1
-};
-
-/**
- * The <code>PPB_FileRef</code> struct represents a "weak pointer" to a file in
- * a file system.  This struct contains a <code>PP_FileSystemType</code>
- * identifier and a file path string.
- */
-interface PPB_FileRef {
-  /**
-   * Create() creates a weak pointer to a file in the given file system. File
-   * paths are POSIX style.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a file
-   * system.
-   * @param[in] path A path to the file. Must begin with a '/' character.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a file reference if
-   * successful or 0 if the path is malformed.
-   */
-  PP_Resource Create([in] PP_Resource file_system, [in] str_t path);
-  /**
-   * IsFileRef() determines if the provided resource is a file reference.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a
-   * <code>PPB_FileRef</code>, <code>PP_FALSE</code> if the resource is
-   * invalid or some type other than <code>PPB_FileRef</code>.
-   */
-  PP_Bool IsFileRef([in] PP_Resource resource);
-
-  /**
-   * GetFileSystemType() returns the type of the file system.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   *
-   * @return A <code>PP_FileSystemType</code> with the file system type if
-   * valid or <code>PP_FILESYSTEMTYPE_INVALID</code> if the provided resource
-   * is not a valid file reference.
-   */
-  PP_FileSystemType GetFileSystemType([in] PP_Resource file_ref);
-
-  /**
-   * GetName() returns the name of the file.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   *
-   * @return A <code>PP_Var</code> containing the name of the file.  The value
-   * returned by this function does not include any path components (such as
-   * the name of the parent directory, for example). It is just the name of the
-   * file. Use GetPath() to get the full file path.
-   */
-  PP_Var GetName([in] PP_Resource file_ref);
-
-  /**
-   * GetPath() returns the absolute path of the file.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   *
-   * @return A <code>PP_Var</code> containing the absolute path of the file.
-   * This function fails if the file system type is
-   * <code>PP_FileSystemType_External</code>.
-   */
-  PP_Var GetPath([in] PP_Resource file_ref);
-
-  /**
-   * GetParent() returns the parent directory of this file.  If
-   * <code>file_ref</code> points to the root of the filesystem, then the root
-   * is returned.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   *
-   * @return A <code>PP_Resource</code> containing the parent directory of the
-   * file. This function fails if the file system type is
-   * <code>PP_FileSystemType_External</code>.
-   */
-  PP_Resource GetParent([in] PP_Resource file_ref);
-
-  /**
-   * MakeDirectory() makes a new directory in the file system as well as any
-   * parent directories if the <code>make_ancestors</code> argument is
-   * <code>PP_TRUE</code>.  It is not valid to make a directory in the external
-   * file system.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[in] make_ancestors A <code>PP_Bool</code> set to
-   * <code>PP_TRUE</code> to make ancestor directories or <code>PP_FALSE</code>
-   * if ancestor directories are not needed.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of MakeDirectory().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Succeeds if the directory already exists. Fails if ancestor directories
-   * do not exist and <code>make_ancestors</code> was passed as
-   * <code>PP_FALSE</code>.
-   */
-  [deprecate=1.2]
-  int32_t MakeDirectory([in] PP_Resource directory_ref,
-                        [in] PP_Bool make_ancestors,
-                        [in] PP_CompletionCallback callback);
-
-  /**
-   * MakeDirectory() makes a new directory in the file system according to the
-   * given <code>make_directory_flags</code>, which is a bit-mask of the
-   * <code>PP_MakeDirectoryFlags</code> values.  It is not valid to make a
-   * directory in the external file system.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[in] make_directory_flags A bit-mask of the
-   * <code>PP_MakeDirectoryFlags</code> values.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of MakeDirectory().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  [version=1.2]
-  int32_t MakeDirectory([in] PP_Resource directory_ref,
-                        [in] int32_t make_directory_flags,
-                        [in] PP_CompletionCallback callback);
-
-  /**
-   * Touch() Updates time stamps for a file.  You must have write access to the
-   * file if it exists in the external filesystem.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[in] last_access_time The last time the file was accessed.
-   * @param[in] last_modified_time The last time the file was modified.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Touch().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t Touch([in] PP_Resource file_ref,
-                [in] PP_Time last_access_time,
-                [in] PP_Time last_modified_time,
-                [in] PP_CompletionCallback callback);
-
-  /**
-   * Delete() deletes a file or directory. If <code>file_ref</code> refers to
-   * a directory, then the directory must be empty. It is an error to delete a
-   * file or directory that is in use.  It is not valid to delete a file in
-   * the external file system.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Delete().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t Delete([in] PP_Resource file_ref,
-                 [in] PP_CompletionCallback callback);
-
-  /**
-   * Rename() renames a file or directory.  Arguments <code>file_ref</code> and
-   * <code>new_file_ref</code> must both refer to files in the same file
-   * system. It is an error to rename a file or directory that is in use.  It
-   * is not valid to rename a file in the external file system.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[in] new_file_ref A <code>PP_Resource</code> corresponding to a new
-   * file reference.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Rename().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t Rename([in] PP_Resource file_ref,
-                 [in] PP_Resource new_file_ref,
-                 [in] PP_CompletionCallback callback);
-
-  /**
-   * Query() queries info about a file or directory. You must have access to
-   * read this file or directory if it exists in the external filesystem.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[out] info A pointer to a <code>PP_FileInfo</code> which will be
-   * populated with information about the file or directory.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Query().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  [version=1.1]
-  int32_t Query([in] PP_Resource file_ref,
-                [out] PP_FileInfo info,
-                [in] PP_CompletionCallback callback);
-
-  /**
-   * ReadDirectoryEntries() reads all entries in a directory.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a directory
-   * reference.
-   * @param[in] output An output array which will receive
-   * <code>PP_DirectoryEntry</code> objects on success.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  [version=1.1]
-  int32_t ReadDirectoryEntries([in] PP_Resource file_ref,
-                               [in] PP_ArrayOutput output,
-                               [in] PP_CompletionCallback callback);
-};
-
diff --git a/api/ppb_file_system.idl b/api/ppb_file_system.idl
deleted file mode 100644
index 12fa887..0000000
--- a/api/ppb_file_system.idl
+++ /dev/null
@@ -1,82 +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.
- */
-
-/**
- * This file defines the API to create a file system associated with a file.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M14 = 1.0
-};
-
-/**
- * The <code>PPB_FileSystem</code> struct identifies the file system type
- * associated with a file.
- */
-interface PPB_FileSystem {
-  /** Create() creates a file system object of the given type.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * with the file.
-   * @param[in] type A file system type as defined by
-   * <code>PP_FileSystemType</code> enum (except PP_FILESYSTEMTYPE_ISOLATED,
-   * which is currently not supported).
-   * @return A <code>PP_Resource</code> corresponding to a file system if
-   * successful.
-   */
-  PP_Resource Create([in] PP_Instance instance, [in] PP_FileSystemType type);
-
-  /**
-   * IsFileSystem() determines if the provided resource is a file system.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a file
-   * system.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a
-   * <code>PPB_FileSystem</code>, <code>PP_FALSE</code> if the resource is
-   * invalid or some type other than <code>PPB_FileSystem</code>.
-   */
-  PP_Bool IsFileSystem([in] PP_Resource resource);
-
-  /**
-   * Open() opens the file system. A file system must be opened before running
-   * any other operation on it.
-   *
-   * @param[in] file_system A <code>PP_Resource</code> corresponding to a file
-   * system.
-   *
-   * @param[in] expected_size The expected size of the file system. Note that
-   * this does not request quota; to do that, you must either invoke
-   * requestQuota from JavaScript:
-   * http://www.html5rocks.com/en/tutorials/file/filesystem/#toc-requesting-quota
-   * or set the unlimitedStorage permission for Chrome Web Store apps:
-   * http://code.google.com/chrome/extensions/manifest.html#permissions
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Open().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t Open([in] PP_Resource file_system,
-               [in] int64_t expected_size,
-               [in] PP_CompletionCallback callback);
-
-  /**
-   * GetType() returns the type of the provided file system.
-   *
-   * @param[in] file_system A <code>PP_Resource</code> corresponding to a file
-   * system.
-   *
-   * @return A <code>PP_FileSystemType</code> with the file system type if
-   * valid or <code>PP_FILESYSTEMTYPE_INVALID</code> if the provided resource
-   * is not a valid file system. It is valid to call this function even before
-   * Open() completes.
-   */
-  [on_failure=PP_FILESYSTEMTYPE_INVALID]
-  PP_FileSystemType GetType([in] PP_Resource file_system);
-};
-
diff --git a/api/ppb_fullscreen.idl b/api/ppb_fullscreen.idl
deleted file mode 100644
index 5962de3..0000000
--- a/api/ppb_fullscreen.idl
+++ /dev/null
@@ -1,78 +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.
- */
-
-
-/**
- * This file defines the <code>PPB_Fullscreen</code> interface for
- * handling transitions of a module instance to and from fullscreen mode.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M16 = 1.0
-};
-
-/** 
- * The <code>PPB_Fullscreen</code> interface is implemented by the browser.
- * This interface provides a way of checking the current screen mode and
- * toggling fullscreen mode.
- */
-interface PPB_Fullscreen {
-  /**
-   * IsFullscreen() checks whether the module instance is currently in
-   * fullscreen mode.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   *
-   * @return <code>PP_TRUE</code> if the module instance is in fullscreen mode,
-   * <code>PP_FALSE</code> if the module instance is not in fullscreen mode.
-   */
-  PP_Bool IsFullscreen(
-      [in] PP_Instance instance);
-
-  /**
-   * SetFullscreen() switches the module instance to and from fullscreen
-   * mode. 
-   *
-   * The transition to and from fullscreen mode is asynchronous. During the
-   * transition, IsFullscreen() will return the previous value and
-   * no 2D or 3D device can be bound. The transition ends at DidChangeView()
-   * when IsFullscreen() returns the new value. You might receive other
-   * DidChangeView() calls while in transition.
-   *
-   * The transition to fullscreen mode can only occur while the browser is
-   * processing a user gesture, even if <code>PP_TRUE</code> is returned.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] fullscreen <code>PP_TRUE</code> to enter fullscreen mode, or
-   * <code>PP_FALSE</code> to exit fullscreen mode.
-   * 
-   * @return <code>PP_TRUE</code> on success or <code>PP_FALSE</code> on
-   * failure.
-   */
-  PP_Bool SetFullscreen(
-      [in] PP_Instance instance,
-      [in] PP_Bool fullscreen);
-
-  /**
-   * GetScreenSize() gets the size of the screen in pixels. The module instance
-   * will be resized to this size when SetFullscreen() is called to enter
-   * fullscreen mode.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[out] size The size of the entire screen in pixels.
-   *
-   * @return <code>PP_TRUE</code> on success or <code>PP_FALSE</code> on
-   * failure.
-   */
-  PP_Bool GetScreenSize(
-      [in] PP_Instance instance,
-      [out] PP_Size size);
-};
-
diff --git a/api/ppb_gamepad.idl b/api/ppb_gamepad.idl
deleted file mode 100644
index e5c4837..0000000
--- a/api/ppb_gamepad.idl
+++ /dev/null
@@ -1,97 +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.
- */
-
-/**
- * This file defines the <code>PPB_Gamepad</code> interface, which
- * provides access to gamepad devices.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M19 = 1.0
-};
-
-/**
- * The data for one gamepad device.
- */
-[assert_size(472)]
-struct PP_GamepadSampleData {
-    /**
-     * Number of valid elements in the |axes| array.
-     */
-    uint32_t axes_length;
-
-    /**
-     * Normalized values for the axes, indices valid up to |axes_length|-1. Axis
-     * values range from -1..1, and are in order of "importance".
-     */
-    float_t[16] axes;
-
-    /**
-     * Number of valid elements in the |buttons| array.
-     */
-    uint32_t buttons_length;
-
-    /**
-     * Normalized values for the buttons, indices valid up to |buttons_length|
-     * - 1. Button values range from 0..1, and are in order of importance.
-     */
-    float_t[32] buttons;
-
-    /**
-     * Monotonically increasing value that is incremented when the data have
-     * been updated.
-     */
-    double_t timestamp;
-
-    /**
-     * Identifier for the type of device/manufacturer.
-     */
-    uint16_t[128] id;
-
-    /**
-     * Is there a gamepad connected at this index? If this is false, no other
-     * data in this structure is valid.
-     */
-    PP_Bool connected;
-
-    /* Padding to make the struct the same size between 64 and 32. */
-    int8_t[4] unused_pad_;
-};
-
-/**
- * The data for all gamepads connected to the system.
- */
-[assert_size(1896)]
-struct PP_GamepadsSampleData {
-    /**
-     * Number of valid elements in the |items| array.
-     */
-    uint32_t length;
-
-    /* Padding to make the struct the same size between 64 and 32. */
-    int8_t[4] unused_pad_;
-
-    /**
-     * Data for an individual gamepad device connected to the system.
-     */
-    PP_GamepadSampleData[4] items;
-};
-
-/**
- * The <code>PPB_Gamepad</code> interface allows retrieving data from
- * gamepad/joystick devices that are connected to the system.
- */
-[version=1.0, macro="PPB_GAMEPAD_INTERFACE", singleton]
-interface PPB_Gamepad {
-  /**
-   * Samples the current state of the available gamepads.
-   */
-  [always_set_output_parameters]
-  void Sample(
-      [in] PP_Instance instance,
-      [out] PP_GamepadsSampleData data);
-};
diff --git a/api/ppb_graphics_2d.idl b/api/ppb_graphics_2d.idl
deleted file mode 100644
index 2a8c5e2..0000000
--- a/api/ppb_graphics_2d.idl
+++ /dev/null
@@ -1,308 +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.
- */
-
-/**
- * Defines the <code>PPB_Graphics2D</code> struct representing a 2D graphics
- * context within the browser.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M14 = 1.0,
-  M27 = 1.1,
-  M52 = 1.2
-};
-
-/**
- * <code>PPB_Graphics2D</code> defines the interface for a 2D graphics context.
- */
-[macro="PPB_GRAPHICS_2D_INTERFACE"]
-interface PPB_Graphics2D {
-  /**
-   * Create() creates a 2D graphics context. The returned graphics context will
-   * not be bound to the module instance on creation (call BindGraphics() on
-   * the module instance to bind the returned graphics context to the module
-   * instance).
-   *
-   * @param[in] instance The module instance.
-   * @param[in] size The size of the graphic context.
-   * @param[in] is_always_opaque Set the <code>is_always_opaque</code> flag to
-   * <code>PP_TRUE</code> if you know that you will be painting only opaque
-   * data to this context. This option will disable blending when compositing
-   * the module with the web page, which might give higher performance on some
-   * computers.
-   *
-   * If you set <code>is_always_opaque</code>, your alpha channel should always
-   * be set to 0xFF or there may be painting artifacts. The alpha values
-   * overwrite the destination alpha values without blending when
-   * <code>is_always_opaque</code> is true.
-   *
-   * @return A <code>PP_Resource</code> containing the 2D graphics context if
-   * successful or 0 if unsuccessful.
-   */
-  PP_Resource Create(
-      [in] PP_Instance instance,
-      [in] PP_Size size,
-      [in] PP_Bool is_always_opaque);
-
-  /**
-   * IsGraphics2D() determines if the given resource is a valid
-   * <code>Graphics2D</code>.
-   *
-   * @param[in] resource A <code>Graphics2D</code> context resource.
-   *
-   * @return PP_TRUE if the given resource is a valid <code>Graphics2D</code>,
-   * <code>PP_FALSE</code> if it is an invalid resource or is a resource of
-   * another type.
-   */
-  PP_Bool IsGraphics2D(
-      [in] PP_Resource resource);
-
-  /**
-   * Describe() retrieves the configuration for the given graphics context,
-   * filling the given values (which must not be <code>NULL</code>).
-   *
-   * @param[in] resource The 2D Graphics resource.
-   * @param[in,out] size The size of the 2D graphics context in the browser.
-   * @param[in,out] is_always_opaque Identifies whether only opaque data
-   * will be painted.
-   *
-   * @return Returns <code>PP_TRUE</code> on success or <code>PP_FALSE</code> if
-   * the resource is invalid. The output parameters will be set to 0 on a
-   * <code>PP_FALSE</code>.
-   */
-  [always_set_output_parameters]
-  PP_Bool Describe(
-      [in] PP_Resource graphics_2d,
-      [out] PP_Size size,
-      [out] PP_Bool is_always_opaque);
-
-  /**
-   * PaintImageData() enqueues a paint of the given image into the context.
-   * This function has no effect until you call Flush() As a result, what
-   * counts is the contents of the bitmap when you call Flush(), not when
-   * you call this function.
-   *
-   * The provided image will be placed at <code>top_left</code> from the top
-   *  left of the context's internal backing store. Then the pixels contained
-   * in <code>src_rect</code> will be copied into the backing store. This
-   * means that the rectangle being painted will be at <code>src_rect</code>
-   * offset by <code>top_left</code>.
-   *
-   * The <code>src_rect</code> is specified in the coordinate system of the
-   * image being painted, not the context. For the common case of copying the
-   * entire image, you may specify an empty <code>src_rect</code>.
-   *
-   * The painted area of the source bitmap must fall entirely within the
-   * context. Attempting to paint outside of the context will result in an
-   * error. However, the source bitmap may fall outside the context, as long
-   * as the <code>src_rect</code> subset of it falls entirely within the
-   * context.
-   *
-   * There are two methods most modules will use for painting. The first
-   * method is to generate a new <code>ImageData</code> and then paint it. In
-   * this case, you'll set the location of your painting to
-   * <code>top_left</code> and set <code>src_rect</code> to <code>NULL</code>.
-   * The second is that you're generating small invalid regions out of a larger
-   * bitmap representing your entire instance. In this case, you would set the
-   * location of your image to (0,0) and then set <code>src_rect</code> to the
-   * pixels you changed.
-   *
-   * @param[in] resource The 2D Graphics resource.
-   * @param[in] image The <code>ImageData</code> to be painted.
-   * @param[in] top_left A <code>Point</code> representing the
-   * <code>top_left</code> location where the <code>ImageData</code> will be
-   * painted.
-   * @param[in] src_rect The rectangular area where the <code>ImageData</code>
-   * will be painted.
-   */
-  void PaintImageData(
-      [in] PP_Resource graphics_2d,
-      [in] PP_Resource image_data,
-      [in] PP_Point top_left,
-      [in] PP_Rect src_rect);
-
-  /**
-   * Scroll() enqueues a scroll of the context's backing store. This
-   * function has no effect until you call Flush(). The data within the
-   * provided clipping rectangle will be shifted by (dx, dy) pixels.
-   *
-   * This function will result in some exposed region which will have undefined
-   * contents. The module should call PaintImageData() on these exposed regions
-   * to give the correct contents.
-   *
-   * The scroll can be larger than the area of the clipping rectangle, which
-   * means the current image will be scrolled out of the rectangle. This
-   * scenario is not an error but will result in a no-op.
-   *
-   * @param[in] graphics_2d The 2D Graphics resource.
-   * @param[in] clip The clipping rectangle.
-   * @param[in] amount The amount the area in the clipping rectangle will
-   * shifted.
-   */
-  void Scroll(
-      [in] PP_Resource graphics_2d,
-      [in] PP_Rect clip_rect,
-      [in] PP_Point amount);
-
-  /**
-   * ReplaceContents() provides a slightly more efficient way to paint the
-   * entire module's image. Normally, calling PaintImageData() requires that
-   * the browser copy the pixels out of the image and into the graphics
-   * context's backing store. This function replaces the graphics context's
-   * backing store with the given image, avoiding the copy.
-   *
-   * The new image must be the exact same size as this graphics context. If the
-   * new image uses a different image format than the browser's native bitmap
-   * format (use <code>PPB_ImageData.GetNativeImageDataFormat()</code> to
-   * retrieve the format), then a conversion will be done inside the browser
-   * which may slow the performance a little bit.
-   *
-   * <strong>Note:</strong> The new image will not be painted until you call
-   * Flush().
-   *
-   * After this call, you should take care to release your references to the
-   * image. If you paint to the image after ReplaceContents(), there is the
-   * possibility of significant painting artifacts because the page might use
-   * partially-rendered data when copying out of the backing store.
-   *
-   * In the case of an animation, you will want to allocate a new image for the
-   * next frame. It is best if you wait until the flush callback has executed
-   * before allocating this bitmap. This gives the browser the option of
-   * caching the previous backing store and handing it back to you (assuming
-   * the sizes match). In the optimal case, this means no bitmaps are allocated
-   * during the animation, and the backing store and "front buffer" (which the
-   * plugin is painting into) are just being swapped back and forth.
-   *
-   * @param[in] graphics_2d The 2D Graphics resource.
-   * @param[in] image The <code>ImageData</code> to be painted.
-   */
-  void ReplaceContents(
-      [in] PP_Resource graphics_2d,
-      [in] PP_Resource image_data);
-
-  /**
-   * Flush() flushes any enqueued paint, scroll, and replace commands to the
-   * backing store. This function actually executes the updates, and causes a
-   * repaint of the webpage, assuming this graphics context is bound to a module
-   * instance.
-   *
-   * Flush() runs in asynchronous mode. Specify a callback function and the
-   * argument for that callback function. The callback function will be
-   * executed on the calling thread when the image has been painted to the
-   * screen. While you are waiting for a flush callback, additional calls to
-   * Flush() will fail.
-   *
-   * Because the callback is executed (or thread unblocked) only when the
-   * instance's image is actually on the screen, this function provides
-   * a way to rate limit animations. By waiting until the image is on the
-   * screen before painting the next frame, you can ensure you're not
-   * flushing 2D graphics faster than the screen can be updated.
-   *
-   * <strong>Unbound contexts</strong>
-   * If the context is not bound to a module instance, you will
-   * still get a callback. The callback will execute after Flush() returns
-   * to avoid reentrancy. The callback will not wait until anything is
-   * painted to the screen because there will be nothing on the screen. The
-   * timing of this callback is not guaranteed and may be deprioritized by
-   * the browser because it is not affecting the user experience.
-   *
-   * <strong>Off-screen instances</strong>
-   * If the context is bound to an instance that is currently not visible (for
-   * example, scrolled out of view) it will behave like the "unbound context"
-   * case.
-   *
-   * <strong>Detaching a context</strong>
-   * If you detach a context from a module instance, any pending flush
-   * callbacks will be converted into the "unbound context" case.
-   *
-   * <strong>Released contexts</strong>
-   * A callback may or may not get called even if you have released all
-   * of your references to the context. This scenario can occur if there are
-   * internal references to the context suggesting it has not been internally
-   * destroyed (for example, if it is still bound to an instance) or due to
-   * other implementation details. As a result, you should be careful to
-   * check that flush callbacks are for the context you expect and that
-   * you're capable of handling callbacks for unreferenced contexts.
-   *
-   * <strong>Shutdown</strong>
-   * If a module instance is removed when a flush is pending, the
-   * callback will not be executed.
-   *
-   * @param[in] graphics_2d The 2D Graphics resource.
-   * @param[in] callback A <code>CompletionCallback</code> to be called when
-   * the image has been painted on the screen.
-   *
-   * @return Returns <code>PP_OK</code> on success or
-   * <code>PP_ERROR_BADRESOURCE</code> if the graphics context is invalid,
-   * <code>PP_ERROR_BADARGUMENT</code> if the callback is null and flush is
-   * being called from the main thread of the module, or
-   * <code>PP_ERROR_INPROGRESS</code> if a flush is already pending that has
-   * not issued its callback yet.  In the failure case, nothing will be updated
-   * and no callback will be scheduled.
-   */
-  int32_t Flush(
-      [in] PP_Resource graphics_2d,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * SetScale() sets the scale factor that will be applied when painting the
-   * graphics context onto the output device. Typically, if rendering at device
-   * resolution is desired, the context would be created with the width and
-   * height scaled up by the view's GetDeviceScale and SetScale called with a
-   * scale of 1.0 / GetDeviceScale(). For example, if the view resource passed
-   * to DidChangeView has a rectangle of (w=200, h=100) and a device scale of
-   * 2.0, one would call Create with a size of (w=400, h=200) and then call
-   * SetScale with 0.5. One would then treat each pixel in the context as a
-   * single device pixel.
-   *
-   * @param[in] resource A <code>Graphics2D</code> context resource.
-   * @param[in] scale The scale to apply when painting.
-   *
-   * @return Returns <code>PP_TRUE</code> on success or <code>PP_FALSE</code> if
-   * the resource is invalid or the scale factor is 0 or less.
-   */
-  [version=1.1]
-  PP_Bool SetScale(
-      [in] PP_Resource resource,
-      [in] float_t scale);
-
-  /***
-   * GetScale() gets the scale factor that will be applied when painting the
-   * graphics context onto the output device.
-   *
-   * @param[in] resource A <code>Graphics2D</code> context resource.
-   *
-   * @return Returns the scale factor for the graphics context. If the resource
-   * is not a valid <code>Graphics2D</code> context, this will return 0.0.
-   */
-  [version=1.1]
-  float_t GetScale(
-      [in] PP_Resource resource);
-
-  /**
-   * SetLayerTransform() sets a transformation factor that will be applied for
-   * the current graphics context displayed on the output device.  If both
-   * SetScale and SetLayerTransform will be used, they are going to get combined
-   * for the final result.
-   *
-   * This function has no effect until you call Flush().
-   *
-   * @param[in] scale The scale to be applied.
-   * @param[in] origin The origin of the scale.
-   * @param[in] translate The translation to be applied.
-   *
-   * @return Returns <code>PP_TRUE</code> on success or <code>PP_FALSE</code>
-   * if the resource is invalid or the scale factor is 0 or less.
-   */
-  [version=1.2]
-  PP_Bool SetLayerTransform(
-      [in] PP_Resource resource,
-      [in] float_t scale,
-      [in] PP_Point origin,
-      [in] PP_Point translate);
-};
-
diff --git a/api/ppb_graphics_3d.idl b/api/ppb_graphics_3d.idl
deleted file mode 100644
index 9d83950..0000000
--- a/api/ppb_graphics_3d.idl
+++ /dev/null
@@ -1,298 +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.
- */
-
-/**
- * Defines the <code>PPB_Graphics3D</code> struct representing a 3D graphics
- * context within the browser.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M15 = 1.0
-};
-
-#inline c
-/* Add 3D graphics enums */
-#include "ppapi/c/pp_graphics_3d.h"
-#endinl
-
-/**
- * <code>PPB_Graphics3D</code> defines the interface for a 3D graphics context.
- * <strong>Example usage from plugin code:</strong>
- * 
- * <strong>Setup:</strong>
- * @code
- * PP_Resource context;
- * int32_t attribs[] = {PP_GRAPHICS3DATTRIB_WIDTH, 800,
- *                      PP_GRAPHICS3DATTRIB_HEIGHT, 800,
- *                      PP_GRAPHICS3DATTRIB_NONE};
- * context = g3d->Create(instance, 0, attribs);
- * inst->BindGraphics(instance, context);
- * @endcode
- *
- * <strong>Present one frame:</strong>
- * @code
- * PP_CompletionCallback callback = {
- *   DidFinishSwappingBuffers, 0, PP_COMPLETIONCALLBACK_FLAG_NONE,
- * };
- * gles2->Clear(context, GL_COLOR_BUFFER_BIT);
- * g3d->SwapBuffers(context, callback);
- * @endcode
- *
- * <strong>Shutdown:</strong>
- * @code
- * core->ReleaseResource(context);
- * @endcode
- */
-[macro="PPB_GRAPHICS_3D_INTERFACE"]
-interface PPB_Graphics3D {
-  /**
-   * GetAttribMaxValue() retrieves the maximum supported value for the
-   * given attribute. This function may be used to check if a particular
-   * attribute value is supported before attempting to create a context.
-   *
-   * @param[in] instance The module instance.
-   * @param[in] attribute The attribute for which maximum value is queried.
-   * Attributes that can be queried for include:
-   * - <code>PP_GRAPHICS3DATTRIB_ALPHA_SIZE</code>
-   * - <code>PP_GRAPHICS3DATTRIB_BLUE_SIZE</code>
-   * - <code>PP_GRAPHICS3DATTRIB_GREEN_SIZE</code>
-   * - <code>PP_GRAPHICS3DATTRIB_RED_SIZE</code>
-   * - <code>PP_GRAPHICS3DATTRIB_DEPTH_SIZE</code>
-   * - <code>PP_GRAPHICS3DATTRIB_STENCIL_SIZE</code>
-   * - <code>PP_GRAPHICS3DATTRIB_SAMPLES</code>
-   * - <code>PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS</code>
-   * - <code>PP_GRAPHICS3DATTRIB_WIDTH</code>
-   * - <code>PP_GRAPHICS3DATTRIB_HEIGHT</code>
-   * @param[out] value The maximum supported value for <code>attribute</code>
-   *
-   * @return Returns <code>PP_TRUE</code> on success or the following on error:
-   * - <code>PP_ERROR_BADRESOURCE</code> if <code>instance</code> is invalid
-   * - <code>PP_ERROR_BADARGUMENT</code> if <code>attribute</code> is invalid
-   *   or <code>value</code> is 0
-   */
-  int32_t GetAttribMaxValue(
-      [in] PP_Resource instance,
-      [in] int32_t attribute,
-      [out] int32_t value);
-
-  /**
-   * Create() creates and initializes a 3D rendering context.
-   * The returned context is off-screen to start with. It must be attached to
-   * a plugin instance using <code>PPB_Instance::BindGraphics</code> to draw
-   * on the web page.
-   *
-   * @param[in] instance The module instance.
-   *
-   * @param[in] share_context The 3D context with which the created context
-   * would share resources. If <code>share_context</code> is not 0, then all
-   * shareable data, as defined by the client API (note that for OpenGL and
-   * OpenGL ES, shareable data excludes texture objects named 0) will be shared
-   * by <code>share_context<code>, all other contexts <code>share_context</code>
-   * already shares with, and the newly created context. An arbitrary number of
-   * <code>PPB_Graphics3D</code> can share data in this fashion.
-   *
-   * @param[in] attrib_list specifies a list of attributes for the context.
-   * It is a list of attribute name-value pairs in which each attribute is
-   * immediately followed by the corresponding desired value. The list is
-   * terminated with <code>PP_GRAPHICS3DATTRIB_NONE</code>.
-   * The <code>attrib_list<code> may be 0 or empty (first attribute is
-   * <code>PP_GRAPHICS3DATTRIB_NONE</code>). If an attribute is not
-   * specified in <code>attrib_list</code>, then the default value is used
-   * (it is said to be specified implicitly).
-   * Attributes for the context are chosen according to an attribute-specific
-   * criteria. Attributes can be classified into two categories:
-   * - AtLeast: The attribute value in the returned context meets or exceeds
-   *            the value specified in <code>attrib_list</code>.
-   * - Exact: The attribute value in the returned context is equal to
-   *          the value specified in <code>attrib_list</code>.
-   *
-   * Attributes that can be specified in <code>attrib_list</code> include:
-   * - <code>PP_GRAPHICS3DATTRIB_ALPHA_SIZE</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_BLUE_SIZE</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_GREEN_SIZE</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_RED_SIZE</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_DEPTH_SIZE</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_STENCIL_SIZE</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_SAMPLES</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_WIDTH</code>:
-   *   Category: Exact Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_HEIGHT</code>:
-   *   Category: Exact Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR</code>:
-   *   Category: Exact Default: Implementation defined.
-   *
-   * @return A <code>PP_Resource</code> containing the 3D graphics context if
-   * successful or 0 if unsuccessful.
-   */
-  PP_Resource Create(
-      [in] PP_Instance instance,
-      [in] PP_Resource share_context,
-      [in] int32_t[] attrib_list);
-
-  /**
-   * IsGraphics3D() determines if the given resource is a valid
-   * <code>Graphics3D</code> context.
-   *
-   * @param[in] resource A <code>Graphics3D</code> context resource.
-   *
-   * @return PP_TRUE if the given resource is a valid <code>Graphics3D</code>,
-   * <code>PP_FALSE</code> if it is an invalid resource or is a resource of
-   * another type.
-   */
-  PP_Bool IsGraphics3D(
-      [in] PP_Resource resource);
-
-  /**
-   * GetAttribs() retrieves the value for each attribute in
-   * <code>attrib_list</code>.
-   *
-   * @param[in] context The 3D graphics context.
-   * @param[in,out] attrib_list The list of attributes that are queried.
-   * <code>attrib_list</code> has the same structure as described for
-   * <code>PPB_Graphics3D::Create</code>. It is both input and output
-   * structure for this function. All attributes specified in
-   * <code>PPB_Graphics3D::Create</code> can be queried for.
-   *
-   * @return Returns <code>PP_OK</code> on success or:
-   * - <code>PP_ERROR_BADRESOURCE</code> if context is invalid
-   * - <code>PP_ERROR_BADARGUMENT</code> if attrib_list is 0 or any attribute
-   *   in the <code>attrib_list</code> is not a valid attribute.
-   *
-   * <strong>Example usage:</strong> To get the values for rgb bits in the
-   * color buffer, this function must be called as following:
-   * @code
-   * int attrib_list[] = {PP_GRAPHICS3DATTRIB_RED_SIZE, 0,
-   *                      PP_GRAPHICS3DATTRIB_GREEN_SIZE, 0,
-   *                      PP_GRAPHICS3DATTRIB_BLUE_SIZE, 0,
-   *                      PP_GRAPHICS3DATTRIB_NONE};
-   * GetAttribs(context, attrib_list);
-   * int red_bits = attrib_list[1];
-   * int green_bits = attrib_list[3];
-   * int blue_bits = attrib_list[5];
-   * @endcode
-   */
-  int32_t GetAttribs(
-      [in] PP_Resource context,
-      [inout] int32_t[] attrib_list);
-
-  /**
-   * SetAttribs() sets the values for each attribute in
-   * <code>attrib_list</code>.
-   *
-   * @param[in] context The 3D graphics context.
-   * @param[in] attrib_list The list of attributes whose values need to be set.
-   * <code>attrib_list</code> has the same structure as described for
-   * <code>PPB_Graphics3D::Create</code>.
-   * Attributes that can be specified are:
-   * - <code>PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR</code>
-   *
-   * @return Returns <code>PP_OK</code> on success or:
-   * - <code>PP_ERROR_BADRESOURCE</code> if <code>context</code> is invalid.
-   * - <code>PP_ERROR_BADARGUMENT</code> if <code>attrib_list</code> is 0 or
-   *   any attribute in the <code>attrib_list</code> is not a valid attribute.
-   */
-  int32_t SetAttribs(
-      [in] PP_Resource context,
-      [in] int32_t[] attrib_list);
-
-  /**
-   * GetError() returns the current state of the given 3D context.
-   *
-   * The recoverable error conditions that have no side effect are
-   * detected and returned immediately by all functions in this interface.
-   * In addition the implementation may get into a fatal state while
-   * processing a command. In this case the application must destroy the
-   * context and reinitialize client API state and objects to continue
-   * rendering.
-   *
-   * Note that the same error code is also returned in the SwapBuffers callback.
-   * It is recommended to handle error in the SwapBuffers callback because
-   * GetError is synchronous. This function may be useful in rare cases where
-   * drawing a frame is expensive and you want to verify the result of
-   * ResizeBuffers before attempting to draw a frame.
-   *
-   * @param[in] The 3D graphics context.
-   * @return Returns:
-   * - <code>PP_OK</code> if no error
-   * - <code>PP_ERROR_NOMEMORY</code>
-   * - <code>PP_ERROR_CONTEXT_LOST</code>
-   */
-  int32_t GetError(
-      [in] PP_Resource context);
-
-  /**
-   * ResizeBuffers() resizes the backing surface for context.
-   *
-   * If the surface could not be resized due to insufficient resources,
-   * <code>PP_ERROR_NOMEMORY</code> error is returned on the next
-   * <code>SwapBuffers</code> callback.
-   *
-   * @param[in] context The 3D graphics context.
-   * @param[in] width The width of the backing surface.
-   * @param[in] height The height of the backing surface.
-   * @return Returns <code>PP_OK</code> on success or:
-   * - <code>PP_ERROR_BADRESOURCE</code> if context is invalid.
-   * - <code>PP_ERROR_BADARGUMENT</code> if the value specified for
-   *   <code>width</code> or <code>height</code> is less than zero.
-   */
-  int32_t ResizeBuffers(
-      [in] PP_Resource context,
-      [in] int32_t width,
-      [in] int32_t height);
-
-  /**
-   * SwapBuffers() makes the contents of the color buffer available for
-   * compositing. This function has no effect on off-screen surfaces - ones not
-   * bound to any plugin instance. The contents of ancillary buffers are always
-   * undefined after calling <code>SwapBuffers</code>. The contents of the color
-   * buffer are undefined if the value of the
-   * <code>PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR</code> attribute of context is not
-   * <code>PP_GRAPHICS3DATTRIB_BUFFER_PRESERVED</code>.
-   *
-   * <code>SwapBuffers</code> runs in asynchronous mode. Specify a callback
-   * function and the argument for that callback function. The callback function
-   * will be executed on the calling thread after the color buffer has been
-   * composited with rest of the html page. While you are waiting for a
-   * SwapBuffers callback, additional calls to SwapBuffers will fail.
-   *
-   * Because the callback is executed (or thread unblocked) only when the
-   * plugin's current state is actually on the screen, this function provides a
-   * way to rate limit animations. By waiting until the image is on the screen
-   * before painting the next frame, you can ensure you're not generating
-   * updates faster than the screen can be updated.
-   *
-   * SwapBuffers performs an implicit flush operation on context.
-   * If the context gets into an unrecoverable error condition while
-   * processing a command, the error code will be returned as the argument
-   * for the callback. The callback may return the following error codes:
-   * - <code>PP_ERROR_NOMEMORY</code>
-   * - <code>PP_ERROR_CONTEXT_LOST</code>
-   * Note that the same error code may also be obtained by calling GetError.
-   *
-   * @param[in] context The 3D graphics context.
-   * @param[in] callback The callback that will executed when
-   * <code>SwapBuffers</code> completes.
-   *
-   * @return Returns PP_OK on success or:
-   * - <code>PP_ERROR_BADRESOURCE</code> if context is invalid.
-   * - <code>PP_ERROR_BADARGUMENT</code> if callback is invalid.
-   *
-   */
-  int32_t SwapBuffers(
-      [in] PP_Resource context,
-      [in] PP_CompletionCallback callback);
-};
-
diff --git a/api/ppb_host_resolver.idl b/api/ppb_host_resolver.idl
deleted file mode 100644
index 8c96b6b..0000000
--- a/api/ppb_host_resolver.idl
+++ /dev/null
@@ -1,141 +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.
- */
-
-/**
- * This file defines the <code>PPB_HostResolver</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M29 = 1.0
-};
-
-/**
- * <code>PP_HostResolver_Flag</code> is an enumeration of flags which can be
- * OR-ed and passed to the host resolver. Currently there is only one flag
- * defined.
- */
-[assert_size(4)]
-enum PP_HostResolver_Flag {
-  /**
-   * Hint to request the canonical name of the host, which can be retrieved by
-   * <code>GetCanonicalName()</code>.
-   */
-  PP_HOSTRESOLVER_FLAG_CANONNAME = 1 << 0
-};
-
-/**
- * <code>PP_HostResolver_Hint</code> represents hints for host resolution.
- */
-[assert_size(8)]
-struct PP_HostResolver_Hint {
-  /**
-   * Network address family.
-   */
-  PP_NetAddress_Family family;
-  /**
-   * Combination of flags from <code>PP_HostResolver_Flag</code>.
-   */
-  int32_t flags;
-};
-
-/**
- * The <code>PPB_HostResolver</code> interface supports host name
- * resolution.
- *
- * Permissions: In order to run <code>Resolve()</code>, apps permission
- * <code>socket</code> with subrule <code>resolve-host</code> is required.
- * For more details about network communication permissions, please see:
- * http://developer.chrome.com/apps/app_network.html
- */
-interface PPB_HostResolver {
-  /**
-   * Creates a host resolver resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a host reslover or 0
-   * on failure.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-
-  /**
-   * Determines if a given resource is a host resolver.
-   *
-   * @param[in] resource A <code>PP_Resource</code> to check.
-   *
-   * @return <code>PP_TRUE</code> if the input is a
-   * <code>PPB_HostResolver</code> resource; <code>PP_FALSE</code> otherwise.
-   */
-  PP_Bool IsHostResolver([in] PP_Resource resource);
-
-  /**
-   * Requests resolution of a host name. If the call completes successfully, the
-   * results can be retrieved by <code>GetCanonicalName()</code>,
-   * <code>GetNetAddressCount()</code> and <code>GetNetAddress()</code>.
-   *
-   * @param[in] host_resolver A <code>PP_Resource</code> corresponding to a host
-   * resolver.
-   * @param[in] host The host name (or IP address literal) to resolve.
-   * @param[in] port The port number to be set in the resulting network
-   * addresses.
-   * @param[in] hint A <code>PP_HostResolver_Hint</code> structure providing
-   * hints for host resolution.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have
-   * required permissions. <code>PP_ERROR_NAME_NOT_RESOLVED</code> will be
-   * returned if the host name couldn't be resolved.
-   */
-  int32_t Resolve([in] PP_Resource host_resolver,
-                  [in] str_t host,
-                  [in] uint16_t port,
-                  [in] PP_HostResolver_Hint hint,
-                  [in] PP_CompletionCallback callback);
-
-  /**
-   * Gets the canonical name of the host.
-   *
-   * @param[in] host_resolver A <code>PP_Resource</code> corresponding to a host
-   * resolver.
-   *
-   * @return A string <code>PP_Var</code> on success, which is an empty string
-   * if <code>PP_HOSTRESOLVER_FLAG_CANONNAME</code> is not set in the hint flags
-   * when calling <code>Resolve()</code>; an undefined <code>PP_Var</code> if
-   * there is a pending <code>Resolve()</code> call or the previous
-   * <code>Resolve()</code> call failed.
-   */
-  PP_Var GetCanonicalName([in] PP_Resource host_resolver);
-
-  /**
-   * Gets the number of network addresses.
-   *
-   * @param[in] host_resolver A <code>PP_Resource</code> corresponding to a host
-   * resolver.
-   *
-   * @return The number of available network addresses on success; 0 if there is
-   * a pending <code>Resolve()</code> call or the previous
-   * <code>Resolve()</code> call failed.
-   */
-  uint32_t GetNetAddressCount([in] PP_Resource host_resolver);
-
-  /**
-   * Gets a network address.
-   *
-   * @param[in] host_resolver A <code>PP_Resource</code> corresponding to a host
-   * resolver.
-   * @param[in] index An index indicating which address to return.
-   *
-   * @return A <code>PPB_NetAddress</code> resource on success; 0 if there is a
-   * pending <code>Resolve()</code> call or the previous <code>Resolve()</code>
-   * call failed, or the specified index is out of range.
-   */
-  PP_Resource GetNetAddress([in] PP_Resource host_resolver,
-                            [in] uint32_t index);
-};
diff --git a/api/ppb_image_data.idl b/api/ppb_image_data.idl
deleted file mode 100644
index 46dac90..0000000
--- a/api/ppb_image_data.idl
+++ /dev/null
@@ -1,189 +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.
- */
-
-/**
- * This file defines the <code>PPB_ImageData</code> struct for determining how
- * a browser handles image data.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M14 = 1.0
-};
-
-/**
- * <code>PP_ImageDataFormat</code> is an enumeration of the different types of
- * image data formats.
- *
- * The third part of each enumeration value describes the memory layout from
- * the lowest address to the highest. For example, BGRA means the B component
- * is stored in the lowest address, no matter what endianness the platform is
- * using.
- *
- * The PREMUL suffix implies pre-multiplied alpha is used. In this mode, the
- * red, green and blue color components of the pixel data supplied to an image
- * data should be pre-multiplied by their alpha value. For example: starting
- * with floating point color components, here is how to convert them to 8-bit
- * premultiplied components for image data:
- *
- * ...components of a pixel, floats ranging from 0 to 1...
- * <code>float red = 1.0f;</code>
- * <code>float green = 0.50f;</code>
- * <code>float blue = 0.0f;</code>
- * <code>float alpha = 0.75f;</code>
- * ...components for image data are 8-bit values ranging from 0 to 255...
- * <code>uint8_t image_data_red_premul = (uint8_t)(red * alpha * 255.0f);
- * </code>
- * <code>uint8_t image_data_green_premul = (uint8_t)(green * alpha * 255.0f);
- * </code>
- * <code>uint8_t image_data_blue_premul = (uint8_t)(blue * alpha * 255.0f);
- * </code>
- * <code>uint8_t image_data_alpha_premul = (uint8_t)(alpha * 255.0f);</code>
- *
- * <strong>Note:</strong> The resulting pre-multiplied red, green and blue
- * components should not be greater than the alpha value.
- */
-[assert_size(4)]
-enum PP_ImageDataFormat {
-  PP_IMAGEDATAFORMAT_BGRA_PREMUL,
-  PP_IMAGEDATAFORMAT_RGBA_PREMUL,
-  PP_IMAGEDATAFORMAT_LAST = PP_IMAGEDATAFORMAT_RGBA_PREMUL
-};
-
-/**
- * The <code>PP_ImageDataDesc</code> structure represents a description of
- * image data.
- */
-[assert_size(16)]
-struct PP_ImageDataDesc {
-  /**
-   * This value represents one of the image data types in the
-   * <code>PP_ImageDataFormat</code> enum.
-   */
-  PP_ImageDataFormat format;
-
-  /** This value represents the size of the bitmap in pixels. */
-  PP_Size size;
-
-  /**
-   * This value represents the row width in bytes. This may be different than
-   * width * 4 since there may be padding at the end of the lines.
-   */
-  int32_t stride;
-};
-
-/**
- * The <code>PPB_ImageData</code> interface contains pointers to several
- * functions for determining the browser's treatment of image data.
- */
-interface PPB_ImageData {
-  /**
-   * GetNativeImageDataFormat() returns the browser's preferred format for
-   * image data. The browser uses this format internally for painting. Other
-   * formats may require internal conversions to paint or may have additional
-   * restrictions depending on the function.
-   *
-   * @return A <code>PP_ImageDataFormat</code> containing the preferred format.
-   */
-  PP_ImageDataFormat GetNativeImageDataFormat();
-
-  /**
-   * IsImageDataFormatSupported() determines if the given image data format is
-   * supported by the browser. Note: <code>PP_IMAGEDATAFORMAT_BGRA_PREMUL</code>
-   * and <code>PP_IMAGEDATAFORMAT_RGBA_PREMUL</code> formats are always
-   * supported. Other image formats do not make this guarantee, and should be
-   * checked first with IsImageDataFormatSupported() before using.
-   *
-   * @param[in] format The image data format.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * image data format is supported by the browser.
-   */
-  PP_Bool IsImageDataFormatSupported(
-      [in] PP_ImageDataFormat format);
-
-  /**
-   * Create() allocates an image data resource with the given format and size.
-   *
-   * For security reasons, if uninitialized, the bitmap will not contain random
-   * memory, but may contain data from a previous image produced by the same
-   * module if the bitmap was cached and re-used.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] format The desired image data format.
-   * @param[in] size A pointer to a <code>PP_Size</code> containing the image
-   * size.
-   * @param[in] init_to_zero A <code>PP_Bool</code> to determine transparency
-   * at creation.
-   * Set the <code>init_to_zero</code> flag if you want the bitmap initialized
-   * to transparent during the creation process. If this flag is not set, the
-   * current contents of the bitmap will be undefined, and the module should
-   * be sure to set all the pixels.
-   *
-   * @return A <code>PP_Resource</code> with a nonzero ID on success or zero on
-   * failure. Failure means the instance, image size, or format was invalid.
-   */
-  PP_Resource Create(
-      [in] PP_Instance instance,
-      [in] PP_ImageDataFormat format,
-      [in] PP_Size size,
-      [in] PP_Bool init_to_zero);
-
-  /**
-   * IsImageData() determines if a given resource is image data.
-   *
-   * @param[in] image_data A <code>PP_Resource</code> corresponding to image
-   * data.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * resource is an image data or <code>PP_FALSE</code> if the resource is
-   * invalid or some type other than image data.
-   */
-  PP_Bool IsImageData(
-      [in] PP_Resource image_data);
-
-  /**
-   * Describe() computes the description of the
-   * image data.
-   *
-   * @param[in] image_data A <code>PP_Resource</code> corresponding to image
-   * data.
-   * @param[in,out] desc A pointer to a <code>PP_ImageDataDesc</code>
-   * containing the description.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> on success or
-   * <code>PP_FALSE</code> if the resource is not an image data. On
-   * <code>PP_FALSE</code>, the <code>desc</code> structure will be filled
-   * with 0.
-   */
-  [always_set_output_parameters]
-  PP_Bool Describe(
-      [in] PP_Resource image_data,
-      [out] PP_ImageDataDesc desc);
-
-  /**
-   * Map() maps an image data into the module address space.
-   *
-   * @param[in] image_data A <code>PP_Resource</code> corresponding to image
-   * data.
-   *
-   * @return A pointer to the beginning of the data.
-   */
-  mem_t Map(
-      [in] PP_Resource image_data);
-
-  /**
-   * Unmap is a pointer to a function that unmaps an image data from the module
-   * address space.
-   *
-   * @param[in] image_data A <code>PP_Resource</code> corresponding to image
-   * data.
-   */
-  void Unmap(
-      [in] PP_Resource image_data);
-};
-
diff --git a/api/ppb_input_event.idl b/api/ppb_input_event.idl
deleted file mode 100644
index d89a196..0000000
--- a/api/ppb_input_event.idl
+++ /dev/null
@@ -1,1135 +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.
- */
-
-/**
- * This file defines the Input Event interfaces.
- */
-
-label Chrome {
-  M13 = 1.0,
-  M14 = 1.1,
-  M34 = 1.2,
-  M55 = 1.3,
-  M60 = 1.4
-};
-
-/**
- * This enumeration contains the types of input events.
- */
-[assert_size(4)]
-enum PP_InputEvent_Type {
-  PP_INPUTEVENT_TYPE_UNDEFINED = -1,
-  PP_INPUTEVENT_TYPE_FIRST = PP_INPUTEVENT_TYPE_UNDEFINED,
-
-  /**
-   * Notification that a mouse button was pressed.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_MOUSE class.
-   */
-  PP_INPUTEVENT_TYPE_MOUSEDOWN = 0,
-
-  /**
-   * Notification that a mouse button was released.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_MOUSE class.
-   */
-  PP_INPUTEVENT_TYPE_MOUSEUP = 1,
-
-  /**
-   * Notification that a mouse button was moved when it is over the instance
-   * or dragged out of it.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_MOUSE class.
-   */
-  PP_INPUTEVENT_TYPE_MOUSEMOVE = 2,
-
-  /**
-   * Notification that the mouse entered the instance's bounds.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_MOUSE class.
-   */
-  PP_INPUTEVENT_TYPE_MOUSEENTER = 3,
-
-  /**
-   * Notification that a mouse left the instance's bounds.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_MOUSE class.
-   */
-  PP_INPUTEVENT_TYPE_MOUSELEAVE = 4,
-
-  /**
-   * Notification that the scroll wheel was used.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_WHEEL class.
-   */
-  PP_INPUTEVENT_TYPE_WHEEL = 5,
-
-  /**
-   * Notification that a key transitioned from "up" to "down".
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_KEYBOARD class.
-   */
-  PP_INPUTEVENT_TYPE_RAWKEYDOWN = 6,
-
-  /**
-   * Notification that a key was pressed. This does not necessarily correspond
-   * to a character depending on the key and language. Use the
-   * PP_INPUTEVENT_TYPE_CHAR for character input.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_KEYBOARD class.
-   */
-  PP_INPUTEVENT_TYPE_KEYDOWN = 7,
-
-  /**
-   * Notification that a key was released.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_KEYBOARD class.
-   */
-  PP_INPUTEVENT_TYPE_KEYUP = 8,
-
-  /**
-   * Notification that a character was typed. Use this for text input. Key
-   * down events may generate 0, 1, or more than one character event depending
-   * on the key, locale, and operating system.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_KEYBOARD class.
-   */
-  PP_INPUTEVENT_TYPE_CHAR = 9,
-
-  /**
-   * Notification that a context menu should be shown.
-   *
-   * This message will be sent when the user right-clicks or performs another
-   * OS-specific mouse command that should open a context menu. When this event
-   * is delivered depends on the system, on some systems (Mac) it will
-   * delivered after the mouse down event, and on others (Windows) it will be
-   * delivered after the mouse up event.
-   *
-   * You will always get the normal mouse events. For example, you may see
-   * MOUSEDOWN,CONTEXTMENU,MOUSEUP or MOUSEDOWN,MOUSEUP,CONTEXTMENU.
-   *
-   * The return value from the event handler determines if the context menu
-   * event will be passed to the page when you are using filtered input events
-   * (via RequestFilteringInputEvents()). In non-filtering mode the event will
-   * never be propagated and no context menu will be displayed. If you are
-   * handling mouse events in filtering mode, you may want to return true from
-   * this event even if you do not support a context menu to suppress the
-   * default one.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_MOUSE class.
-   */
-  PP_INPUTEVENT_TYPE_CONTEXTMENU = 10,
-
-  /**
-   * Notification that an input method composition process has just started.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_IME class.
-   */
-  PP_INPUTEVENT_TYPE_IME_COMPOSITION_START = 11,
-
-  /**
-   * Notification that the input method composition string is updated.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_IME class.
-   */
-  PP_INPUTEVENT_TYPE_IME_COMPOSITION_UPDATE = 12,
-
-  /**
-   * Notification that an input method composition process has completed.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_IME class.
-   */
-  PP_INPUTEVENT_TYPE_IME_COMPOSITION_END = 13,
-
-  /**
-   * Notification that an input method committed a string.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_IME class.
-   */
-  PP_INPUTEVENT_TYPE_IME_TEXT = 14,
-
-  /**
-   * Notification that a finger was placed on a touch-enabled device.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_TOUCH class.
-   */
-  PP_INPUTEVENT_TYPE_TOUCHSTART = 15,
-
-  /**
-   * Notification that a finger was moved on a touch-enabled device.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_TOUCH class.
-   */
-  PP_INPUTEVENT_TYPE_TOUCHMOVE = 16,
-
-  /**
-   * Notification that a finger was released on a touch-enabled device.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_TOUCH class.
-   */
-  PP_INPUTEVENT_TYPE_TOUCHEND = 17,
-
-  /**
-   * Notification that a touch event was canceled.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_TOUCH class.
-   */
-  PP_INPUTEVENT_TYPE_TOUCHCANCEL = 18,
-  PP_INPUTEVENT_TYPE_LAST = PP_INPUTEVENT_TYPE_TOUCHCANCEL
-};
-
-/**
- * This enumeration contains event modifier constants. Each modifier is one
- * bit. Retrieve the modifiers from an input event using the GetEventModifiers
- * function on PPB_InputEvent.
- */
-[assert_size(4)]
-enum PP_InputEvent_Modifier {
-  PP_INPUTEVENT_MODIFIER_SHIFTKEY         = 1 << 0,
-  PP_INPUTEVENT_MODIFIER_CONTROLKEY       = 1 << 1,
-  PP_INPUTEVENT_MODIFIER_ALTKEY           = 1 << 2,
-  PP_INPUTEVENT_MODIFIER_METAKEY          = 1 << 3,
-  PP_INPUTEVENT_MODIFIER_ISKEYPAD         = 1 << 4,
-  PP_INPUTEVENT_MODIFIER_ISAUTOREPEAT     = 1 << 5,
-  PP_INPUTEVENT_MODIFIER_LEFTBUTTONDOWN   = 1 << 6,
-  PP_INPUTEVENT_MODIFIER_MIDDLEBUTTONDOWN = 1 << 7,
-  PP_INPUTEVENT_MODIFIER_RIGHTBUTTONDOWN  = 1 << 8,
-  PP_INPUTEVENT_MODIFIER_CAPSLOCKKEY      = 1 << 9,
-  PP_INPUTEVENT_MODIFIER_NUMLOCKKEY       = 1 << 10,
-  PP_INPUTEVENT_MODIFIER_ISLEFT           = 1 << 11,
-  PP_INPUTEVENT_MODIFIER_ISRIGHT          = 1 << 12,
-  [version=1.3]
-  PP_INPUTEVENT_MODIFIER_ISPEN            = 1 << 13,
-  [version=1.3]
-  PP_INPUTEVENT_MODIFIER_ISERASER         = 1 << 14
-};
-
-/**
- * This enumeration contains constants representing each mouse button. To get
- * the mouse button for a mouse down or up event, use GetMouseButton on
- * PPB_InputEvent.
- */
-[assert_size(4)]
-enum PP_InputEvent_MouseButton {
-  PP_INPUTEVENT_MOUSEBUTTON_NONE   = -1,
-  PP_INPUTEVENT_MOUSEBUTTON_FIRST  = PP_INPUTEVENT_MOUSEBUTTON_NONE,
-  PP_INPUTEVENT_MOUSEBUTTON_LEFT   = 0,
-  PP_INPUTEVENT_MOUSEBUTTON_MIDDLE = 1,
-  PP_INPUTEVENT_MOUSEBUTTON_RIGHT  = 2,
-  PP_INPUTEVENT_MOUSEBUTTON_LAST   = PP_INPUTEVENT_MOUSEBUTTON_RIGHT
-};
-
-[assert_size(4)]
-enum PP_InputEvent_Class {
-  /**
-   * Request mouse input events.
-   *
-   * Normally you will request mouse events by calling RequestInputEvents().
-   * The only use case for filtered events (via RequestFilteringInputEvents())
-   * is for instances that have irregular outlines and you want to perform hit
-   * testing, which is very uncommon. Requesting non-filtered mouse events will
-   * lead to higher performance.
-   */
-  PP_INPUTEVENT_CLASS_MOUSE = 1 << 0,
-
-  /**
-   * Requests keyboard events. Often you will want to request filtered mode
-   * (via RequestFilteringInputEvents) for keyboard events so you can pass on
-   * events (by returning false) that you don't handle. For example, if you
-   * don't request filtered mode and the user pressed "Page Down" when your
-   * instance has focus, the page won't scroll which will be a poor experience.
-   *
-   * A small number of tab and window management commands like Alt-F4 are never
-   * sent to the page. You can not request these keyboard commands since it
-   * would allow pages to trap users on a page.
-   */
-  PP_INPUTEVENT_CLASS_KEYBOARD = 1 << 1,
-
-  /**
-   * Identifies scroll wheel input event. Wheel events must be requested in
-   * filtering mode via RequestFilteringInputEvents(). This is because many
-   * wheel commands should be forwarded to the page.
-   *
-   * Most instances will not need this event. Consuming wheel events by
-   * returning true from your filtered event handler will prevent the user from
-   * scrolling the page when the mouse is over the instance which can be very
-   * annoying.
-   *
-   * If you handle wheel events (for example, you have a document viewer which
-   * the user can scroll), the recommended behavior is to return false only if
-   * the wheel event actually causes your document to scroll. When the user
-   * reaches the end of the document, return false to indicating that the event
-   * was not handled. This will then forward the event to the containing page
-   * for scrolling, producing the nested scrolling behavior users expect from
-   * frames in a page.
-   */
-  PP_INPUTEVENT_CLASS_WHEEL = 1 << 2,
-
-  /**
-   * Identifies touch input events.
-   *
-   * Request touch events only if you intend to handle them. If the browser
-   * knows you do not need to handle touch events, it can handle them at a
-   * higher level and achieve higher performance. If the plugin does not
-   * register for touch-events, then it will receive synthetic mouse events that
-   * are generated from the touch events (e.g. mouse-down for touch-start,
-   * mouse-move for touch-move (with left-button down), and mouse-up for
-   * touch-end. If the plugin does register for touch events, then the synthetic
-   * mouse events are not created.
-   */
-  PP_INPUTEVENT_CLASS_TOUCH = 1 << 3,
-
-  /**
-   * Identifies IME composition input events.
-   *
-   * Request this input event class if you allow on-the-spot IME input.
-   */
-  PP_INPUTEVENT_CLASS_IME = 1 << 4,
-
-  /**
-  * Identifies coalesced touch input events.
-  *
-  * Touch events are coalesced for each frame. By default, the coalesced touch
-  * events will be dropped. Request this input event class if you intend to
-  * handle all the touch events.
-  */
-  PP_INPUTEVENT_CLASS_COALESCED_TOUCH = 1 << 5
-};
-
-/**
- * The <code>PPB_InputEvent</code> interface contains pointers to several
- * functions related to generic input events on the browser.
- */
-[version=1.0, macro="PPB_INPUT_EVENT_INTERFACE"]
-interface PPB_InputEvent {
-  /**
-   * RequestInputEvent() requests that input events corresponding to the given
-   * input events are delivered to the instance.
-   *
-   * It's recommended that you use RequestFilteringInputEvents() for keyboard
-   * events instead of this function so that you don't interfere with normal
-   * browser accelerators.
-   *
-   * By default, no input events are delivered. Call this function with the
-   * classes of events you are interested in to have them be delivered to
-   * the instance. Calling this function will override any previous setting for
-   * each specified class of input events (for example, if you previously
-   * called RequestFilteringInputEvents(), this function will set those events
-   * to non-filtering mode).
-   *
-   * Input events may have high overhead, so you should only request input
-   * events that your plugin will actually handle. For example, the browser may
-   * do optimizations for scroll or touch events that can be processed
-   * substantially faster if it knows there are no non-default receivers for
-   * that message. Requesting that such messages be delivered, even if they are
-   * processed very quickly, may have a noticeable effect on the performance of
-   * the page.
-   *
-   * Note that synthetic mouse events will be generated from touch events if
-   * (and only if) you do not request touch events.
-   *
-   * When requesting input events through this function, the events will be
-   * delivered and <i>not</i> bubbled to the default handlers.
-   *
-   * <strong>Example:</strong>
-   * @code
-   *   RequestInputEvents(instance, PP_INPUTEVENT_CLASS_MOUSE);
-   *   RequestFilteringInputEvents(instance,
-   *       PP_INPUTEVENT_CLASS_WHEEL | PP_INPUTEVENT_CLASS_KEYBOARD);
-   * @endcode
-   *
-   * @param instance The <code>PP_Instance</code> of the instance requesting
-   * the given events.
-   *
-   * @param event_classes A combination of flags from
-   * <code>PP_InputEvent_Class</code> that identifies the classes of events the
-   * instance is requesting. The flags are combined by logically ORing their
-   * values.
-   *
-   * @return <code>PP_OK</code> if the operation succeeded,
-   * <code>PP_ERROR_BADARGUMENT</code> if instance is invalid, or
-   * <code>PP_ERROR_NOTSUPPORTED</code> if one of the event class bits were
-   * illegal. In the case of an invalid bit, all valid bits will be applied
-   * and only the illegal bits will be ignored. The most common cause of a
-   * <code>PP_ERROR_NOTSUPPORTED</code> return value is requesting keyboard
-   * events, these must use RequestFilteringInputEvents().
-   */
-  int32_t RequestInputEvents([in] PP_Instance instance,
-                             [in] uint32_t event_classes);
-
-  /**
-   * RequestFilteringInputEvents() requests that input events corresponding to
-   * the given input events are delivered to the instance for filtering.
-   *
-   * By default, no input events are delivered. In most cases you would
-   * register to receive events by calling RequestInputEvents(). In some cases,
-   * however, you may wish to filter events such that they can be bubbled up
-   * to the default handlers. In this case, register for those classes of
-   * events using this function instead of RequestInputEvents().
-   *
-   * Filtering input events requires significantly more overhead than just
-   * delivering them to the instance. As such, you should only request
-   * filtering in those cases where it's absolutely necessary. The reason is
-   * that it requires the browser to stop and block for the instance to handle
-   * the input event, rather than sending the input event asynchronously. This
-   * can have significant overhead.
-   *
-   * <strong>Example:</strong>
-   * @code
-   *   RequestInputEvents(instance, PP_INPUTEVENT_CLASS_MOUSE);
-   *   RequestFilteringInputEvents(instance,
-   *       PP_INPUTEVENT_CLASS_WHEEL | PP_INPUTEVENT_CLASS_KEYBOARD);
-   * @endcode
-   *
-   * @return <code>PP_OK</code> if the operation succeeded,
-   * <code>PP_ERROR_BADARGUMENT</code> if instance is invalid, or
-   * <code>PP_ERROR_NOTSUPPORTED</code> if one of the event class bits were
-   * illegal. In the case of an invalid bit, all valid bits will be applied
-   * and only the illegal bits will be ignored.
-   */
-  int32_t RequestFilteringInputEvents([in] PP_Instance instance,
-                                      [in] uint32_t event_classes);
-
-  /**
-   * ClearInputEventRequest() requests that input events corresponding to the
-   * given input classes no longer be delivered to the instance.
-   *
-   * By default, no input events are delivered. If you have previously
-   * requested input events via RequestInputEvents() or
-   * RequestFilteringInputEvents(), this function will unregister handling
-   * for the given instance. This will allow greater browser performance for
-   * those events.
-   *
-   * Note that you may still get some input events after clearing the flag if
-   * they were dispatched before the request was cleared. For example, if
-   * there are 3 mouse move events waiting to be delivered, and you clear the
-   * mouse event class during the processing of the first one, you'll still
-   * receive the next two. You just won't get more events generated.
-   *
-   * @param instance The <code>PP_Instance</code> of the instance requesting
-   * to no longer receive the given events.
-   *
-   * @param event_classes A combination of flags from
-   * <code>PP_InputEvent_Class</code> that identify the classes of events the
-   * instance is no longer interested in.
-   */
-  void ClearInputEventRequest([in] PP_Instance instance,
-                              [in] uint32_t event_classes);
-
-  /**
-   * IsInputEvent() returns true if the given resource is a valid input event
-   * resource.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a generic
-   * resource.
-   *
-   * @return <code>PP_TRUE</code> if the given resource is a valid input event
-   * resource.
-   */
-  PP_Bool IsInputEvent([in] PP_Resource resource);
-
-  /**
-   * GetType() returns the type of input event for the given input event
-   * resource.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an input
-   * event.
-   *
-   * @return A <code>PP_InputEvent_Type</code> if its a valid input event or
-   * <code>PP_INPUTEVENT_TYPE_UNDEFINED</code> if the resource is invalid.
-   */
-  PP_InputEvent_Type GetType([in] PP_Resource event);
-
-  /**
-   * GetTimeStamp() Returns the time that the event was generated. This will be
-   *  before the current time since processing and dispatching the event has
-   * some overhead. Use this value to compare the times the user generated two
-   * events without being sensitive to variable processing time.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to the event.
-   *
-   * @return The return value is in time ticks, which is a monotonically
-   * increasing clock not related to the wall clock time. It will not change
-   * if the user changes their clock or daylight savings time starts, so can
-   * be reliably used to compare events. This means, however, that you can't
-   * correlate event times to a particular time of day on the system clock.
-   */
-  PP_TimeTicks GetTimeStamp([in] PP_Resource event);
-
-  /**
-   * GetModifiers() returns a bitfield indicating which modifiers were down
-   * at the time of the event. This is a combination of the flags in the
-   * <code>PP_InputEvent_Modifier</code> enum.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an input
-   * event.
-   *
-   * @return The modifiers associated with the event, or 0 if the given
-   * resource is not a valid event resource.
-   */
-  uint32_t GetModifiers([in] PP_Resource event);
-};
-
-/**
- * The <code>PPB_MouseInputEvent</code> interface contains pointers to several
- * functions related to mouse input events.
- */
-[macro="PPB_MOUSE_INPUT_EVENT_INTERFACE"]
-interface PPB_MouseInputEvent {
-  /**
-   * Create() creates a mouse input event with the given parameters. Normally
-   * you will get a mouse event passed through the
-   * <code>HandleInputEvent</code> and will not need to create them, but some
-   * applications may want to create their own for internal use. The type must
-   * be one of the mouse event types.
-   *
-   * @param[in] instance The instance for which this event occurred.
-   *
-   * @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-   * input event.
-   *
-   * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-   * when the event occurred.
-   *
-   * @param[in] modifiers A bit field combination of the
-   * <code>PP_InputEvent_Modifier</code> flags.
-   *
-   * @param[in] mouse_button The button that changed for mouse down or up
-   * events. This value will be <code>PP_EVENT_MOUSEBUTTON_NONE</code> for
-   * mouse move, enter, and leave events.
-   *
-   * @param[in] mouse_position A <code>Point</code> containing the x and y
-   * position of the mouse when the event occurred.
-   *
-   * @return A <code>PP_Resource</code> containing the new mouse input event.
-   */
-  PP_Resource Create([in] PP_Instance instance,
-                     [in] PP_InputEvent_Type type,
-                     [in] PP_TimeTicks time_stamp,
-                     [in] uint32_t modifiers,
-                     [in] PP_InputEvent_MouseButton mouse_button,
-                     [in] PP_Point mouse_position,
-                     [in] int32_t click_count);
-
-  /**
-   * Create() creates a mouse input event with the given parameters. Normally
-   * you will get a mouse event passed through the
-   * <code>HandleInputEvent</code> and will not need to create them, but some
-   * applications may want to create their own for internal use. The type must
-   * be one of the mouse event types.
-   *
-   * @param[in] instance The instance for which this event occurred.
-   *
-   * @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-   * input event.
-   *
-   * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-   * when the event occurred.
-   *
-   * @param[in] modifiers A bit field combination of the
-   * <code>PP_InputEvent_Modifier</code> flags.
-   *
-   * @param[in] mouse_button The button that changed for mouse down or up
-   * events. This value will be <code>PP_EVENT_MOUSEBUTTON_NONE</code> for
-   * mouse move, enter, and leave events.
-   *
-   * @param[in] mouse_position A <code>Point</code> containing the x and y
-   * position of the mouse when the event occurred.
-   *
-   * @param[in] mouse_movement The change in position of the mouse.
-   *
-   * @return A <code>PP_Resource</code> containing the new mouse input event.
-   */
-  [version=1.1]
-  PP_Resource Create([in] PP_Instance instance,
-                     [in] PP_InputEvent_Type type,
-                     [in] PP_TimeTicks time_stamp,
-                     [in] uint32_t modifiers,
-                     [in] PP_InputEvent_MouseButton mouse_button,
-                     [in] PP_Point mouse_position,
-                     [in] int32_t click_count,
-                     [in] PP_Point mouse_movement);
-  /**
-   * IsMouseInputEvent() determines if a resource is a mouse event.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an event.
-   *
-   * @return <code>PP_TRUE</code> if the given resource is a valid mouse input
-   * event, otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool IsMouseInputEvent([in] PP_Resource resource);
-
-  /**
-   * GetButton() returns the mouse button that generated a mouse down or up
-   * event.
-   *
-   * @param[in] mouse_event A <code>PP_Resource</code> corresponding to a
-   * mouse event.
-   *
-   * @return The mouse button associated with mouse down and up events. This
-   * value will be <code>PP_EVENT_MOUSEBUTTON_NONE</code> for mouse move,
-   * enter, and leave events, and for all non-mouse events.
-   */
-  PP_InputEvent_MouseButton GetButton([in] PP_Resource mouse_event);
-
-  /**
-   * GetPosition() returns the pixel location of a mouse input event. When
-   * the mouse is locked, it returns the last known mouse position just as
-   * mouse lock was entered.
-   *
-   * @param[in] mouse_event A <code>PP_Resource</code> corresponding to a
-   * mouse event.
-   *
-   * @return The point associated with the mouse event, relative to the upper-
-   * left of the instance receiving the event. These values can be negative for
-   * mouse drags. The return value will be (0, 0) for non-mouse events.
-   */
-  [returnByValue] PP_Point GetPosition([in] PP_Resource mouse_event);
-
-  int32_t GetClickCount([in] PP_Resource mouse_event);
-
-  /**
-   * Returns the change in position of the mouse. When the mouse is locked,
-   * although the mouse position doesn't actually change, this function
-   * still provides movement information, which indicates what the change in
-   * position would be had the mouse not been locked.
-   *
-   * @param[in] mouse_event A <code>PP_Resource</code> corresponding to a
-   * mouse event.
-   *
-   * @return The change in position of the mouse, relative to the previous
-   * position.
-   */
-  [version=1.1]
-  PP_Point GetMovement([in] PP_Resource mouse_event);
-};
-
-
-/**
- * The <code>PPB_WheelIputEvent</code> interface contains pointers to several
- * functions related to wheel input events.
- */
-[version=1.0, macro="PPB_WHEEL_INPUT_EVENT_INTERFACE"]
-interface PPB_WheelInputEvent {
-  /**
-   * Create() creates a wheel input event with the given parameters. Normally
-   * you will get a wheel event passed through the
-   * <code>HandleInputEvent</code> and will not need to create them, but some
-   * applications may want to create their own for internal use.
-   *
-   * @param[in] instance The instance for which this event occurred.
-   *
-   * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-   * when the event occurred.
-   *
-   * @param[in] modifiers A bit field combination of the
-   * <code>PP_InputEvent_Modifier</code> flags.
-   *
-   * @param[in] wheel_delta The scroll wheel's horizontal and vertical scroll
-   * amounts.
-   *
-   * @param[in] wheel_ticks The number of "clicks" of the scroll wheel that
-   * have produced the event.
-   *
-   * @param[in] scroll_by_page When true, the user is requesting to scroll
-   * by pages. When false, the user is requesting to scroll by lines.
-   *
-   * @return A <code>PP_Resource</code> containing the new wheel input event.
-   */
-  PP_Resource Create([in] PP_Instance instance,
-                     [in] PP_TimeTicks time_stamp,
-                     [in] uint32_t modifiers,
-                     [in] PP_FloatPoint wheel_delta,
-                     [in] PP_FloatPoint wheel_ticks,
-                     [in] PP_Bool scroll_by_page);
-
-  /**
-   * IsWheelInputEvent() determines if a resource is a wheel event.
-   *
-   * @param[in] wheel_event A <code>PP_Resource</code> corresponding to an
-   * event.
-   *
-   * @return <code>PP_TRUE</code> if the given resource is a valid wheel input
-   * event.
-   */
-  PP_Bool IsWheelInputEvent([in] PP_Resource resource);
-
-  /**
-   * GetDelta() returns the amount vertically and horizontally the user has
-   * requested to scroll by with their mouse wheel. A scroll down or to the
-   * right (where the content moves up or left) is represented as positive
-   * values, and a scroll up or to the left (where the content moves down or
-   * right) is represented as negative values.
-   *
-   * This amount is system dependent and will take into account the user's
-   * preferred scroll sensitivity and potentially also nonlinear acceleration
-   * based on the speed of the scrolling.
-   *
-   * Devices will be of varying resolution. Some mice with large detents will
-   * only generate integer scroll amounts. But fractional values are also
-   * possible, for example, on some trackpads and newer mice that don't have
-   * "clicks".
-   *
-   * @param[in] wheel_event A <code>PP_Resource</code> corresponding to a wheel
-   * event.
-   *
-   * @return The vertical and horizontal scroll values. The units are either in
-   * pixels (when scroll_by_page is false) or pages (when scroll_by_page is
-   * true). For example, y = -3 means scroll up 3 pixels when scroll_by_page
-   * is false, and scroll up 3 pages when scroll_by_page is true.
-   */
-  PP_FloatPoint GetDelta([in] PP_Resource wheel_event);
-
-  /**
-   * GetTicks() returns the number of "clicks" of the scroll wheel
-   * that have produced the event. The value may have system-specific
-   * acceleration applied to it, depending on the device. The positive and
-   * negative meanings are the same as for GetDelta().
-   *
-   * If you are scrolling, you probably want to use the delta values.  These
-   * tick events can be useful if you aren't doing actual scrolling and don't
-   * want or pixel values. An example may be cycling between different items in
-   * a game.
-   *
-   * @param[in] wheel_event A <code>PP_Resource</code> corresponding to a wheel
-   * event.
-   *
-   * @return The number of "clicks" of the scroll wheel. You may receive
-   * fractional values for the wheel ticks if the mouse wheel is high
-   * resolution or doesn't have "clicks". If your program wants discrete
-   * events (as in the "picking items" example) you should accumulate
-   * fractional click values from multiple messages until the total value
-   * reaches positive or negative one. This should represent a similar amount
-   * of scrolling as for a mouse that has a discrete mouse wheel.
-   */
-  PP_FloatPoint GetTicks([in] PP_Resource wheel_event);
-
-  /**
-   * GetScrollByPage() indicates if the scroll delta x/y indicates pages or
-   * lines to scroll by.
-   *
-   * @param[in] wheel_event A <code>PP_Resource</code> corresponding to a wheel
-   * event.
-   *
-   * @return <code>PP_TRUE</code> if the event is a wheel event and the user is
-   * scrolling by pages. <code>PP_FALSE</code> if not or if the resource is not
-   * a wheel event.
-   */
-  PP_Bool GetScrollByPage([in] PP_Resource wheel_event);
-};
-
-/**
- * The <code>PPB_KeyboardInputEvent</code> interface contains pointers to
- * several functions related to keyboard input events.
- */
-[version=1.0, macro="PPB_KEYBOARD_INPUT_EVENT_INTERFACE"]
-interface PPB_KeyboardInputEvent {
-  /**
-   * Creates a keyboard input event with the given parameters. Normally you
-   * will get a keyboard event passed through the HandleInputEvent and will not
-   * need to create them, but some applications may want to create their own
-   * for internal use. The type must be one of the keyboard event types.
-   *
-   * @param[in] instance The instance for which this event occurred.
-   *
-   * @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-   * input event.
-   *
-   * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-   * when the event occurred.
-   *
-   * @param[in]  modifiers A bit field combination of the
-   * <code>PP_InputEvent_Modifier</code> flags.
-   *
-   * @param[in] key_code This value reflects the DOM KeyboardEvent
-   * <code>keyCode</code> field, which is the Windows-style Virtual Key
-   * code of the key.
-   *
-   * @param[in] character_text This value represents the typed character as a
-   * UTF-8 string.
-   *
-   * @return A <code>PP_Resource</code> containing the new keyboard input
-   * event.
-   */
-  [deprecate=1.2]
-  PP_Resource Create([in] PP_Instance instance,
-                     [in] PP_InputEvent_Type type,
-                     [in] PP_TimeTicks time_stamp,
-                     [in] uint32_t modifiers,
-                     [in] uint32_t key_code,
-                     [in] PP_Var character_text);
-
-  /**
-   * Creates a keyboard input event with the given parameters. Normally you
-   * will get a keyboard event passed through the HandleInputEvent and will not
-   * need to create them, but some applications may want to create their own
-   * for internal use. The type must be one of the keyboard event types.
-   *
-   * @param[in] instance The instance for which this event occurred.
-   *
-   * @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-   * input event.
-   *
-   * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-   * when the event occurred.
-   *
-   * @param[in] modifiers A bit field combination of the
-   * <code>PP_InputEvent_Modifier</code> flags.
-   *
-   * @param[in] key_code This value reflects the DOM KeyboardEvent
-   * <code>keyCode</code> field, which is the Windows-style Virtual Key
-   * code of the key.
-   *
-   * @param[in] character_text This value represents the typed character as a
-   * UTF-8 string.
-   *
-   * @param[in] code This value represents the DOM3 |code| string that
-   * corresponds to the physical key being pressed.
-   *
-   * @return A <code>PP_Resource</code> containing the new keyboard input
-   * event.
-   */
-  [version=1.2]
-  PP_Resource Create([in] PP_Instance instance,
-                     [in] PP_InputEvent_Type type,
-                     [in] PP_TimeTicks time_stamp,
-                     [in] uint32_t modifiers,
-                     [in] uint32_t key_code,
-                     [in] PP_Var character_text,
-                     [in] PP_Var code);
-
-  /**
-   * IsKeyboardInputEvent() determines if a resource is a keyboard event.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an event.
-   *
-   * @return <code>PP_TRUE</code> if the given resource is a valid input event.
-   */
-  PP_Bool IsKeyboardInputEvent([in] PP_Resource resource);
-
-  /**
-   * GetKeyCode() returns the DOM keyCode field for the keyboard event.
-   * Chrome populates this with the Windows-style Virtual Key code of the key.
-   *
-   * @param[in] key_event A <code>PP_Resource</code> corresponding to a
-   * keyboard event.
-   *
-   * @return The DOM keyCode field for the keyboard event.
-   */
-  uint32_t GetKeyCode([in] PP_Resource key_event);
-
-  /**
-   * GetCharacterText() returns the typed character as a UTF-8 string for the
-   * given character event.
-   *
-   * @param[in] character_event A <code>PP_Resource</code> corresponding to a
-   * keyboard event.
-   *
-   * @return A string var representing a single typed character for character
-   * input events. For non-character input events the return value will be an
-   * undefined var.
-   */
-  PP_Var GetCharacterText([in] PP_Resource character_event);
-
-  /**
-   * GetCode() returns the DOM |code| field for this keyboard event, as
-   * defined in the DOM3 Events spec:
-   * http://www.w3.org/TR/DOM-Level-3-Events/
-   *
-   * @param[in] key_event The key event for which to return the key code.
-   *
-   * @return The string that contains the DOM |code| for the keyboard event.
-   */
-  [version=1.2]
-  PP_Var GetCode([in] PP_Resource key_event);
-};
-
-[assert_size(4)]
-enum PP_TouchListType {
-  /**
-   * The list of all TouchPoints which are currently down.
-   */
-  PP_TOUCHLIST_TYPE_TOUCHES = 0,
-
-  /**
-   * The list of all TouchPoints whose state has changed since the last
-   * TouchInputEvent.
-   */
-  PP_TOUCHLIST_TYPE_CHANGEDTOUCHES = 1,
-
-  /**
-   * The list of all TouchPoints which are targeting this plugin.  This is a
-   * subset of Touches.
-   */
-  PP_TOUCHLIST_TYPE_TARGETTOUCHES = 2
-};
-
-/**
- * The <code>PPB_TouchInputEvent</code> interface contains pointers to several
- * functions related to touch events.
- */
-[version=1.0, macro="PPB_TOUCH_INPUT_EVENT_INTERFACE"]
-interface PPB_TouchInputEvent {
-  /**
-   * Creates a touch input event with the given parameters. Normally you
-   * will get a touch event passed through the HandleInputEvent and will not
-   * need to create them, but some applications may want to create their own
-   * for internal use. The type must be one of the touch event types.
-   * This newly created touch input event does not have any touch point in any
-   * of the touch-point lists. <code>AddTouchPoint</code> should be called to
-   * add the touch-points.
-   *
-   * @param[in] instance The instance for which this event occurred.
-   *
-   * @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-   * input event.
-   *
-   * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-   * when the event occurred.
-   *
-   * @param[in]  modifiers A bit field combination of the
-   * <code>PP_InputEvent_Modifier</code> flags.
-   *
-   * @return A <code>PP_Resource</code> containing the new touch input event.
-   */
-  PP_Resource Create([in] PP_Instance instance,
-                     [in] PP_InputEvent_Type type,
-                     [in] PP_TimeTicks time_stamp,
-                     [in] uint32_t modifiers);
-
-  /**
-   * Adds a touch point to the touch event in the specified touch-list.
-   *
-   * @param[in] touch_event A <code>PP_Resource</code> corresponding to a touch
-   * event.
-   *
-   * @param[in] list The list to add the touch point to.
-   *
-   * @param[in] point The point to add to the list.
-   */
-  void AddTouchPoint([in] PP_Resource touch_event,
-                     [in] PP_TouchListType list,
-                     [in] PP_TouchPoint point);
-
-  /**
-   * IsTouchInputEvent() determines if a resource is a touch event.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an event.
-   *
-   * @return <code>PP_TRUE</code> if the given resource is a valid touch input
-   * event, otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool IsTouchInputEvent([in] PP_Resource resource);
-
-  /**
-   * Returns the number of touch-points in the specified list.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a touch
-   * event.
-   *
-   * @param[in] list The list.
-   *
-   * @return The number of touch-points in the specified list.
-   */
-  uint32_t GetTouchCount([in] PP_Resource resource,
-                         [in] PP_TouchListType list);
-
-  /**
-   * Returns the touch-point at the specified index from the specified list.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a touch
-   * event.
-   *
-   * @param[in] list The list.
-   *
-   * @param[in] index The index.
-   *
-   * @return A <code>PP_TouchPoint</code> representing the touch-point.
-   */
-  PP_TouchPoint GetTouchByIndex([in] PP_Resource resource,
-                                [in] PP_TouchListType list,
-                                [in] uint32_t index);
-
-  /**
-   * Returns the touch-point with the specified touch-id in the specified list.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a touch
-   * event.
-   *
-   * @param[in] list The list.
-   *
-   * @param[in] touch_id The id of the touch-point.
-   *
-   * @return A <code>PP_TouchPoint</code> representing the touch-point.
-   */
-  PP_TouchPoint GetTouchById([in] PP_Resource resource,
-                             [in] PP_TouchListType list,
-                             [in] uint32_t touch_id);
-
-  /**
-   * Returns the touch-tilt with the specified index in the specified list.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a touch
-   * event.
-   *
-   * @param[in] list The list.
-   *
-   * @param[in] index The index.
-   *
-   * @return A <code>PP_FloatPoint</code> representing the tilt of the
-   * touch-point.
-   */
-  [version=1.4]
-  PP_FloatPoint GetTouchTiltByIndex([in] PP_Resource resource,
-                                    [in] PP_TouchListType list,
-                                    [in] uint32_t index);
-
-  /**
-   * Returns the touch-tilt with the specified touch-id in the specified list.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a touch
-   * event.
-   *
-   * @param[in] list The list.
-   *
-   * @param[in] touch_id The id of the touch-point.
-   *
-   * @return A <code>PP_FloatPoint</code> representing the tilt of the
-   * touch-point.
-   */
-  [version=1.4]
-  PP_FloatPoint GetTouchTiltById([in] PP_Resource resource,
-                                 [in] PP_TouchListType list,
-                                 [in] uint32_t touch_id);
-};
-
-[macro="PPB_IME_INPUT_EVENT_INTERFACE"]
-interface PPB_IMEInputEvent {
-  /**
-   * Create() creates an IME input event with the given parameters. Normally
-   * you will get an IME event passed through the <code>HandleInputEvent</code>
-   * and will not need to create them, but some applications may want to create
-   * their own for internal use.
-   *
-   * @param[in] instance The instance for which this event occurred.
-   *
-   * @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-   * input event. The type must be one of the IME event types.
-   *
-   * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-   * when the event occurred.
-   *
-   * @param[in] text The string returned by <code>GetText</code>.
-   *
-   * @param[in] segment_number The number returned by
-   * <code>GetSegmentNumber</code>.
-   *
-   * @param[in] segment_offsets The array of numbers returned by
-   * <code>GetSegmentOffset</code>. If <code>segment_number</code> is zero,
-   * the number of elements of the array should be zero. If
-   * <code>segment_number</code> is non-zero, the length of the array must be
-   * <code>segment_number</code> + 1.
-   *
-   * @param[in] target_segment The number returned by
-   * <code>GetTargetSegment</code>.
-   *
-   * @param[in] selection_start The start index returned by
-   * <code>GetSelection</code>.
-   *
-   * @param[in] selection_end The end index returned by
-   * <code>GetSelection</code>.
-   *
-   * @return A <code>PP_Resource</code> containing the new IME input event.
-   */
-  PP_Resource Create([in] PP_Instance instance,
-                     [in] PP_InputEvent_Type type,
-                     [in] PP_TimeTicks time_stamp,
-                     [in] PP_Var text,
-                     [in] uint32_t segment_number,
-                     [in] uint32_t[] segment_offsets,
-                     [in] int32_t target_segment,
-                     [in] uint32_t selection_start,
-                     [in] uint32_t selection_end);
-
-  /**
-   * IsIMEInputEvent() determines if a resource is an IME event.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an event.
-   *
-   * @return <code>PP_TRUE</code> if the given resource is a valid input event.
-   */
-  PP_Bool IsIMEInputEvent([in] PP_Resource resource);
-
-  /**
-   * GetText() returns the composition text as a UTF-8 string for the given IME
-   * event.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @return A string var representing the composition text. For non-IME input
-   * events the return value will be an undefined var.
-   */
-  PP_Var GetText([in] PP_Resource ime_event);
-
-  /**
-   * GetSegmentNumber() returns the number of segments in the composition text.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @return The number of segments. For events other than COMPOSITION_UPDATE,
-   * returns 0.
-   */
-  uint32_t GetSegmentNumber([in] PP_Resource ime_event);
-
-  /**
-   * GetSegmentOffset() returns the position of the index-th segmentation point
-   * in the composition text. The position is given by a byte-offset (not a
-   * character-offset) of the string returned by GetText(). It always satisfies
-   * 0=GetSegmentOffset(0) < ... < GetSegmentOffset(i) < GetSegmentOffset(i+1)
-   * < ... < GetSegmentOffset(GetSegmentNumber())=(byte-length of GetText()).
-   * Note that [GetSegmentOffset(i), GetSegmentOffset(i+1)) represents the range
-   * of the i-th segment, and hence GetSegmentNumber() can be a valid argument
-   * to this function instead of an off-by-1 error.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @param[in] index An integer indicating a segment.
-   *
-   * @return The byte-offset of the segmentation point. If the event is not
-   * COMPOSITION_UPDATE or index is out of range, returns 0.
-   */
-  uint32_t GetSegmentOffset([in] PP_Resource ime_event,
-                            [in] uint32_t index);
-
-  /**
-   * GetTargetSegment() returns the index of the current target segment of
-   * composition.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @return An integer indicating the index of the target segment. When there
-   * is no active target segment, or the event is not COMPOSITION_UPDATE,
-   * returns -1.
-   */
-  int32_t GetTargetSegment([in] PP_Resource ime_event);
-
-  /**
-   * GetSelection() returns the range selected by caret in the composition text.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @param[out] start The start position of the current selection.
-   *
-   * @param[out] end The end position of the current selection.
-   */
-  void GetSelection([in] PP_Resource ime_event,
-                    [out] uint32_t start,
-                    [out] uint32_t end);
-};
diff --git a/api/ppb_instance.idl b/api/ppb_instance.idl
deleted file mode 100644
index b250859..0000000
--- a/api/ppb_instance.idl
+++ /dev/null
@@ -1,69 +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.
- */
-
-/**
- * This file defines the <code>PPB_Instance</code> interface implemented by the
- * browser and containing pointers to functions related to
- * the module instance on a web page.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M14 = 1.0
- };
-
-/**
- * The PPB_Instance interface contains pointers to functions
- * related to the module instance on a web page.
- */
-interface PPB_Instance {
-  /**
-   * BindGraphics() binds the given graphics as the current display surface.
-   * The contents of this device is what will be displayed in the instance's
-   * area on the web page. The device must be a 2D or a 3D device.
-   *
-   * You can pass a <code>NULL</code> resource as the device parameter to
-   * unbind all devices from the given instance. The instance will then appear
-   * transparent. Re-binding the same device will return <code>PP_TRUE</code>
-   * and will do nothing.
-   *
-   * Any previously-bound device will be released. It is an error to bind
-   * a device when it is already bound to another instance. If you want
-   * to move a device between instances, first unbind it from the old one, and
-   * then rebind it to the new one.
-   *
-   * Binding a device will invalidate that portion of the web page to flush the
-   * contents of the new device to the screen.
-   *
-   * @param[in] instance A PP_Instance identifying one instance of a module.
-   * @param[in] device A PP_Resource corresponding to a graphics device.
-   *
-   * @return <code>PP_Bool</code> containing <code>PP_TRUE</code> if bind was
-   * successful or <code>PP_FALSE</code> if the device was not the correct
-   * type. On success, a reference to the device will be held by the
-   * instance, so the caller can release its reference if it chooses.
-   */
-  PP_Bool BindGraphics(
-      [in] PP_Instance instance,
-      [in] PP_Resource device);
-
-  /**
-   * IsFullFrame() determines if the instance is full-frame. Such an instance
-   * represents the entire document in a frame rather than an embedded
-   * resource. This can happen if the user does a top-level navigation or the
-   * page specifies an iframe to a resource with a MIME type registered by the
-   * module.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if the
-   * instance is full-frame.
-   */
-  PP_Bool IsFullFrame(
-      [in] PP_Instance instance);
-};
-
diff --git a/api/ppb_media_stream_audio_track.idl b/api/ppb_media_stream_audio_track.idl
deleted file mode 100644
index 14dac74..0000000
--- a/api/ppb_media_stream_audio_track.idl
+++ /dev/null
@@ -1,201 +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.
- */
-
-/**
- * Defines the <code>PPB_MediaStreamAudioTrack</code> interface. Used for
- * receiving audio samples from a MediaStream audio track in the browser.
- */
-
-[generate_thunk]
-
-label Chrome {
-  [channel=dev] M34 = 0.1,
-  M35 = 0.1
-};
-
-/**
- * This enumeration contains audio track attributes which are used by
- * <code>Configure()</code>.
- */
-enum PP_MediaStreamAudioTrack_Attrib {
-  /**
-   * Attribute list terminator.
-   */
-  PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE = 0,
-
-  /**
-   * The maximum number of buffers to hold audio samples.
-   * Note: this is only used as advisory; the browser may allocate more or fewer
-   * based on available resources. How many buffers depends on usage -
-   * request at least 2 to make sure latency doesn't cause lost samples. If
-   * the plugin expects to hold on to more than one buffer at a time (e.g. to do
-   * multi-buffer processing), it should request that many more.
-   */
-  PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS = 1,
-
-  /**
-   * The sample rate of audio data in buffers. The attribute value is a
-   * <code>PP_AudioBuffer_SampleRate</code>.
-   */
-  PP_MEDIASTREAMAUDIOTRACK_ATTRIB_SAMPLE_RATE = 2,
-
-  /**
-   * The sample size of audio data in buffers in bytes. The attribute value is a
-   * <code>PP_AudioBuffer_SampleSize</code>.
-   */
-  PP_MEDIASTREAMAUDIOTRACK_ATTRIB_SAMPLE_SIZE = 3,
-
-  /**
-   * The number of channels in audio buffers.
-   *
-   * Supported values: 1, 2
-   */
-  PP_MEDIASTREAMAUDIOTRACK_ATTRIB_CHANNELS = 4,
-
-  /**
-   * The duration of an audio buffer in milliseconds.
-   *
-   * Valid range: 10 to 10000
-   */
-  PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION = 5
-};
-
-[version=0.1]
-interface PPB_MediaStreamAudioTrack {
-  /**
-   * Determines if a resource is a MediaStream audio track resource.
-   *
-   * @param[in] resource The <code>PP_Resource</code> to test.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * resource is a Mediastream audio track resource or <code>PP_FALSE</code>
-   * otherwise.
-   */
-  PP_Bool IsMediaStreamAudioTrack([in] PP_Resource resource);
-
-  /**
-   * Configures underlying buffers for incoming audio samples.
-   * If the application doesn't want to drop samples, then the
-   * <code>PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS</code> should be
-   * chosen such that inter-buffer processing time variability won't overrun all
-   * the input buffers. If all buffers are filled, then samples will be
-   * dropped. The application can detect this by examining the timestamp on
-   * returned buffers. If <code>Configure()</code> is not called, default
-   * settings will be used. Calls to Configure while the plugin holds
-   * buffers will fail.
-   * Example usage from plugin code:
-   * @code
-   * int32_t attribs[] = {
-   *     PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS, 4,
-   *     PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION, 10,
-   *     PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE};
-   * track_if->Configure(track, attribs, callback);
-   * @endcode
-   *
-   * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
-   * resource.
-   * @param[in] attrib_list A list of attribute name-value pairs in which each
-   * attribute is immediately followed by the corresponding desired value.
-   * The list is terminated by
-   * <code>PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of <code>Configure()</code>.
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   */
-  int32_t Configure([in] PP_Resource audio_track,
-                    [in] int32_t[] attrib_list,
-                    [in] PP_CompletionCallback callback);
-
-  /**
-   * Gets attribute value for a given attribute name.
-   *
-   * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
-   * resource.
-   * @param[in] attrib A <code>PP_MediaStreamAudioTrack_Attrib</code> for
-   * querying.
-   * @param[out] value A int32_t for storing the attribute value on success.
-   * Otherwise, the value will not be changed.
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   */
-  int32_t GetAttrib([in] PP_Resource audio_track,
-                    [in] PP_MediaStreamAudioTrack_Attrib attrib,
-                    [out] int32_t value);
-
-  /**
-   * Returns the track ID of the underlying MediaStream audio track.
-   *
-   * @param[in] audio_track The <code>PP_Resource</code> to check.
-   *
-   * @return A <code>PP_Var</code> containing the MediaStream track ID as
-   * a string.
-   */
-  PP_Var GetId([in] PP_Resource audio_track);
-
-  /**
-   * Checks whether the underlying MediaStream track has ended.
-   * Calls to GetBuffer while the track has ended are safe to make and will
-   * complete, but will fail.
-   *
-   * @param[in] audio_track The <code>PP_Resource</code> to check.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * MediaStream track has ended or <code>PP_FALSE</code> otherwise.
-   */
-  [on_failure=PP_TRUE]
-  PP_Bool HasEnded([in] PP_Resource audio_track);
-
-  /**
-   * Gets the next audio buffer from the MediaStream track.
-   * If internal processing is slower than the incoming buffer rate, new buffers
-   * will be dropped from the incoming stream. Once all buffers are full,
-   * audio samples will be dropped until <code>RecycleBuffer()</code> is called
-   * to free a slot for another buffer.
-   * If there are no audio data in the input buffer,
-   * <code>PP_OK_COMPLETIONPENDING</code> will be returned immediately and the
-   * <code>callback</code> will be called, when a new buffer of audio samples
-   * is received or an error happens.
-   *
-   * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
-   * resource.
-   * @param[out] buffer A <code>PP_Resource</code> corresponding to
-   * an AudioBuffer resource.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of GetBuffer().
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   */
-  int32_t GetBuffer([in] PP_Resource audio_track,
-                    [out] PP_Resource buffer,
-                    [in] PP_CompletionCallback callback);
-
-  /**
-   * Recycles a buffer returned by <code>GetBuffer()</code>, so the track can
-   * reuse the buffer. And the buffer will become invalid. The caller should
-   * release all references it holds to <code>buffer</code> and not use it
-   * anymore.
-   *
-   * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
-   * resource.
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to
-   * an AudioBuffer resource returned by <code>GetBuffer()</code>.
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   */
-  int32_t RecycleBuffer([in] PP_Resource audio_track,
-                        [in] PP_Resource buffer);
-
-  /**
-   * Closes the MediaStream audio track and disconnects it from the audio
-   * source. After calling <code>Close()</code>, no new buffers will be
-   * received.
-   *
-   * @param[in] audio_track A <code>PP_Resource</code> corresponding to a
-   * MediaStream audio track resource.
-   */
-  void Close([in] PP_Resource audio_track);
-};
-
diff --git a/api/ppb_media_stream_video_track.idl b/api/ppb_media_stream_video_track.idl
deleted file mode 100644
index 3e03257..0000000
--- a/api/ppb_media_stream_video_track.idl
+++ /dev/null
@@ -1,247 +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.
- */
-
-/**
- * Defines the <code>PPB_MediaStreamVideoTrack</code> interface. Used for
- * receiving video frames from a MediaStream video track in the browser.
- */
-
-[generate_thunk]
-
-label Chrome {
-  [channel=dev] M34 = 0.1,
-  M35 = 0.1,
-  [channel=dev] M36 = 1.0
-};
-
-/**
- * This enumeration contains video track attributes which are used by
- * <code>Configure()</code>.
- */
-enum PP_MediaStreamVideoTrack_Attrib {
-  /**
-   * Attribute list terminator.
-   */
-  PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE = 0,
-
-  /**
-   * The maximum number of frames to hold in the input buffer.
-   * Note: this is only used as advisory; the browser may allocate more or fewer
-   * based on available resources. How many frames to buffer depends on usage -
-   * request at least 2 to make sure latency doesn't cause lost frames. If
-   * the plugin expects to hold on to more than one frame at a time (e.g. to do
-   * multi-frame processing), it should request that many more.
-   * If this attribute is not specified or value 0 is specified for this
-   * attribute, the default value will be used.
-   */
-  PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES = 1,
-
-  /**
-   * The width of video frames in pixels. It should be a multiple of 4.
-   * If the specified size is different from the video source (webcam),
-   * frames will be scaled to specified size.
-   * If this attribute is not specified or value 0 is specified, the original
-   * frame size of the video track will be used.
-   *
-   * Maximum value: 4096 (4K resolution).
-   */
-  PP_MEDIASTREAMVIDEOTRACK_ATTRIB_WIDTH = 2,
-
-  /**
-   * The height of video frames in pixels. It should be a multiple of 4.
-   * If the specified size is different from the video source (webcam),
-   * frames will be scaled to specified size.
-   * If this attribute is not specified or value 0 is specified, the original
-   * frame size of the video track will be used.
-   *
-   * Maximum value: 4096 (4K resolution).
-   */
-  PP_MEDIASTREAMVIDEOTRACK_ATTRIB_HEIGHT = 3,
-
-  /**
-   * The format of video frames. The attribute value is
-   * a <code>PP_VideoFrame_Format</code>. If the specified format is different
-   * from the video source (webcam), frames will be converted to specified
-   * format.
-   * If this attribute is not specified or value
-   * <code>PP_VIDEOFRAME_FORMAT_UNKNOWN</code> is specified, the orignal frame
-   * format of the video track will be used.
-   */
-  PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT = 4
-};
-
-[version=0.1]
-interface PPB_MediaStreamVideoTrack {
-  /**
-   * Creates a PPB_MediaStreamVideoTrack resource for video output. Call this
-   * when you will be creating frames and putting them to the track.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a
-   * PPB_MediaStreamVideoTrack resource if successful, 0 if failed.
-   */
-  [version=1.0]
-  PP_Resource Create([in] PP_Instance instance);
-
-  /**
-   * Determines if a resource is a MediaStream video track resource.
-   *
-   * @param[in] resource The <code>PP_Resource</code> to test.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * resource is a Mediastream video track resource or <code>PP_FALSE</code>
-   * otherwise.
-   */
-  PP_Bool IsMediaStreamVideoTrack([in] PP_Resource resource);
-
-  /**
-   * Configures underlying frame buffers for incoming frames.
-   * If the application doesn't want to drop frames, then the
-   * <code>PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES</code> should be
-   * chosen such that inter-frame processing time variability won't overrun the
-   * input buffer. If the buffer is overfilled, then frames will be dropped.
-   * The application can detect this by examining the timestamp on returned
-   * frames. If some attributes are not specified, default values will be used
-   * for those unspecified attributes. If <code>Configure()</code> is not
-   * called, default settings will be used.
-   * Example usage from plugin code:
-   * @code
-   * int32_t attribs[] = {
-   *     PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES, 4,
-   *     PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE};
-   * track_if->Configure(track, attribs, callback);
-   * @endcode
-   *
-   * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
-   * resource.
-   * @param[in] attrib_list A list of attribute name-value pairs in which each
-   * attribute is immediately followed by the corresponding desired value.
-   * The list is terminated by
-   * <code>PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE</code>.
-   * @param[in] callback <code>PP_CompletionCallback</code> to be called upon
-   * completion of <code>Configure()</code>.
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   * Returns <code>PP_ERROR_INPROGRESS</code> if there is a pending call of
-   * <code>Configure()</code> or <code>GetFrame()</code>, or the plugin
-   * holds some frames which are not recycled with <code>RecycleFrame()</code>.
-   * If an error is returned, all attributes and the underlying buffer will not
-   * be changed.
-   */
-  int32_t Configure([in] PP_Resource video_track,
-                    [in] int32_t[] attrib_list,
-                    [in] PP_CompletionCallback callback);
-
-  /**
-   * Gets attribute value for a given attribute name.
-   *
-   * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
-   * resource.
-   * @param[in] attrib A <code>PP_MediaStreamVideoTrack_Attrib</code> for
-   * querying.
-   * @param[out] value A int32_t for storing the attribute value on success.
-   * Otherwise, the value will not be changed.
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   */
-  int32_t GetAttrib([in] PP_Resource video_track,
-                    [in] PP_MediaStreamVideoTrack_Attrib attrib,
-                    [out] int32_t value);
-
-  /**
-   * Returns the track ID of the underlying MediaStream video track.
-   *
-   * @param[in] video_track The <code>PP_Resource</code> to check.
-   *
-   * @return A <code>PP_Var</code> containing the MediaStream track ID as
-   * a string.
-   */
-  PP_Var GetId([in] PP_Resource video_track);
-
-  /**
-   * Checks whether the underlying MediaStream track has ended.
-   * Calls to GetFrame while the track has ended are safe to make and will
-   * complete, but will fail.
-   *
-   * @param[in] video_track The <code>PP_Resource</code> to check.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * MediaStream track has ended or <code>PP_FALSE</code> otherwise.
-   */
-  [on_failure=PP_TRUE]
-  PP_Bool HasEnded([in] PP_Resource video_track);
-
-  /**
-   * Gets the next video frame from the MediaStream track.
-   * If internal processing is slower than the incoming frame rate, new frames
-   * will be dropped from the incoming stream. Once the input buffer is full,
-   * frames will be dropped until <code>RecycleFrame()</code> is called to free
-   * a spot for another frame to be buffered.
-   * If there are no frames in the input buffer,
-   * <code>PP_OK_COMPLETIONPENDING</code> will be returned immediately and the
-   * <code>callback</code> will be called when a new frame is received or an
-   * error happens.
-   *
-   * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
-   * resource.
-   * @param[out] frame A <code>PP_Resource</code> corresponding to a VideoFrame
-   * resource.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of GetFrame().
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_NOMEMORY if <code>max_buffered_frames</code> frames buffer
-   * was not allocated successfully.
-   */
-  int32_t GetFrame([in] PP_Resource video_track,
-                   [out] PP_Resource frame,
-                   [in] PP_CompletionCallback callback);
-
-  /**
-   * Recycles a frame returned by <code>GetFrame()</code>, so the track can
-   * reuse the underlying buffer of this frame. And the frame will become
-   * invalid. The caller should release all references it holds to
-   * <code>frame</code> and not use it anymore.
-   *
-   * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
-   * resource.
-   * @param[in] frame A <code>PP_Resource</code> corresponding to a VideoFrame
-   * resource returned by <code>GetFrame()</code>.
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   */
-  int32_t RecycleFrame([in] PP_Resource video_track,
-                       [in] PP_Resource frame);
-
-  /**
-   * Closes the MediaStream video track and disconnects it from video source.
-   * After calling <code>Close()</code>, no new frames will be received.
-   *
-   * @param[in] video_track A <code>PP_Resource</code> corresponding to a
-   * MediaStream video track resource.
-   */
-  void Close([in] PP_Resource video_track);
-
-  /**
-   * Gets a free frame for output. The frame is allocated by
-   * <code>Configure()</code>. The caller should fill it with frame data, and
-   * then use |PutFrame()| to send the frame back.
-   */
-  [version=1.0]
-  int32_t GetEmptyFrame([in] PP_Resource video_track,
-                        [out] PP_Resource frame,
-                        [in] PP_CompletionCallback callback);
-
-  /**
-   * Sends a frame returned by |GetEmptyFrame()| to the output track.
-   * After this function, the |frame| should not be used anymore and the
-   * caller should release the reference that it holds.
-   */
-  [version=1.0]
-  int32_t PutFrame([in] PP_Resource video_track, [in] PP_Resource frame);
-};
-
diff --git a/api/ppb_message_loop.idl b/api/ppb_message_loop.idl
deleted file mode 100644
index bd95379..0000000
--- a/api/ppb_message_loop.idl
+++ /dev/null
@@ -1,271 +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.
- */
-
-/**
- * Defines the PPB_MessageLoop interface.
- */
-label Chrome {
-  M25 = 1.0
-};
-
-/**
- * A message loop allows PPAPI calls to be issued on a thread. You may not
- * issue any API calls on a thread without creating a message loop. It also
- * allows you to post work to the message loop for a thread.
- *
- * To process work posted to the message loop, as well as completion callbacks
- * for asynchronous operations, you must run the message loop via Run().
- *
- * Note the system manages the lifetime of the instance (and all associated
- * resources). If the instance is deleted from the page, background threads may
- * suddenly see their PP_Resource handles become invalid. In this case, calls
- * will fail with PP_ERROR_BADRESOURCE. If you need to access data associated
- * with your instance, you will probably want to create some kind of threadsafe
- * proxy object that can handle asynchronous destruction of the instance object.
- *
- * Typical usage:
- *   On the main thread:
- *    - Create the thread yourself (using pthreads).
- *    - Create the message loop resource.
- *    - Pass the message loop resource to your thread's main function.
- *    - Call PostWork() on the message loop to run functions on the thread.
- *
- *   From the background thread's main function:
- *    - Call AttachToCurrentThread() with the message loop resource.
- *    - Call Run() with the message loop resource.
- *
- *   Your callbacks should look like this:
- *   @code
- *   void DoMyWork(void* user_data, int32_t status) {
- *     if (status != PP_OK) {
- *       Cleanup();  // e.g. free user_data.
- *       return;
- *     }
- *     ... do your work...
- *   }
- *   @endcode
- * For a C++ example, see ppapi/utility/threading/simple_thread.h
- *
- * (You can also create the message loop resource on the background thread,
- * but then the main thread will have no reference to it should you want to
- * call PostWork()).
- *
- *
- * THREAD HANDLING
- *
- * The main thread has an implicitly created message loop. The main thread is
- * the thread where PPP_InitializeModule and PPP_Instance functions are called.
- * You can retrieve a reference to this message loop by calling
- * GetForMainThread() or, if your code is on the main thread, GetCurrent() will
- * also work.
- *
- * Some special threads created by the system can not have message loops. In
- * particular, the background thread created for audio processing has this
- * requirement because it's intended to be highly responsive to keep up with
- * the realtime requirements of audio processing. You can not make PPAPI calls
- * from these threads.
- *
- * Once you associate a message loop with a thread, you don't have to keep a
- * reference to it. The system will hold a reference to the message loop for as
- * long as the thread is running. The current message loop can be retrieved
- * using the GetCurrent() function.
- *
- * It is legal to create threads in your plugin without message loops, but
- * PPAPI calls will fail unless explicitly noted in the documentation.
- *
- * You can create a message loop object on a thread and never actually run the
- * message loop. This will allow you to call blocking PPAPI calls (via
- * PP_BlockUntilComplete()). If you make any asynchronous calls, the callbacks
- * from those calls will be queued in the message loop and never run. The same
- * thing will happen if work is scheduled after the message loop exits and
- * the message loop is not run again.
- *
- *
- * DESTRUCTION AND ERROR HANDLING
- *
- * Often, your application will associate memory with completion callbacks. For
- * example, the C++ CompletionCallbackFactory has a small amount of
- * heap-allocated memory for each callback. This memory will be leaked if the
- * callback is never run. To avoid this memory leak, you need to be careful
- * about error handling and shutdown.
- *
- * There are a number of cases where posted callbacks will never be run:
- *
- *  - You tear down the thread (via pthreads) without "destroying" the message
- *    loop (via PostQuit with should_destroy = PP_TRUE). In this case, any
- *    tasks in the message queue will be lost.
- *
- *  - You create a message loop, post callbacks to it, and never run it.
- *
- *  - You quit the message loop via PostQuit with should_destroy set to
- *    PP_FALSE. In this case, the system will assume the message loop will be
- *    run again later and keep your tasks.
- *
- * To do proper shutdown, call PostQuit with should_destroy = PP_TRUE. This
- * will prohibit future work from being posted, and will allow the message loop
- * to run until all pending tasks are run.
- *
- * If you post a callback to a message loop that's been destroyed, or to an
- * invalid message loop, PostWork will return an error and will not run the
- * callback. This is true even for callbacks with the "required" flag set,
- * since the system may not even know what thread to issue the error callback
- * on.
- *
- * Therefore, you should check for errors from PostWork and destroy any
- * associated memory to avoid leaks. If you're using the C++
- * CompletionCallbackFactory, use the following pattern:
- * @code
- * pp::CompletionCallback callback = factory_.NewOptionalCallback(...);
- * int32_t result = message_loop.PostWork(callback);
- * if (result != PP_OK)
- *   callback.Run(result);
- * @endcode
- * This will run the callback with an error value, and assumes that the
- * implementation of your callback checks the "result" argument and returns
- * immediately on error.
- */
-interface PPB_MessageLoop {
-  /**
-   * Creates a message loop resource.
-   *
-   * This may be called from any thread. After your thread starts but before
-   * issuing any other PPAPI calls on it, you must associate it with a message
-   * loop by calling AttachToCurrentThread.
-   */
-  PP_Resource Create(PP_Instance instance);
-
-  /**
-   * Returns a resource identifying the message loop for the main thread. The
-   * main thread always has a message loop created by the system.
-   */
-  PP_Resource GetForMainThread();
-
-  /**
-   * Returns a reference to the PPB_MessageLoop object attached to the current
-   * thread. If there is no attached message loop, the return value will be 0.
-   */
-  PP_Resource GetCurrent();
-
-  /**
-   * Sets the given message loop resource as being the associated message loop
-   * for the currently running thread.
-   *
-   * You must call this function exactly once on a thread before making any
-   * PPAPI calls. A message loop can only be attached to one thread, and the
-   * message loop can not be changed later. The message loop will be attached
-   * as long as the thread is running or until you quit with should_destroy
-   * set to PP_TRUE.
-   *
-   * If this function fails, attempting to run the message loop will fail.
-   * Note that you can still post work to the message loop: it will get queued
-   * up should the message loop eventually be successfully attached and run.
-   *
-   * @return
-   *   - PP_OK: The message loop was successfully attached to the thread and is
-   *     ready to use.
-   *   - PP_ERROR_BADRESOURCE: The given message loop resource is invalid.
-   *   - PP_ERROR_INPROGRESS: The current thread already has a message loop
-   *     attached. This will always be the case for the main thread, which has
-   *     an implicit system-created message loop attached.
-   *   - PP_ERROR_WRONG_THREAD: The current thread type can not have a message
-   *     loop attached to it. See the interface level discussion about these
-   *     special threads, which include realtime audio threads.
-   */
-  int32_t AttachToCurrentThread([in] PP_Resource message_loop);
-
-  /**
-   * Runs the thread message loop. Running the message loop is required for you
-   * to get issued completion callbacks on the thread.
-   *
-   * The message loop identified by the argument must have been previously
-   * successfully attached to the current thread.
-   *
-   * You may not run nested run loops. Since the main thread has an
-   * implicit message loop that the system runs, you may not call Run on the
-   * main thread.
-   *
-   * @return
-   *   - PP_OK: The message loop was successfully run. Note that on
-   *     success, the message loop will only exit when you call PostQuit().
-   *   - PP_ERROR_BADRESOURCE: The given message loop resource is invalid.
-   *   - PP_ERROR_WRONG_THREAD: You are attempting to run a message loop that
-   *     has not been successfully attached to the current thread. Call
-   *     AttachToCurrentThread().
-   *   - PP_ERROR_INPROGRESS: You are attempting to call Run in a nested
-   *     fashion (Run is already on the stack). This will occur if you attempt
-   *     to call run on the main thread's message loop (see above).
-   */
-  int32_t Run([in] PP_Resource message_loop);
-
-  /**
-   * Schedules work to run on the given message loop. This may be called from
-   * any thread. Posted work will be executed in the order it was posted when
-   * the message loop is Run().
-   *
-   * @param message_loop The message loop resource.
-   *
-   * @param callback The completion callback to execute from the message loop.
-   *
-   * @param delay_ms The number of milliseconds to delay execution of the given
-   * completion callback. Passing 0 means it will get queued normally and
-   * executed in order.
-   *
-   *
-   * The completion callback will be called with PP_OK as the "result" parameter
-   * if it is run normally. It is good practice to check for PP_OK and return
-   * early otherwise.
-   *
-   * The "required" flag on the completion callback is ignored. If there is an
-   * error posting your callback, the error will be returned from PostWork and
-   * the callback will never be run (because there is no appropriate place to
-   * run your callback with an error without causing unexpected threading
-   * problems). If you associate memory with the completion callback (for
-   * example, you're using the C++ CompletionCallbackFactory), you will need to
-   * free this or manually run the callback. See "Destruction and error
-   * handling" above.
-   *
-   *
-   * You can call this function before the message loop has started and the
-   * work will get queued until the message loop is run. You can also post
-   * work after the message loop has exited as long as should_destroy was
-   * PP_FALSE. It will be queued until the next invocation of Run().
-   *
-   * @return
-   *   - PP_OK: The work was posted to the message loop's queue. As described
-   *     above, this does not mean that the work has been or will be executed
-   *     (if you never run the message loop after posting).
-   *   - PP_ERROR_BADRESOURCE: The given message loop resource is invalid.
-   *   - PP_ERROR_BADARGUMENT: The function pointer for the completion callback
-   *     is null (this will be the case if you pass PP_BlockUntilComplete()).
-   *   - PP_ERROR_FAILED: The message loop has been destroyed.
-   */
-  int32_t PostWork([in] PP_Resource message_loop,
-                   [in] PP_CompletionCallback callback,
-                   [in] int64_t delay_ms);
-
-  /**
-   * Posts a quit message to the given message loop's work queue. Work posted
-   * before that point will be processed before quitting.
-   *
-   * This may be called on the message loop registered for the current thread,
-   * or it may be called on the message loop registered for another thread. It
-   * is an error to attempt to PostQuit() the main thread loop.
-   *
-   * @param should_destroy Marks the message loop as being in a destroyed state
-   * and prevents further posting of messages.
-   *
-   * If you quit a message loop without setting should_destroy, it will still
-   * be attached to the thread and you can still run it again by calling Run()
-   * again. If you destroy it, it will be detached from the current thread.
-   *
-   * @return
-   *   - PP_OK: The request to quit was successfully posted.
-   *   - PP_ERROR_BADRESOURCE: The message loop was invalid.
-   *   - PP_ERROR_WRONG_THREAD: You are attempting to quit the main thread.
-   *     The main thread's message loop is managed by the system and can't be
-   *     quit.
-   */
-  int32_t PostQuit([in] PP_Resource message_loop, PP_Bool should_destroy);
-};
diff --git a/api/ppb_messaging.idl b/api/ppb_messaging.idl
deleted file mode 100644
index 1fcdc44..0000000
--- a/api/ppb_messaging.idl
+++ /dev/null
@@ -1,146 +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.
- */
-
-/**
- * This file defines the <code>PPB_Messaging</code> interface implemented
- * by the browser for sending messages to DOM elements associated with a
- * specific module instance.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M14 = 1.0,
-  M39 = 1.2
-};
-
-/**
- * The <code>PPB_Messaging</code> interface is implemented by the browser
- * and is related to sending messages to JavaScript message event listeners on
- * the DOM element associated with specific module instance.
- */
-interface PPB_Messaging {
-  /**
-   * PostMessage() asynchronously invokes any listeners for message events on
-   * the DOM element for the given module instance. A call to PostMessage()
-   * will not block while the message is processed.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] message A <code>PP_Var</code> containing the data to be sent to
-   * JavaScript.
-   * <code>message</code> can be any <code>PP_Var</code> type except
-   * <code>PP_VARTYPE_OBJECT</code>. Array/Dictionary types are supported from
-   * Chrome M29 onward. All var types are copied when passing them to
-   * JavaScript.
-   *
-   * When passing array or dictionary <code>PP_Var</code>s, the entire reference
-   * graph will be converted and transferred. If the reference graph has cycles,
-   * the message will not be sent and an error will be logged to the console.
-   *
-   * Listeners for message events in JavaScript code will receive an object
-   * conforming to the HTML 5 <code>MessageEvent</code> interface.
-   * Specifically, the value of message will be contained as a property called
-   *  data in the received <code>MessageEvent</code>.
-   *
-   * This messaging system is similar to the system used for listening for
-   * messages from Web Workers. Refer to
-   * <code>http://www.whatwg.org/specs/web-workers/current-work/</code> for
-   * further information.
-   *
-   * <strong>Example:</strong>
-   *
-   * @code
-   *
-   * <body>
-   *   <object id="plugin"
-   *           type="application/x-ppapi-postMessage-example"/>
-   *   <script type="text/javascript">
-   *     var plugin = document.getElementById('plugin');
-   *     plugin.addEventListener("message",
-   *                             function(message) { alert(message.data); },
-   *                             false);
-   *   </script>
-   * </body>
-   *
-   * @endcode
-   *
-   * The module instance then invokes PostMessage() as follows:
-   *
-   * @code
-   *
-   *  char hello_world[] = "Hello world!";
-   *  PP_Var hello_var = ppb_var_interface->VarFromUtf8(instance,
-   *                                                    hello_world,
-   *                                                    sizeof(hello_world));
-   *  ppb_messaging_interface->PostMessage(instance, hello_var); // Copies var.
-   *  ppb_var_interface->Release(hello_var);
-   *
-   * @endcode
-   *
-   * The browser will pop-up an alert saying "Hello world!"
-   */
-  [version=1.0]
-  void PostMessage([in] PP_Instance instance, [in] PP_Var message);
-
-  /**
-   * Registers a handler for receiving messages from JavaScript. If a handler
-   * is registered this way, it will replace PPP_Messaging, and all messages
-   * sent from JavaScript via postMessage and postMessageAndAwaitResponse will
-   * be dispatched to <code>handler</code>.
-   *
-   * The function calls will be dispatched via <code>message_loop</code>. This
-   * means that the functions will be invoked on the thread to which
-   * <code>message_loop</code> is attached, when <code>message_loop</code> is
-   * run. It is illegal to pass the main thread message loop;
-   * RegisterMessageHandler will return PP_ERROR_WRONG_THREAD in that case.
-   * If you quit <code>message_loop</code> before calling Unregister(),
-   * the browser will not be able to call functions in the plugin's message
-   * handler any more. That could mean missing some messages or could cause a
-   * leak if you depend on Destroy() to free hander data. So you should,
-   * whenever possible, Unregister() the handler prior to quitting its event
-   * loop.
-   *
-   * Attempting to register a message handler when one is already registered
-   * will cause the current MessageHandler to be unregistered and replaced. In
-   * that case, no messages will be sent to the "default" message handler
-   * (PPP_Messaging). Messages will stop arriving at the prior message handler
-   * and will begin to be dispatched at the new message handler.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] user_data A pointer the plugin may choose to use when handling
-   * calls to functions within PPP_MessageHandler. The browser will pass this
-   * same pointer when invoking functions within PPP_MessageHandler.
-   * @param[in] handler The plugin-provided set of functions for handling
-   * messages.
-   * @param[in] message_loop Represents the message loop on which
-   * PPP_MessageHandler functions should be invoked.
-   * @return PP_OK on success, or an error from pp_errors.h.
-   */
-  [version=1.2]
-  int32_t RegisterMessageHandler([in] PP_Instance instance,
-                                 [inout] mem_t user_data,
-                                 [in] PPP_MessageHandler handler,
-                                 [in] PP_Resource message_loop);
-  /**
-   * Unregisters the current message handler for <code>instance</code> if one
-   * is registered. After this call, the message handler (if one was
-   * registered) will have "Destroy" called on it and will receive no further
-   * messages after that point. After that point, all messages sent from
-   * JavaScript using postMessage() will be dispatched to PPP_Messaging (if
-   * the plugin supports PPP_MESSAGING_INTERFACE). Attempts to call
-   * postMessageAndAwaitResponse() from JavaScript will fail.
-   *
-   * Attempting to unregister a message handler when none is registered has no
-   * effect.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   */
-  [version=1.2]
-  void UnregisterMessageHandler([in] PP_Instance instance);
-};
-
diff --git a/api/ppb_mouse_cursor.idl b/api/ppb_mouse_cursor.idl
deleted file mode 100644
index 44e9477..0000000
--- a/api/ppb_mouse_cursor.idl
+++ /dev/null
@@ -1,110 +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.
- */
-
-/**
- * This file defines the <code>PPB_MouseCursor</code> interface for setting
- * the mouse cursor.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M19 = 1.0
-};
-
-/**
- * The <code>PP_MouseCursor_Type</code> enumeration lists the available stock
- * cursor types.
- */
-[assert_size(4), notypedef]
-enum PP_MouseCursor_Type {
-  PP_MOUSECURSOR_TYPE_CUSTOM = -1,
-  PP_MOUSECURSOR_TYPE_POINTER = 0,
-  PP_MOUSECURSOR_TYPE_CROSS = 1,
-  PP_MOUSECURSOR_TYPE_HAND = 2,
-  PP_MOUSECURSOR_TYPE_IBEAM = 3,
-  PP_MOUSECURSOR_TYPE_WAIT = 4,
-  PP_MOUSECURSOR_TYPE_HELP = 5,
-  PP_MOUSECURSOR_TYPE_EASTRESIZE = 6,
-  PP_MOUSECURSOR_TYPE_NORTHRESIZE = 7,
-  PP_MOUSECURSOR_TYPE_NORTHEASTRESIZE = 8,
-  PP_MOUSECURSOR_TYPE_NORTHWESTRESIZE = 9,
-  PP_MOUSECURSOR_TYPE_SOUTHRESIZE = 10,
-  PP_MOUSECURSOR_TYPE_SOUTHEASTRESIZE = 11,
-  PP_MOUSECURSOR_TYPE_SOUTHWESTRESIZE = 12,
-  PP_MOUSECURSOR_TYPE_WESTRESIZE = 13,
-  PP_MOUSECURSOR_TYPE_NORTHSOUTHRESIZE = 14,
-  PP_MOUSECURSOR_TYPE_EASTWESTRESIZE = 15,
-  PP_MOUSECURSOR_TYPE_NORTHEASTSOUTHWESTRESIZE = 16,
-  PP_MOUSECURSOR_TYPE_NORTHWESTSOUTHEASTRESIZE = 17,
-  PP_MOUSECURSOR_TYPE_COLUMNRESIZE = 18,
-  PP_MOUSECURSOR_TYPE_ROWRESIZE = 19,
-  PP_MOUSECURSOR_TYPE_MIDDLEPANNING = 20,
-  PP_MOUSECURSOR_TYPE_EASTPANNING = 21,
-  PP_MOUSECURSOR_TYPE_NORTHPANNING = 22,
-  PP_MOUSECURSOR_TYPE_NORTHEASTPANNING = 23,
-  PP_MOUSECURSOR_TYPE_NORTHWESTPANNING = 24,
-  PP_MOUSECURSOR_TYPE_SOUTHPANNING = 25,
-  PP_MOUSECURSOR_TYPE_SOUTHEASTPANNING = 26,
-  PP_MOUSECURSOR_TYPE_SOUTHWESTPANNING = 27,
-  PP_MOUSECURSOR_TYPE_WESTPANNING = 28,
-  PP_MOUSECURSOR_TYPE_MOVE = 29,
-  PP_MOUSECURSOR_TYPE_VERTICALTEXT = 30,
-  PP_MOUSECURSOR_TYPE_CELL = 31,
-  PP_MOUSECURSOR_TYPE_CONTEXTMENU = 32,
-  PP_MOUSECURSOR_TYPE_ALIAS = 33,
-  PP_MOUSECURSOR_TYPE_PROGRESS = 34,
-  PP_MOUSECURSOR_TYPE_NODROP = 35,
-  PP_MOUSECURSOR_TYPE_COPY = 36,
-  PP_MOUSECURSOR_TYPE_NONE = 37,
-  PP_MOUSECURSOR_TYPE_NOTALLOWED = 38,
-  PP_MOUSECURSOR_TYPE_ZOOMIN = 39,
-  PP_MOUSECURSOR_TYPE_ZOOMOUT = 40,
-  PP_MOUSECURSOR_TYPE_GRAB = 41,
-  PP_MOUSECURSOR_TYPE_GRABBING = 42,
-  PP_MOUSECURSOR_TYPE_MIDDLEPANNINGVERTICAL = 43,
-  PP_MOUSECURSOR_TYPE_MIDDLEPANNINGHORIZONTAL = 44
-};
-
-/**
- * The <code>PPB_MouseCursor</code> allows setting the mouse cursor.
- */
-interface PPB_MouseCursor {
-  /**
-   * Sets the given mouse cursor. The mouse cursor will be in effect whenever
-   * the mouse is over the given instance until it is set again by another
-   * call. Note that you can hide the mouse cursor by setting it to the
-   * <code>PP_MOUSECURSOR_TYPE_NONE</code> type.
-   *
-   * This function allows setting both system defined mouse cursors and
-   * custom cursors. To set a system-defined cursor, pass the type you want
-   * and set the custom image to 0 and the hot spot to NULL. To set a custom
-   * cursor, set the type to <code>PP_MOUSECURSOR_TYPE_CUSTOM</code> and
-   * specify your image and hot spot.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * that the mouse cursor will affect.
-   *
-   * @param[in] type A <code>PP_MouseCursor_Type</code> identifying the type of
-   * mouse cursor to show.
-   *
-   * @param[in] image A <code>PPB_ImageData</code> resource identifying the
-   * custom image to set when the type is
-   * <code>PP_MOUSECURSOR_TYPE_CUSTOM</code>. The image must be less than 32
-   * pixels in each direction and must be of the system's native image format.
-   * When you are specifying a predefined cursor, this parameter must be 0.
-   *
-   * @param[in] hot_spot When setting a custom cursor, this identifies the
-   * pixel position within the given image of the "hot spot" of the cursor.
-   * When specifying a stock cursor, this parameter is ignored.
-   *
-   * @return PP_TRUE on success, or PP_FALSE if the instance or cursor type
-   * is invalid, or if the image is too large.
-   */
-  PP_Bool SetCursor([in] PP_Instance instance,
-                    [in] PP_MouseCursor_Type type,
-                    [in] PP_Resource image,
-                    [in] PP_Point hot_spot);
-};
diff --git a/api/ppb_mouse_lock.idl b/api/ppb_mouse_lock.idl
deleted file mode 100644
index 4c70e77..0000000
--- a/api/ppb_mouse_lock.idl
+++ /dev/null
@@ -1,62 +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.
- */
-
-/**
- * This file defines the <code>PPB_MouseLock</code> interface for
- * locking the target of mouse events to a specific module instance.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M16 = 1.0
-};
-
-/**
- * The <code>PPB_MouseLock</code> interface is implemented by the browser.
- * This interface provides a way of locking the target of mouse events to a
- * single module instance and removing the cursor from view. This mode is
- * useful for certain classes of applications, especially first-person
- * perspective 3D applications and 3D modeling software.
- */
-interface PPB_MouseLock {
-  /**
-   * LockMouse() requests the mouse to be locked.
-   *
-   * While the mouse is locked, the cursor is implicitly hidden from the user.
-   * Any movement of the mouse will generate a
-   * <code>PP_INPUTEVENT_TYPE_MOUSEMOVE</code> event. The    
-   * <code>GetPosition()</code> function in the <code>PPB_MouseInputEvent</code>
-   * interface reports the last known mouse position just as mouse lock was
-   * entered. The <code>GetMovement()</code> function provides relative movement
-   * information indicating what the change in position of the mouse would be
-   * had it not been locked.
-   *
-   * The browser may revoke the mouse lock for reasons including (but not
-   * limited to) the user pressing the ESC key, the user activating another
-   * program using a reserved keystroke (e.g. ALT+TAB), or some other system
-   * event.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t LockMouse([in] PP_Instance instance,
-                    [in] PP_CompletionCallback callback);
-
-  /**
-   * UnlockMouse() causes the mouse to be unlocked, allowing it to track user
-   * movement again. This is an asynchronous operation. The module instance
-   * will be notified using the <code>PPP_MouseLock</code> interface when it
-   * has lost the mouse lock.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   */
-  void UnlockMouse([in] PP_Instance instance);
-};
diff --git a/api/ppb_net_address.idl b/api/ppb_net_address.idl
deleted file mode 100644
index ad6c3e4..0000000
--- a/api/ppb_net_address.idl
+++ /dev/null
@@ -1,169 +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.
- */
-
-/**
- * This file defines the <code>PPB_NetAddress</code> interface.
- */
-
-label Chrome {
-  M29 = 1.0
-};
-
-/**
- * Network address family types.
- */
-[assert_size(4)]
-enum PP_NetAddress_Family {
-  /**
-   * The address family is unspecified.
-   */
-  PP_NETADDRESS_FAMILY_UNSPECIFIED = 0,
-  /**
-   * The Internet Protocol version 4 (IPv4) address family.
-   */
-  PP_NETADDRESS_FAMILY_IPV4 = 1,
-  /**
-   * The Internet Protocol version 6 (IPv6) address family.
-   */
-  PP_NETADDRESS_FAMILY_IPV6 = 2
-};
-
-/**
- * All members are expressed in network byte order.
- */
-[assert_size(6)]
-struct PP_NetAddress_IPv4 {
-  /**
-   * Port number.
-   */
-  uint16_t port;
-  /**
-   * IPv4 address.
-   */
-  uint8_t[4] addr;
-};
-
-/**
- * All members are expressed in network byte order.
- */
-[assert_size(18)]
-struct PP_NetAddress_IPv6 {
-  /**
-   * Port number.
-   */
-  uint16_t port;
-  /**
-   * IPv6 address.
-   */
-  uint8_t[16] addr;
-};
-
-/**
- * The <code>PPB_NetAddress</code> interface provides operations on network
- * addresses.
- */
-interface PPB_NetAddress {
-  /**
-   * Creates a <code>PPB_NetAddress</code> resource with the specified IPv4
-   * address.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   * @param[in] ipv4_addr An IPv4 address.
-   *
-   * @return A <code>PP_Resource</code> representing the same address as
-   * <code>ipv4_addr</code> or 0 on failure.
-   */
-  PP_Resource CreateFromIPv4Address([in] PP_Instance instance,
-                                    [in] PP_NetAddress_IPv4 ipv4_addr);
-
-  /**
-   * Creates a <code>PPB_NetAddress</code> resource with the specified IPv6
-   * address.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   * @param[in] ipv6_addr An IPv6 address.
-   *
-   * @return A <code>PP_Resource</code> representing the same address as
-   * <code>ipv6_addr</code> or 0 on failure.
-   */
-  PP_Resource CreateFromIPv6Address([in] PP_Instance instance,
-                                    [in] PP_NetAddress_IPv6 ipv6_addr);
-
-  /**
-   * Determines if a given resource is a network address.
-   *
-   * @param[in] resource A <code>PP_Resource</code> to check.
-   *
-   * @return <code>PP_TRUE</code> if the input is a <code>PPB_NetAddress</code>
-   * resource; <code>PP_FALSE</code> otherwise.
-   */
-  PP_Bool IsNetAddress([in] PP_Resource resource);
-
-  /**
-   * Gets the address family.
-   *
-   * @param[in] addr A <code>PP_Resource</code> corresponding to a network
-   * address.
-   *
-   * @return The address family on success;
-   * <code>PP_NETADDRESS_FAMILY_UNSPECIFIED</code> on failure.
-   */
-  PP_NetAddress_Family GetFamily([in] PP_Resource addr);
-
-  /**
-   * Returns a human-readable description of the network address. The
-   * description is in the form of host [ ":" port ] and conforms to
-   * http://tools.ietf.org/html/rfc3986#section-3.2 for IPv4 and IPv6 addresses
-   * (e.g., "192.168.0.1", "192.168.0.1:99", or "[::1]:80").
-   *
-   * @param[in] addr A <code>PP_Resource</code> corresponding to a network
-   * address.
-   * @param[in] include_port Whether to include the port number in the
-   * description.
-   *
-   * @return A string <code>PP_Var</code> on success; an undefined
-   * <code>PP_Var</code> on failure.
-   */
-  PP_Var DescribeAsString([in] PP_Resource addr,
-                          [in] PP_Bool include_port);
-
-  /**
-   * Fills a <code>PP_NetAddress_IPv4</code> structure if the network address is
-   * of <code>PP_NETADDRESS_FAMILY_IPV4</code> address family.
-   * Note that passing a network address of
-   * <code>PP_NETADDRESS_FAMILY_IPV6</code> address family will fail even if the
-   * address is an IPv4-mapped IPv6 address.
-   *
-   * @param[in] addr A <code>PP_Resource</code> corresponding to a network
-   * address.
-   * @param[out] ipv4_addr A <code>PP_NetAddress_IPv4</code> structure to store
-   * the result.
-   *
-   * @return A <code>PP_Bool</code> value indicating whether the operation
-   * succeeded.
-   */
-  PP_Bool DescribeAsIPv4Address([in] PP_Resource addr,
-                                [out] PP_NetAddress_IPv4 ipv4_addr);
-
-  /**
-   * Fills a <code>PP_NetAddress_IPv6</code> structure if the network address is
-   * of <code>PP_NETADDRESS_FAMILY_IPV6</code> address family.
-   * Note that passing a network address of
-   * <code>PP_NETADDRESS_FAMILY_IPV4</code> address family will fail - this
-   * method doesn't map it to an IPv6 address.
-   *
-   * @param[in] addr A <code>PP_Resource</code> corresponding to a network
-   * address.
-   * @param[out] ipv6_addr A <code>PP_NetAddress_IPv6</code> structure to store
-   * the result.
-   *
-   * @return A <code>PP_Bool</code> value indicating whether the operation
-   * succeeded.
-   */
-  PP_Bool DescribeAsIPv6Address([in] PP_Resource addr,
-                                [out] PP_NetAddress_IPv6 ipv6_addr);
-};
diff --git a/api/ppb_network_list.idl b/api/ppb_network_list.idl
deleted file mode 100644
index ee0cfec..0000000
--- a/api/ppb_network_list.idl
+++ /dev/null
@@ -1,172 +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.
- */
-
-/**
- * This file defines the <code>PPB_NetworkList</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M31 = 1.0
-};
-
-/**
- * Type of a network interface.
- */
-[assert_size(4)]
-enum PP_NetworkList_Type {
-  /**
-   * Type of the network interface is not known.
-   */
-  PP_NETWORKLIST_TYPE_UNKNOWN = 0,
-
-  /**
-   * Wired Ethernet network.
-   */
-  PP_NETWORKLIST_TYPE_ETHERNET = 1,
-
-  /**
-   * Wireless Wi-Fi network.
-   */
-  PP_NETWORKLIST_TYPE_WIFI = 2,
-
-  /**
-   * Cellular network (e.g. LTE).
-   */
-  PP_NETWORKLIST_TYPE_CELLULAR = 3
-};
-
-/**
- * State of a network interface.
- */
-[assert_size(4)]
-enum PP_NetworkList_State  {
-  /**
-   * Network interface is down.
-   */
-  PP_NETWORKLIST_STATE_DOWN = 0,
-
-  /**
-   * Network interface is up.
-   */
-  PP_NETWORKLIST_STATE_UP = 1
-};
-
-/**
- * The <code>PPB_NetworkList</code> is used to represent a list of
- * network interfaces and their configuration. The content of the list
- * is immutable.  The current networks configuration can be received
- * using the <code>PPB_NetworkMonitor</code> interface.
- */
-interface PPB_NetworkList {
-  /**
-   * Determines if the specified <code>resource</code> is a
-   * <code>NetworkList</code> object.
-   *
-   * @param[in] resource A <code>PP_Resource</code> resource.
-   *
-   * @return Returns <code>PP_TRUE</code> if <code>resource</code> is
-   * a <code>PPB_NetworkList</code>, <code>PP_FALSE</code>
-   * otherwise.
-   */
-  PP_Bool IsNetworkList([in] PP_Resource resource);
-
-  /**
-   * Gets number of interfaces in the list.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * network list.
-   *
-   * @return Returns number of available network interfaces or 0 if
-   * the list has never been updated.
-   */
-  uint32_t GetCount([in] PP_Resource resource);
-
-  /**
-   * Gets name of a network interface.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * network list.
-   * @param[in] index Index of the network interface.
-   *
-   * @return Returns name for the network interface with the specified
-   * <code>index</code>.
-   */
-  PP_Var GetName([in] PP_Resource resource,
-                 [in] uint32_t index);
-
-  /**
-   * Gets type of a network interface.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * network list.
-   * @param[in] index Index of the network interface.
-   *
-   * @return Returns type of the network interface with the specified
-   * <code>index</code>.
-   */
-  [on_failure=PP_NETWORKLIST_TYPE_UNKNOWN]
-  PP_NetworkList_Type GetType([in] PP_Resource resource,
-                              [in] uint32_t index);
-
-  /**
-   * Gets state of a network interface.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * network list.
-   * @param[in] index Index of the network interface.
-   *
-   * @return Returns current state of the network interface with the
-   * specified <code>index</code>.
-   */
-  [on_failure=PP_NETWORKLIST_STATE_DOWN]
-  PP_NetworkList_State GetState([in] PP_Resource resource,
-                                [in] uint32_t index);
-
-  /**
-   * Gets list of IP addresses for a network interface.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * network list.
-   * @param[in] index Index of the network interface.
-   * @param[in] output An output array which will receive
-   * <code>PPB_NetAddress</code> resources on success. Please note that the
-   * ref count of those resources has already been increased by 1 for the
-   * caller.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t GetIpAddresses([in] PP_Resource resource,
-                         [in] uint32_t index,
-                         [in] PP_ArrayOutput output);
-
-  /**
-   * Gets display name of a network interface.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * network list.
-   * @param[in] index Index of the network interface.
-   *
-   * @return Returns display name for the network interface with the
-   * specified <code>index</code>.
-   */
-  PP_Var GetDisplayName([in] PP_Resource resource,
-                        [in] uint32_t index);
-
-  /**
-   * Gets MTU (Maximum Transmission Unit) of a network interface.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * network list.
-   * @param[in] index Index of the network interface.
-   *
-   * @return Returns MTU for the network interface with the specified
-   * <code>index</code> or 0 if MTU is unknown.
-   */
-  uint32_t GetMTU([in] PP_Resource resource,
-                  [in] uint32_t index);
-
-};
diff --git a/api/ppb_network_monitor.idl b/api/ppb_network_monitor.idl
deleted file mode 100644
index 305b10c..0000000
--- a/api/ppb_network_monitor.idl
+++ /dev/null
@@ -1,69 +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.
- */
-
-/**
- * This file defines the <code>PPB_NetworkMonitor</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M31 = 1.0
-};
-
-/**
- * The <code>PPB_NetworkMonitor</code> allows to get network interfaces
- * configuration and monitor network configuration changes.
- *
- * Permissions: Apps permission <code>socket</code> with subrule
- * <code>network-state</code> is required for <code>UpdateNetworkList()</code>.
- * For more details about network communication permissions, please see:
- * http://developer.chrome.com/apps/app_network.html
- */
-interface PPB_NetworkMonitor {
-  /**
-   * Creates a Network Monitor resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a network monitor or 0
-   * on failure.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-
-
-  /**
-   * Gets current network configuration. When called for the first time,
-   * completes as soon as the current network configuration is received from
-   * the browser. Each consequent call will wait for network list changes,
-   * returning a new <code>PPB_NetworkList</code> resource every time.
-   *
-   * @param[in] network_monitor A <code>PP_Resource</code> corresponding to a
-   * network monitor.
-   * @param[out] network_list The <code>PPB_NetworkList<code> resource with the
-   * current state of network interfaces.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have
-   * required permissions.
-   */
-  int32_t UpdateNetworkList([in] PP_Resource network_monitor,
-                            [out] PP_Resource network_list,
-                            [in] PP_CompletionCallback callback);
-
-  /**
-   * Determines if the specified <code>resource</code> is a
-   * <code>NetworkMonitor</code> object.
-   *
-   * @param[in] resource A <code>PP_Resource</code> resource.
-   *
-   * @return Returns <code>PP_TRUE</code> if <code>resource</code> is a
-   * <code>PPB_NetworkMonitor</code>, <code>PP_FALSE</code>  otherwise.
-   */
-  PP_Bool IsNetworkMonitor([in] PP_Resource resource);
-};
diff --git a/api/ppb_network_proxy.idl b/api/ppb_network_proxy.idl
deleted file mode 100644
index 0a5e9dc..0000000
--- a/api/ppb_network_proxy.idl
+++ /dev/null
@@ -1,53 +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.
- */
-
-/**
- * This file defines the <code>PPB_NetworkProxy</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M29 = 1.0
-};
-
-/**
- * This interface provides a way to determine the appropriate proxy settings
- * for a given URL.
- *
- * Permissions: Apps permission <code>socket</code> with subrule
- * <code>resolve-proxy</code> is required for using this API.
- * For more details about network communication permissions, please see:
- * http://developer.chrome.com/apps/app_network.html
- */
-[singleton]
-interface PPB_NetworkProxy {
-  /**
-   * Retrieves the proxy that will be used for the given URL. The result will
-   * be a string in PAC format. For more details about PAC format, please see
-   * http://en.wikipedia.org/wiki/Proxy_auto-config
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   *
-   * @param[in] url A string <code>PP_Var</code> containing a URL.
-   *
-   * @param[out] proxy_string A <code>PP_Var</code> that GetProxyForURL will
-   * set upon successful completion. If the call fails, <code>proxy_string
-   * </code> will be unchanged. Otherwise, it will be set to a string <code>
-   * PP_Var</code> containing the appropriate PAC string for <code>url</code>.
-   * If set, <code>proxy_string</code> will have a reference count of 1 which
-   * the plugin must manage.
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t GetProxyForURL([in] PP_Instance instance,
-                         [in] PP_Var url,
-                         [out] PP_Var proxy_string,
-                         [in] PP_CompletionCallback callback);
-};
diff --git a/api/ppb_opengles2.idl b/api/ppb_opengles2.idl
deleted file mode 100644
index 46a58d4..0000000
--- a/api/ppb_opengles2.idl
+++ /dev/null
@@ -1,741 +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.
-
-// This file is auto-generated from
-// gpu/command_buffer/build_gles2_cmd_buffer.py
-// It's formatted by clang-format using chromium coding style:
-//    clang-format -i -style=chromium filename
-// DO NOT EDIT!
-
-label Chrome {
-  M39 = 1.0
-};
-
-[version=1.0]
-describe {
-  GLbitfield;
-  GLbitfield_ptr_t;
-  GLboolean;
-  GLboolean_ptr_t;
-  GLbyte;
-  GLbyte_ptr_t;
-  GLclampf;
-  GLclampf_ptr_t;
-  GLclampx;
-  GLclampx_ptr_t;
-  GLenum;
-  GLenum_ptr_t;
-  GLfixed;
-  GLfixed_ptr_t;
-  GLfloat;
-  GLfloat_ptr_t;
-  GLint;
-  GLint_ptr_t;
-  GLintptr;
-  GLintptr_ptr_t;
-  GLshort;
-  GLshort_ptr_t;
-  GLsizei;
-  GLsizei_ptr_t;
-  GLsizeiptr;
-  GLsizeiptr_ptr_t;
-  GLubyte;
-  GLubyte_ptr_t;
-  GLuint;
-  GLuint_ptr_t;
-  GLushort;
-  GLushort_ptr_t;
-};
-
-#inline c
-#include "ppapi/c/pp_resource.h"
-
-#ifndef __gl2_h_
-typedef unsigned int GLenum;
-typedef unsigned char GLboolean;
-typedef unsigned int GLbitfield;
-typedef signed char GLbyte;
-typedef short GLshort;
-typedef int GLint;
-typedef int GLsizei;
-typedef unsigned char GLubyte;
-typedef unsigned short GLushort;
-typedef unsigned int GLuint;
-typedef float GLfloat;
-typedef float GLclampf;
-typedef void GLvoid;
-typedef int GLfixed;
-typedef int GLclampx;
-#ifdef _WIN64
-typedef long long int GLintptr;
-typedef long long int GLsizeiptr;
-#else
-typedef long int GLintptr;
-typedef long int GLsizeiptr;
-#endif  // _WIN64
-#endif  // __gl2_h_
-
-#endinl
-
-[macro="PPB_OPENGLES2_INTERFACE", force_struct_namespace]
-interface PPB_OpenGLES2 {
-  void ActiveTexture([in] PP_Resource context,
-                     [in] GLenum texture);
-  void AttachShader([in] PP_Resource context,
-                    [in] GLuint program,
-                    [in] GLuint shader);
-  void BindAttribLocation([in] PP_Resource context,
-                          [in] GLuint program,
-                          [in] GLuint index,
-                          [in] cstr_t name);
-  void BindBuffer([in] PP_Resource context,
-                  [in] GLenum target,
-                  [in] GLuint buffer);
-  void BindFramebuffer([in] PP_Resource context,
-                       [in] GLenum target,
-                       [in] GLuint framebuffer);
-  void BindRenderbuffer([in] PP_Resource context,
-                        [in] GLenum target,
-                        [in] GLuint renderbuffer);
-  void BindTexture([in] PP_Resource context,
-                   [in] GLenum target,
-                   [in] GLuint texture);
-  void BlendColor([in] PP_Resource context,
-                  [in] GLclampf red,
-                  [in] GLclampf green,
-                  [in] GLclampf blue,
-                  [in] GLclampf alpha);
-  void BlendEquation([in] PP_Resource context,
-                     [in] GLenum mode);
-  void BlendEquationSeparate([in] PP_Resource context,
-                             [in] GLenum modeRGB,
-                             [in] GLenum modeAlpha);
-  void BlendFunc([in] PP_Resource context,
-                 [in] GLenum sfactor,
-                 [in] GLenum dfactor);
-  void BlendFuncSeparate([in] PP_Resource context,
-                         [in] GLenum srcRGB,
-                         [in] GLenum dstRGB,
-                         [in] GLenum srcAlpha,
-                         [in] GLenum dstAlpha);
-  void BufferData([in] PP_Resource context,
-                  [in] GLenum target,
-                  [in] GLsizeiptr size,
-                  [in] mem_t data,
-                  [in] GLenum usage);
-  void BufferSubData([in] PP_Resource context,
-                     [in] GLenum target,
-                     [in] GLintptr offset,
-                     [in] GLsizeiptr size,
-                     [in] mem_t data);
-  GLenum CheckFramebufferStatus([in] PP_Resource context,
-                                [in] GLenum target);
-  void Clear([in] PP_Resource context,
-             [in] GLbitfield mask);
-  void ClearColor([in] PP_Resource context,
-                  [in] GLclampf red,
-                  [in] GLclampf green,
-                  [in] GLclampf blue,
-                  [in] GLclampf alpha);
-  void ClearDepthf([in] PP_Resource context,
-                   [in] GLclampf depth);
-  void ClearStencil([in] PP_Resource context,
-                    [in] GLint s);
-  void ColorMask([in] PP_Resource context,
-                 [in] GLboolean red,
-                 [in] GLboolean green,
-                 [in] GLboolean blue,
-                 [in] GLboolean alpha);
-  void CompileShader([in] PP_Resource context,
-                     [in] GLuint shader);
-  void CompressedTexImage2D([in] PP_Resource context,
-                            [in] GLenum target,
-                            [in] GLint level,
-                            [in] GLenum internalformat,
-                            [in] GLsizei width,
-                            [in] GLsizei height,
-                            [in] GLint border,
-                            [in] GLsizei imageSize,
-                            [in] mem_t data);
-  void CompressedTexSubImage2D([in] PP_Resource context,
-                               [in] GLenum target,
-                               [in] GLint level,
-                               [in] GLint xoffset,
-                               [in] GLint yoffset,
-                               [in] GLsizei width,
-                               [in] GLsizei height,
-                               [in] GLenum format,
-                               [in] GLsizei imageSize,
-                               [in] mem_t data);
-  void CopyTexImage2D([in] PP_Resource context,
-                      [in] GLenum target,
-                      [in] GLint level,
-                      [in] GLenum internalformat,
-                      [in] GLint x,
-                      [in] GLint y,
-                      [in] GLsizei width,
-                      [in] GLsizei height,
-                      [in] GLint border);
-  void CopyTexSubImage2D([in] PP_Resource context,
-                         [in] GLenum target,
-                         [in] GLint level,
-                         [in] GLint xoffset,
-                         [in] GLint yoffset,
-                         [in] GLint x,
-                         [in] GLint y,
-                         [in] GLsizei width,
-                         [in] GLsizei height);
-  GLuint CreateProgram([in] PP_Resource context);
-  GLuint CreateShader([in] PP_Resource context,
-                      [in] GLenum type);
-  void CullFace([in] PP_Resource context,
-                [in] GLenum mode);
-  void DeleteBuffers([in] PP_Resource context,
-                     [in] GLsizei n,
-                     [in] GLuint_ptr_t buffers);
-  void DeleteFramebuffers([in] PP_Resource context,
-                          [in] GLsizei n,
-                          [in] GLuint_ptr_t framebuffers);
-  void DeleteProgram([in] PP_Resource context,
-                     [in] GLuint program);
-  void DeleteRenderbuffers([in] PP_Resource context,
-                           [in] GLsizei n,
-                           [in] GLuint_ptr_t renderbuffers);
-  void DeleteShader([in] PP_Resource context,
-                    [in] GLuint shader);
-  void DeleteTextures([in] PP_Resource context,
-                      [in] GLsizei n,
-                      [in] GLuint_ptr_t textures);
-  void DepthFunc([in] PP_Resource context,
-                 [in] GLenum func);
-  void DepthMask([in] PP_Resource context,
-                 [in] GLboolean flag);
-  void DepthRangef([in] PP_Resource context,
-                   [in] GLclampf zNear,
-                   [in] GLclampf zFar);
-  void DetachShader([in] PP_Resource context,
-                    [in] GLuint program,
-                    [in] GLuint shader);
-  void Disable([in] PP_Resource context,
-               [in] GLenum cap);
-  void DisableVertexAttribArray([in] PP_Resource context,
-                                [in] GLuint index);
-  void DrawArrays([in] PP_Resource context,
-                  [in] GLenum mode,
-                  [in] GLint first,
-                  [in] GLsizei count);
-  void DrawElements([in] PP_Resource context,
-                    [in] GLenum mode,
-                    [in] GLsizei count,
-                    [in] GLenum type,
-                    [in] mem_t indices);
-  void Enable([in] PP_Resource context,
-              [in] GLenum cap);
-  void EnableVertexAttribArray([in] PP_Resource context,
-                               [in] GLuint index);
-  void Finish([in] PP_Resource context);
-  void Flush([in] PP_Resource context);
-  void FramebufferRenderbuffer([in] PP_Resource context,
-                               [in] GLenum target,
-                               [in] GLenum attachment,
-                               [in] GLenum renderbuffertarget,
-                               [in] GLuint renderbuffer);
-  void FramebufferTexture2D([in] PP_Resource context,
-                            [in] GLenum target,
-                            [in] GLenum attachment,
-                            [in] GLenum textarget,
-                            [in] GLuint texture,
-                            [in] GLint level);
-  void FrontFace([in] PP_Resource context,
-                 [in] GLenum mode);
-  void GenBuffers([in] PP_Resource context,
-                  [in] GLsizei n,
-                  [out] GLuint_ptr_t buffers);
-  void GenerateMipmap([in] PP_Resource context,
-                      [in] GLenum target);
-  void GenFramebuffers([in] PP_Resource context,
-                       [in] GLsizei n,
-                       [out] GLuint_ptr_t framebuffers);
-  void GenRenderbuffers([in] PP_Resource context,
-                        [in] GLsizei n,
-                        [out] GLuint_ptr_t renderbuffers);
-  void GenTextures([in] PP_Resource context,
-                   [in] GLsizei n,
-                   [out] GLuint_ptr_t textures);
-  void GetActiveAttrib([in] PP_Resource context,
-                       [in] GLuint program,
-                       [in] GLuint index,
-                       [in] GLsizei bufsize,
-                       [out] GLsizei_ptr_t length,
-                       [out] GLint_ptr_t size,
-                       [out] GLenum_ptr_t type,
-                       [out] str_t name);
-  void GetActiveUniform([in] PP_Resource context,
-                        [in] GLuint program,
-                        [in] GLuint index,
-                        [in] GLsizei bufsize,
-                        [out] GLsizei_ptr_t length,
-                        [out] GLint_ptr_t size,
-                        [out] GLenum_ptr_t type,
-                        [out] str_t name);
-  void GetAttachedShaders([in] PP_Resource context,
-                          [in] GLuint program,
-                          [in] GLsizei maxcount,
-                          [out] GLsizei_ptr_t count,
-                          [out] GLuint_ptr_t shaders);
-  GLint GetAttribLocation([in] PP_Resource context,
-                          [in] GLuint program,
-                          [in] cstr_t name);
-  void GetBooleanv([in] PP_Resource context,
-                   [in] GLenum pname,
-                   [out] GLboolean_ptr_t params);
-  void GetBufferParameteriv([in] PP_Resource context,
-                            [in] GLenum target,
-                            [in] GLenum pname,
-                            [out] GLint_ptr_t params);
-  GLenum GetError([in] PP_Resource context);
-  void GetFloatv([in] PP_Resource context,
-                 [in] GLenum pname,
-                 [out] GLfloat_ptr_t params);
-  void GetFramebufferAttachmentParameteriv([in] PP_Resource context,
-                                           [in] GLenum target,
-                                           [in] GLenum attachment,
-                                           [in] GLenum pname,
-                                           [out] GLint_ptr_t params);
-  void GetIntegerv([in] PP_Resource context,
-                   [in] GLenum pname,
-                   [out] GLint_ptr_t params);
-  void GetProgramiv([in] PP_Resource context,
-                    [in] GLuint program,
-                    [in] GLenum pname,
-                    [out] GLint_ptr_t params);
-  void GetProgramInfoLog([in] PP_Resource context,
-                         [in] GLuint program,
-                         [in] GLsizei bufsize,
-                         [out] GLsizei_ptr_t length,
-                         [out] str_t infolog);
-  void GetRenderbufferParameteriv([in] PP_Resource context,
-                                  [in] GLenum target,
-                                  [in] GLenum pname,
-                                  [out] GLint_ptr_t params);
-  void GetShaderiv([in] PP_Resource context,
-                   [in] GLuint shader,
-                   [in] GLenum pname,
-                   [out] GLint_ptr_t params);
-  void GetShaderInfoLog([in] PP_Resource context,
-                        [in] GLuint shader,
-                        [in] GLsizei bufsize,
-                        [out] GLsizei_ptr_t length,
-                        [out] str_t infolog);
-  void GetShaderPrecisionFormat([in] PP_Resource context,
-                                [in] GLenum shadertype,
-                                [in] GLenum precisiontype,
-                                [out] GLint_ptr_t range,
-                                [out] GLint_ptr_t precision);
-  void GetShaderSource([in] PP_Resource context,
-                       [in] GLuint shader,
-                       [in] GLsizei bufsize,
-                       [out] GLsizei_ptr_t length,
-                       [out] str_t source);
-  GLubyte_ptr_t GetString([in] PP_Resource context,
-                          [in] GLenum name);
-  void GetTexParameterfv([in] PP_Resource context,
-                         [in] GLenum target,
-                         [in] GLenum pname,
-                         [out] GLfloat_ptr_t params);
-  void GetTexParameteriv([in] PP_Resource context,
-                         [in] GLenum target,
-                         [in] GLenum pname,
-                         [out] GLint_ptr_t params);
-  void GetUniformfv([in] PP_Resource context,
-                    [in] GLuint program,
-                    [in] GLint location,
-                    [out] GLfloat_ptr_t params);
-  void GetUniformiv([in] PP_Resource context,
-                    [in] GLuint program,
-                    [in] GLint location,
-                    [out] GLint_ptr_t params);
-  GLint GetUniformLocation([in] PP_Resource context,
-                           [in] GLuint program,
-                           [in] cstr_t name);
-  void GetVertexAttribfv([in] PP_Resource context,
-                         [in] GLuint index,
-                         [in] GLenum pname,
-                         [out] GLfloat_ptr_t params);
-  void GetVertexAttribiv([in] PP_Resource context,
-                         [in] GLuint index,
-                         [in] GLenum pname,
-                         [out] GLint_ptr_t params);
-  void GetVertexAttribPointerv([in] PP_Resource context,
-                               [in] GLuint index,
-                               [in] GLenum pname,
-                               [out] mem_ptr_t pointer);
-  void Hint([in] PP_Resource context,
-            [in] GLenum target,
-            [in] GLenum mode);
-  GLboolean IsBuffer([in] PP_Resource context,
-                     [in] GLuint buffer);
-  GLboolean IsEnabled([in] PP_Resource context,
-                      [in] GLenum cap);
-  GLboolean IsFramebuffer([in] PP_Resource context,
-                          [in] GLuint framebuffer);
-  GLboolean IsProgram([in] PP_Resource context,
-                      [in] GLuint program);
-  GLboolean IsRenderbuffer([in] PP_Resource context,
-                           [in] GLuint renderbuffer);
-  GLboolean IsShader([in] PP_Resource context,
-                     [in] GLuint shader);
-  GLboolean IsTexture([in] PP_Resource context,
-                      [in] GLuint texture);
-  void LineWidth([in] PP_Resource context,
-                 [in] GLfloat width);
-  void LinkProgram([in] PP_Resource context,
-                   [in] GLuint program);
-  void PixelStorei([in] PP_Resource context,
-                   [in] GLenum pname,
-                   [in] GLint param);
-  void PolygonOffset([in] PP_Resource context,
-                     [in] GLfloat factor,
-                     [in] GLfloat units);
-  void ReadPixels([in] PP_Resource context,
-                  [in] GLint x,
-                  [in] GLint y,
-                  [in] GLsizei width,
-                  [in] GLsizei height,
-                  [in] GLenum format,
-                  [in] GLenum type,
-                  [out] mem_t pixels);
-  void ReleaseShaderCompiler([in] PP_Resource context);
-  void RenderbufferStorage([in] PP_Resource context,
-                           [in] GLenum target,
-                           [in] GLenum internalformat,
-                           [in] GLsizei width,
-                           [in] GLsizei height);
-  void SampleCoverage([in] PP_Resource context,
-                      [in] GLclampf value,
-                      [in] GLboolean invert);
-  void Scissor([in] PP_Resource context,
-               [in] GLint x,
-               [in] GLint y,
-               [in] GLsizei width,
-               [in] GLsizei height);
-  void ShaderBinary([in] PP_Resource context,
-                    [in] GLsizei n,
-                    [in] GLuint_ptr_t shaders,
-                    [in] GLenum binaryformat,
-                    [in] mem_t binary,
-                    [in] GLsizei length);
-  void ShaderSource([in] PP_Resource context,
-                    [in] GLuint shader,
-                    [in] GLsizei count,
-                    [out] cstr_t str,
-                    [in] GLint_ptr_t length);
-  void StencilFunc([in] PP_Resource context,
-                   [in] GLenum func,
-                   [in] GLint ref,
-                   [in] GLuint mask);
-  void StencilFuncSeparate([in] PP_Resource context,
-                           [in] GLenum face,
-                           [in] GLenum func,
-                           [in] GLint ref,
-                           [in] GLuint mask);
-  void StencilMask([in] PP_Resource context,
-                   [in] GLuint mask);
-  void StencilMaskSeparate([in] PP_Resource context,
-                           [in] GLenum face,
-                           [in] GLuint mask);
-  void StencilOp([in] PP_Resource context,
-                 [in] GLenum fail,
-                 [in] GLenum zfail,
-                 [in] GLenum zpass);
-  void StencilOpSeparate([in] PP_Resource context,
-                         [in] GLenum face,
-                         [in] GLenum fail,
-                         [in] GLenum zfail,
-                         [in] GLenum zpass);
-  void TexImage2D([in] PP_Resource context,
-                  [in] GLenum target,
-                  [in] GLint level,
-                  [in] GLint internalformat,
-                  [in] GLsizei width,
-                  [in] GLsizei height,
-                  [in] GLint border,
-                  [in] GLenum format,
-                  [in] GLenum type,
-                  [in] mem_t pixels);
-  void TexParameterf([in] PP_Resource context,
-                     [in] GLenum target,
-                     [in] GLenum pname,
-                     [in] GLfloat param);
-  void TexParameterfv([in] PP_Resource context,
-                      [in] GLenum target,
-                      [in] GLenum pname,
-                      [in] GLfloat_ptr_t params);
-  void TexParameteri([in] PP_Resource context,
-                     [in] GLenum target,
-                     [in] GLenum pname,
-                     [in] GLint param);
-  void TexParameteriv([in] PP_Resource context,
-                      [in] GLenum target,
-                      [in] GLenum pname,
-                      [in] GLint_ptr_t params);
-  void TexSubImage2D([in] PP_Resource context,
-                     [in] GLenum target,
-                     [in] GLint level,
-                     [in] GLint xoffset,
-                     [in] GLint yoffset,
-                     [in] GLsizei width,
-                     [in] GLsizei height,
-                     [in] GLenum format,
-                     [in] GLenum type,
-                     [in] mem_t pixels);
-  void Uniform1f([in] PP_Resource context,
-                 [in] GLint location,
-                 [in] GLfloat x);
-  void Uniform1fv([in] PP_Resource context,
-                  [in] GLint location,
-                  [in] GLsizei count,
-                  [in] GLfloat_ptr_t v);
-  void Uniform1i([in] PP_Resource context,
-                 [in] GLint location,
-                 [in] GLint x);
-  void Uniform1iv([in] PP_Resource context,
-                  [in] GLint location,
-                  [in] GLsizei count,
-                  [in] GLint_ptr_t v);
-  void Uniform2f([in] PP_Resource context,
-                 [in] GLint location,
-                 [in] GLfloat x,
-                 [in] GLfloat y);
-  void Uniform2fv([in] PP_Resource context,
-                  [in] GLint location,
-                  [in] GLsizei count,
-                  [in] GLfloat_ptr_t v);
-  void Uniform2i([in] PP_Resource context,
-                 [in] GLint location,
-                 [in] GLint x,
-                 [in] GLint y);
-  void Uniform2iv([in] PP_Resource context,
-                  [in] GLint location,
-                  [in] GLsizei count,
-                  [in] GLint_ptr_t v);
-  void Uniform3f([in] PP_Resource context,
-                 [in] GLint location,
-                 [in] GLfloat x,
-                 [in] GLfloat y,
-                 [in] GLfloat z);
-  void Uniform3fv([in] PP_Resource context,
-                  [in] GLint location,
-                  [in] GLsizei count,
-                  [in] GLfloat_ptr_t v);
-  void Uniform3i([in] PP_Resource context,
-                 [in] GLint location,
-                 [in] GLint x,
-                 [in] GLint y,
-                 [in] GLint z);
-  void Uniform3iv([in] PP_Resource context,
-                  [in] GLint location,
-                  [in] GLsizei count,
-                  [in] GLint_ptr_t v);
-  void Uniform4f([in] PP_Resource context,
-                 [in] GLint location,
-                 [in] GLfloat x,
-                 [in] GLfloat y,
-                 [in] GLfloat z,
-                 [in] GLfloat w);
-  void Uniform4fv([in] PP_Resource context,
-                  [in] GLint location,
-                  [in] GLsizei count,
-                  [in] GLfloat_ptr_t v);
-  void Uniform4i([in] PP_Resource context,
-                 [in] GLint location,
-                 [in] GLint x,
-                 [in] GLint y,
-                 [in] GLint z,
-                 [in] GLint w);
-  void Uniform4iv([in] PP_Resource context,
-                  [in] GLint location,
-                  [in] GLsizei count,
-                  [in] GLint_ptr_t v);
-  void UniformMatrix2fv([in] PP_Resource context,
-                        [in] GLint location,
-                        [in] GLsizei count,
-                        [in] GLboolean transpose,
-                        [in] GLfloat_ptr_t value);
-  void UniformMatrix3fv([in] PP_Resource context,
-                        [in] GLint location,
-                        [in] GLsizei count,
-                        [in] GLboolean transpose,
-                        [in] GLfloat_ptr_t value);
-  void UniformMatrix4fv([in] PP_Resource context,
-                        [in] GLint location,
-                        [in] GLsizei count,
-                        [in] GLboolean transpose,
-                        [in] GLfloat_ptr_t value);
-  void UseProgram([in] PP_Resource context,
-                  [in] GLuint program);
-  void ValidateProgram([in] PP_Resource context,
-                       [in] GLuint program);
-  void VertexAttrib1f([in] PP_Resource context,
-                      [in] GLuint indx,
-                      [in] GLfloat x);
-  void VertexAttrib1fv([in] PP_Resource context,
-                       [in] GLuint indx,
-                       [in] GLfloat_ptr_t values);
-  void VertexAttrib2f([in] PP_Resource context,
-                      [in] GLuint indx,
-                      [in] GLfloat x,
-                      [in] GLfloat y);
-  void VertexAttrib2fv([in] PP_Resource context,
-                       [in] GLuint indx,
-                       [in] GLfloat_ptr_t values);
-  void VertexAttrib3f([in] PP_Resource context,
-                      [in] GLuint indx,
-                      [in] GLfloat x,
-                      [in] GLfloat y,
-                      [in] GLfloat z);
-  void VertexAttrib3fv([in] PP_Resource context,
-                       [in] GLuint indx,
-                       [in] GLfloat_ptr_t values);
-  void VertexAttrib4f([in] PP_Resource context,
-                      [in] GLuint indx,
-                      [in] GLfloat x,
-                      [in] GLfloat y,
-                      [in] GLfloat z,
-                      [in] GLfloat w);
-  void VertexAttrib4fv([in] PP_Resource context,
-                       [in] GLuint indx,
-                       [in] GLfloat_ptr_t values);
-  void VertexAttribPointer([in] PP_Resource context,
-                           [in] GLuint indx,
-                           [in] GLint size,
-                           [in] GLenum type,
-                           [in] GLboolean normalized,
-                           [in] GLsizei stride,
-                           [in] mem_t ptr);
-  void Viewport([in] PP_Resource context,
-                [in] GLint x,
-                [in] GLint y,
-                [in] GLsizei width,
-                [in] GLsizei height);
-};
-
-
-[macro="PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE", force_struct_namespace]
-interface PPB_OpenGLES2InstancedArrays {
-  void DrawArraysInstancedANGLE([in] PP_Resource context,
-                                [in] GLenum mode,
-                                [in] GLint first,
-                                [in] GLsizei count,
-                                [in] GLsizei primcount);
-  void DrawElementsInstancedANGLE([in] PP_Resource context,
-                                  [in] GLenum mode,
-                                  [in] GLsizei count,
-                                  [in] GLenum type,
-                                  [in] mem_t indices,
-                                  [in] GLsizei primcount);
-  void VertexAttribDivisorANGLE([in] PP_Resource context,
-                                [in] GLuint index,
-                                [in] GLuint divisor);
-};
-
-
-[macro="PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE", force_struct_namespace]
-interface PPB_OpenGLES2FramebufferBlit {
-  void BlitFramebufferEXT([in] PP_Resource context,
-                          [in] GLint srcX0,
-                          [in] GLint srcY0,
-                          [in] GLint srcX1,
-                          [in] GLint srcY1,
-                          [in] GLint dstX0,
-                          [in] GLint dstY0,
-                          [in] GLint dstX1,
-                          [in] GLint dstY1,
-                          [in] GLbitfield mask,
-                          [in] GLenum filter);
-};
-
-
-[macro="PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE", force_struct_namespace]
-interface PPB_OpenGLES2FramebufferMultisample {
-  void RenderbufferStorageMultisampleEXT([in] PP_Resource context,
-                                         [in] GLenum target,
-                                         [in] GLsizei samples,
-                                         [in] GLenum internalformat,
-                                         [in] GLsizei width,
-                                         [in] GLsizei height);
-};
-
-
-[macro="PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE", force_struct_namespace]
-interface PPB_OpenGLES2ChromiumEnableFeature {
-  GLboolean EnableFeatureCHROMIUM([in] PP_Resource context,
-                                  [in] cstr_t feature);
-};
-
-
-[macro="PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE", force_struct_namespace]
-interface PPB_OpenGLES2ChromiumMapSub {
-  mem_t MapBufferSubDataCHROMIUM([in] PP_Resource context,
-                                 [in] GLuint target,
-                                 [in] GLintptr offset,
-                                 [in] GLsizeiptr size,
-                                 [in] GLenum access);
-  void UnmapBufferSubDataCHROMIUM([in] PP_Resource context,
-                                  [in] mem_t mem);
-  mem_t MapTexSubImage2DCHROMIUM([in] PP_Resource context,
-                                 [in] GLenum target,
-                                 [in] GLint level,
-                                 [in] GLint xoffset,
-                                 [in] GLint yoffset,
-                                 [in] GLsizei width,
-                                 [in] GLsizei height,
-                                 [in] GLenum format,
-                                 [in] GLenum type,
-                                 [in] GLenum access);
-  void UnmapTexSubImage2DCHROMIUM([in] PP_Resource context,
-                                  [in] mem_t mem);
-};
-
-
-[macro="PPB_OPENGLES2_QUERY_INTERFACE", force_struct_namespace]
-interface PPB_OpenGLES2Query {
-  void GenQueriesEXT([in] PP_Resource context,
-                     [in] GLsizei n,
-                     [out] GLuint_ptr_t queries);
-  void DeleteQueriesEXT([in] PP_Resource context,
-                        [in] GLsizei n,
-                        [in] GLuint_ptr_t queries);
-  GLboolean IsQueryEXT([in] PP_Resource context,
-                       [in] GLuint id);
-  void BeginQueryEXT([in] PP_Resource context,
-                     [in] GLenum target,
-                     [in] GLuint id);
-  void EndQueryEXT([in] PP_Resource context,
-                   [in] GLenum target);
-  void GetQueryivEXT([in] PP_Resource context,
-                     [in] GLenum target,
-                     [in] GLenum pname,
-                     [out] GLint_ptr_t params);
-  void GetQueryObjectuivEXT([in] PP_Resource context,
-                            [in] GLuint id,
-                            [in] GLenum pname,
-                            [out] GLuint_ptr_t params);
-};
-
-
-[macro="PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE", force_struct_namespace]
-interface PPB_OpenGLES2VertexArrayObject {
-  void GenVertexArraysOES([in] PP_Resource context,
-                          [in] GLsizei n,
-                          [out] GLuint_ptr_t arrays);
-  void DeleteVertexArraysOES([in] PP_Resource context,
-                             [in] GLsizei n,
-                             [in] GLuint_ptr_t arrays);
-  GLboolean IsVertexArrayOES([in] PP_Resource context,
-                             [in] GLuint array);
-  void BindVertexArrayOES([in] PP_Resource context,
-                          [in] GLuint array);
-};
-
diff --git a/api/ppb_tcp_socket.idl b/api/ppb_tcp_socket.idl
deleted file mode 100644
index b581193..0000000
--- a/api/ppb_tcp_socket.idl
+++ /dev/null
@@ -1,291 +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.
- */
-
-/**
- * This file defines the <code>PPB_TCPSocket</code> interface.
- */
-
-label Chrome {
-  M29 = 1.0,
-  M31 = 1.1,
-  M41 = 1.2
-};
-
-/**
- * Option names used by <code>SetOption()</code>.
- */
-[assert_size(4)]
-enum PP_TCPSocket_Option {
-  /**
-   * Disables coalescing of small writes to make TCP segments, and instead
-   * delivers data immediately. Value's type is <code>PP_VARTYPE_BOOL</code>.
-   * On version 1.1 or earlier, this option can only be set after a successful
-   * <code>Connect()</code> call. On version 1.2 or later, there is no such
-   * limitation.
-   */
-  PP_TCPSOCKET_OPTION_NO_DELAY = 0,
-
-  /**
-   * Specifies the total per-socket buffer space reserved for sends. Value's
-   * type should be <code>PP_VARTYPE_INT32</code>.
-   * On version 1.1 or earlier, this option can only be set after a successful
-   * <code>Connect()</code> call. On version 1.2 or later, there is no such
-   * limitation.
-   *
-   * Note: This is only treated as a hint for the browser to set the buffer
-   * size. Even if <code>SetOption()</code> succeeds, the browser doesn't
-   * guarantee it will conform to the size.
-   */
-  PP_TCPSOCKET_OPTION_SEND_BUFFER_SIZE = 1,
-
-  /**
-   * Specifies the total per-socket buffer space reserved for receives. Value's
-   * type should be <code>PP_VARTYPE_INT32</code>.
-   * On version 1.1 or earlier, this option can only be set after a successful
-   * <code>Connect()</code> call. On version 1.2 or later, there is no such
-   * limitation.
-   *
-   * Note: This is only treated as a hint for the browser to set the buffer
-   * size. Even if <code>SetOption()</code> succeeds, the browser doesn't
-   * guarantee it will conform to the size.
-   */
-  PP_TCPSOCKET_OPTION_RECV_BUFFER_SIZE = 2
-};
-
-/**
- * The <code>PPB_TCPSocket</code> interface provides TCP socket operations.
- *
- * Permissions: Apps permission <code>socket</code> with subrule
- * <code>tcp-connect</code> is required for <code>Connect()</code>; subrule
- * <code>tcp-listen</code> is required for <code>Listen()</code>.
- * For more details about network communication permissions, please see:
- * http://developer.chrome.com/apps/app_network.html
- */
-interface PPB_TCPSocket {
-  /**
-   * Creates a TCP socket resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a TCP socket or 0
-   * on failure.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-
-  /**
-   * Determines if a given resource is a TCP socket.
-   *
-   * @param[in] resource A <code>PP_Resource</code> to check.
-   *
-   * @return <code>PP_TRUE</code> if the input is a
-   * <code>PPB_TCPSocket</code> resource; <code>PP_FALSE</code> otherwise.
-   */
-  PP_Bool IsTCPSocket([in] PP_Resource resource);
-
-  /**
-   * Binds the socket to the given address. The socket must not be bound.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[in] addr A <code>PPB_NetAddress</code> resource.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>,
-   * including (but not limited to):
-   * - <code>PP_ERROR_ADDRESS_IN_USE</code>: the address is already in use.
-   * - <code>PP_ERROR_ADDRESS_INVALID</code>: the address is invalid.
-   */
-  [version=1.1]
-  int32_t Bind([in] PP_Resource tcp_socket,
-               [in] PP_Resource addr,
-               [in] PP_CompletionCallback callback);
-
-  /**
-   * Connects the socket to the given address. The socket must not be listening.
-   * Binding the socket beforehand is optional.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[in] addr A <code>PPB_NetAddress</code> resource.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>,
-   * including (but not limited to):
-   * - <code>PP_ERROR_NOACCESS</code>: the caller doesn't have required
-   *   permissions.
-   * - <code>PP_ERROR_ADDRESS_UNREACHABLE</code>: <code>addr</code> is
-   *   unreachable.
-   * - <code>PP_ERROR_CONNECTION_REFUSED</code>: the connection attempt was
-   *   refused.
-   * - <code>PP_ERROR_CONNECTION_FAILED</code>: the connection attempt failed.
-   * - <code>PP_ERROR_CONNECTION_TIMEDOUT</code>: the connection attempt timed
-   *   out.
-   *
-   * Since version 1.1, if the socket is listening/connected or has a pending
-   * listen/connect request, <code>Connect()</code> will fail without starting a
-   * connection attempt; otherwise, any failure during the connection attempt
-   * will cause the socket to be closed.
-   */
-  int32_t Connect([in] PP_Resource tcp_socket,
-                  [in] PP_Resource addr,
-                  [in] PP_CompletionCallback callback);
-
-  /**
-   * Gets the local address of the socket, if it is bound.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   *
-   * @return A <code>PPB_NetAddress</code> resource on success or 0 on failure.
-   */
-  PP_Resource GetLocalAddress([in] PP_Resource tcp_socket);
-
-  /**
-   * Gets the remote address of the socket, if it is connected.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   *
-   * @return A <code>PPB_NetAddress</code> resource on success or 0 on failure.
-   */
-  PP_Resource GetRemoteAddress([in] PP_Resource tcp_socket);
-
-  /**
-   * Reads data from the socket. The socket must be connected. It may perform a
-   * partial read.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[out] buffer The buffer to store the received data on success. It
-   * must be at least as large as <code>bytes_to_read</code>.
-   * @param[in] bytes_to_read The number of bytes to read.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return A non-negative number on success to indicate how many bytes have
-   * been read, 0 means that end-of-file was reached; otherwise, an error code
-   * from <code>pp_errors.h</code>.
-   */
-  int32_t Read([in] PP_Resource tcp_socket,
-               [out] str_t buffer,
-               [in] int32_t bytes_to_read,
-               [in] PP_CompletionCallback callback);
-
-  /**
-   * Writes data to the socket. The socket must be connected. It may perform a
-   * partial write.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[in] buffer The buffer containing the data to write.
-   * @param[in] bytes_to_write The number of bytes to write.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return A non-negative number on success to indicate how many bytes have
-   * been written; otherwise, an error code from <code>pp_errors.h</code>.
-   */
-  int32_t Write([in] PP_Resource tcp_socket,
-                [in] str_t buffer,
-                [in] int32_t bytes_to_write,
-                [in] PP_CompletionCallback callback);
-  /**
-   * Starts listening. The socket must be bound and not connected.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[in] backlog A hint to determine the maximum length to which the
-   * queue of pending connections may grow.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>,
-   * including (but not limited to):
-   * - <code>PP_ERROR_NOACCESS</code>: the caller doesn't have required
-   *   permissions.
-   * - <code>PP_ERROR_ADDRESS_IN_USE</code>: Another socket is already listening
-   *   on the same port.
-   */
-  [version=1.1]
-  int32_t Listen([in] PP_Resource tcp_socket,
-                 [in] int32_t backlog,
-                 [in] PP_CompletionCallback callback);
-
-  /**
-   * Accepts a connection. The socket must be listening.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[out] accepted_tcp_socket Stores the accepted TCP socket on success.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>,
-   * including (but not limited to):
-   * - <code>PP_ERROR_CONNECTION_ABORTED</code>: A connection has been aborted.
-   */
-  [version=1.1]
-  int32_t Accept([in] PP_Resource tcp_socket,
-                 [out] PP_Resource accepted_tcp_socket,
-                 [in] PP_CompletionCallback callback);
-
-  /**
-   * Cancels all pending operations and closes the socket. Any pending callbacks
-   * will still run, reporting <code>PP_ERROR_ABORTED</code> if pending IO was
-   * interrupted. After a call to this method, no output buffer pointers passed
-   * into previous <code>Read()</code> or <code>Accept()</code> calls will be
-   * accessed. It is not valid to call <code>Connect()</code> or
-   * <code>Listen()</code> again.
-   *
-   * The socket is implicitly closed if it is destroyed, so you are not required
-   * to call this method.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   */
-  void Close([in] PP_Resource tcp_socket);
-
-  /**
-   * Sets a socket option on the TCP socket.
-   * Please see the <code>PP_TCPSocket_Option</code> description for option
-   * names, value types and allowed values.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[in] name The option to set.
-   * @param[in] value The option value to set.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t SetOption([in] PP_Resource tcp_socket,
-                    [in] PP_TCPSocket_Option name,
-                    [in] PP_Var value,
-                    [in] PP_CompletionCallback callback);
-
-  /**
-   * Sets a socket option on the TCP socket.
-   * Please see the <code>PP_TCPSocket_Option</code> description for option
-   * names, value types and allowed values.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[in] name The option to set.
-   * @param[in] value The option value to set.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  [version=1.2]
-  int32_t SetOption([in] PP_Resource tcp_socket,
-                    [in] PP_TCPSocket_Option name,
-                    [in] PP_Var value,
-                    [in] PP_CompletionCallback callback);
-};
diff --git a/api/ppb_text_input_controller.idl b/api/ppb_text_input_controller.idl
deleted file mode 100644
index 0287352..0000000
--- a/api/ppb_text_input_controller.idl
+++ /dev/null
@@ -1,96 +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.
- */
-
-/**
- * This file defines the <code>PPB_TextInputController</code> interface.
- */
-
-label Chrome {
-  M30 = 1.0
-};
-
-/**
- * PP_TextInput_Type is used to indicate the status of a plugin in regard to
- * text input.
- */
-[assert_size(4)]
-enum PP_TextInput_Type {
-  /**
-   * Input caret is not in an editable mode, no input method shall be used.
-   */
-  PP_TEXTINPUT_TYPE_NONE = 0,
-  /**
-   * Input caret is in a normal editable mode, any input method can be used.
-   */
-  PP_TEXTINPUT_TYPE_TEXT = 1,
-  /**
-   * Input caret is in a password box, an input method may be used only if
-   * it's suitable for password input.
-   */
-  PP_TEXTINPUT_TYPE_PASSWORD = 2,
-  PP_TEXTINPUT_TYPE_SEARCH = 3,
-  PP_TEXTINPUT_TYPE_EMAIL = 4,
-  PP_TEXTINPUT_TYPE_NUMBER = 5,
-  PP_TEXTINPUT_TYPE_TELEPHONE = 6,
-  PP_TEXTINPUT_TYPE_URL = 7,
-  PP_TEXTINPUT_TYPE_LAST = PP_TEXTINPUT_TYPE_URL
-};
-
-/**
- * <code>PPB_TextInputController</code> provides a set of functions for giving
- * hints to the browser about the text input status of plugins, and functions
- * for controlling input method editors (IMEs).
- */
-interface PPB_TextInputController {
-  /**
-   * Informs the browser about the current text input mode of the plugin.
-   * Typical use of this information in the browser is to properly
-   * display/suppress tools for supporting text inputs (such as virtual
-   * keyboards in touch screen based devices, or input method editors often
-   * used for composing East Asian characters).
-   */
-  void SetTextInputType([in] PP_Instance instance,
-                        [in] PP_TextInput_Type type);
-
-  /**
-   * Informs the browser about the coordinates of the text input caret area.
-   * Typical use of this information in the browser is to layout IME windows
-   * etc.
-   */
-  void UpdateCaretPosition([in] PP_Instance instance,
-                           [in] PP_Rect caret);
-
-  /**
-   * Cancels the current composition in IME.
-   */
-  void CancelCompositionText([in] PP_Instance instance);
-
-  /**
-   * Informs the browser about the current text selection and surrounding
-   * text. <code>text</code> is a UTF-8 string that contains the current range
-   * of text selection in the plugin. <code>caret</code> is the byte-index of
-   * the caret position within <code>text</code>. <code>anchor</code> is the
-   * byte-index of the anchor position (i.e., if a range of text is selected,
-   * it is the other edge of selection different from <code>caret</code>. If
-   * there are no selection, <code>anchor</code> is equal to <code>caret</code>.
-   *
-   * Typical use of this information in the browser is to enable "reconversion"
-   * features of IME that puts back the already committed text into the
-   * pre-commit composition state. Another use is to improve the precision
-   * of suggestion of IME by taking the context into account (e.g., if the caret
-   * looks to be on the beginning of a sentence, suggest capital letters in a
-   * virtual keyboard).
-   *
-   * When the focus is not on text, call this function setting <code>text</code>
-   * to an empty string and <code>caret</code> and <code>anchor</code> to zero.
-   * Also, the plugin should send the empty text when it does not want to reveal
-   * the selection to IME (e.g., when the surrounding text is containing
-   * password text).
-   */
-  void UpdateSurroundingText([in] PP_Instance instance,
-                             [in] PP_Var text,
-                             [in] uint32_t caret,
-                             [in] uint32_t anchor);
-};
diff --git a/api/ppb_udp_socket.idl b/api/ppb_udp_socket.idl
deleted file mode 100644
index c690e99..0000000
--- a/api/ppb_udp_socket.idl
+++ /dev/null
@@ -1,303 +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.
- */
-
-/**
- * This file defines the <code>PPB_UDPSocket</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M29 = 1.0,
-  M41 = 1.1,
-  M43 = 1.2
-};
-
-/**
- * Option names used by <code>SetOption()</code>.
- */
-[assert_size(4)]
-enum PP_UDPSocket_Option {
-  /**
-   * Allows the socket to share the local address to which it will be bound with
-   * other processes. Value's type should be <code>PP_VARTYPE_BOOL</code>.
-   * This option can only be set before calling <code>Bind()</code>.
-   */
-  PP_UDPSOCKET_OPTION_ADDRESS_REUSE = 0,
-
-  /**
-   * Allows sending and receiving packets to and from broadcast addresses.
-   * Value's type should be <code>PP_VARTYPE_BOOL</code>.
-   * On version 1.0, this option can only be set before calling
-   * <code>Bind()</code>. On version 1.1 or later, there is no such limitation.
-   */
-  PP_UDPSOCKET_OPTION_BROADCAST = 1,
-
-  /**
-   * Specifies the total per-socket buffer space reserved for sends. Value's
-   * type should be <code>PP_VARTYPE_INT32</code>.
-   * On version 1.0, this option can only be set after a successful
-   * <code>Bind()</code> call. On version 1.1 or later, there is no such
-   * limitation.
-   *
-   * Note: This is only treated as a hint for the browser to set the buffer
-   * size. Even if <code>SetOption()</code> succeeds, the browser doesn't
-   * guarantee it will conform to the size.
-   */
-  PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE = 2,
-
-  /**
-   * Specifies the total per-socket buffer space reserved for receives. Value's
-   * type should be <code>PP_VARTYPE_INT32</code>.
-   * On version 1.0, this option can only be set after a successful
-   * <code>Bind()</code> call. On version 1.1 or later, there is no such
-   * limitation.
-   *
-   * Note: This is only treated as a hint for the browser to set the buffer
-   * size. Even if <code>SetOption()</code> succeeds, the browser doesn't
-   * guarantee it will conform to the size.
-   */
-  PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE = 3,
-
-  /**
-   * Specifies whether the packets sent from the host to the multicast group
-   * should be looped back to the host or not. Value's type should be
-   * <code>PP_VARTYPE_BOOL</code>.
-   * This option can only be set before calling <code>Bind()</code>.
-   *
-   * This is only supported in version 1.2 of the API (Chrome 43) and later.
-   */
-  PP_UDPSOCKET_OPTION_MULTICAST_LOOP = 4,
-
-  /**
-   * Specifies the time-to-live for packets sent to the multicast group. The
-   * value should be within 0 to 255 range. The default value is 1 and means
-   * that packets will not be routed beyond the local network. Value's type
-   * should be <code>PP_VARTYPE_INT32</code>.
-   * This option can only be set before calling <code>Bind()</code>.
-   *
-   * This is only supported in version 1.2 of the API (Chrome 43) and later.
-   */
-  PP_UDPSOCKET_OPTION_MULTICAST_TTL = 5
-};
-
-/**
- * The <code>PPB_UDPSocket</code> interface provides UDP socket operations.
- *
- * Permissions: Apps permission <code>socket</code> with subrule
- * <code>udp-bind</code> is required for <code>Bind()</code>; subrule
- * <code>udp-send-to</code> is required for <code>SendTo()</code>.
- * For more details about network communication permissions, please see:
- * http://developer.chrome.com/apps/app_network.html
- */
-interface PPB_UDPSocket {
-  /**
-   * Creates a UDP socket resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a UDP socket or 0
-   * on failure.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-
-  /**
-   * Determines if a given resource is a UDP socket.
-   *
-   * @param[in] resource A <code>PP_Resource</code> to check.
-   *
-   * @return <code>PP_TRUE</code> if the input is a <code>PPB_UDPSocket</code>
-   * resource; <code>PP_FALSE</code> otherwise.
-   */
-  PP_Bool IsUDPSocket([in] PP_Resource resource);
-
-  /**
-   * Binds the socket to the given address.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   * @param[in] addr A <code>PPB_NetAddress</code> resource.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have
-   * required permissions. <code>PP_ERROR_ADDRESS_IN_USE</code> will be returned
-   * if the address is already in use.
-   */
-  int32_t Bind([in] PP_Resource udp_socket,
-               [in] PP_Resource addr,
-               [in] PP_CompletionCallback callback);
-
-  /**
-   * Gets the address that the socket is bound to. The socket must be bound.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   *
-   * @return A <code>PPB_NetAddress</code> resource on success or 0 on failure.
-   */
-  PP_Resource GetBoundAddress([in] PP_Resource udp_socket);
-
-  /**
-   * Receives data from the socket and stores the source address. The socket
-   * must be bound.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   * @param[out] buffer The buffer to store the received data on success. It
-   * must be at least as large as <code>num_bytes</code>.
-   * @param[in] num_bytes The number of bytes to receive.
-   * @param[out] addr A <code>PPB_NetAddress</code> resource to store the source
-   * address on success.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return A non-negative number on success to indicate how many bytes have
-   * been received; otherwise, an error code from <code>pp_errors.h</code>.
-   */
-  int32_t RecvFrom([in] PP_Resource udp_socket,
-                   [out] str_t buffer,
-                   [in] int32_t num_bytes,
-                   [out] PP_Resource addr,
-                   [in] PP_CompletionCallback callback);
-
-  /**
-   * Sends data to a specific destination. The socket must be bound.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   * @param[in] buffer The buffer containing the data to send.
-   * @param[in] num_bytes The number of bytes to send.
-   * @param[in] addr A <code>PPB_NetAddress</code> resource holding the
-   * destination address.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return A non-negative number on success to indicate how many bytes have
-   * been sent; otherwise, an error code from <code>pp_errors.h</code>.
-   * <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have
-   * required permissions.
-   * <code>PP_ERROR_INPROGRESS</code> will be returned if the socket is busy
-   * sending. The caller should wait until a pending send completes before
-   * retrying.
-   */
-  int32_t SendTo([in] PP_Resource udp_socket,
-                 [in] str_t buffer,
-                 [in] int32_t num_bytes,
-                 [in] PP_Resource addr,
-                 [in] PP_CompletionCallback callback);
-
-  /**
-   * Cancels all pending reads and writes, and closes the socket. Any pending
-   * callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> if
-   * pending IO was interrupted. After a call to this method, no output
-   * parameters passed into previous <code>RecvFrom()</code> calls will be
-   * accessed. It is not valid to call <code>Bind()</code> again.
-   *
-   * The socket is implicitly closed if it is destroyed, so you are not
-   * required to call this method.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   */
-  void Close([in] PP_Resource udp_socket);
-
-  /**
-   * Sets a socket option on the UDP socket.
-   * Please see the <code>PP_UDPSocket_Option</code> description for option
-   * names, value types and allowed values.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   * @param[in] name The option to set.
-   * @param[in] value The option value to set.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t SetOption([in] PP_Resource udp_socket,
-                    [in] PP_UDPSocket_Option name,
-                    [in] PP_Var value,
-                    [in] PP_CompletionCallback callback);
-
-  /**
-   * Sets a socket option on the UDP socket.
-   * Please see the <code>PP_UDPSocket_Option</code> description for option
-   * names, value types and allowed values.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   * @param[in] name The option to set.
-   * @param[in] value The option value to set.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  [version=1.1]
-  int32_t SetOption([in] PP_Resource udp_socket,
-                    [in] PP_UDPSocket_Option name,
-                    [in] PP_Var value,
-                    [in] PP_CompletionCallback callback);
-
-  /**
-   * Sets a socket option on the UDP socket.
-   * Please see the <code>PP_UDPSocket_Option</code> description for option
-   * names, value types and allowed values.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   * @param[in] name The option to set.
-   * @param[in] value The option value to set.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  [version=1.2]
-  int32_t SetOption([in] PP_Resource udp_socket,
-                    [in] PP_UDPSocket_Option name,
-                    [in] PP_Var value,
-                    [in] PP_CompletionCallback callback);
-
-  /**
-   * Joins the multicast group with address specified by <code>group</code>
-   * parameter, which is expected to be a <code>PPB_NetAddress</code> object.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   * @param[in] group A <code>PP_Resource</code> corresponding to the network
-   * address of the multicast group.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  [version=1.2]
-  int32_t JoinGroup([in] PP_Resource udp_socket,
-                    [in] PP_Resource group,
-                    [in] PP_CompletionCallback callback);
-
-  /**
-   * Leaves the multicast group with address specified by <code>group</code>
-   * parameter, which is expected to be a <code>PPB_NetAddress</code> object.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   * @param[in] group A <code>PP_Resource</code> corresponding to the network
-   * address of the multicast group.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  [version=1.2]
-  int32_t LeaveGroup([in] PP_Resource udp_socket,
-                     [in] PP_Resource group,
-                     [in] PP_CompletionCallback callback);
-};
diff --git a/api/ppb_url_loader.idl b/api/ppb_url_loader.idl
deleted file mode 100644
index 95aee62..0000000
--- a/api/ppb_url_loader.idl
+++ /dev/null
@@ -1,225 +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.
- */
-
-/**
- * This file defines the <strong>PPB_URLLoader</strong> interface for loading
- * URLs.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M14 = 1.0
-};
-
-/**
- * The <strong>PPB_URLLoader</strong> interface contains pointers to functions
- * for loading URLs. The typical steps for loading a URL are:
- *
- * -# Call Create() to create a URLLoader object.
- * -# Create a <code>URLRequestInfo</code> object and set properties on it.
- * Refer to <code>PPB_URLRequestInfo</code> for further information.
- * -# Call Open() with the <code>URLRequestInfo</code> as an argument.
- * -# When Open() completes, call GetResponseInfo() to examine the response
- * headers. Refer to <code>PPB_URLResponseInfo</code> for further information.
- * -# Call ReadResponseBody() to stream the data for the response.
- *
- * Alternatively, if <code>PP_URLREQUESTPROPERTY_STREAMTOFILE</code> was set on
- * the <code>URLRequestInfo</code> in step #2:
- * - Call FinishStreamingToFile(), after examining the response headers
- * (step #4),  to wait for the downloaded file to be complete.
- * - Then, access the downloaded file using the GetBodyAsFileRef() function of
- * the <code>URLResponseInfo</code> returned in step #4.
- */
-interface PPB_URLLoader {
-  /**
-   * Create() creates a new <code>URLLoader</code> object. The
-   * <code>URLLoader</code> is associated with a particular instance, so that
-   * any UI dialogs that need to be shown to the user can be positioned
-   * relative to the window containing the instance.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a URLLoader if
-   * successful, 0 if the instance is invalid.
-   */
-  PP_Resource Create(
-      [in] PP_Instance instance);
-
-  /**
-   * IsURLLoader() determines if a resource is an <code>URLLoader</code>.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a <code>URLLoader</code>,
-   * <code>PP_FALSE</code> if the resource is invalid or some type other
-   * than <code>URLLoader</code>.
-   */
-  PP_Bool IsURLLoader(
-      [in] PP_Resource resource);
-
-  /**
-   * Open() begins loading the <code>URLRequestInfo</code>. The operation
-   * completes when response headers are received or when an error occurs.  Use
-   * GetResponseInfo() to access the response headers.
-   *
-   * @param[in] loader A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>URLRequestInfo</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * asynchronous completion of Open(). This callback will run when response
-   * headers for the url are received or error occurred. This callback
-   * will only run if Open() returns <code>PP_OK_COMPLETIONPENDING</code>.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t Open(
-      [in] PP_Resource loader,
-      [in] PP_Resource request_info,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * FollowRedirect() can be invoked to follow a redirect after Open()
-   * completed on receiving redirect headers.
-   *
-   * @param[in] loader A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * asynchronous completion of FollowRedirect(). This callback will run when
-   * response headers for the redirect url are received or error occurred. This
-   * callback will only run if FollowRedirect() returns
-   * <code>PP_OK_COMPLETIONPENDING</code>.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t FollowRedirect(
-      [in] PP_Resource loader,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * GetUploadProgress() returns the current upload progress (which is
-   * meaningful after Open() has been called). Progress only refers to the
-   * request body and does not include the headers.
-   *
-   * This data is only available if the <code>URLRequestInfo</code> passed
-   * to Open() had the <code>PP_URLREQUESTPROPERTY_REPORTUPLOADPROGRESS</code>
-   * property set to PP_TRUE.
-   *
-   * @param[in] loader A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   * @param[in] bytes_sent The number of bytes sent thus far.
-   * @param[in] total_bytes_to_be_sent The total number of bytes to be sent.
-   *
-   * @return <code>PP_TRUE</code> if the upload progress is available,
-   * <code>PP_FALSE</code> if it is not available.
-   */
-  [always_set_output_parameters]
-  PP_Bool GetUploadProgress(
-      [in] PP_Resource loader,
-      [out] int64_t bytes_sent,
-      [out] int64_t total_bytes_to_be_sent);
-
-  /**
-   * GetDownloadProgress() returns the current download progress, which is
-   * meaningful after Open() has been called. Progress only refers to the
-   * response body and does not include the headers.
-   *
-   * This data is only available if the <code>URLRequestInfo</code> passed to
-   * Open() had the <code>PP_URLREQUESTPROPERTY_REPORTDOWNLOADPROGRESS</code>
-   * property set to <code>PP_TRUE</code>.
-   *
-   * @param[in] loader A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   * @param[in] bytes_received The number of bytes received thus far.
-   * @param[in] total_bytes_to_be_received The total number of bytes to be
-   * received. The total bytes to be received may be unknown, in which case
-   * <code>total_bytes_to_be_received</code> will be set to -1.
-   *
-   * @return <code>PP_TRUE</code> if the download progress is available,
-   * <code>PP_FALSE</code> if it is not available.
-   */
-  [always_set_output_parameters]
-  PP_Bool GetDownloadProgress(
-      [in] PP_Resource loader,
-      [out] int64_t bytes_received,
-      [out] int64_t total_bytes_to_be_received);
-
-  /**
-   * GetResponseInfo() returns the current <code>URLResponseInfo</code> object.
-   *
-   * @param[in] instance A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   *
-   * @return A <code>PP_Resource</code> corresponding to the
-   * <code>URLResponseInfo</code> if successful, 0 if the loader is not a valid
-   * resource or if Open() has not been called.
-   */
-  PP_Resource GetResponseInfo(
-      [in] PP_Resource loader);
-
-  /**
-   * ReadResponseBody() is used to read the response body. The size of the
-   * buffer must be large enough to hold the specified number of bytes to read.
-   * This function might perform a partial read.
-   *
-   * @param[in] loader A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   * @param[in,out] buffer A pointer to the buffer for the response body.
-   * @param[in] bytes_to_read The number of bytes to read.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * asynchronous completion. The callback will run if the bytes (full or
-   * partial) are read or an error occurs asynchronously. This callback will
-   * run only if this function returns <code>PP_OK_COMPLETIONPENDING</code>.
-   *
-   * @return An int32_t containing the number of bytes read or an error code
-   * from <code>pp_errors.h</code>.
-   */
-  int32_t ReadResponseBody(
-      [in] PP_Resource loader,
-      [out] mem_t buffer,
-      [in] int32_t bytes_to_read,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * FinishStreamingToFile() is used to wait for the response body to be
-   * completely downloaded to the file provided by the GetBodyAsFileRef()
-   * in the current <code>URLResponseInfo</code>. This function is only used if
-   * <code>PP_URLREQUESTPROPERTY_STREAMTOFILE</code> was set on the
-   * <code>URLRequestInfo</code> passed to Open().
-   *
-   * @param[in] loader A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * asynchronous completion. This callback will run when body is downloaded
-   * or an error occurs after FinishStreamingToFile() returns
-   * <code>PP_OK_COMPLETIONPENDING</code>.
-   *
-   * @return An int32_t containing the number of bytes read or an error code
-   * from <code>pp_errors.h</code>.
-   */
-  int32_t FinishStreamingToFile(
-      [in] PP_Resource loader,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Close is a pointer to a function used to cancel any pending IO and close
-   * the <code>URLLoader</code> object. Any pending callbacks will still run,
-   * reporting <code>PP_ERROR_ABORTED</code> if pending IO was interrupted.
-   * It is NOT valid to call Open() again after a call to this function.
-   *
-   * <strong>Note:</strong> If the <code>URLLoader</code> object is destroyed
-   * while it is still open, then it will be implicitly closed so you are not
-   * required to call Close().
-   *
-   * @param[in] loader A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   */
-  void Close(
-      [in] PP_Resource loader);
-};
-
diff --git a/api/ppb_url_request_info.idl b/api/ppb_url_request_info.idl
deleted file mode 100644
index b2e9464..0000000
--- a/api/ppb_url_request_info.idl
+++ /dev/null
@@ -1,259 +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.
- */
-
-/**
- * This file defines the <code>PPB_URLRequestInfo</code> API for creating and
- * manipulating URL requests.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M14 = 1.0
-};
-
-/**
- * This enumeration contains properties that can be set on a URL request.
- */
-[assert_size(4)]
-enum PP_URLRequestProperty {
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_URLREQUESTPROPERTY_URL = 0,
-
-  /**
-   * This corresponds to a string (<code>PP_VARTYPE_STRING</code>); either
-   * POST or GET. Refer to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html">HTTP
-   * Methods</a> documentation for further information.
-   *
-   */
-  PP_URLREQUESTPROPERTY_METHOD = 1,
-
-  /**
-   * This corresponds to a string (<code>PP_VARTYPE_STRING</code>); \n
-   * delimited. Refer to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html"Header
-   * Field Definitions</a> documentation for further information.
-   */
-  PP_URLREQUESTPROPERTY_HEADERS = 2,
-
-  /**
-   * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>;
-   * default=<code>PP_FALSE</code>).
-   * This property is no longer supported, so attempting to set it will always
-   * fail.
-   */
-  PP_URLREQUESTPROPERTY_STREAMTOFILE = 3,
-
-  /**
-   * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>;
-   * default=<code>PP_TRUE</code>).
-   * Set this value to <code>PP_FALSE</code> if you want to use
-   * PPB_URLLoader.FollowRedirects() to follow the redirects only after
-   * examining redirect headers.
-   */
-  PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS = 4,
-
-  /**
-   * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>;
-   * default=<code>PP_FALSE</code>).
-   * Set this value to <code>PP_TRUE</code> if you want to be able to poll the
-   * download progress using PPB_URLLoader.GetDownloadProgress().
-   */
-  PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS = 5,
-
-  /**
-   * This corresponds to a <code>PP_Bool</code>
-   * (default=<code>PP_FALSE</code>). Set this value to <code>PP_TRUE</code> if
-   * you want to be able to poll the upload progress using
-   * PPB_URLLoader.GetUploadProgress().
-   */
-  PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS = 6,
-
-  /**
-   * This corresponds to a string (<code>PP_VARTYPE_STRING)</code> or may be
-   * undefined (<code>PP_VARTYPE_UNDEFINED</code>; default).
-   * Set it to a string to set a custom referrer (if empty, the referrer header
-   * will be omitted), or to undefined to use the default referrer. Only loaders
-   * with universal access (only available on trusted implementations) will
-   * accept <code>URLRequestInfo</code> objects that try to set a custom
-   * referrer; if given to a loader without universal access,
-   * <code>PP_ERROR_NOACCESS</code> will result.
-   */
-  PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL = 7,
-
-  /**
-   * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>;
-   * default=<code>PP_FALSE</code>). Whether cross-origin requests are allowed.
-   * Cross-origin requests are made using the CORS (Cross-Origin Resource
-   * Sharing) algorithm to check whether the request should be allowed. For the
-   * complete CORS algorithm, refer to
-   * the <a href="http://www.w3.org/TR/access-control">Cross-Origin Resource
-   * Sharing</a> documentation.
-   */
-  PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS = 8,
-
-  /**
-   * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>;
-   * default=<code>PP_FALSE</code>).
-   * Whether HTTP credentials are sent with cross-origin requests. If false,
-   * no credentials are sent with the request and cookies are ignored in the
-   * response. If the request is not cross-origin, this property is ignored.
-   */
-  PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS = 9,
-
-  /**
-   * This corresponds to a string (<code>PP_VARTYPE_STRING</code>) or may be
-   * undefined (<code>PP_VARTYPE_UNDEFINED</code>; default).
-   * Set it to a string to set a custom content-transfer-encoding header (if
-   * empty, that header will be omitted), or to undefined to use the default
-   * (if any). Only loaders with universal access (only available on trusted
-   * implementations) will accept <code>URLRequestInfo</code> objects that try
-   * to set a custom content transfer encoding; if given to a loader without
-   * universal access, <code>PP_ERROR_NOACCESS</code> will result.
-   */
-  PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING = 10,
-
-  /**
-   * This corresponds to an integer (<code>PP_VARTYPE_INT32</code>); default
-   * is not defined and is set by the browser, possibly depending on system
-   * capabilities. Set it to an integer to set an upper threshold for the
-   * prefetched buffer of an asynchronous load. When exceeded, the browser will
-   * defer loading until
-   * <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> is hit,
-   * at which time it will begin prefetching again. When setting this property,
-   * <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> must also
-   * be set. Behavior is undefined if the former is <= the latter.
-   */
-  PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD = 11,
-
-  /**
-   * This corresponds to an integer (<code>PP_VARTYPE_INT32</code>); default is
-   * not defined and is set by the browser to a value appropriate for the
-   * default <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD</code>.
-   * Set it to an integer to set a lower threshold for the prefetched buffer
-   * of an asynchronous load. When reached, the browser will resume loading if
-   * If <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> had
-   * previously been reached.
-   * When setting this property,
-   * <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD</code> must also
-   * be set. Behavior is undefined if the former is >= the latter.
-   */
-  PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERTHRESHOLD = 12,
-
-  /**
-   * This corresponds to a string (<code>PP_VARTYPE_STRING</code>) or may be
-   * undefined (<code>PP_VARTYPE_UNDEFINED</code>; default). Set it to a string
-   * to set a custom user-agent header (if empty, that header will be omitted),
-   * or to undefined to use the default. Only loaders with universal access
-   * (only available on trusted implementations) will accept
-   * <code>URLRequestInfo</code> objects that try to set a custom user agent; if
-   * given to a loader without universal access, <code>PP_ERROR_NOACCESS</code>
-   * will result.
-   */
-  PP_URLREQUESTPROPERTY_CUSTOMUSERAGENT = 13
-};
-
-/**
- * The <code>PPB_URLRequestInfo</code> interface is used to create
- * and handle URL requests. This API is used in conjunction with
- * <code>PPB_URLLoader</code>. Refer to <code>PPB_URLLoader</code> for further
- * information.
- */
-interface PPB_URLRequestInfo {
-  /**
-   * Create() creates a new <code>URLRequestInfo</code> object.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   *
-   * @return A <code>PP_Resource</code> identifying the
-   * <code>URLRequestInfo</code> if successful, 0 if the instance is invalid.
-   */
-  PP_Resource Create(
-      [in] PP_Instance instance);
-
-  /**
-   * IsURLRequestInfo() determines if a resource is a
-   * <code>URLRequestInfo</code>.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>URLRequestInfo</code>.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a
-   * <code>URLRequestInfo</code>, <code>PP_FALSE</code> if the resource is
-   * invalid or some type other than <code>URLRequestInfo</code>.
-   */
-  PP_Bool IsURLRequestInfo(
-      [in] PP_Resource resource);
-
-  /**
-   * SetProperty() sets a request property. The value of the property must be
-   * the correct type according to the property being set.
-   *
-   * @param[in] request A <code>PP_Resource</code> corresponding to a
-   * <code>URLRequestInfo</code>.
-   * @param[in] property A <code>PP_URLRequestProperty</code> identifying the
-   * property to set.
-   * @param[in] value A <code>PP_Var</code> containing the property value.
-   *
-   * @return <code>PP_TRUE</code> if successful, <code>PP_FALSE</code> if any
-   * of the parameters are invalid.
-   */
-  PP_Bool SetProperty(
-      [in] PP_Resource request,
-      [in] PP_URLRequestProperty property,
-      [in] PP_Var value);
-
-  /**
-   * AppendDataToBody() appends data to the request body. A Content-Length
-   * request header will be automatically generated.
-   *
-   * @param[in] request A <code>PP_Resource</code> corresponding to a
-   * <code>URLRequestInfo</code>.
-   * @param[in] data A pointer to a buffer holding the data.
-   * @param[in] len The length, in bytes, of the data.
-   *
-   * @return <code>PP_TRUE</code> if successful, <code>PP_FALSE</code> if any
-   * of the parameters are invalid.
-   *
-   *
-   */
-  PP_Bool AppendDataToBody(
-      [in] PP_Resource request,
-      [in] mem_t data,
-      [in] uint32_t len);
-
-  /**
-   * AppendFileToBody() appends a file, to be uploaded, to the request body.
-   * A content-length request header will be automatically generated.
-   *
-   * @param[in] request A <code>PP_Resource</code> corresponding to a
-   * <code>URLRequestInfo</code>.
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[in] start_offset An optional starting point offset within the
-   * file.
-   * @param[in] number_of_bytes An optional number of bytes of the file to
-   * be included. If <code>number_of_bytes</code> is -1, then the sub-range
-   * to upload extends to the end of the file.
-   * @param[in] expected_last_modified_time An optional (non-zero) last
-   * modified time stamp used to validate that the file was not modified since
-   * the given time before it was uploaded. The upload will fail with an error
-   * code of <code>PP_ERROR_FILECHANGED</code> if the file has been modified
-   * since the given time. If <code>expected_last_modified_time</code> is 0,
-   * then no validation is performed.
-   *
-   * @return <code>PP_TRUE</code> if successful, <code>PP_FALSE</code> if any
-   * of the parameters are invalid.
-   */
-  PP_Bool AppendFileToBody(
-      [in] PP_Resource request,
-      [in] PP_Resource file_ref,
-      [in] int64_t start_offset,
-      [in] int64_t number_of_bytes,
-      [in] PP_Time expected_last_modified_time);
-};
-
diff --git a/api/ppb_url_response_info.idl b/api/ppb_url_response_info.idl
deleted file mode 100644
index a38c498..0000000
--- a/api/ppb_url_response_info.idl
+++ /dev/null
@@ -1,127 +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.
- */
-
-/**
- * This file defines the <code>PPB_URLResponseInfo</code> API for examining URL
- * responses.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M14 = 1.0
-};
-
-/**
- * This enumeration contains properties set on a URL response.
- */
-[assert_size(4)]
-enum PP_URLResponseProperty {
-  /**
-   * This corresponds to a string (PP_VARTYPE_STRING); an absolute URL formed by
-   * resolving the relative request URL with the absolute document URL. Refer
-   * to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1.2">
-   * HTTP Request URI</a> and
-   * <a href="http://www.w3.org/TR/html4/struct/links.html#h-12.4.1">
-   * HTML Resolving Relative URIs</a> documentation for further information.
-   */
-  PP_URLRESPONSEPROPERTY_URL = 0,
-
-  /**
-   * This corresponds to a string (PP_VARTYPE_STRING); the absolute URL returned
-   * in the response header's 'Location' field if this is a redirect response,
-   * an empty string otherwise. Refer to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3">
-   * HTTP Status Codes - Redirection</a> documentation for further information.
-   */
-  PP_URLRESPONSEPROPERTY_REDIRECTURL = 1,
-
-  /**
-   * This corresponds to a string (PP_VARTYPE_STRING); the HTTP method to be
-   * used in a new request if this is a redirect response, an empty string
-   * otherwise. Refer to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3">
-   * HTTP Status Codes - Redirection</a> documentation for further information.
-   */
-  PP_URLRESPONSEPROPERTY_REDIRECTMETHOD = 2,
-
-  /**
-   * This corresponds to an int32 (PP_VARETYPE_INT32); the status code from the
-   * response, e.g., 200 if the request was successful. Refer to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1.1">
-   * HTTP Status Code and Reason Phrase</a> documentation for further
-   * information.
-   */
-  PP_URLRESPONSEPROPERTY_STATUSCODE = 3,
-
-  /**
-   * This corresponds to a string (PP_VARTYPE_STRING); the status line
-   * from the response. Refer to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1">
-   * HTTP Response Status Line</a> documentation for further information.
-   */
-  PP_URLRESPONSEPROPERTY_STATUSLINE = 4,
-
-  /**
-   * This corresponds to a string(PP_VARTYPE_STRING), a \n-delimited list of
-   * header field/value pairs of the form "field: value", returned by the
-   * server. Refer to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14">
-   * HTTP Header Field Definitions</a> documentation for further information.
-   */
-  PP_URLRESPONSEPROPERTY_HEADERS = 5
-};
-
-
-/**
- * The PPB_URLResponseInfo interface contains APIs for
- * examining URL responses. Refer to <code>PPB_URLLoader</code> for further
- * information.
- */
-interface PPB_URLResponseInfo {
-  /**
-   * IsURLResponseInfo() determines if a response is a
-   * <code>URLResponseInfo</code>.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>URLResponseInfo</code>.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a
-   * <code>URLResponseInfo</code>, <code>PP_FALSE</code> if the resource is
-   * invalid or some type other than <code>URLResponseInfo</code>.
-   */
-  PP_Bool IsURLResponseInfo(
-      [in] PP_Resource resource);
-
-  /**
-   * GetProperty() gets a response property.
-   *
-   * @param[in] request A <code>PP_Resource</code> corresponding to a
-   * <code>URLResponseInfo</code>.
-   * @param[in] property A <code>PP_URLResponseProperty</code> identifying
-   * the type of property in the response.
-   *
-   * @return A <code>PP_Var</code> containing the response property value if
-   * successful, <code>PP_VARTYPE_VOID</code> if an input parameter is invalid.
-   */
-  PP_Var GetProperty(
-      [in] PP_Resource response,
-      [in] PP_URLResponseProperty property);
-
-  /**
-   * GetBodyAsFileRef() always returns 0, because
-   * <code>PP_URLREQUESTPROPERTY_STREAMTOFILE</code> is no longer supported.
-   *
-   * @param[in] request A <code>PP_Resource</code> corresponding to a
-   * <code>URLResponseInfo</code>.
-   *
-   * @return 0, because <code>PP_URLREQUESTPROPERTY_STREAMTOFILE</code> is no
-   * longer supported.
-   */
-  PP_Resource GetBodyAsFileRef(
-      [in] PP_Resource response);
-};
-
diff --git a/api/ppb_var.idl b/api/ppb_var.idl
deleted file mode 100644
index e1555aa..0000000
--- a/api/ppb_var.idl
+++ /dev/null
@@ -1,147 +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.
- */
-
-/**
- * This file defines the <code>PPB_Var</code> struct.
- */
-
-label Chrome {
-  M14 = 1.0,
-  M18 = 1.1,
-  M34 = 1.2
-};
-
-/**
- * PPB_Var API
- */
-interface PPB_Var {
-  /**
-   * AddRef() adds a reference to the given var. If this is not a refcounted
-   * object, this function will do nothing so you can always call it no matter
-   * what the type.
-   *
-   * @param[in] var A <code>PP_Var</code> that will have a reference added.
-   */
-  [version=1.0]
-  void AddRef([in] PP_Var var);
-
-  /**
-   * Release() removes a reference to given var, deleting it if the internal
-   * reference count becomes 0. If the <code>PP_Var</code> is of type
-   * <code>PP_VARTYPE_RESOURCE</code>,
-   * it will implicitly release a reference count on the
-   * <code>PP_Resource</code> (equivalent to PPB_Core::ReleaseResource()).
-   *
-   * If the given var is not a refcounted object, this function will do nothing
-   * so you can always call it no matter what the type.
-   *
-   * @param[in] var A <code>PP_Var</code> that will have a reference removed.
-   */
-  [version=1.0]
-  void Release([in] PP_Var var);
-
-  /**
-   * VarFromUtf8() creates a string var from a string. The string must be
-   * encoded in valid UTF-8 and is NOT NULL-terminated, the length must be
-   * specified in <code>len</code>. It is an error if the string is not
-   * valid UTF-8.
-   *
-   * If the length is 0, the <code>*data</code> pointer will not be dereferenced
-   * and may be <code>NULL</code>. Note, however if length is 0, the
-   * "NULL-ness" will not be preserved, as VarToUtf8() will never
-   * return <code>NULL</code> on success, even for empty strings.
-   *
-   * The resulting object will be a refcounted string object. It will be
-   * AddRef'ed for the caller. When the caller is done with it, it should be
-   * Released.
-   *
-   * On error (basically out of memory to allocate the string, or input that
-   * is not valid UTF-8), this function will return a Null var.
-   *
-   * @param[in] module A PP_Module uniquely identifying the module or .nexe.
-   * @param[in] data A string
-   * @param[in] len The length of the string.
-   *
-   * @return A <code>PP_Var</code> structure containing a reference counted
-   * string object.
-   */
-  [version=1.0]
-  PP_Var VarFromUtf8([in] PP_Module module, [in] str_t data, [in] uint32_t len);
-
-  /**
-   * VarFromUtf8() creates a string var from a string. The string must be
-   * encoded in valid UTF-8 and is NOT NULL-terminated, the length must be
-   * specified in <code>len</code>. It is an error if the string is not
-   * valid UTF-8.
-   *
-   * If the length is 0, the <code>*data</code> pointer will not be dereferenced
-   * and may be <code>NULL</code>. Note, however if length is 0, the
-   * "NULL-ness" will not be preserved, as VarToUtf8() will never return
-   * <code>NULL</code> on success, even for empty strings.
-   *
-   * The resulting object will be a refcounted string object. It will be
-   * AddRef'ed for the caller. When the caller is done with it, it should be
-   * Released.
-   *
-   * On error (basically out of memory to allocate the string, or input that
-   * is not valid UTF-8), this function will return a Null var.
-   *
-   * @param[in] data A string
-   * @param[in] len The length of the string.
-   *
-   * @return A <code>PP_Var</code> structure containing a reference counted
-   * string object.
-   */
-  [version=1.1]
-  PP_Var VarFromUtf8([in] str_t data, [in] uint32_t len);
-
-  /**
-   * VarToUtf8() converts a string-type var to a char* encoded in UTF-8. This
-   * string is NOT NULL-terminated. The length will be placed in
-   * <code>*len</code>. If the string is valid but empty the return value will
-   * be non-NULL, but <code>*len</code> will still be 0.
-   *
-   * If the var is not a string, this function will return NULL and
-   * <code>*len</code> will be 0.
-   *
-   * The returned buffer will be valid as long as the underlying var is alive.
-   * If the instance frees its reference, the string will be freed and the
-   * pointer will be to arbitrary memory.
-   *
-   * @param[in] var A PP_Var struct containing a string-type var.
-   * @param[in,out] len A pointer to the length of the string-type var.
-   *
-   * @return A char* encoded in UTF-8.
-   */
-  [version=1.0]
-  str_t VarToUtf8([in] PP_Var var, [out] uint32_t len);
-
-  /**
-   * Converts a resource-type var to a <code>PP_Resource</code>.
-   *
-   * @param[in] var A <code>PP_Var</code> struct containing a resource-type var.
-   *
-   * @return A <code>PP_Resource</code> retrieved from the var, or 0 if the var
-   * is not a resource. The reference count of the resource is incremented on
-   * behalf of the caller.
-   */
-  [version=1.2]
-  PP_Resource VarToResource([in] PP_Var var);
-
-  /**
-   * Creates a new <code>PP_Var</code> from a given resource. Implicitly adds a
-   * reference count on the <code>PP_Resource</code> (equivalent to
-   * PPB_Core::AddRefResource(resource)).
-   *
-   * @param[in] resource A <code>PP_Resource</code> to be wrapped in a var.
-   *
-   * @return A <code>PP_Var</code> created for this resource, with type
-   * <code>PP_VARTYPE_RESOURCE</code>. The reference count of the var is set to
-   * 1 on behalf of the caller.
-   */
-  [version=1.2]
-  PP_Var VarFromResource([in] PP_Resource resource);
-};
-
diff --git a/api/ppb_var_array.idl b/api/ppb_var_array.idl
deleted file mode 100644
index 437af19..0000000
--- a/api/ppb_var_array.idl
+++ /dev/null
@@ -1,77 +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.
- */
-
-/**
- * This file defines the <code>PPB_VarArray</code> struct providing
- * a way to interact with array vars.
- */
-
-label Chrome {
-  M29 = 1.0
-};
-
-[macro="PPB_VAR_ARRAY_INTERFACE"]
-interface PPB_VarArray {
-  /**
-   * Creates an array var, i.e., a <code>PP_Var</code> with type set to
-   * <code>PP_VARTYPE_ARRAY</code>. The array length is set to 0.
-   *
-   * @return An empty array var, whose reference count is set to 1 on behalf of
-   * the caller.
-   */
-  PP_Var Create();
-
-  /**
-   * Gets an element from the array.
-   *
-   * @param[in] array An array var.
-   * @param[in] index An index indicating which element to return.
-   *
-   * @return The element at the specified position. The reference count of the
-   * element returned is incremented on behalf of the caller. If
-   * <code>index</code> is larger than or equal to the array length, an
-   * undefined var is returned.
-   */
-  PP_Var Get([in] PP_Var array, [in] uint32_t index);
-
-  /**
-   * Sets the value of an element in the array.
-   *
-   * @param[in] array An array var.
-   * @param[in] index An index indicating which element to modify. If
-   * <code>index</code> is larger than or equal to the array length, the length
-   * is updated to be <code>index</code> + 1. Any position in the array that
-   * hasn't been set before is set to undefined, i.e., <code>PP_Var</code> of
-   * type <code>PP_VARTYPE_UNDEFINED</code>.
-   * @param[in] value The value to set. The array holds a reference to it on
-   * success.
-   *
-   * @return A <code>PP_Bool</code> indicating whether the operation succeeds.
-   */
-  PP_Bool Set([in] PP_Var array, [in] uint32_t index, [in] PP_Var value);
-
-  /**
-   * Gets the array length.
-   *
-   * @param[in] array An array var.
-   *
-   * @return The array length.
-   */
-  uint32_t GetLength([in] PP_Var array);
-
-  /**
-   * Sets the array length.
-   *
-   * @param[in] array An array var.
-   * @param[in] length The new array length. If <code>length</code> is smaller
-   * than its current value, the array is truncated to the new length; any
-   * elements that no longer fit are removed and the references to them will be
-   * released. If <code>length</code> is larger than its current value,
-   * undefined vars are appended to increase the array to the specified length.
-   *
-   * @return A <code>PP_Bool</code> indicating whether the operation succeeds.
-   */
-  PP_Bool SetLength([in] PP_Var array, [in] uint32_t length);
-};
diff --git a/api/ppb_var_array_buffer.idl b/api/ppb_var_array_buffer.idl
deleted file mode 100644
index b6996cc..0000000
--- a/api/ppb_var_array_buffer.idl
+++ /dev/null
@@ -1,101 +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.
- */
-
-/**
- * This file defines the <code>PPB_VarArrayBuffer</code> struct providing
- * a way to interact with JavaScript ArrayBuffers.
- */
-
-label Chrome {
-  M18 = 1.0
-};
-
-/**
- * The <code>PPB_VarArrayBuffer</code> interface provides a way to interact
- * with JavaScript ArrayBuffers, which represent a contiguous sequence of
- * bytes. Use <code>PPB_Var</code> to manage the reference count for a
- * <code>VarArrayBuffer</code>. Note that these Vars are not part of the
- * embedding page's DOM, and can only be shared with JavaScript using the
- * <code>PostMessage</code> and <code>HandleMessage</code> functions of 
- * <code>pp::Instance</code>.
- */
-[macro="PPB_VAR_ARRAY_BUFFER_INTERFACE"]
-interface PPB_VarArrayBuffer {
-  /**
-   * Create() creates a zero-initialized <code>VarArrayBuffer</code>.
-   *
-   * @param[in] size_in_bytes The size of the <code>ArrayBuffer</code> to
-   * be created.
-   *
-   * @return A <code>PP_Var</code> representing a <code>VarArrayBuffer</code>
-   * of the requested size and with a reference count of 1.
-   */
-  PP_Var Create([in] uint32_t size_in_bytes);
-
-  /**
-   * ByteLength() retrieves the length of the <code>VarArrayBuffer</code> in
-   * bytes. On success, <code>byte_length</code> is set to the length of the
-   * given <code>ArrayBuffer</code> var. On failure, <code>byte_length</code>
-   * is unchanged (this could happen, for instance, if the given
-   * <code>PP_Var</code> is not of type <code>PP_VARTYPE_ARRAY_BUFFER</code>).
-   * Note that ByteLength() will successfully retrieve the size of an
-   * <code>ArrayBuffer</code> even if the <code>ArrayBuffer</code> is not
-   * currently mapped.
-   *
-   * @param[in] array The <code>ArrayBuffer</code> whose length should be
-   * returned.
-   *
-   * @param[out] byte_length A variable which is set to the length of the given
-   * <code>ArrayBuffer</code> on success.
-   *
-   * @return <code>PP_TRUE</code> on success, <code>PP_FALSE</code> on failure.
-   */
-  PP_Bool ByteLength([in] PP_Var array, [out] uint32_t byte_length);
-
-  /**
-   * Map() maps the <code>ArrayBuffer</code> in to the module's address space
-   * and returns a pointer to the beginning of the buffer for the given
-   * <code>ArrayBuffer PP_Var</code>. ArrayBuffers are copied when transmitted,
-   * so changes to the underlying memory are not automatically available to
-   * the embedding page.
-   *
-   * Note that calling Map() can be a relatively expensive operation. Use care
-   * when calling it in performance-critical code. For example, you should call
-   * it only once when looping over an <code>ArrayBuffer</code>.
-   *
-   * <strong>Example:</strong>
-   *
-   * @code
-   * char* data = (char*)(array_buffer_if.Map(array_buffer_var));
-   * uint32_t byte_length = 0;
-   * PP_Bool ok = array_buffer_if.ByteLength(array_buffer_var, &byte_length);
-   * if (!ok)
-   *   return DoSomethingBecauseMyVarIsNotAnArrayBuffer();
-   * for (uint32_t i = 0; i < byte_length; ++i)
-   *   data[i] = 'A';
-   * @endcode
-   *
-   * @param[in] array The <code>ArrayBuffer</code> whose internal buffer should
-   * be returned.
-   *
-   * @return A pointer to the internal buffer for this
-   * <code>ArrayBuffer</code>. Returns <code>NULL</code>
-   * if the given <code>PP_Var</code> is not of type
-   * <code>PP_VARTYPE_ARRAY_BUFFER</code>.
-   */
-  mem_t Map([in] PP_Var array);
-
-  /**
-   * Unmap() unmaps the given <code>ArrayBuffer</code> var from the module
-   * address space. Use this if you want to save memory but might want to call
-   * Map() to map the buffer again later. The <code>PP_Var</code> remains valid
-   * and should still be released using <code>PPB_Var</code> when you are done
-   * with the <code>ArrayBuffer</code>.
-   *
-   * @param[in] array The <code>ArrayBuffer</code> to be released.
-   */
-  void Unmap([in] PP_Var array);
-};
-
diff --git a/api/ppb_var_dictionary.idl b/api/ppb_var_dictionary.idl
deleted file mode 100644
index eb294bd..0000000
--- a/api/ppb_var_dictionary.idl
+++ /dev/null
@@ -1,90 +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.
- */
-
-/**
- * This file defines the <code>PPB_VarDictionary</code> struct providing
- * a way to interact with dictionary vars.
- */
-
-label Chrome {
-  M29 = 1.0
-};
-
-/**
- * A dictionary var contains key-value pairs with unique keys. The keys are
- * strings while the values can be arbitrary vars. Key comparison is always
- * done by value instead of by reference.
- */
-[macro="PPB_VAR_DICTIONARY_INTERFACE"]
-interface PPB_VarDictionary {
-  /**
-   * Creates a dictionary var, i.e., a <code>PP_Var</code> with type set to
-   * <code>PP_VARTYPE_DICTIONARY</code>.
-   *
-   * @return An empty dictionary var, whose reference count is set to 1 on
-   * behalf of the caller.
-   */
-  PP_Var Create();
-
-  /**
-   * Gets the value associated with the specified key.
-   *
-   * @param[in] dict A dictionary var.
-   * @param[in] key A string var.
-   *
-   * @return The value that is associated with <code>key</code>. The reference
-   * count of the element returned is incremented on behalf of the caller. If
-   * <code>key</code> is not a string var, or it doesn't exist in
-   * <code>dict</code>, an undefined var is returned.
-   */
-  PP_Var Get([in] PP_Var dict, [in] PP_Var key);
-
-  /**
-   * Sets the value associated with the specified key.
-   *
-   * @param[in] dict A dictionary var.
-   * @param[in] key A string var. If this key hasn't existed in
-   * <code>dict</code>, it is added and associated with <code>value</code>;
-   * otherwise, the previous value is replaced with <code>value</code>.
-   * @param[in] value The value to set. The dictionary holds a reference to it
-   * on success.
-   *
-   * @return A <code>PP_Bool</code> indicating whether the operation succeeds.
-   */
-  PP_Bool Set([in] PP_Var dict, [in] PP_Var key, [in] PP_Var value);
-
-  /**
-   * Deletes the specified key and its associated value, if the key exists. The
-   * reference to the element will be released.
-   *
-   * @param[in] dict A dictionary var.
-   * @param[in] key A string var.
-   */
-  void Delete([in] PP_Var dict, [in] PP_Var key);
-
-  /**
-   * Checks whether a key exists.
-   *
-   * @param[in] dict A dictionary var.
-   * @param[in] key A string var.
-   *
-   * @return A <code>PP_Bool</code> indicating whether the key exists.
-   */
-  PP_Bool HasKey([in] PP_Var dict, [in] PP_Var key);
-
-  /**
-   * Gets all the keys in a dictionary. Please note that for each key that you
-   * set into the dictionary, a string var with the same contents is returned;
-   * but it may not be the same string var (i.e., <code>value.as_id</code> may
-   * be different).
-   *
-   * @param[in] dict A dictionary var.
-   *
-   * @return An array var which contains all the keys of <code>dict</code>. Its
-   * reference count is incremented on behalf of the caller. The elements are
-   * string vars. Returns a null var if failed.
-   */
-  PP_Var GetKeys([in] PP_Var dict);
-};
diff --git a/api/ppb_video_decoder.idl b/api/ppb_video_decoder.idl
deleted file mode 100644
index d74c177..0000000
--- a/api/ppb_video_decoder.idl
+++ /dev/null
@@ -1,312 +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.
- */
-
-/**
- * This file defines the <code>PPB_VideoDecoder</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
-  /** Though not labeled 'channel=dev', 0.1 is a still a 'Dev' only API. */
-  M36 = 0.1,
-  M39 = 0.2,
-  M40 = 1.0,
-  M46 = 1.1
-};
-
-/**
- * Video decoder interface.
- *
- * Typical usage:
- * - Call Create() to create a new video decoder resource.
- * - Call Initialize() to initialize it with a 3d graphics context and the
- *   desired codec profile.
- * - Call Decode() continuously (waiting for each previous call to complete) to
- *   push bitstream buffers to the decoder.
- * - Call GetPicture() continuously (waiting for each previous call to complete)
- *   to pull decoded pictures from the decoder.
- * - Call Flush() to signal end of stream to the decoder and perform shutdown
- *   when it completes.
- * - Call Reset() to quickly stop the decoder (e.g. to implement Seek) and wait
- *   for the callback before restarting decoding at another point.
- * - To destroy the decoder, the plugin should release all of its references to
- *   it. Any pending callbacks will abort before the decoder is destroyed.
- *
- * Available video codecs vary by platform.
- * All: theora, vorbis, vp8.
- * Chrome and ChromeOS: aac, h264.
- * ChromeOS: mpeg4.
- */
-interface PPB_VideoDecoder {
-  /**
-   * Creates a new video decoder resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * with the video decoder.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a video decoder if
-   * successful or 0 otherwise.
-   */
-  PP_Resource Create(
-      [in] PP_Instance instance);
-
-  /**
-   * Determines if the given resource is a video decoder.
-   *
-   * @param[in] resource A <code>PP_Resource</code> identifying a resource.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a
-   * <code>PPB_VideoDecoder</code>, <code>PP_FALSE</code> if the resource is
-   * invalid or some other type.
-   */
-  PP_Bool IsVideoDecoder(
-      [in] PP_Resource resource);
-
-  /**
-   * Initializes a video decoder resource. This should be called after Create()
-   * and before any other functions.
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[in] graphics3d_context A <code>PPB_Graphics3D</code> resource to use
-   * during decoding.
-   * @param[in] profile A <code>PP_VideoProfile</code> specifying the video
-   * codec profile.
-   * @param[in] allow_software_fallback A <code>PP_Bool</code> specifying
-   * whether the decoder can fall back to software decoding if a suitable
-   * hardware decoder isn't available.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the
-   * requested profile is not supported. In this case, the client may call
-   * Initialize() again with different parameters to find a good configuration.
-   */
-  int32_t Initialize(
-      [in] PP_Resource video_decoder,
-      [in] PP_Resource graphics3d_context,
-      [in] PP_VideoProfile profile,
-      [in] PP_Bool allow_software_fallback,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Initializes a video decoder resource. This should be called after Create()
-   * and before any other functions.
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[in] graphics3d_context A <code>PPB_Graphics3D</code> resource to use
-   * during decoding.
-   * @param[in] profile A <code>PP_VideoProfile</code> specifying the video
-   * codec profile.
-   * @param[in] acceleration A <code>PP_HardwareAcceleration</code> specifying
-   * whether to use a hardware accelerated or a software implementation.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the
-   * requested profile is not supported. In this case, the client may call
-   * Initialize() again with different parameters to find a good configuration.
-   */
-  [version = 0.2]
-  int32_t Initialize(
-      [in] PP_Resource video_decoder,
-      [in] PP_Resource graphics3d_context,
-      [in] PP_VideoProfile profile,
-      [in] PP_HardwareAcceleration acceleration,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Initializes a video decoder resource. This should be called after Create()
-   * and before any other functions.
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[in] graphics3d_context A <code>PPB_Graphics3D</code> resource to use
-   * during decoding.
-   * @param[in] profile A <code>PP_VideoProfile</code> specifying the video
-   * codec profile.
-   * @param[in] acceleration A <code>PP_HardwareAcceleration</code> specifying
-   * whether to use a hardware accelerated or a software implementation.
-   * @param[in] min_picture_count A count of pictures the plugin would like to
-   * have in flight. This is effectively the number of times the plugin can
-   * call GetPicture() and get a decoded frame without calling
-   * RecyclePicture(). The decoder has its own internal minimum count, and will
-   * take the larger of its internal and this value. A client that doesn't care
-   * can therefore just pass in zero for this argument.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the
-   * requested profile is not supported. In this case, the client may call
-   * Initialize() again with different parameters to find a good configuration.
-   * Returns PP_ERROR_BADARGUMENT if the requested minimum picture count is
-   * unreasonably large.
-   */
-  [version = 1.1]
-  int32_t Initialize(
-      [in] PP_Resource video_decoder,
-      [in] PP_Resource graphics3d_context,
-      [in] PP_VideoProfile profile,
-      [in] PP_HardwareAcceleration acceleration,
-      [in] uint32_t min_picture_count,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Decodes a bitstream buffer. Copies |size| bytes of data from the plugin's
-   * |buffer|. The plugin should wait until the decoder signals completion by
-   * returning PP_OK or by running |callback| before calling Decode() again.
-   *
-   * In general, each bitstream buffer should contain a demuxed bitstream frame
-   * for the selected video codec. For example, H264 decoders expect to receive
-   * one AnnexB NAL unit, including the 4 byte start code prefix, while VP8
-   * decoders expect to receive a bitstream frame without the IVF frame header.
-   *
-   * If the call to Decode() eventually results in a picture, the |decode_id|
-   * parameter is copied into the returned picture. The plugin can use this to
-   * associate decoded pictures with Decode() calls (e.g. to assign timestamps
-   * or frame numbers to pictures.) This value is opaque to the API so the
-   * plugin is free to pass any value.
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[in] decode_id An optional value, chosen by the plugin, that can be
-   * used to associate calls to Decode() with decoded pictures returned by
-   * GetPicture().
-   * @param[in] size Buffer size in bytes.
-   * @param[in] buffer Starting address of buffer.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Flush()
-   * or Reset() call is pending.
-   * Returns PP_ERROR_INPROGRESS if there is another Decode() call pending.
-   * Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created.
-   * Returns PP_ERROR_ABORTED when Reset() is called while Decode() is pending.
-   */
-  int32_t Decode(
-      [in] PP_Resource video_decoder,
-      [in] uint32_t decode_id,
-      [in] uint32_t size,
-      [in] mem_t buffer,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Gets the next picture from the decoder. The picture is valid after the
-   * decoder signals completion by returning PP_OK or running |callback|. The
-   * plugin can call GetPicture() again after the decoder signals completion.
-   * When the plugin is finished using the picture, it should return it to the
-   * system by calling RecyclePicture().
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[out] picture A <code>PP_VideoPicture</code> to hold the decoded
-   * picture.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Reset()
-   * call is pending.
-   * Returns PP_ERROR_INPROGRESS if there is another GetPicture() call pending.
-   * Returns PP_ERROR_ABORTED when Reset() is called, or if a call to Flush()
-   * completes while GetPicture() is pending.
-   */
-  int32_t GetPicture(
-      [in] PP_Resource video_decoder,
-      [out] PP_VideoPicture_0_1 picture,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Gets the next picture from the decoder. The picture is valid after the
-   * decoder signals completion by returning PP_OK or running |callback|. The
-   * plugin can call GetPicture() again after the decoder signals completion.
-   * When the plugin is finished using the picture, it should return it to the
-   * system by calling RecyclePicture().
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[out] picture A <code>PP_VideoPicture</code> to hold the decoded
-   * picture.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Reset()
-   * call is pending.
-   * Returns PP_ERROR_INPROGRESS if there is another GetPicture() call pending.
-   * Returns PP_ERROR_ABORTED when Reset() is called, or if a call to Flush()
-   * completes while GetPicture() is pending.
-   */
-  [version = 1.0]
-  int32_t GetPicture(
-      [in] PP_Resource video_decoder,
-      [out] PP_VideoPicture picture,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Recycles a picture that the plugin has received from the decoder.
-   * The plugin should call this as soon as it has finished using the texture so
-   * the decoder can decode more pictures.
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[in] picture A <code>PP_VideoPicture</code> to return to
-   * the decoder.
-   */
-  void RecyclePicture(
-      [in] PP_Resource video_decoder,
-      [in] PP_VideoPicture picture);
-
-  /**
-   * Flushes the decoder. The plugin should call Flush() when it reaches the
-   * end of its video stream in order to stop cleanly. The decoder will run any
-   * pending Decode() call to completion. The plugin should make no further
-   * calls to the decoder other than GetPicture() and RecyclePicture() until
-   * the decoder signals completion by running |callback|. Just before
-   * completion, any pending GetPicture() call will complete by running its
-   * callback with result PP_ERROR_ABORTED to signal that no more pictures are
-   * available. Any pictures held by the plugin remain valid during and after
-   * the flush and should be recycled back to the decoder.
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if the decoder isn't initialized.
-   */
-  int32_t Flush(
-      [in] PP_Resource video_decoder,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Resets the decoder as quickly as possible. The plugin can call Reset() to
-   * skip to another position in the video stream. After Reset() returns, any
-   * pending calls to Decode() and GetPicture()) abort, causing their callbacks
-   * to run with PP_ERROR_ABORTED. The plugin should not make further calls to
-   * the decoder other than RecyclePicture() until the decoder signals
-   * completion by running |callback|. Any pictures held by the plugin remain
-   * valid during and after the reset and should be recycled back to the
-   * decoder.
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if the decoder isn't initialized.
-   */
-  int32_t Reset(
-      [in] PP_Resource video_decoder,
-      [in] PP_CompletionCallback callback);
-};
diff --git a/api/ppb_video_encoder.idl b/api/ppb_video_encoder.idl
deleted file mode 100644
index 06acd67..0000000
--- a/api/ppb_video_encoder.idl
+++ /dev/null
@@ -1,249 +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.
- */
-
-/**
- * This file defines the <code>PPB_VideoEncoder</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
-  [channel=dev] M42 = 0.1,
-  M44 = 0.2
-};
-
-/**
- * Video encoder interface.
- *
- * Typical usage:
- * - Call Create() to create a new video encoder resource.
- * - Call GetSupportedFormats() to determine which codecs and profiles are
- *   available.
- * - Call Initialize() to initialize the encoder for a supported profile.
- * - Call GetVideoFrame() to get a blank frame and fill it in, or get a video
- *   frame from another resource, e.g. <code>PPB_MediaStreamVideoTrack</code>.
- * - Call Encode() to push the video frame to the encoder. If an external frame
- *   is pushed, wait for completion to recycle the frame.
- * - Call GetBitstreamBuffer() continuously (waiting for each previous call to
- *   complete) to pull encoded pictures from the encoder.
- * - Call RecycleBitstreamBuffer() after consuming the data in the bitstream
- *   buffer.
- * - To destroy the encoder, the plugin should release all of its references to
- *   it. Any pending callbacks will abort before the encoder is destroyed.
- *
- * Available video codecs vary by platform.
- * All: vp8 (software).
- * ChromeOS, depending on your device: h264 (hardware), vp8 (hardware)
- */
-interface PPB_VideoEncoder {
-  /**
-   * Creates a new video encoder resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * with the video encoder.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a video encoder if
-   * successful or 0 otherwise.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-
-  /**
-   * Determines if the given resource is a video encoder.
-   *
-   * @param[in] resource A <code>PP_Resource</code> identifying a resource.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a
-   * <code>PPB_VideoEncoder</code>, <code>PP_FALSE</code> if the resource is
-   * invalid or some other type.
-   */
-  PP_Bool IsVideoEncoder([in] PP_Resource resource);
-
-  /**
-   * Gets an array of supported video encoder profiles.
-   * These can be used to choose a profile before calling Initialize().
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[in] output A <code>PP_ArrayOutput</code> to receive the supported
-   * <code>PP_VideoProfileDescription_0_1</code> structs.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return If >= 0, the number of supported profiles returned, otherwise an
-   * error code from <code>pp_errors.h</code>.
-   */
-  int32_t GetSupportedProfiles([in] PP_Resource video_encoder,
-                               [in] PP_ArrayOutput output,
-                               [in] PP_CompletionCallback callback);
-
-  /**
-   * Gets an array of supported video encoder profiles.
-   * These can be used to choose a profile before calling Initialize().
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[in] output A <code>PP_ArrayOutput</code> to receive the supported
-   * <code>PP_VideoProfileDescription</code> structs.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return If >= 0, the number of supported profiles returned, otherwise an
-   * error code from <code>pp_errors.h</code>.
-   */
-  [version = 0.2]
-  int32_t GetSupportedProfiles([in] PP_Resource video_encoder,
-                               [in] PP_ArrayOutput output,
-                               [in] PP_CompletionCallback callback);
-
-  /**
-   * Initializes a video encoder resource. The plugin should call Initialize()
-   * successfully before calling any of the functions below.
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[in] input_format The <code>PP_VideoFrame_Format</code> of the
-   * frames which will be encoded.
-   * @param[in] input_visible_size A <code>PP_Size</code> specifying the
-   * dimensions of the visible part of the input frames.
-   * @param[in] output_profile A <code>PP_VideoProfile</code> specifying the
-   * codec profile of the encoded output stream.
-   * @param[in] acceleration A <code>PP_HardwareAcceleration</code> specifying
-   * whether to use a hardware accelerated or a software implementation.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_NOTSUPPORTED if video encoding is not available, or the
-   * requested codec profile is not supported.
-   */
-  int32_t Initialize([in] PP_Resource video_encoder,
-                     [in] PP_VideoFrame_Format input_format,
-                     [in] PP_Size input_visible_size,
-                     [in] PP_VideoProfile output_profile,
-                     [in] uint32_t initial_bitrate,
-                     [in] PP_HardwareAcceleration acceleration,
-                     [in] PP_CompletionCallback callback);
-
-  /**
-   * Gets the number of input video frames that the encoder may hold while
-   * encoding. If the plugin is providing the video frames, it should have at
-   * least this many available.
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @return An int32_t containing the number of frames required, or an error
-   * code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if Initialize() has not successfully completed.
-   */
-  int32_t GetFramesRequired([in] PP_Resource video_encoder);
-
-  /**
-   * Gets the coded size of the video frames required by the encoder. Coded
-   * size is the logical size of the input frames, in pixels.  The encoder may
-   * have hardware alignment requirements that make this different from
-   * |input_visible_size|, as requested in the call to Initialize().
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[in] coded_size A <code>PP_Size</code> to hold the coded size.
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if Initialize() has not successfully completed.
-   */
-  int32_t GetFrameCodedSize([in] PP_Resource video_encoder,
-                            [out] PP_Size coded_size);
-
-  /**
-   * Gets a blank video frame which can be filled with video data and passed
-   * to the encoder.
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[out] video_frame A blank <code>PPB_VideoFrame</code> resource.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if Initialize() has not successfully completed.
-   */
-  int32_t GetVideoFrame([in] PP_Resource video_encoder,
-                        [out] PP_Resource video_frame,
-                        [in] PP_CompletionCallback callback);
-
-  /**
-   * Encodes a video frame.
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[in] video_frame The <code>PPB_VideoFrame</code> to be encoded.
-   * @param[in] force_keyframe A <code>PP_Bool> specifying whether the encoder
-   * should emit a key frame for this video frame.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion. Plugins that pass <code>PPB_VideoFrame</code> resources owned
-   * by other resources should wait for completion before reusing them.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if Initialize() has not successfully completed.
-   */
-  int32_t Encode([in] PP_Resource video_encoder,
-                 [in] PP_Resource video_frame,
-                 [in] PP_Bool force_keyframe,
-                 [in] PP_CompletionCallback callback);
-
-  /**
-   * Gets the next encoded bitstream buffer from the encoder.
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[out] bitstream_buffer A <code>PP_BitstreamBuffer</code> containing
-   * encoded video data.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion. The plugin can call GetBitstreamBuffer from the callback in
-   * order to continuously "pull" bitstream buffers from the encoder.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if Initialize() has not successfully completed.
-   * Returns PP_ERROR_INPROGRESS if a prior call to GetBitstreamBuffer() has
-   * not completed.
-   */
-  int32_t GetBitstreamBuffer([in] PP_Resource video_encoder,
-                             [out] PP_BitstreamBuffer bitstream_buffer,
-                             [in] PP_CompletionCallback callback);
-
-  /**
-   * Recycles a bitstream buffer back to the encoder.
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[in] bitstream_buffer A <code>PP_BitstreamBuffer</code> that is no
-   * longer needed by the plugin.
-   */
-  void RecycleBitstreamBuffer([in] PP_Resource video_encoder,
-                              [in] PP_BitstreamBuffer bitstream_buffer);
-
-  /**
-   * Requests a change to encoding parameters. This is only a request,
-   * fulfilled on a best-effort basis.
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[in] bitrate The requested new bitrate, in bits per second.
-   * @param[in] framerate The requested new framerate, in frames per second.
-   */
-  void RequestEncodingParametersChange([in] PP_Resource video_encoder,
-                                       [in] uint32_t bitrate,
-                                       [in] uint32_t framerate);
-
-  /**
-   * Closes the video encoder, and cancels any pending encodes. Any pending
-   * callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is
-   * not valid to call any encoder functions after a call to this method.
-   * <strong>Note:</strong> Destroying the video encoder closes it implicitly,
-   * so you are not required to call Close().
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   */
-  void Close([in] PP_Resource video_encoder);
-};
diff --git a/api/ppb_video_frame.idl b/api/ppb_video_frame.idl
deleted file mode 100644
index 0a3dd34..0000000
--- a/api/ppb_video_frame.idl
+++ /dev/null
@@ -1,123 +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.
- */
-
-/**
- * Defines the <code>PPB_VideoFrame</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
-  [channel=dev] M34 = 0.1,
-  M35 = 0.1
-};
-
-enum PP_VideoFrame_Format {
-  /**
-   * Unknown format value.
-   */
-  PP_VIDEOFRAME_FORMAT_UNKNOWN = 0,
-
-  /**
-   * 12bpp YVU planar 1x1 Y, 2x2 VU samples.
-   */
-  PP_VIDEOFRAME_FORMAT_YV12 = 1,
-
-  /**
-   * 12bpp YUV planar 1x1 Y, 2x2 UV samples.
-   */
-  PP_VIDEOFRAME_FORMAT_I420 = 2,
-
-  /**
-   * 32bpp BGRA.
-   */
-  PP_VIDEOFRAME_FORMAT_BGRA = 3,
-
-  /**
-   * The last format.
-   */
-  PP_VIDEOFRAME_FORMAT_LAST = PP_VIDEOFRAME_FORMAT_BGRA
-};
-
-[version=0.1]
-interface PPB_VideoFrame {
-  /**
-   * Determines if a resource is a VideoFrame resource.
-   *
-   * @param[in] resource The <code>PP_Resource</code> to test.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * resource is a VideoFrame resource or <code>PP_FALSE</code> otherwise.
-   */
-  PP_Bool IsVideoFrame([in] PP_Resource resource);
-
-  /**
-   * Gets the timestamp of the video frame.
-   *
-   * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
-   * resource.
-   *
-   * @return A <code>PP_TimeDelta</code> containing the timestamp of the video
-   * frame. Given in seconds since the start of the containing video stream.
-   */
-  [on_failure=0.0]
-  PP_TimeDelta GetTimestamp([in] PP_Resource frame);
-
-  /**
-   * Sets the timestamp of the video frame. Given in seconds since the
-   * start of the containing video stream.
-   *
-   * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
-   * resource.
-   * @param[in] timestamp A <code>PP_TimeDelta</code> containing the timestamp
-   * of the video frame. Given in seconds since the start of the containing
-   * video stream.
-   */
-  void SetTimestamp([in] PP_Resource frame, [in] PP_TimeDelta timestamp);
-
-  /**
-   * Gets the format of the video frame.
-   *
-   * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
-   * resource.
-   *
-   * @return A <code>PP_VideoFrame_Format</code> containing the format of the
-   * video frame.
-   */
-  [on_failure=PP_VIDEOFRAME_FORMAT_UNKNOWN]
-  PP_VideoFrame_Format GetFormat([in] PP_Resource frame);
-
-  /**
-   * Gets the size of the video frame.
-   *
-   * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
-   * resource.
-   * @param[out] size A <code>PP_Size</code>.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> on success or
-   * <code>PP_FALSE</code> on failure.
-   */
-  PP_Bool GetSize([in] PP_Resource frame, [out] PP_Size size);
-
-  /**
-   * Gets the data buffer for video frame pixels.
-   *
-   * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
-   * resource.
-   *
-   * @return A pointer to the beginning of the data buffer.
-   */
-  mem_t GetDataBuffer([in] PP_Resource frame);
-
-  /**
-   * Gets the size of data buffer.
-   *
-   * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
-   * resource.
-   *
-   * @return The size of the data buffer.
-   */
-  uint32_t GetDataBufferSize([in] PP_Resource frame);
-};
diff --git a/api/ppb_view.idl b/api/ppb_view.idl
deleted file mode 100644
index 0eff9c4..0000000
--- a/api/ppb_view.idl
+++ /dev/null
@@ -1,215 +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.
- */
-
-/**
- * This file defines the <code>PPB_View</code> struct representing the state
- * of the view of an instance.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M18 = 1.0,
-  M28 = 1.1,
-  M37 = 1.2
-};
-
-/**
- * <code>PPB_View</code> represents the state of the view of an instance.
- * You will receive new view information using
- * <code>PPP_Instance.DidChangeView</code>.
- */
-[macro="PPB_VIEW_INTERFACE"]
-interface PPB_View {
-  /**
-   * IsView() determines if the given resource is a valid
-   * <code>PPB_View</code> resource. Note that <code>PPB_ViewChanged</code>
-   * resources derive from <code>PPB_View</code> and will return true here
-   * as well.
-   *
-   * @param resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return <code>PP_TRUE</code> if the given resource supports
-   * <code>PPB_View</code> or <code>PP_FALSE</code> if it is an invalid
-   * resource or is a resource of another type.
-   */
-  PP_Bool IsView([in] PP_Resource resource);
-
-  /**
-   * GetRect() retrieves the rectangle of the module instance associated
-   * with a view changed notification relative to the upper-left of the browser
-   * viewport. This position changes when the page is scrolled.
-   *
-   * The returned rectangle may not be inside the visible portion of the
-   * viewport if the module instance is scrolled off the page. Therefore, the
-   * position may be negative or larger than the size of the page. The size will
-   * always reflect the size of the module were it to be scrolled entirely into
-   * view.
-   *
-   * In general, most modules will not need to worry about the position of the
-   * module instance in the viewport, and only need to use the size.
-   *
-   * @param resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @param rect A <code>PP_Rect</code> receiving the rectangle on success.
-   *
-   * @return Returns <code>PP_TRUE</code> if the resource was valid and the
-   * viewport rectangle was filled in, <code>PP_FALSE</code> if not.
-   */
-  PP_Bool GetRect([in] PP_Resource resource,
-                  [out] PP_Rect rect);
-
-  /**
-   * IsFullscreen() returns whether the instance is currently
-   * displaying in fullscreen mode.
-   *
-   * @param resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return <code>PP_TRUE</code> if the instance is in full screen mode,
-   * or <code>PP_FALSE</code> if it's not or the resource is invalid.
-   */
-  PP_Bool IsFullscreen([in] PP_Resource resource);
-
-  /**
-   * IsVisible() determines whether the module instance might be visible to
-   * the user. For example, the Chrome window could be minimized or another
-   * window could be over it. In both of these cases, the module instance
-   * would not be visible to the user, but IsVisible() will return true.
-   *
-   * Use the result to speed up or stop updates for invisible module
-   * instances.
-   *
-   * This function performs the duties of GetRect() (determining whether the
-   * module instance is scrolled into view and the clip rectangle is nonempty)
-   * and IsPageVisible() (whether the page is visible to the user).
-   *
-   * @param resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return <code>PP_TRUE</code> if the instance might be visible to the
-   * user, <code>PP_FALSE</code> if it is definitely not visible.
-   */
-  PP_Bool IsVisible([in] PP_Resource resource);
-
-  /**
-   * IsPageVisible() determines if the page that contains the module instance
-   * is visible. The most common cause of invisible pages is that
-   * the page is in a background tab in the browser.
-   *
-   * Most applications should use IsVisible() instead of this function since
-   * the module instance could be scrolled off of a visible page, and this
-   * function will still return true. However, depending on how your module
-   * interacts with the page, there may be certain updates that you may want to
-   * perform when the page is visible even if your specific module instance is
-   * not visible.
-   *
-   * @param resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return <code>PP_TRUE</code> if the instance is plausibly visible to the
-   * user, <code>PP_FALSE</code> if it is definitely not visible.
-   */
-  PP_Bool IsPageVisible([in] PP_Resource resource);
-
-  /**
-   * GetClipRect() returns the clip rectangle relative to the upper-left corner
-   * of the module instance. This rectangle indicates the portions of the module
-   * instance that are scrolled into view.
-   *
-   * If the module instance is scrolled off the view, the return value will be
-   * (0, 0, 0, 0). This clip rectangle does <i>not</i> take into account page
-   * visibility. Therefore, if the module instance is scrolled into view, but
-   * the page itself is on a tab that is not visible, the return rectangle will
-   * contain the visible rectangle as though the page were visible. Refer to
-   * IsPageVisible() and IsVisible() if you want to account for page
-   * visibility.
-   *
-   * Most applications will not need to worry about the clip rectangle. The
-   * recommended behavior is to do full updates if the module instance is
-   * visible, as determined by IsVisible(), and do no updates if it is not
-   * visible.
-   *
-   * However, if the cost for computing pixels is very high for your
-   * application, or the pages you're targeting frequently have very large
-   * module instances with small visible portions, you may wish to optimize
-   * further. In this case, the clip rectangle will tell you which parts of
-   * the module to update.
-   *
-   * Note that painting of the page and sending of view changed updates
-   * happens asynchronously. This means when the user scrolls, for example,
-   * it is likely that the previous backing store of the module instance will
-   * be used for the first paint, and will be updated later when your
-   * application generates new content with the new clip. This may cause
-   * flickering at the boundaries when scrolling. If you do choose to do
-   * partial updates, you may want to think about what color the invisible
-   * portions of your backing store contain (be it transparent or some
-   * background color) or to paint a certain region outside the clip to reduce
-   * the visual distraction when this happens.
-   *
-   * @param resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @param clip Output argument receiving the clip rect on success.
-   *
-   * @return Returns <code>PP_TRUE</code> if the resource was valid and the
-   * clip rect was filled in, <code>PP_FALSE</code> if not.
-   */
-  PP_Bool GetClipRect([in] PP_Resource resource,
-                      [out] PP_Rect clip);
-
-  /**
-   * GetDeviceScale returns the scale factor between device pixels and Density
-   * Independent Pixels (DIPs, also known as logical pixels or UI pixels on
-   * some platforms). This allows the developer to render their contents at
-   * device resolution, even as coordinates / sizes are given in DIPs through
-   * the API.
-   *
-   * Note that the coordinate system for Pepper APIs is DIPs. Also note that
-   * one DIP might not equal one CSS pixel - when page scale/zoom is in effect.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return A <code>float</code> value representing the number of device pixels
-   * per DIP. If the resource is invalid, the value will be 0.0.
-   */
-  [version=1.1]
-  float_t GetDeviceScale([in] PP_Resource resource);
-
-  /**
-   * GetCSSScale returns the scale factor between DIPs and CSS pixels. This
-   * allows proper scaling between DIPs - as sent via the Pepper API - and CSS
-   * pixel coordinates used for Web content.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return css_scale A <code>float</code> value representing the number of
-   * DIPs per CSS pixel. If the resource is invalid, the value will be 0.0.
-   */
-  [version=1.1]
-  float_t GetCSSScale([in] PP_Resource resource);
-
-  /**
-   * GetScrollOffset returns the scroll offset of the window containing the
-   * plugin.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @param[out] offset A <code>PP_Point</code> which will be set to the value
-   * of the scroll offset in CSS pixels.
-   *
-   * @return Returns <code>PP_TRUE</code> if the resource was valid and the
-   * offset was filled in, <code>PP_FALSE</code> if not.
-   */
-  [version=1.2]
-  PP_Bool GetScrollOffset([in] PP_Resource resource,
-                          [out] PP_Point offset);
-};
-
diff --git a/api/ppb_vpn_provider.idl b/api/ppb_vpn_provider.idl
deleted file mode 100644
index abd38ce..0000000
--- a/api/ppb_vpn_provider.idl
+++ /dev/null
@@ -1,159 +0,0 @@
-/* Copyright 2016 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/**
- * This file defines the <code>PPB_VpnProvider</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
-  [channel=dev] M52 = 0.1
-};
-
-/**
- * Use the <code>PPB_VpnProvider</code> interface to implement a VPN client.
- * Important: This API is available only on Chrome OS.
- *
- * This interface enhances the <code>chrome.vpnProvider</code> JavaScript API by
- * providing a high performance path for packet handling.
- *
- * Permissions: Apps permission <code>vpnProvider</code> is required for
- * <code>PPB_VpnProvider.Bind()</code>.
- *
- * Typical usage:
- * - Create a <code>PPB_VpnProvider</code> instance.
- * - Register the callback for <code>PPB_VpnProvider.ReceivePacket()</code>.
- * - In the extension follow the usual workflow for configuring a VPN connection
- *   via the <code>chrome.vpnProvider</code> API until the step for notifying
- *   the connection state as "connected".
- * - Bind to the previously created connection using
- *   <code>PPB_VpnProvider.Bind()</code>.
- * - Notify the connection state as "connected" from JavaScript using
- *   <code>chrome.vpnProvider.notifyConnectionStateChanged</code>.
- * - When the steps above are completed without errors, a virtual tunnel is
- *   created to the network stack of Chrome OS. IP packets can be sent through
- *   the tunnel using <code>PPB_VpnProvider.SendPacket()</code> and any packets
- *   originating on the Chrome OS device will be received using the callback
- *   registered for <code>PPB_VpnProvider.ReceivePacket()</code>.
- * - When the user disconnects from the VPN configuration or there is an error
- *   the extension will be notfied via
- *   <code>chrome.vpnProvider.onPlatformMessage</code>.
- */
-interface PPB_VpnProvider {
-  /**
-   * Create() creates a VpnProvider instance.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * with the VpnProvider.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a VpnProvider if
-   * successful.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-
-  /**
-   * IsVpnProvider() determines if the provided <code>resource</code> is a
-   * VpnProvider instance.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * VpnProvider.
-   *
-   * @return Returns <code>PP_TRUE</code> if <code>resource</code> is a
-   * <code>PPB_VpnProvider</code>, <code>PP_FALSE</code> if the
-   * <code>resource</code> is invalid or some type other than
-   * <code>PPB_VpnProvider</code>.
-   */
-  PP_Bool IsVpnProvider([in] PP_Resource resource);
-
-  /**
-   * Bind() binds to an existing configuration created from JavaScript by
-   * <code>chrome.vpnProvider.createConfig</code>. All packets will be routed
-   * via <code>SendPacket</code> and <code>ReceivePacket</code>. The user should
-   * register the callback for <code>ReceivePacket</code> before calling
-   * <code>Bind()</code>.
-   *
-   * @param[in] vpn_provider A <code>PP_Resource</code> corresponding to a
-   * VpnProvider.
-   *
-   * @param[in] configuration_id A <code>PP_VARTYPE_STRING</code> representing
-   * the configuration id from the callback of
-   * <code>chrome.vpnProvider.createConfig</code>.
-   *
-   * @param[in] configuration_name A <code>PP_VARTYPE_STRING</code> representing
-   * the configuration name as defined by the user when calling
-   * <code>chrome.vpnProvider.createConfig</code>.
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns <code>PP_ERROR_INPROGRESS</code> if a previous call to
-   * <code>Bind()</code> has not completed.
-   * Returns <code>PP_ERROR_BADARGUMENT</code> if either
-   * <code>configuration_id</code> or <code>configuration_name</code> are not of
-   * type <code>PP_VARTYPE_STRING</code>.
-   * Returns <code>PP_ERROR_NOACCESS</code> if the caller does the have the
-   * required "vpnProvider" permission.
-   * Returns <code>PP_ERROR_FAILED</code> if <code>connection_id</code> and
-   * <code>connection_name</code> could not be matched with the existing
-   * connection, or if the plugin originates from a different extension than the
-   * one that created the connection.
-   */
-  int32_t Bind([in] PP_Resource vpn_provider,
-               [in] PP_Var configuration_id,
-               [in] PP_Var configuration_name,
-               [in] PP_CompletionCallback callback);
-
-  /**
-   * SendPacket() sends an IP packet through the tunnel created for the VPN
-   * session. This will succeed only when the VPN session is owned by the
-   * module and the connection is bound.
-   *
-   * @param[in] vpn_provider A <code>PP_Resource</code> corresponding to a
-   * VpnProvider.
-   *
-   * @param[in] packet A <code>PP_VARTYPE_ARRAY_BUFFER</code> corresponding to
-   * an IP packet to be sent to the platform.
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns <code>PP_ERROR_FAILED</code> if the connection is not bound.
-   * Returns <code>PP_ERROR_INPROGRESS</code> if a previous call to
-   * <code>SendPacket()</code> has not completed.
-   * Returns <code>PP_ERROR_BADARGUMENT</code> if <code>packet</code> is not of
-   * type <code>PP_VARTYPE_ARRAY_BUFFER</code>.
-   */
-  int32_t SendPacket([in] PP_Resource vpn_provider,
-                     [in] PP_Var packet,
-                     [in] PP_CompletionCallback callback);
-
-  /**
-   * ReceivePacket() receives an IP packet from the tunnel for the VPN session.
-   * This function only returns a single packet. This function must be called at
-   * least N times to receive N packets, no matter the size of each packet. The
-   * callback should be registered before calling <code>Bind()</code>.
-   *
-   * @param[in] vpn_provider A <code>PP_Resource</code> corresponding to a
-   * VpnProvider.
-   *
-   * @param[out] packet The received packet is copied to provided
-   * <code>packet</code>. The <code>packet</code> must remain valid until
-   * ReceivePacket() completes. Its received <code>PP_VarType</code> will be
-   * <code>PP_VARTYPE_ARRAY_BUFFER</code>.
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns <code>PP_ERROR_INPROGRESS</code> if a previous call to
-   * <code>ReceivePacket()</code> has not completed.
-   */
-  int32_t ReceivePacket([in]  PP_Resource vpn_provider,
-                        [out] PP_Var packet,
-                        [in]  PP_CompletionCallback callback);
-};
diff --git a/api/ppb_websocket.idl b/api/ppb_websocket.idl
deleted file mode 100644
index 31294d4..0000000
--- a/api/ppb_websocket.idl
+++ /dev/null
@@ -1,460 +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.
- */
-
-/**
- * This file defines the <code>PPB_WebSocket</code> interface providing
- * bi-directional, full-duplex, communications over a single TCP socket.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M18 = 1.0
-};
-
-/**
- * This enumeration contains the types representing the WebSocket ready state
- * and these states are based on the JavaScript WebSocket API specification.
- * GetReadyState() returns one of these states.
- */
-[assert_size(4)]
-enum PP_WebSocketReadyState {
-  /**
-   * Ready state is queried on an invalid resource.
-   */
-  PP_WEBSOCKETREADYSTATE_INVALID = -1,
-
-  /**
-   * Ready state that the connection has not yet been established.
-   */
-  PP_WEBSOCKETREADYSTATE_CONNECTING = 0,
-
-  /**
-   * Ready state that the WebSocket connection is established and communication
-   * is possible.
-   */
-  PP_WEBSOCKETREADYSTATE_OPEN = 1,
-
-  /**
-   * Ready state that the connection is going through the closing handshake.
-   */
-  PP_WEBSOCKETREADYSTATE_CLOSING = 2,
-
-  /**
-   * Ready state that the connection has been closed or could not be opened.
-   */
-  PP_WEBSOCKETREADYSTATE_CLOSED = 3
-};
-
-/**
- * This enumeration contains status codes. These codes are used in Close() and
- * GetCloseCode(). Refer to RFC 6455, The WebSocket Protocol, for further
- * information.
- * <code>PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE</code> and codes in the range
- * <code>PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MIN</code> to
- * <code>PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MAX</code>, and
- * <code>PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MIN</code> to
- * <code>PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MAX</code> are valid for Close().
- */
-[assert_size(4)]
-enum PP_WebSocketCloseCode {
-  /**
-   * Indicates to request closing connection without status code and reason.
-   *
-   * (Note that the code 1005 is forbidden to send in actual close frames by
-   * the RFC. PP_WebSocket reuses this code internally and the code will never
-   * appear in the actual close frames.)
-   */
-  PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED = 1005,
-
-  /**
-   * Status codes in the range 0-999 are not used.
-   */
-
-  /**
-   * Indicates a normal closure.
-   */
-  PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE = 1000,
-
-  /**
-   * Indicates that an endpoint is "going away", such as a server going down.
-   */
-  PP_WEBSOCKETSTATUSCODE_GOING_AWAY = 1001,
-
-  /**
-   * Indicates that an endpoint is terminating the connection due to a protocol
-   * error.
-   */
-  PP_WEBSOCKETSTATUSCODE_PROTOCOL_ERROR = 1002,
-
-  /**
-   * Indicates that an endpoint is terminating the connection because it has
-   * received a type of data it cannot accept.
-   */
-  PP_WEBSOCKETSTATUSCODE_UNSUPPORTED_DATA = 1003,
-
-  /**
-   * Status code 1004 is reserved.
-   */
-
-  /**
-   * Pseudo code to indicate that receiving close frame doesn't contain any
-   * status code.
-   */
-  PP_WEBSOCKETSTATUSCODE_NO_STATUS_RECEIVED = 1005,
-
-  /**
-   * Pseudo code to indicate that connection was closed abnormally, e.g.,
-   * without closing handshake.
-   */
-  PP_WEBSOCKETSTATUSCODE_ABNORMAL_CLOSURE = 1006,
-
-  /**
-   * Indicates that an endpoint is terminating the connection because it has
-   * received data within a message that was not consistent with the type of
-   * the message (e.g., non-UTF-8 data within a text message).
-   */
-  PP_WEBSOCKETSTATUSCODE_INVALID_FRAME_PAYLOAD_DATA = 1007,
-
-  /**
-   * Indicates that an endpoint is terminating the connection because it has
-   * received a message that violates its policy.
-   */
-  PP_WEBSOCKETSTATUSCODE_POLICY_VIOLATION = 1008,
-
-  /**
-   * Indicates that an endpoint is terminating the connection because it has
-   * received a message that is too big for it to process.
-   */
-  PP_WEBSOCKETSTATUSCODE_MESSAGE_TOO_BIG = 1009,
-
-  /**
-   * Indicates that an endpoint (client) is terminating the connection because
-   * it has expected the server to negotiate one or more extension, but the
-   * server didn't return them in the response message of the WebSocket
-   * handshake.
-   */
-  PP_WEBSOCKETSTATUSCODE_MANDATORY_EXTENSION = 1010,
-
-  /**
-   * Indicates that a server is terminating the connection because it
-   * encountered an unexpected condition.
-   */
-  PP_WEBSOCKETSTATUSCODE_INTERNAL_SERVER_ERROR = 1011,
-
-  /**
-   * Status codes in the range 1012-1014 are reserved.
-   */
-
-  /**
-   * Pseudo code to indicate that the connection was closed due to a failure to
-   * perform a TLS handshake.
-   */
-  PP_WEBSOCKETSTATUSCODE_TLS_HANDSHAKE = 1015,
-
-  /**
-   * Status codes in the range 1016-2999 are reserved.
-   */
-
-  /**
-   * Status codes in the range 3000-3999 are reserved for use by libraries,
-   * frameworks, and applications. These codes are registered directly with
-   * IANA.
-   */
-  PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MIN = 3000,
-  PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MAX = 3999,
-
-  /**
-   * Status codes in the range 4000-4999 are reserved for private use.
-   * Application can use these codes for application specific purposes freely.
-   */
-  PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MIN = 4000,
-  PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MAX = 4999
-};
-
-/** 
- * The <code>PPB_WebSocket</code> interface provides bi-directional,
- * full-duplex, communications over a single TCP socket.
- */
-interface PPB_WebSocket {
-  /**
-   * Create() creates a WebSocket instance.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * with the WebSocket.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a WebSocket if
-   * successful.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-
-  /**
-   * IsWebSocket() determines if the provided <code>resource</code> is a
-   * WebSocket instance.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns <code>PP_TRUE</code> if <code>resource</code> is a
-   * <code>PPB_WebSocket</code>, <code>PP_FALSE</code> if the
-   * <code>resource</code> is invalid or some type other than
-   * <code>PPB_WebSocket</code>.
-   */
-  PP_Bool IsWebSocket([in] PP_Resource resource);
-
-  /**
-   * Connect() connects to the specified WebSocket server. You can call this
-   * function once for a <code>web_socket</code>.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @param[in] url A <code>PP_Var</code> representing a WebSocket server URL.
-   * The <code>PP_VarType</code> must be <code>PP_VARTYPE_STRING</code>.
-   *
-   * @param[in] protocols A pointer to an array of <code>PP_Var</code>
-   * specifying sub-protocols. Each <code>PP_Var</code> represents one
-   * sub-protocol and its <code>PP_VarType</code> must be
-   * <code>PP_VARTYPE_STRING</code>. This argument can be null only if
-   * <code>protocol_count</code> is 0.
-   *
-   * @param[in] protocol_count The number of sub-protocols in
-   * <code>protocols</code>.
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> called
-   * when a connection is established or an error occurs in establishing
-   * connection.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns <code>PP_ERROR_BADARGUMENT</code> if the specified
-   * <code>url</code>, or <code>protocols</code> contain an invalid string as
-   * defined in the WebSocket API specification.
-   * <code>PP_ERROR_BADARGUMENT</code> corresponds to a SyntaxError in the
-   * WebSocket API specification.
-   * Returns <code>PP_ERROR_NOACCESS</code> if the protocol specified in the
-   * <code>url</code> is not a secure protocol, but the origin of the caller
-   * has a secure scheme. Also returns <code>PP_ERROR_NOACCESS</code> if the
-   * port specified in the <code>url</code> is a port that the user agent
-   * is configured to block access to because it is a well-known port like
-   * SMTP. <code>PP_ERROR_NOACCESS</code> corresponds to a SecurityError of the
-   * specification.
-   * Returns <code>PP_ERROR_INPROGRESS</code> if this is not the first call to
-   * Connect().
-   */
-  [report_errors=False]
-  int32_t Connect([in] PP_Resource web_socket,
-                  [in] PP_Var url,
-                  [in, size_as=protocol_count] PP_Var[] protocols,
-                  [in] uint32_t protocol_count,
-                  [in] PP_CompletionCallback callback);
-
-  /**
-   * Close() closes the specified WebSocket connection by specifying
-   * <code>code</code> and <code>reason</code>.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @param[in] code The WebSocket close code. This is ignored if it is
-   * <code>PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED</code>.
-   * <code>PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE</code> must be used for the
-   * usual case. To indicate some specific error cases, codes in the range
-   * <code>PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MIN</code> to
-   * <code>PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MAX</code>, and in the range
-   * <code>PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MIN</code> to
-   * <code>PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MAX</code> are available.
-   *
-   * @param[in] reason A <code>PP_Var</code> representing the WebSocket
-   * close reason. This is ignored if it is <code>PP_VARTYPE_UNDEFINED</code>.
-   * Otherwise, its <code>PP_VarType</code> must be
-   * <code>PP_VARTYPE_STRING</code>.
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> called
-   * when the connection is closed or an error occurs in closing the
-   * connection.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns <code>PP_ERROR_BADARGUMENT</code> if <code>reason</code> contains
-   * an invalid character as a UTF-8 string, or is longer than 123 bytes.
-   * <code>PP_ERROR_BADARGUMENT</code> corresponds to a JavaScript SyntaxError
-   * in the WebSocket API specification.
-   * Returns <code>PP_ERROR_NOACCESS</code> if the code is not an integer
-   * equal to 1000 or in the range 3000 to 4999. <code>PP_ERROR_NOACCESS</code>
-   * corresponds to an InvalidAccessError in the WebSocket API specification.
-   * Returns <code>PP_ERROR_INPROGRESS</code> if a previous call to Close() is
-   * not finished.
-   */
-  [report_errors=False]
-  int32_t Close([in] PP_Resource web_socket,
-                [in] uint16_t code,
-                [in] PP_Var reason,
-                [in] PP_CompletionCallback callback);
-
-  /**
-   * ReceiveMessage() receives a message from the WebSocket server.
-   * This interface only returns a single message. That is, this interface must
-   * be called at least N times to receive N messages, no matter the size of
-   * each message.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @param[out] message The received message is copied to provided
-   * <code>message</code>. The <code>message</code> must remain valid until
-   * ReceiveMessage() completes. Its received <code>PP_VarType</code> will be
-   * <code>PP_VARTYPE_STRING</code> or <code>PP_VARTYPE_ARRAY_BUFFER</code>.
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> called
-   * when ReceiveMessage() completes. This callback is ignored if
-   * ReceiveMessage() completes synchronously and returns <code>PP_OK</code>.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * If an error is detected or connection is closed, ReceiveMessage() returns
-   * <code>PP_ERROR_FAILED</code> after all buffered messages are received.
-   * Until buffered message become empty, ReceiveMessage() continues to return
-   * <code>PP_OK</code> as if connection is still established without errors.
-   */
-  [report_errors=False]
-  int32_t ReceiveMessage([in] PP_Resource web_socket,
-                         [out] PP_Var message,
-                         [in] PP_CompletionCallback callback);
-
-  /**
-   * SendMessage() sends a message to the WebSocket server.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @param[in] message A message to send. The message is copied to an internal
-   * buffer, so the caller can free <code>message</code> safely after returning
-   * from the function. Its sent <code>PP_VarType</code> must be
-   * <code>PP_VARTYPE_STRING</code> or <code>PP_VARTYPE_ARRAY_BUFFER</code>.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns <code>PP_ERROR_FAILED</code> if the ReadyState is
-   * <code>PP_WEBSOCKETREADYSTATE_CONNECTING</code>.
-   * <code>PP_ERROR_FAILED</code> corresponds to a JavaScript
-   * InvalidStateError in the WebSocket API specification.
-   * Returns <code>PP_ERROR_BADARGUMENT</code> if the provided
-   * <code>message</code> contains an invalid character as a UTF-8 string.
-   * <code>PP_ERROR_BADARGUMENT</code> corresponds to a JavaScript
-   * SyntaxError in the WebSocket API specification.
-   * Otherwise, returns <code>PP_OK</code>, which doesn't necessarily mean
-   * that the server received the message.
-   */
-  [report_errors=False]
-  int32_t SendMessage([in] PP_Resource web_socket,
-                      [in] PP_Var message);
-
-  /**
-   * GetBufferedAmount() returns the number of bytes of text and binary
-   * messages that have been queued for the WebSocket connection to send, but
-   * have not been transmitted to the network yet.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns the number of bytes.
-   */
-  [report_errors=False]
-  uint64_t GetBufferedAmount([in] PP_Resource web_socket);
-
-  /**
-   * GetCloseCode() returns the connection close code for the WebSocket
-   * connection.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns 0 if called before the close code is set.
-   */
-  [report_errors=False]
-  uint16_t GetCloseCode([in] PP_Resource web_socket);
-
-  /**
-   * GetCloseReason() returns the connection close reason for the WebSocket
-   * connection.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns a <code>PP_VARTYPE_STRING</code> var. If called before the
-   * close reason is set, the return value contains an empty string. Returns a
-   * <code>PP_VARTYPE_UNDEFINED</code> if called on an invalid resource.
-   */
-  [report_errors=False]
-  PP_Var GetCloseReason([in] PP_Resource web_socket);
-
-  /**
-   * GetCloseWasClean() returns if the connection was closed cleanly for the
-   * specified WebSocket connection.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns <code>PP_FALSE</code> if called before the connection is
-   * closed, called on an invalid resource, or closed for abnormal reasons. 
-   * Otherwise, returns <code>PP_TRUE</code> if the connection was closed
-   * cleanly.
-   */
-  [report_errors=False]
-  PP_Bool GetCloseWasClean([in] PP_Resource web_socket);
-
-  /**
-   * GetExtensions() returns the extensions selected by the server for the
-   * specified WebSocket connection.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns a <code>PP_VARTYPE_STRING</code> var. If called before the
-   * connection is established, the var's data is an empty string. Returns a
-   * <code>PP_VARTYPE_UNDEFINED</code> if called on an invalid resource.
-   */
-  [report_errors=False]
-  PP_Var GetExtensions([in] PP_Resource web_socket);
-
-  /**
-   * GetProtocol() returns the sub-protocol chosen by the server for the
-   * specified WebSocket connection.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns a <code>PP_VARTYPE_STRING</code> var. If called before the
-   * connection is established, the var contains the empty string. Returns a
-   * <code>PP_VARTYPE_UNDEFINED</code> if called on an invalid resource.
-   */
-  [report_errors=False]
-  PP_Var GetProtocol([in] PP_Resource web_socket);
-
-  /**
-   * GetReadyState() returns the ready state of the specified WebSocket
-   * connection.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns <code>PP_WEBSOCKETREADYSTATE_INVALID</code> if called
-   * before Connect() is called, or if this function is called on an
-   * invalid resource.
-   */
-  [on_failure=PP_WEBSOCKETREADYSTATE_INVALID, report_errors=False]
-  PP_WebSocketReadyState GetReadyState([in] PP_Resource web_socket);
-
-  /**
-   * GetURL() returns the URL associated with specified WebSocket connection.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns a <code>PP_VARTYPE_STRING</code> var. If called before the
-   * connection is established, the var contains the empty string. Returns a
-   * <code>PP_VARTYPE_UNDEFINED</code> if this function is called on an
-   * invalid resource.
-   */
-  [report_errors=False]
-  PP_Var GetURL([in] PP_Resource web_socket);
-};
diff --git a/api/ppp.idl b/api/ppp.idl
deleted file mode 100644
index 899dce3..0000000
--- a/api/ppp.idl
+++ /dev/null
@@ -1,139 +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.
- */
-
-/**
- * This file defines three functions that your module must
- * implement to interact with the browser.
- */
-
-#inline c
-
-#include "ppapi/c/pp_module.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/ppb.h"
-
-#if __GNUC__ >= 4
-#define PP_EXPORT __attribute__ ((visibility("default")))
-#elif defined(_MSC_VER)
-#define PP_EXPORT __declspec(dllexport)
-#endif
-
-/* {PENDING: undefine PP_EXPORT?} */
-
-/* We don't want name mangling for these external functions.  We only need
- * 'extern "C"' if we're compiling with a C++ compiler.
- */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PPP_InitializeModule() is the entry point for a module and is called by the
- * browser when your module loads. Your code must implement this function.
- *
- * Failure indicates to the browser that this module can not be used. In this
- * case, the module will be unloaded and ShutdownModule will NOT be called.
- *
- * @param[in] module A handle to your module. Generally you should store this
- * value since it will be required for other API calls.
- * @param[in] get_browser_interface A pointer to the function that you can
- * use to query for browser interfaces. Generally you should store this value
- * for future use.
- *
- * @return <code>PP_OK</code> on success. Any other value on failure.
- */
-PP_EXPORT int32_t PPP_InitializeModule(PP_Module module,
-                                       PPB_GetInterface get_browser_interface);
-/**
- * @}
- */
-
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PPP_ShutdownModule() is <strong>sometimes</strong> called before the module
- * is unloaded. It is not recommended that you implement this function.
- *
- * There is no practical use of this function for third party modules. Its
- * existence is because of some internal use cases inside Chrome.
- *
- * Since your module runs in a separate process, there's no need to free
- * allocated memory. There is also no need to free any resources since all of
- * resources associated with an instance will be force-freed when that instance
- * is deleted.
- *
- * <strong>Note:</strong> This function will always be skipped on untrusted
- * (Native Client) implementations. This function may be skipped on trusted
- * implementations in certain circumstances when Chrome does "fast shutdown"
- * of a web page.
- */
-PP_EXPORT void PPP_ShutdownModule(void);
-/**
- * @}
- */
-
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PPP_GetInterface() is called by the browser to query the module for
- * interfaces it supports.
- *
- * Your module must implement the <code>PPP_Instance</code> interface or it
- * will be unloaded. Other interfaces are optional.
- *
- * This function is called from within browser code whenever an interface is
- * needed. This means your plugin could be reentered via this function if you
- * make a browser call and it needs an interface. Furthermore, you should not
- * make any other browser calls from within your implementation to avoid
- * reentering the browser.
- *
- * As a result, your implementation of this should merely provide a lookup
- * from the requested name to an interface pointer, via something like a big
- * if/else block or a map, and not do any other work.
- *
- * @param[in] interface_name A pointer to a "PPP" (plugin) interface name.
- * Interface names are null-terminated ASCII strings.
- *
- * @return A pointer for the interface or <code>NULL</code> if the interface is
- * not supported.
- */
-PP_EXPORT const void* PPP_GetInterface(const char* interface_name);
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}  /* extern "C" */
-#endif
-
-#endinl
-
-/**
- * Defines the type of the <code>PPP_InitializeModule</code> function.
- */
-typedef int32_t PP_InitializeModule_Func(
-    [in] PP_Module module,
-    [in] PPB_GetInterface get_browser_interface);
-
-/**
- * Defines the type of the <code>PPP_ShutdownModule</code> function.
- */
-typedef void PP_ShutdownModule_Func();
-
-/**
- * Defines the type of the <code>PPP_ShutdownModule</code> function.
- */
-typedef interface_t PP_GetInterface_Func([in] str_t interface_name);
diff --git a/api/ppp_graphics_3d.idl b/api/ppp_graphics_3d.idl
deleted file mode 100644
index ff4930d..0000000
--- a/api/ppp_graphics_3d.idl
+++ /dev/null
@@ -1,25 +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.
- */
-
-/**
- * Defines the <code>PPP_Graphics3D</code> struct representing a 3D graphics
- * context within the browser.
- */
-
-label Chrome {
-  M15 = 1.0
-};
-
-/**
- * <code>PPP_Graphics3D</code> defines the notification interface for a 3D 
- * graphics context.
- */
-[macro="PPP_GRAPHICS_3D_INTERFACE", iname="PPP_Graphics_3D"]
-interface PPP_Graphics3D {
-  /**
-   * Called when the OpenGL ES window is invalidated and needs to be repainted.
-   */
-  void Graphics3DContextLost(PP_Instance instance);
-};
diff --git a/api/ppp_input_event.idl b/api/ppp_input_event.idl
deleted file mode 100644
index 02d0be3..0000000
--- a/api/ppp_input_event.idl
+++ /dev/null
@@ -1,63 +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.
- */
-
-/**
- * This file defines the API for receiving input events from the browser.
- */
-
-label Chrome {
-  M14 = 0.1
-};
-
-[version=0.1, macro="PPP_INPUT_EVENT_INTERFACE"]
-interface PPP_InputEvent {
-  /**
-   * Function for receiving input events from the browser.
-   *
-   * In order to receive input events, you must register for them by calling
-   * PPB_InputEvent.RequestInputEvents() or RequestFilteringInputEvents(). By
-   * default, no events are delivered.
-   *
-   * If the event was handled, it will not be forwarded to the default handlers
-   * in the web page.  If it was not handled, it may be dispatched to a default
-   * handler. So it is important that an instance respond accurately with
-   * whether event propagation should continue.
-   *
-   * Event propagation also controls focus. If you handle an event like a mouse
-   * event, typically the instance will be given focus. Returning false from
-   * a filtered event handler or not registering for an event type means that
-   * the click will be given to a lower part of the page and your instance will
-   * not receive focus. This allows an instance to be partially transparent,
-   * where clicks on the transparent areas will behave like clicks to the
-   * underlying page.
-   *
-   * In general, you should try to keep input event handling short. Especially
-   * for filtered input events, the browser or page may be blocked waiting for
-   * you to respond.
-   *
-   * The caller of this function will maintain a reference to the input event
-   * resource during this call. Unless you take a reference to the resource
-   * to hold it for later, you don't need to release it.
-   *
-   * <strong>Note:</strong> If you're not receiving input events, make sure you
-   * register for the event classes you want by calling RequestInputEvents or
-   * RequestFilteringInputEvents. If you're still not receiving keyboard input
-   * events, make sure you're returning true (or using a non-filtered event
-   * handler) for mouse events. Otherwise, the instance will not receive focus
-   * and keyboard events will not be sent.
-   *
-   * \see PPB_InputEvent.RequestInputEvents and
-   * PPB_InputEvent.RequestFilteringInputEvents
-   *
-   * @return PP_TRUE if the event was handled, PP_FALSE if not. If you have
-   * registered to filter this class of events by calling
-   * RequestFilteringInputEvents, and you return PP_FALSE, the event will
-   * be forwarded to the page (and eventually the browser) for the default
-   * handling. For non-filtered events, the return value will be ignored.
-   */
-  PP_Bool HandleInputEvent([in] PP_Instance instance,
-                           [in] PP_Resource input_event);
-};
-
diff --git a/api/ppp_instance.idl b/api/ppp_instance.idl
deleted file mode 100644
index ca2d787..0000000
--- a/api/ppp_instance.idl
+++ /dev/null
@@ -1,242 +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.
- */
-
-/**
- * This file defines the <code>PPP_Instance</code> structure - a series of
- * pointers to methods that you must implement in your module.
- */
-
-label Chrome {
-  M14 = 1.0,
-  M17 = 1.1
-};
-
-/**
- * The <code>PPP_Instance</code> interface contains pointers to a series of
- * functions that you must implement in your module. These functions can be
- * trivial (simply return the default return value) unless you want your module
- * to handle events such as change of focus or input events (keyboard/mouse)
- * events.
- */
-interface PPP_Instance {
-  /**
-   * DidCreate() is a creation handler that is called when a new instance is
-   * created. This function is called for each instantiation on the page,
-   * corresponding to one \<embed\> tag on the page.
-   *
-   * Generally you would handle this call by initializing the information
-   * your module associates with an instance and creating a mapping from the
-   * given <code>PP_Instance</code> handle to this data. The
-   * <code>PP_Instance</code> handle will be used in subsequent calls to
-   * identify which instance the call pertains to.
-   *
-   * It's possible for more than one instance to be created in a single module.
-   * This means that you may get more than one <code>OnCreate</code> without an
-   * <code>OnDestroy</code> in between, and should be prepared to maintain
-   * multiple states associated with each instance.
-   *
-   * If this function reports a failure (by returning <code>PP_FALSE</code>),
-   * the instance will be deleted.
-   *
-   * @param[in] instance A new <code>PP_Instance</code> identifying one
-   * instance of a module. This is an opaque handle.
-   *
-   * @param[in] argc The number of arguments contained in <code>argn</code>
-   * and <code>argv</code>.
-   *
-   * @param[in] argn An array of argument names.  These argument names are
-   * supplied in the \<embed\> tag, for example:
-   * <code>\<embed id="nacl_module" dimensions="2"\></code> will produce two
-   * argument names: "id" and "dimensions."
-   *
-   * @param[in] argv An array of argument values.  These are the values of the
-   * arguments listed in the \<embed\> tag, for example
-   * <code>\<embed id="nacl_module" dimensions="2"\></code> will produce two
-   * argument values: "nacl_module" and "2".  The indices of these values match
-   * the indices of the corresponding names in <code>argn</code>.
-   *
-   * @return <code>PP_TRUE</code> on success or <code>PP_FALSE</code> on
-   * failure.
-   */
-  PP_Bool DidCreate(
-      /* A PP_Instance identifying one instance of a module. */
-      [in] PP_Instance instance,
-      /* The number of arguments contained in argn and argv. */
-      [in] uint32_t argc,
-      /* An array of argument names.  These argument names are
-       * supplied in the <embed> tag, for example:
-       * <embed id="nacl_module" dimensions="2"> will produce two argument
-       * names: "id" and "dimensions."
-       */
-      [in, size_as=argc] str_t[] argn,
-      /* An array of argument values.  These are the values of the
-       * arguments listed in the <embed> tag, for example
-       * <embed id="nacl_module" dimensions="2"> will produce two argument
-       * values: "nacl_module" and "2."  The indices of these values match the
-       * indices of the corresponding names in argn.
-       */
-      [in, size_as=argc] str_t[] argv);
-
-  /**
-   * DidDestroy() is an instance destruction handler. This function is called
-   * in many cases (see below) when a module instance is destroyed. It will be
-   * called even if DidCreate() returned failure.
-   *
-   * Generally you will handle this call by deallocating the tracking
-   * information and the <code>PP_Instance</code> mapping you created in the
-   * DidCreate() call. You can also free resources associated with this
-   * instance but this isn't required; all resources associated with the deleted
-   * instance will be automatically freed when this function returns.
-   *
-   * The instance identifier will still be valid during this call, so the module
-   * can perform cleanup-related tasks. Once this function returns, the
-   * <code>PP_Instance</code> handle will be invalid. This means that you can't
-   * do any asynchronous operations like network requests, file writes or
-   * messaging from this function since they will be immediately canceled.
-   *
-   * <strong>Note:</strong> This function will always be skipped on untrusted
-   * (Native Client) implementations. This function may be skipped on trusted
-   * implementations in certain circumstances when Chrome does "fast shutdown"
-   * of a web page. Fast shutdown will happen in some cases when all module
-   * instances are being deleted, and no cleanup functions will be called.
-   * The module will just be unloaded and the process terminated.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   */
-  void DidDestroy(
-      /* A PP_Instance identifying one instance of a module. */
-      [in] PP_Instance instance);
-
-  /**
-   * Deprecated in 1.1 in favor of the version that takes a Resource.
-   *
-   * DidChangeView() is called when the position, the size, of the clip
-   * rectangle of the element in the browser that corresponds to this
-   * instance has changed.
-   *
-   * A typical implementation will check the size of the <code>position</code>
-   * argument and reallocate the graphics context when a different size is
-   * received. Note that this function will be called for scroll events where
-   * the size doesn't change, so you should always check that the size is
-   * actually different before doing any reallocations.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * that has changed.
-   *
-   * @param[in] position The location on the page of the instance. This is
-   * relative to the top left corner of the viewport, which changes as the
-   * page is scrolled. Generally the size of this value will be used to create
-   * a graphics device, and the position is ignored (most things are relative
-   * to the instance so the absolute position isn't useful in most cases).
-   *
-   * @param[in] clip The visible region of the instance. This is relative to
-   * the top left of the module's coordinate system (not the page).  If the
-   * module is invisible, <code>clip</code> will be (0, 0, 0, 0).
-   *
-   * It's recommended to check for invisible instances and to stop
-   * generating graphics updates in this case to save system resources. It's
-   * not usually worthwhile, however, to generate partial updates according to
-   * the clip when the instance is partially visible. Instead, update the entire
-   * region. The time saved doing partial paints is usually not significant and
-   * it can create artifacts when scrolling (this notification is sent
-   * asynchronously from scrolling so there can be flashes of old content in the
-   * exposed regions).
-   */
-  void DidChangeView(
-      /* A PP_Instance identifying the instance whose view changed. */
-      [in] PP_Instance instance,
-      /* The new location on the page of this instance. This is relative to
-       * the top left corner of the viewport, which changes as the
-       * page is scrolled.
-       */
-      [in] PP_Rect position,
-      /* The visible region of the NaCl module. This is relative to the top
-       * left of the plugin's coordinate system (not the page)  If the plugin
-       * is invisible, clip will be (0, 0, 0, 0).
-       */
-      [in] PP_Rect clip);
-
-  /**
-   * <code>DidChangeView() is called when the position, size, or other view
-   * attributes of the instance has changed.
-   */
-  [version=1.1]
-  void DidChangeView(
-      /* A PP_Instance identifying the instance whose view changed. */
-      [in] PP_Instance instance,
-      /**
-       * A handle to a <code>PPB_View</code> resource identifying the new view.
-       */
-      [in] PP_Resource view);
-
-  /**
-   * DidChangeFocus() is called when an instance has gained or lost focus.
-   * Having focus means that keyboard events will be sent to the instance.
-   * An instance's default condition is that it will not have focus.
-   *
-   * The focus flag takes into account both browser tab and window focus as
-   * well as focus of the plugin element on the page. In order to be deemed
-   * to have focus, the browser window must be topmost, the tab must be
-   * selected in the window, and the instance must be the focused element on
-   * the page.
-   *
-   * <strong>Note:</strong>Clicks on instances will give focus only if you
-   * handle the click event. Return <code>true</code> from
-   * <code>HandleInputEvent</code> in <code>PPP_InputEvent</code> (or use
-   * unfiltered events) to signal that the click event was handled. Otherwise,
-   * the browser will bubble the event and give focus to the element on the page
-   * that actually did end up consuming it. If you're not getting focus, check
-   * to make sure you're either requesting them via
-   * <code>RequestInputEvents()<code> (which implicitly marks all input events
-   * as consumed) or via <code>RequestFilteringInputEvents()</code> and
-   * returning true from your event handler.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * receiving the input event.
-   *
-   * @param[in] has_focus Indicates the new focused state of the instance.
-   */
-  void DidChangeFocus(
-      /* A PP_Instance identifying one instance of a module. */
-      [in] PP_Instance instance,
-      /* Indicates whether this NaCl module gained or lost event focus. */
-      [in] PP_Bool has_focus);
-
-  /**
-   * HandleDocumentLoad() is called after initialize for a full-frame
-   * instance that was instantiated based on the MIME type of a DOMWindow
-   * navigation. This situation only applies to modules that are pre-registered
-   * to handle certain MIME types. If you haven't specifically registered to
-   * handle a MIME type or aren't positive this applies to you, your
-   * implementation of this function can just return <code>PP_FALSE</code>.
-   *
-   * The given <code>url_loader</code> corresponds to a
-   * <code>PPB_URLLoader</code> instance that is already opened. Its response
-   * headers may be queried using <code>PPB_URLLoader::GetResponseInfo</code>.
-   * The reference count for the URL loader is not incremented automatically on
-   * behalf of the module. You need to increment the reference count yourself
-   * if you are going to keep a reference to it.
-   *
-   * This method returns <code>PP_FALSE</code> if the module cannot handle the
-   * data. In response to this method, the module should call
-   * ReadResponseBody() to read the incoming data.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * that should do the load.
-   *
-   * @param[in] url_loader An open <code>PPB_URLLoader</code> instance.
-   *
-   * @return <code>PP_TRUE</code> if the data was handled,
-   * <code>PP_FALSE</code> otherwise.  If you return false, the load will be
-   * canceled for you.
-   */
-  PP_Bool HandleDocumentLoad(
-      /* A PP_Instance identifying one instance of a module. */
-      [in] PP_Instance instance,
-      /* A PP_Resource an open PPB_URLLoader instance. */
-      [in] PP_Resource url_loader);
-
-};
diff --git a/api/ppp_message_handler.idl b/api/ppp_message_handler.idl
deleted file mode 100644
index 5424811..0000000
--- a/api/ppp_message_handler.idl
+++ /dev/null
@@ -1,77 +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.
- */
-
-/**
- * This file defines the <code>PPP_MessageHandler</code> interface that plugins
- * can implement and register using PPB_Messaging::RegisterMessageHandler in
- * order to handle messages sent from JavaScript via postMessage() or
- * postMessageAndAwaitResponse().
- */
-
-label Chrome {
-  M39 = 0.2
-};
-
-/**
- * The <code>PPP_MessageHandler</code> interface is implemented by the plugin
- * if the plugin wants to receive messages from a thread other than the main
- * Pepper thread, or if the plugin wants to handle blocking messages which
- * JavaScript may send via postMessageAndAwaitResponse().
- *
- * This interface struct should not be returned by PPP_GetInterface; instead it
- * must be passed as a parameter to PPB_Messaging::RegisterMessageHandler.
- */
-[no_interface_string]
-interface PPP_MessageHandler {
-  /**
-   * Invoked as a result of JavaScript invoking postMessage() on the plugin's
-   * DOM element.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] user_data is the same pointer which was provided by a call to
-   * RegisterMessageHandler().
-   * @param[in] message A copy of the parameter that JavaScript provided to
-   * postMessage().
-   */
-  void HandleMessage([in] PP_Instance instance,
-                     [inout] mem_t user_data,
-                     [constptr_in] PP_Var message);
-  /**
-   * Invoked as a result of JavaScript invoking postMessageAndAwaitResponse()
-   * on the plugin's DOM element.
-   *
-   * NOTE: JavaScript execution is blocked during the duration of this call.
-   * Hence, the plugin should respond as quickly as possible. For this reason,
-   * blocking completion callbacks are disallowed while handling a blocking
-   * message.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] user_data is the same pointer which was provided by a call to
-   * RegisterMessageHandler().
-   * @param[in] message is a copy of the parameter that JavaScript provided
-   * to postMessageAndAwaitResponse().
-   * @param[out] response will be copied to a JavaScript object which is
-   * returned as the result of postMessageAndAwaitResponse() to the invoking
-     JavaScript.
-   */
-  void HandleBlockingMessage([in] PP_Instance instance,
-                             [inout] mem_t user_data,
-                             [constptr_in] PP_Var message,
-                             [out] PP_Var response);
-  /**
-   * Invoked when the handler object is no longer needed. After this, no more
-   * calls will be made which pass this same value for <code>instance</code>
-   * and <code>user_data</code>.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] user_data is the same pointer which was provided by a call to
-   * RegisterMessageHandler.
-   */
-  void Destroy([in] PP_Instance instance, [inout] mem_t user_data);
-};
-
diff --git a/api/ppp_messaging.idl b/api/ppp_messaging.idl
deleted file mode 100644
index 700ff0e..0000000
--- a/api/ppp_messaging.idl
+++ /dev/null
@@ -1,64 +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.
- */
-
-/**
- * This file defines the PPP_Messaging interface containing pointers to
- * functions that you must implement to handle postMessage messages
- * on the associated DOM element.
- *
- */
-
-label Chrome {
-  M14 = 1.0
-};
-
-/**
- * The <code>PPP_Messaging</code> interface contains pointers to functions
- * that you must implement to handle postMessage events on the associated
- * DOM element.
- */
-interface PPP_Messaging {
-  /**
-   * HandleMessage() is a function that the browser calls when PostMessage()
-   * is invoked on the DOM element for the module instance in JavaScript. Note
-   * that PostMessage() in the JavaScript interface is asynchronous, meaning
-   * JavaScript execution will not be blocked while HandleMessage() is
-   * processing the message.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] message A <code>PP_Var</code> which has been converted from a
-   * JavaScript value. JavaScript array/object types are supported from Chrome
-   * M29 onward. All JavaScript values are copied when passing them to the
-   * plugin.
-   *
-   * When converting JavaScript arrays, any object properties whose name
-   * is not an array index are ignored. When passing arrays and objects, the
-   * entire reference graph will be converted and transferred. If the reference
-   * graph has cycles, the message will not be sent and an error will be logged
-   * to the console.
-   *
-   * The following JavaScript code invokes <code>HandleMessage</code>, passing
-   * the module instance on which it was invoked, with <code>message</code>
-   * being a string <code>PP_Var</code> containing "Hello world!"
-   *
-   * <strong>Example:</strong>
-   *
-   * @code
-   *
-   * <body>
-   *   <object id="plugin"
-   *           type="application/x-ppapi-postMessage-example"/>
-   *   <script type="text/javascript">
-   *     document.getElementById('plugin').postMessage("Hello world!");
-   *   </script>
-   * </body>
-   *
-   * @endcode
-   *
-   */
-  void HandleMessage([in] PP_Instance instance, [in] PP_Var message);
-};
-
diff --git a/api/ppp_mouse_lock.idl b/api/ppp_mouse_lock.idl
deleted file mode 100644
index 8b03f41..0000000
--- a/api/ppp_mouse_lock.idl
+++ /dev/null
@@ -1,30 +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.
- */
-
-/**
- * This file defines the <code>PPP_MouseLock</code> interface containing a 
- * function that you must implement to receive mouse lock events from the
- * browser. 
- */
-
-label Chrome {
-  M16 = 1.0
-};
-
-/**
- * The <code>PPP_MouseLock</code> interface contains a function that you must
- * implement to receive mouse lock events from the browser.
- */
-interface PPP_MouseLock {
-  /**
-   * MouseLockLost() is called when the instance loses the mouse lock, such as   
-   * when the user presses the ESC key.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   */
-  void MouseLockLost([in] PP_Instance instance);
-};
-
diff --git a/api/private/pp_file_handle.idl b/api/private/pp_file_handle.idl
deleted file mode 100644
index 85fcabb..0000000
--- a/api/private/pp_file_handle.idl
+++ /dev/null
@@ -1,22 +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.
- */
-
-/**
- * This file provides support for native OS file handles.
- */
-
-#inline c
-
-#ifdef _WIN32
-#include<windows.h>
-typedef HANDLE PP_FileHandle;
-static const PP_FileHandle PP_kInvalidFileHandle = NULL;
-
-#else
-typedef int PP_FileHandle;
-static const PP_FileHandle PP_kInvalidFileHandle = -1;
-#endif
-
-#endinl
diff --git a/api/private/pp_private_font_charset.idl b/api/private/pp_private_font_charset.idl
deleted file mode 100644
index deccaa1..0000000
--- a/api/private/pp_private_font_charset.idl
+++ /dev/null
@@ -1,28 +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.
- */
-
-[assert_size(4)]
-enum PP_PrivateFontCharset {
-  PP_PRIVATEFONTCHARSET_ANSI = 0,
-  PP_PRIVATEFONTCHARSET_DEFAULT = 1,
-  PP_PRIVATEFONTCHARSET_SYMBOL = 2,
-  PP_PRIVATEFONTCHARSET_MAC = 77,
-  PP_PRIVATEFONTCHARSET_SHIFTJIS = 128,
-  PP_PRIVATEFONTCHARSET_HANGUL = 129,
-  PP_PRIVATEFONTCHARSET_JOHAB = 130,
-  PP_PRIVATEFONTCHARSET_GB2312 =134,
-  PP_PRIVATEFONTCHARSET_CHINESEBIG5 = 136,
-  PP_PRIVATEFONTCHARSET_GREEK = 161,
-  PP_PRIVATEFONTCHARSET_TURKISH = 162,
-  PP_PRIVATEFONTCHARSET_VIETNAMESE = 163,
-  PP_PRIVATEFONTCHARSET_HEBREW = 177,
-  PP_PRIVATEFONTCHARSET_ARABIC = 178,
-  PP_PRIVATEFONTCHARSET_BALTIC = 186,
-  PP_PRIVATEFONTCHARSET_RUSSIAN = 204,
-  PP_PRIVATEFONTCHARSET_THAI = 222,
-  PP_PRIVATEFONTCHARSET_EASTEUROPE = 238,
-  PP_PRIVATEFONTCHARSET_OEM = 255,
-  PP_PRIVATEFONTCHARSET_LAST = PP_PRIVATEFONTCHARSET_OEM
-};
diff --git a/api/private/pp_video_capture_format.idl b/api/private/pp_video_capture_format.idl
deleted file mode 100644
index fa5bada..0000000
--- a/api/private/pp_video_capture_format.idl
+++ /dev/null
@@ -1,29 +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.
- */
-
-/**
- * This file defines the struct used to hold a video capture format.
- */
-
-label Chrome {
-  M42 = 0.1
-};
-
-/**
- * The <code>PP_VideoCaptureFormat</code> struct represents a video capture
- * format.
- */
-[assert_size(12)]
-struct PP_VideoCaptureFormat {
-  /**
-   * Frame size in pixels.
-   */
-  PP_Size frame_size;
-
-  /**
-   * Frame rate in frames per second.
-   */
-  float_t frame_rate;
-};
diff --git a/api/private/pp_video_frame_private.idl b/api/private/pp_video_frame_private.idl
deleted file mode 100644
index 7ce1770..0000000
--- a/api/private/pp_video_frame_private.idl
+++ /dev/null
@@ -1,36 +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.
- */
-
-/**
- * This file defines the struct used to hold a video frame.
- */
-
-/**
- * The <code>PP_VideoFrame_Private</code> struct represents a video frame.
- * Video sources and destinations use frames to transfer video to and from
- * the browser.
- */
-[assert_size(16)]
-struct PP_VideoFrame_Private {
-  /**
-   * A timestamp placing the frame in a video stream.
-   */
-  PP_TimeTicks timestamp;
-
-  /**
-   * An image data resource to hold the video frame.
-   */
-  PP_Resource image_data;
-
-  /**
-   * Ensure that this struct is 16-bytes wide by padding the end.  In some
-   * compilers, PP_TimeTicks is 8-byte aligned, so those compilers align this
-   * struct on 8-byte boundaries as well and pad it to 8 bytes even without this
-   * padding attribute.  This padding makes its size consistent across
-   * compilers.
-   */
-  int32_t padding;
-};
-
diff --git a/api/private/ppb_camera_capabilities_private.idl b/api/private/ppb_camera_capabilities_private.idl
deleted file mode 100644
index 6c6a587..0000000
--- a/api/private/ppb_camera_capabilities_private.idl
+++ /dev/null
@@ -1,55 +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.
- */
-
-/**
- * This file defines the PPB_CameraCapabilities_Private interface for
- * establishing an image capture configuration resource within the browser.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M42 = 0.1
-};
-
-/**
- * The <code>PPB_CameraCapabilities_Private</code> interface contains pointers
- * to several functions for getting the image capture capabilities within the
- * browser.
- */
-[version=0.1]
-interface PPB_CameraCapabilities_Private {
-  /**
-   * IsCameraCapabilities() determines if the given resource is a
-   * <code>PPB_CameraCapabilities_Private</code>.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an image
-   * capture capabilities resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if the given
-   * resource is an <code>PP_CameraCapabilities_Private</code> resource,
-   * otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool IsCameraCapabilities(
-      [in] PP_Resource resource);
-
-  /**
-   * GetSupportedVideoCaptureFormats() returns the supported video capture
-   * formats for the given <code>PPB_CameraCapabilities_Private</code>.
-   *
-   * @param[in] capabilities A <code>PP_Resource</code> corresponding to an
-   * image capture capabilities resource.
-   * @param[out] array_size The size of preview size array.
-   * @param[out] formats An array of <code>PP_VideoCaptureFormat</code>
-   * corresponding to the supported video capture formats. The ownership of the
-   * array belongs to <code>PPB_CameraCapabilities_Private</code> and the caller
-   * should not free it. When a PPB_CameraCapabilities_Private is deleted, the
-   * array returning from this is no longer valid.
-   */
-  void GetSupportedVideoCaptureFormats(
-      [in] PP_Resource capabilities,
-      [out] uint32_t array_size,
-      [out, size_is(array_size)] PP_VideoCaptureFormat[] formats);
-};
diff --git a/api/private/ppb_camera_device_private.idl b/api/private/ppb_camera_device_private.idl
deleted file mode 100644
index 8d1a271..0000000
--- a/api/private/ppb_camera_device_private.idl
+++ /dev/null
@@ -1,96 +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.
- */
-
-/**
- * Defines the <code>PPB_CameraDevice_Private</code> interface. Used for
- * manipulating a camera device.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M42 = 0.1
-};
-
-/**
- * To query camera capabilities:
- * 1. Get a PPB_CameraDevice_Private object by Create().
- * 2. Open() camera device with track id of MediaStream video track.
- * 3. Call GetCameraCapabilities() to get a
- *    <code>PPB_CameraCapabilities_Private</code> object, which can be used to
- *    query camera capabilities.
- */
-interface PPB_CameraDevice_Private {
-  /**
-   * Creates a PPB_CameraDevice_Private resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a
-   * PPB_CameraDevice_Private resource if successful, 0 if failed.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-
-  /**
-   * Determines if a resource is a camera device resource.
-   *
-   * @param[in] resource The <code>PP_Resource</code> to test.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * resource is a camera device resource or <code>PP_FALSE</code>
-   * otherwise.
-   */
-  PP_Bool IsCameraDevice([in] PP_Resource resource);
-
-  /**
-   * Opens a camera device.
-   *
-   * @param[in] camera_device A <code>PP_Resource</code> corresponding to a
-   * camera device resource.
-   * @param[in] device_id A <code>PP_Var</code> identifying a camera device. The
-   * type is string. The ID can be obtained from
-   * navigator.mediaDevices.enumerateDevices() or MediaStreamVideoTrack.id.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of <code>Open()</code>.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t Open(
-      [in] PP_Resource camera_device,
-      [in] PP_Var device_id,
-      [in] PP_CompletionCallback callback);
-
-  /**
-   * Disconnects from the camera and cancels all pending requests.
-   * After this returns, no callbacks will be called. If <code>
-   * PPB_CameraDevice_Private</code> is destroyed and is not closed yet, this
-   * function will be automatically called. Calling this more than once has no
-   * effect.
-   *
-   * @param[in] camera_device A <code>PP_Resource</code> corresponding to a
-   * camera device resource.
-   */
-  void Close([in] PP_Resource camera_device);
-
-  /**
-   * Gets the camera capabilities.
-   *
-   * The camera capabilities do not change for a given camera source.
-   *
-   * @param[in] camera_device A <code>PP_Resource</code> corresponding to a
-   * camera device resource.
-   * @param[out] capabilities A <code>PPB_CameraCapabilities_Private</code> for
-   * storing the camera capabilities on success. Otherwise, the value will not
-   * be changed.
-   * @param[in] callback <code>PP_CompletionCallback</code> to be called upon
-   * completion of <code>GetCameraCapabilities()</code>.
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   */
-  int32_t GetCameraCapabilities([in] PP_Resource camera_device,
-                                [out] PP_Resource capabilities,
-                                [in] PP_CompletionCallback callback);
-};
diff --git a/api/private/ppb_display_color_profile_private.idl b/api/private/ppb_display_color_profile_private.idl
deleted file mode 100644
index e65e2fa..0000000
--- a/api/private/ppb_display_color_profile_private.idl
+++ /dev/null
@@ -1,97 +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.
- */
-
-/**
- * This file defines the <code>PPB_DisplayColorProfile</code> struct used for
- * getting the color profile of the display.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M33 = 0.1
-};
-
-/**
- * <code>PPB_DisplayColorProfile_Private</code> defines the methods for getting
- * the display color profile and monitoring its changes.
- *
- * <strong>Setup:<strong>
- * @code
- * PP_ArrayOutput output = { MyAllocatorFunction, color_profile_data };
- * PP_Resource display_cp = display_cp_interface->Create(instance);
- * display_cp_interface->GetColorProfile(display_cp,
- *                                       output,
- *                                       completion_callback);
- * @endcode
- */
-interface PPB_DisplayColorProfile_Private {
-  /**
-   * Create() creates a display color profile resource.
-   *
-   * @param[in] instance The module instance.
-   * @return A <code>PP_Resource</code> containing a display color profile
-   * resource.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-
-  /**
-   * IsDisplayColorProfile() determines if the given resource is a valid
-   * <code>DisplayColorProfile</code> resource.
-   *
-   * @param[in] resource A <code>DisplayColorProfile</code> context resource.
-   * @return Returns:
-   * - <code>PP_TRUE</code> if the given resource is a valid 
-   *   <code>DisplayColorProfile</code>
-   * - <code>PP_FALSE</code> if it is an invalid resource or is a resource
-   *   of another type.
-   */
-  PP_Bool IsDisplayColorProfile([in] PP_Resource resource);
-
-  /**
-   * GetColorProfile() enqueues a request for the current display color profile.
-   *
-   * This method is intended for getting the color profile data of the display
-   * on which the browser window resides. [However currently Chrome only
-   * considers the system's primary display color profile when doing its color
-   * management. For consistency this method will also return the color profile
-   * that Chrome uses for its browser window.]
-   *
-   * @param[in] display_color_profile_res The display color profile resource.
-   * @param[in] color_profile A <code>PP_OutputArray</code> which on success
-   * will receive a byte array containing the ICC color profile data (see
-   * www.color.org for a reference to the ICC color profile specification
-   * and versions). The returned color profile version is the one supported by
-   * the host system.
-   * @param[in] callback The completion callback to be called once the display
-   * color profile data is available.
-   *
-   * @return Returns an error code from <code>pp_errors.h</code>.
-   */
-  int32_t GetColorProfile([in] PP_Resource display_color_profile_res,
-                          [in] PP_ArrayOutput color_profile,
-                          [in] PP_CompletionCallback callback);
-
-  /**
-   * RegisterColorProfileChangeCallback() registers a callback to be called next
-   * time the color profile for the browser window in which the plugin resides
-   * changes. In order to get notifications for all color profile changes a call
-   * to RegisterColorProfileChangeCallback() function should be done when the
-   * previous notification was fired.
-   *
-   * There might be 2 scenarios in which the color profile for a window changes:
-   * a) The window is moved from one display to another;
-   * b) The user changes the display color space from the system settings.
-   *
-   * @param[in] display_color_profile_res The display color profile resource.
-   * @param[in] callback The callback to be invoked next time the display
-   * color profile changes.
-   *
-   * @return Returns an error code from <code>pp_errors.h</code>.
-   */
-  int32_t RegisterColorProfileChangeCallback(
-      [in] PP_Resource display_color_profile_res,
-      [in] PP_CompletionCallback callback);
-};
diff --git a/api/private/ppb_ext_crx_file_system_private.idl b/api/private/ppb_ext_crx_file_system_private.idl
deleted file mode 100644
index 407f527..0000000
--- a/api/private/ppb_ext_crx_file_system_private.idl
+++ /dev/null
@@ -1,31 +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.
- */
-
-/**
- * This file contains the <code>PPB_Ext_CrxFileSystem_Private</code> interface.
- */
-label Chrome {
-  M28 = 0.1
-};
-
-/* <code>PPB_Ext_CrxFileSystem_Private</code> interface */
-interface PPB_Ext_CrxFileSystem_Private {
-  /**
-   * Open() opens the CRX file system for the current extension.  It will fail
-   * when called from non-extension context.
-   *
-   * @param[in] crxfs A <code>PP_Resource</code> corresponding to a
-   * CrxFileSystem.
-   * @param[out] file_system An output <code>PP_Resource</code> corresponding
-   * to a PPB_FileSystem.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Open.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t Open([in] PP_Instance instance,
-               [out] PP_Resource file_system,
-               [in] PP_CompletionCallback callback);
-};
diff --git a/api/private/ppb_file_io_private.idl b/api/private/ppb_file_io_private.idl
deleted file mode 100644
index f83d7f9..0000000
--- a/api/private/ppb_file_io_private.idl
+++ /dev/null
@@ -1,26 +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.
- */
-
-#inline c
-#include "ppapi/c/private/pp_file_handle.h"
-#endinl
-
-/* This file contains the <code>PPB_FileIO_Private</code> interface. */
-label Chrome {
-  M28 = 0.1
-};
-
-/* PPB_FileIO_Private interface */
-interface PPB_FileIO_Private {
-  /**
-   * Returns a file handle corresponding to the given FileIO
-   * object.  The FileIO object must have been opened with a
-   * successful call to FileIO::Open.  The caller gets the ownership
-   * of the returned file handle and must close it.
-   */
-  int32_t RequestOSFileHandle([in] PP_Resource file_io,
-                              [out] PP_FileHandle handle,
-                              [in] PP_CompletionCallback callback);
-};
diff --git a/api/private/ppb_file_ref_private.idl b/api/private/ppb_file_ref_private.idl
deleted file mode 100644
index a775752..0000000
--- a/api/private/ppb_file_ref_private.idl
+++ /dev/null
@@ -1,24 +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.
- */
-
-/* This file contains the <code>PPB_FileRefPrivate</code> interface. */
-label Chrome {
-  M15 = 0.1
-};
-
-/* PPB_FileRefPrivate interface */
-interface PPB_FileRefPrivate {
-  /**
-   * GetAbsolutePath() returns the absolute path of the file.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   *
-   * @return A <code>PP_Var</code> containing the absolute path of the file.
-   */
-  PP_Var GetAbsolutePath([in] PP_Resource file_ref);
-};
-
-
diff --git a/api/private/ppb_host_resolver_private.idl b/api/private/ppb_host_resolver_private.idl
deleted file mode 100644
index f67914b..0000000
--- a/api/private/ppb_host_resolver_private.idl
+++ /dev/null
@@ -1,79 +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.
- */
-
-/**
- * This file defines the <code>PPB_HostResolver_Private</code> interface.
- */
-
-label Chrome {
-  M19 = 0.1
-};
-
-/**
- * The <code>PP_HostResolver_Flags</code> is an enumeration of the
- * different types of flags, that can be OR-ed and passed to host
- * resolver.
- */
-[assert_size(4)]
-enum PP_HostResolver_Private_Flags {
-  /**
-   * AI_CANONNAME
-   */
-  PP_HOST_RESOLVER_PRIVATE_FLAGS_CANONNAME = 1 << 0,
-  /**
-   * Hint to the resolver that only loopback addresses are configured.
-   */
-  PP_HOST_RESOLVER_PRIVATE_FLAGS_LOOPBACK_ONLY = 1 << 1
-};
-
-[assert_size(8)]
-struct PP_HostResolver_Private_Hint {
-  PP_NetAddressFamily_Private family;
-  int32_t flags;
-};
-
-interface PPB_HostResolver_Private {
-  /**
-   * Allocates a Host Resolver resource.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-
-  /**
-   * Determines if a given resource is a Host Resolver.
-   */
-  PP_Bool IsHostResolver([in] PP_Resource resource);
-
-  /**
-   * Creates a new request to Host Resolver. |callback| is invoked
-   * when request is processed and a list of network addresses is
-   * obtained. These addresses can be be used in Connect, Bind or
-   * Listen calls to connect to a given |host| and |port|.
-   */
-  int32_t Resolve([in] PP_Resource host_resolver,
-                  [in] str_t host,
-                  [in] uint16_t port,
-                  [in] PP_HostResolver_Private_Hint hint,
-                  [in] PP_CompletionCallback callback);
-
-  /**
-   * Returns canonical name of host.
-   */
-  PP_Var GetCanonicalName([in] PP_Resource host_resolver);
-
-  /**
-   * Returns number of network addresses obtained after Resolve call.
-   */
-  uint32_t GetSize([in] PP_Resource host_resolver);
-
-  /**
-   * Stores in the |addr| |index|-th network address. |addr| can't be
-   * NULL. Returns PP_TRUE if success or PP_FALSE if the given
-   * resource is not a Host Resolver or |index| exceeds number of
-   * available addresses.
-  */
-  PP_Bool GetNetAddress([in] PP_Resource host_resolver,
-                        [in] uint32_t index,
-                        [out] PP_NetAddress_Private addr);
-};
diff --git a/api/private/ppb_instance_private.idl b/api/private/ppb_instance_private.idl
deleted file mode 100644
index 5a127ae..0000000
--- a/api/private/ppb_instance_private.idl
+++ /dev/null
@@ -1,80 +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.
- */
-
-/**
- * This file defines the PPB_Instance_Private interface implemented by the
- * browser and containing pointers to functions available only to trusted plugin
- * instances.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M13 = 0.1
-};
-
-/**
- * The <code>PP_ExternalPluginResult </code> enum contains result codes from
- * launching an external plugin.
- */
-[assert_size(4)]
-enum PP_ExternalPluginResult  {
-  /** Successful external plugin call */
-  PP_EXTERNAL_PLUGIN_OK = 0,
-  /** Unspecified external plugin error */
-  PP_EXTERNAL_PLUGIN_FAILED = 1,
-  /** Error creating the module */
-  PP_EXTERNAL_PLUGIN_ERROR_MODULE = 2,
-  /** Error creating and initializing the instance */
-  PP_EXTERNAL_PLUGIN_ERROR_INSTANCE = 3
-};
-
-
-/**
- * The PPB_Instance_Private interface contains functions available only to
- * trusted plugin instances.
- *
- */
-interface PPB_Instance_Private {
-  /**
-   * GetWindowObject is a pointer to a function that determines
-   * the DOM window containing this module instance.
-   *
-   * @param[in] instance A PP_Instance whose WindowObject should be retrieved.
-   * @return A PP_Var containing window object on success.
-   */
-  PP_Var GetWindowObject([in] PP_Instance instance);
-
-  /**
-   * GetOwnerElementObject is a pointer to a function that determines
-   * the DOM element containing this module instance.
-   *
-   * @param[in] instance A PP_Instance whose WindowObject should be retrieved.
-   * @return A PP_Var containing DOM element on success.
-   */
-  PP_Var GetOwnerElementObject([in] PP_Instance instance);
-
-  /**
-   * ExecuteScript is a pointer to a function that executes the given
-   * script in the context of the frame containing the module.
-   *
-   * The exception, if any, will be returned in *exception. As with the PPB_Var
-   * interface, the exception parameter, if non-NULL, must be initialized
-   * to a "void" var or the function will immediately return. On success,
-   * the exception parameter will be set to a "void" var. On failure, the
-   * return value will be a "void" var.
-   *
-   * @param[in] script A string containing the JavaScript to execute.
-   * @param[in/out] exception PP_Var containing the exception. Initialize
-   * this to NULL if you don't want exception info; initialize this to a void
-   * exception if want exception info.
-   *
-   * @return The result of the script execution, or a "void" var
-   * if execution failed.
-   */
-  PP_Var ExecuteScript([in] PP_Instance instance,
-                       [in] PP_Var script,
-                       [out] PP_Var exception);
-};
diff --git a/api/private/ppb_isolated_file_system_private.idl b/api/private/ppb_isolated_file_system_private.idl
deleted file mode 100644
index 2e415c2..0000000
--- a/api/private/ppb_isolated_file_system_private.idl
+++ /dev/null
@@ -1,52 +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.
- */
-
-[generate_thunk,thunk_include="ppapi/thunk/ppb_isolated_file_system_private_api.h"]
-
-/**
- * This file contains the <code>PPB_IsolatedFileSystem_Private</code> interface.
- */
-label Chrome {
-  M33 = 0.2
-};
-
-
-/**
- * The <code>PP_IsolatedFileSystemType_Private</code> values indicate the type
- * of isolated file systems.
- */
-[assert_size(4)]
-enum PP_IsolatedFileSystemType_Private {
-  /** Type for invalid file systems */
-  PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_INVALID = 0,
-  /** Type for CRX file systems */
-  PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_CRX = 1
-};
-
-/* <code>PPB_IsolatedFileSystem_Private</code> interface */
-interface PPB_IsolatedFileSystem_Private {
-  /**
-   * Open() opens a file system corresponding the given file system type.
-   *
-   * When opening the CRX file system, this should be called from an extension
-   * context, otherwise it will fail. 
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * with the file system.
-   * @param[in] type A file system type as defined by
-   * <code>PP_IsolatedFileSystemType_Private</code> enum.
-   * @param[out] file_system An output <code>PP_Resource</code> corresponding
-   * to a PPB_FileSystem.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Open.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  [singleton,api=PPB_IsolatedFileSystem_Private_API]
-  int32_t Open([in] PP_Instance instance,
-               [in] PP_IsolatedFileSystemType_Private type,
-               [out] PP_Resource file_system,
-               [in] PP_CompletionCallback callback);
-};
diff --git a/api/private/ppb_net_address_private.idl b/api/private/ppb_net_address_private.idl
deleted file mode 100644
index f8495f7..0000000
--- a/api/private/ppb_net_address_private.idl
+++ /dev/null
@@ -1,129 +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.
- */
-
-/**
- * This file defines the <code>PPB_NetAddress_Private</code> interface.
- */
-
-label Chrome {
-    M13 = 0.0,
-    M17 = 0.1,
-    M19_0 = 1.0,
-    M19_1 = 1.1
-};
-
-[assert_size(4)]
-enum PP_NetAddressFamily_Private {
-  /**
-   * The address family is unspecified.
-   */
-  PP_NETADDRESSFAMILY_PRIVATE_UNSPECIFIED = 0,
-  /**
-   * The Internet Protocol version 4 (IPv4) address family.
-   */
-  PP_NETADDRESSFAMILY_PRIVATE_IPV4 = 1,
-  /**
-   * The Internet Protocol version 6 (IPv6) address family.
-   */
-  PP_NETADDRESSFAMILY_PRIVATE_IPV6 = 2
-};
-
-/**
- * This is an opaque type holding a network address. Plugins must
- * never access members of this struct directly.
- */
-[assert_size(132)]
-struct PP_NetAddress_Private {
-  uint32_t size;
-  int8_t[128] data;
-};
-
-/**
- * The <code>PPB_NetAddress_Private</code> interface provides operations on
- * network addresses.
- */
-[version=0.1] interface PPB_NetAddress_Private {
-  /**
-   * Returns PP_TRUE if the two addresses are equal (host and port).
-   */
-  PP_Bool AreEqual([in] PP_NetAddress_Private addr1,
-                   [in] PP_NetAddress_Private addr2);
-
-  /**
-   * Returns PP_TRUE if the two addresses refer to the same host.
-   */
-  PP_Bool AreHostsEqual([in] PP_NetAddress_Private addr1,
-                        [in] PP_NetAddress_Private addr2);
-
-  /**
-   * Returns a human-readable description of the network address, optionally
-   * including the port (e.g., "192.168.0.1", "192.168.0.1:99", or "[::1]:80"),
-   * or an undefined var on failure.
-   */
-  PP_Var Describe([in] PP_Module module,
-                  [in] PP_NetAddress_Private addr,
-                  [in] PP_Bool include_port);
-
-  /**
-   * Replaces the port in the given source address. Returns PP_TRUE on success.
-   */
-  PP_Bool ReplacePort([in] PP_NetAddress_Private src_addr,
-                      [in] uint16_t port,
-                      [out] PP_NetAddress_Private addr_out);
-
-  /**
-   * Gets the "any" address (for IPv4 or IPv6); for use with UDP Bind.
-   */
-  void GetAnyAddress([in] PP_Bool is_ipv6,
-                     [out] PP_NetAddress_Private addr);
-
-  /**
-   * Gets the address family.
-   */
-  [version=1.0]
-  PP_NetAddressFamily_Private GetFamily([in] PP_NetAddress_Private addr);
-
-  /**
-   * Gets the port. The port is returned in host byte order.
-   */
-  [version=1.0]
-  uint16_t GetPort([in] PP_NetAddress_Private addr);
-
-  /**
-   * Gets the address. The output, address, must be large enough for the
-   * current socket family. The output will be the binary representation of an
-   * address for the current socket family. For IPv4 and IPv6 the address is in
-   * network byte order. PP_TRUE is returned if the address was successfully
-   * retrieved.
-   */
-  [version=1.0]
-  PP_Bool GetAddress([in] PP_NetAddress_Private addr,
-                     [out] mem_t address,
-                     [in] uint16_t address_size);
-
-  /**
-   * Returns ScopeID for IPv6 addresses or 0 for IPv4.
-   */
-  [version=1.1]
-  uint32_t GetScopeID([in] PP_NetAddress_Private addr);
-
-  /**
-   * Creates NetAddress with the specified IPv4 address and port
-   * number.
-   */
-  [version=1.1]
-  void CreateFromIPv4Address([in] uint8_t[4] ip,
-                             [in] uint16_t port,
-                             [out] PP_NetAddress_Private addr_out);
-  /**
-   * Creates NetAddress with the specified IPv6 address, scope_id and
-   * port number.
-   */
-  [version=1.1]
-  void CreateFromIPv6Address([in] uint8_t[16] ip,
-                             [in] uint32_t scope_id,
-                             [in] uint16_t port,
-                             [out] PP_NetAddress_Private addr_out);
-};
diff --git a/api/private/ppb_tcp_server_socket_private.idl b/api/private/ppb_tcp_server_socket_private.idl
deleted file mode 100644
index 9115885..0000000
--- a/api/private/ppb_tcp_server_socket_private.idl
+++ /dev/null
@@ -1,71 +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.
- */
-
-/**
- * This file defines the <code>PPB_TCPServerSocket_Private</code> interface.
- */
-
-label Chrome {
-  M18 = 0.1,
-  M28 = 0.2
-};
-
-/**
- * The <code>PPB_TCPServerSocket_Private</code> interface provides TCP
- * server socket operations.
- */
-interface PPB_TCPServerSocket_Private {
-  /**
-   * Allocates a TCP server socket resource.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-
-  /**
-   * Determines if a given resource is TCP server socket.
-   */
-  PP_Bool IsTCPServerSocket([in] PP_Resource resource);
-
-  /**
-   * Binds |tcp_server_socket| to the address given by |addr| and
-   * starts listening.  The |backlog| argument defines the maximum
-   * length to which the queue of pending connections may
-   * grow. |callback| is invoked when |tcp_server_socket| is ready to
-   * accept incoming connections or in the case of failure. Returns
-   * PP_ERROR_NOSPACE if socket can't be initialized, or
-   * PP_ERROR_FAILED in the case of Listen failure. Otherwise, returns
-   * PP_OK.
-   */
-  int32_t Listen([in] PP_Resource tcp_server_socket,
-                 [in] PP_NetAddress_Private addr,
-                 [in] int32_t backlog,
-                 [in] PP_CompletionCallback callback);
-
-  /**
-   * Accepts single connection, creates instance of
-   * PPB_TCPSocket_Private and stores reference to it in
-   * |tcp_socket|. |callback| is invoked when connection is accepted
-   * or in the case of failure. This method can be called only after
-   * successful Listen call on |tcp_server_socket|.
-   */
-  int32_t Accept([in] PP_Resource tcp_server_socket,
-                 [out] PP_Resource tcp_socket,
-                 [in] PP_CompletionCallback callback);
-
-  /**
-   * Returns the current address to which the socket is bound, in the
-   * buffer pointed to by |addr|. This method can be called only after
-   * successful Listen() call and before StopListening() call.
-   */
-  [version=0.2]
-  int32_t GetLocalAddress([in] PP_Resource tcp_server_socket,
-                          [out] PP_NetAddress_Private addr);
-
-  /**
-   * Cancels all pending callbacks reporting PP_ERROR_ABORTED and
-   * closes the socket. Note: this method is implicitly called when
-   * server socket is destroyed.
-   */
-  void StopListening([in] PP_Resource tcp_server_socket);
-};
diff --git a/api/private/ppb_tcp_socket_private.idl b/api/private/ppb_tcp_socket_private.idl
deleted file mode 100644
index d2cb4a5..0000000
--- a/api/private/ppb_tcp_socket_private.idl
+++ /dev/null
@@ -1,162 +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.
- */
-
-/**
- * This file defines the <code>PPB_TCPSocket_Private</code> interface.
- */
-
-label Chrome {
-  M17 = 0.3,
-  M20 = 0.4,
-  M27 = 0.5
-};
-
-[assert_size(4)]
-enum PP_TCPSocketOption_Private {
-  // Special value used for testing. Guaranteed to fail SetOption().
-  PP_TCPSOCKETOPTION_PRIVATE_INVALID = 0,
-
-  // Disable coalescing of small writes to make TCP segments, and instead
-  // deliver data immediately. For SSL sockets, this option must be set before
-  // SSLHandshake() is called. Value type is PP_VARTYPE_BOOL.
-  PP_TCPSOCKETOPTION_PRIVATE_NO_DELAY = 1
-};
-
-/**
- * The <code>PPB_TCPSocket_Private</code> interface provides TCP socket
- * operations.
- */
-interface PPB_TCPSocket_Private {
-  /**
-   * Allocates a TCP socket resource.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-
-  /**
-   * Determines if a given resource is TCP socket.
-   */
-  PP_Bool IsTCPSocket([in] PP_Resource resource);
-
-  /**
-   * Connects to a TCP port given as a host-port pair.
-   * When a proxy server is used, |host| and |port| refer to the proxy server
-   * instead of the destination server.
-   */
-  int32_t Connect([in] PP_Resource tcp_socket,
-                  [in] str_t host,
-                  [in] uint16_t port,
-                  [in] PP_CompletionCallback callback);
-
-  /**
-   * Same as Connect(), but connecting to the address given by |addr|. A typical
-   * use-case would be for reconnections.
-   */
-  int32_t ConnectWithNetAddress([in] PP_Resource tcp_socket,
-                                [in] PP_NetAddress_Private addr,
-                                [in] PP_CompletionCallback callback);
-
-  /**
-   * Gets the local address of the socket, if it has been connected.
-   * Returns PP_TRUE on success.
-   */
-  PP_Bool GetLocalAddress([in] PP_Resource tcp_socket,
-                          [out] PP_NetAddress_Private local_addr);
-
-  /**
-   * Gets the remote address of the socket, if it has been connected.
-   * Returns PP_TRUE on success.
-   */
-  PP_Bool GetRemoteAddress([in] PP_Resource tcp_socket,
-                           [out] PP_NetAddress_Private remote_addr);
-
-  /**
-   * Does SSL handshake and moves to sending and receiving encrypted data. The
-   * socket must have been successfully connected. |server_name| will be
-   * compared with the name(s) in the server's certificate during the SSL
-   * handshake. |server_port| is only used to identify an SSL server in the SSL
-   * session cache.
-   * When a proxy server is used, |server_name| and |server_port| refer to the
-   * destination server.
-   * If the socket is not connected, or there are pending read/write requests,
-   * SSLHandshake() will fail without starting a handshake. Otherwise, any
-   * failure during the handshake process will cause the socket to be
-   * disconnected.
-   */
-  int32_t SSLHandshake([in] PP_Resource tcp_socket,
-                       [in] str_t server_name,
-                       [in] uint16_t server_port,
-                       [in] PP_CompletionCallback callback);
-
-  /**
-   * Returns the server's <code>PPB_X509Certificate_Private</code> for a socket
-   * connection if an SSL connection has been established using
-   * <code>SSLHandshake</code>. If no SSL connection has been established, a
-   * null resource is returned.
-   */
-  [version=0.4]
-  PP_Resource GetServerCertificate([in] PP_Resource tcp_socket);
-
-  /**
-   * NOTE: This function is not implemented and will return
-   * <code>PP_FALSE</code>.
-   * Adds a trusted/untrusted chain building certificate to be used for this
-   * connection. The <code>certificate</code> must be a
-   * <code>PPB_X509Certificate_Private<code>. <code>PP_TRUE</code> is returned
-   * upon success.
-   */
-  [version=0.4]
-  PP_Bool AddChainBuildingCertificate([in] PP_Resource tcp_socket,
-                                      [in] PP_Resource certificate,
-                                      [in] PP_Bool is_trusted);
-
-  /**
-   * Reads data from the socket. The size of |buffer| must be at least as large
-   * as |bytes_to_read|. May perform a partial read. Returns the number of bytes
-   * read or an error code. If the return value is 0, then it indicates that
-   * end-of-file was reached.
-   * This method won't return more than 1 megabyte, so if |bytes_to_read|
-   * exceeds 1 megabyte, it will always perform a partial read.
-   * Multiple outstanding read requests are not supported.
-   */
-  int32_t Read([in] PP_Resource tcp_socket,
-               [out] str_t buffer,
-               [in] int32_t bytes_to_read,
-               [in] PP_CompletionCallback callback);
-
-  /**
-   * Writes data to the socket. May perform a partial write. Returns the number
-   * of bytes written or an error code.
-   * This method won't write more than 1 megabyte, so if |bytes_to_write|
-   * exceeds 1 megabyte, it will always perform a partial write.
-   * Multiple outstanding write requests are not supported.
-   */
-  int32_t Write([in] PP_Resource tcp_socket,
-                [in] str_t buffer,
-                [in] int32_t bytes_to_write,
-                [in] PP_CompletionCallback callback);
-
-  /**
-   * Cancels any IO that may be pending, and disconnects the socket. Any pending
-   * callbacks will still run, reporting PP_Error_Aborted if pending IO was
-   * interrupted. It is NOT valid to call Connect() again after a call to this
-   * method. Note: If the socket is destroyed when it is still connected, then
-   * it will be implicitly disconnected, so you are not required to call this
-   * method.
-   */
-  void Disconnect([in] PP_Resource tcp_socket);
-
-  /**
-   * Sets an option on |tcp_socket|.  Supported |name| and |value| parameters
-   * are as described for PP_TCPSocketOption_Private.  |callback| will be
-   * invoked with PP_OK if setting the option succeeds, or an error code
-   * otherwise. The socket must be connection before SetOption is called.
-   */
-  [version=0.5]
-  int32_t SetOption([in] PP_Resource tcp_socket,
-                    [in] PP_TCPSocketOption_Private name,
-                    [in] PP_Var value,
-                    [in] PP_CompletionCallback callback);
-
-};
diff --git a/api/private/ppb_testing_private.idl b/api/private/ppb_testing_private.idl
deleted file mode 100644
index b6d0ed0..0000000
--- a/api/private/ppb_testing_private.idl
+++ /dev/null
@@ -1,139 +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.
- */
-
-/**
- * This file contains interface functions used for unit testing. Do not use in
- * production code. They are not guaranteed to be available in normal plugin
- * environments so you should not depend on them.
- */
-
-label Chrome {
-  M33 = 1.0
-};
-
-interface PPB_Testing_Private {
-  /**
-   * Reads the bitmap data out of the backing store for the given
-   * DeviceContext2D and into the given image. If the data was successfully
-   * read, it will return PP_TRUE.
-   *
-   * This function should not generally be necessary for normal plugin
-   * operation. If you want to update portions of a device, the expectation is
-   * that you will either regenerate the data, or maintain a backing store
-   * pushing updates to the device from your backing store via PaintImageData.
-   * Using this function will introduce an extra copy which will make your
-   * plugin slower. In some cases, this may be a very expensive operation (it
-   * may require slow cross-process transitions or graphics card readbacks).
-   *
-   * Data will be read into the image starting at |top_left| in the device
-   * context, and proceeding down and to the right for as many pixels as the
-   * image is large. If any part of the image bound would fall outside of the
-   * backing store of the device if positioned at |top_left|, this function
-   * will fail and return PP_FALSE.
-   *
-   * The image format must be of the format
-   * PPB_ImageData.GetNativeImageDataFormat() or this function will fail and
-   * return PP_FALSE.
-   *
-   * The returned image data will represent the current status of the backing
-   * store. This will not include any paint, scroll, or replace operations
-   * that have not yet been flushed; these operations are only reflected in
-   * the backing store (and hence ReadImageData) until after a Flush()
-   * operation has completed.
-   */
-  PP_Bool ReadImageData([in] PP_Resource device_context_2d,
-                        [in] PP_Resource image,
-                        [in] PP_Point top_left);
-
-  /**
-   * Runs a nested run loop. The plugin will be reentered from this call.
-   * This function is used for unit testing the API. The normal pattern is to
-   * issue some asynchronous call that has a callback. Then you call
-   * RunMessageLoop which will suspend the plugin and go back to processing
-   * messages, giving the asynchronous operation time to complete. In your
-   * callback, you save the data and call QuitMessageLoop, which will then
-   * pop back up and continue with the test. This avoids having to write a
-   * complicated state machine for simple tests for asynchronous APIs.
-   */
-  void RunMessageLoop([in] PP_Instance instance);
-
-  /**
-   * Posts a quit message for the outermost nested run loop. Use this to
-   * exit and return back to the caller after you call RunMessageLoop.
-   */
-  void QuitMessageLoop([in] PP_Instance instance);
-
-  /**
-   * Returns the number of live objects (resources + strings + objects)
-   * associated with this plugin instance. Used for detecting leaks. Returns
-   * (uint32_t)-1 on failure.
-   */
-  uint32_t GetLiveObjectsForInstance([in] PP_Instance instance);
-
-  /**
-   * Returns PP_TRUE if the plugin is running out-of-process, PP_FALSE
-   * otherwise.
-   */
-  PP_Bool IsOutOfProcess();
-
-  /**
-   * Passes the input event to the browser, which sends it back to the
-   * plugin. The plugin should implement PPP_InputEvent and register for
-   * the input event type.
-   *
-   * This method sends an input event through the browser just as if it had
-   * come from the user. If the browser determines that it is an event for the
-   * plugin, it will be sent to be handled by the plugin's PPP_InputEvent
-   * interface. When generating mouse events, make sure the position is within
-   * the plugin's area on the page. When generating a keyboard event, make sure
-   * the plugin is focused.
-   *
-   * Note that the browser may generate extra input events in order to
-   * maintain certain invariants, such as always having a "mouse enter" event
-   * before any other mouse event. Furthermore, the event the plugin receives
-   * after sending a simulated event will be slightly different from the
-   * original event. The browser may change the timestamp, add modifiers, and
-   * slightly alter the mouse position, due to coordinate transforms it
-   * performs.
-   */
-  void SimulateInputEvent([in] PP_Instance instance,
-                          [in] PP_Resource input_event);
-
-  /**
-   * Returns the URL for the document. This is a safe way to retrieve
-   * window.location.href.
-   * If the canonicalized URL is valid, the method will parse the URL
-   * and fill in the components structure. This pointer may be NULL
-   * to specify that no component information is necessary.
-   */
-  PP_Var GetDocumentURL([in] PP_Instance instance,
-                        [out] PP_URLComponents_Dev components);
-
-  /**
-   * Fetches up to |array_size| active PP_Vars in the tracker. Returns the
-   * number of vars in the tracker. The active vars are written to |live_vars|
-   * contiguously starting at index 0. The vars are not in any particular order.
-   * If the number of live vars is greater than |array_size|, then an arbitrary
-   * subset of |array_size| vars is written to |live_vars|. The reference count
-   * of the returned PP_Vars will *not* be affected by this call.
-   */
-  uint32_t GetLiveVars([size_as=array_size] PP_Var[] live_vars,
-                       [in] uint32_t array_size);
-
-  /**
-   * Sets the threshold size at which point we switch from transmitting
-   * array buffers in IPC messages to using shared memory. This is only used
-   * for testing purposes where we need to transmit small buffers using shmem
-   * (in order to have fast tests). Passing a value of 0 resets the threshold
-   * to its default. The threshold is in bytes.
-   */
-  void SetMinimumArrayBufferSizeForShmem([in] PP_Instance instance,
-                                         [in] uint32_t threshold);
-
-  /**
-   * Run the V8 garbage collector for tests.
-   */
-  void RunV8GC([in] PP_Instance instance);
-};
diff --git a/api/private/ppb_udp_socket_private.idl b/api/private/ppb_udp_socket_private.idl
deleted file mode 100644
index 5c473a2..0000000
--- a/api/private/ppb_udp_socket_private.idl
+++ /dev/null
@@ -1,98 +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.
- */
-
-/**
- * This file defines the <code>PPB_UDPSocket_Private</code> interface.
- */
-
-label Chrome {
-  M17 = 0.2,
-  M19 = 0.3,
-  M23 = 0.4
-};
-
-[assert_size(4)]
-enum PP_UDPSocketFeature_Private {
-  // Allow the socket to share the local address to which socket will
-  // be bound with other processes. Value's type should be
-  // PP_VARTYPE_BOOL.
-  PP_UDPSOCKETFEATURE_PRIVATE_ADDRESS_REUSE = 0,
-
-  // Allow sending and receiving packets sent to and from broadcast
-  // addresses. Value's type should be PP_VARTYPE_BOOL.
-  PP_UDPSOCKETFEATURE_PRIVATE_BROADCAST = 1,
-
-  // Special value for counting the number of available
-  // features. Should not be passed to SetSocketFeature().
-  PP_UDPSOCKETFEATURE_PRIVATE_COUNT = 2
-};
-
-interface PPB_UDPSocket_Private {
-  /**
-   * Creates a UDP socket resource.
-   */
-  PP_Resource Create([in] PP_Instance instance_id);
-
-  /**
-   * Determines if a given resource is a UDP socket.
-   */
-  PP_Bool IsUDPSocket([in] PP_Resource resource_id);
-
-  /**
-   * Sets a socket feature to |udp_socket|. Should be called before
-   * Bind(). Possible values for |name|, |value| and |value|'s type
-   * are described in PP_UDPSocketFeature_Private description. If no
-   * error occurs, returns PP_OK. Otherwise, returns
-   * PP_ERROR_BADRESOURCE (if bad |udp_socket| provided),
-   * PP_ERROR_BADARGUMENT (if bad name/value/value's type provided)
-   * or PP_ERROR_FAILED in the case of internal errors.
-   */
-  [version=0.4]
-  int32_t SetSocketFeature([in] PP_Resource udp_socket,
-                           [in] PP_UDPSocketFeature_Private name,
-                           [in] PP_Var value);
-
-  /* Creates a socket and binds to the address given by |addr|. */
-  int32_t Bind([in] PP_Resource udp_socket,
-               [in] PP_NetAddress_Private addr,
-               [in] PP_CompletionCallback callback);
-
-  /* Returns the address that the socket has bound to.  A successful
-   * call to Bind must be called first. Returns PP_FALSE if Bind
-   * fails, or if Close has been called.
-   */
-  [version=0.3]
-  PP_Bool GetBoundAddress([in] PP_Resource udp_socket,
-                          [out] PP_NetAddress_Private addr);
-
-  /* Performs a non-blocking recvfrom call on socket.
-   * Bind must be called first. |callback| is invoked when recvfrom
-   * reads data.  You must call GetRecvFromAddress to recover the
-   * address the data was retrieved from.
-   */
-  int32_t RecvFrom([in] PP_Resource udp_socket,
-                   [out] str_t buffer,
-                   [in] int32_t num_bytes,
-                   [in] PP_CompletionCallback callback);
-
-  /* Upon successful completion of RecvFrom, the address that the data
-   * was received from is stored in |addr|.
-   */
-  PP_Bool GetRecvFromAddress([in] PP_Resource udp_socket,
-                             [out] PP_NetAddress_Private addr);
-
-  /* Performs a non-blocking sendto call on the socket created and
-   * bound(has already called Bind).  The callback |callback| is
-   * invoked when sendto completes.
-   */
-  int32_t SendTo([in] PP_Resource udp_socket,
-                 [in] str_t buffer,
-                 [in] int32_t num_bytes,
-                 [in] PP_NetAddress_Private addr,
-                 [in] PP_CompletionCallback callback);
-
-  /* Cancels all pending reads and writes, and closes the socket. */
-  void Close([in] PP_Resource udp_socket);
-};
diff --git a/api/private/ppb_uma_private.idl b/api/private/ppb_uma_private.idl
deleted file mode 100644
index f1bf6cb..0000000
--- a/api/private/ppb_uma_private.idl
+++ /dev/null
@@ -1,67 +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.
- */
-
-/**
- * This file defines the <code>PPB_UMA_Private</code> interface.
- */
-
-[generate_thunk,thunk_include="ppapi/thunk/ppb_uma_singleton_api.h"]
-
-label Chrome {
-  M35 = 0.3
-};
-
-/**
- * Contains functions for plugins to report UMA usage stats.
- */
-interface PPB_UMA_Private {
-  /**
-   * HistogramCustomTimes is a pointer to a function which records a time
-   * sample given in milliseconds in the histogram given by |name|, possibly
-   * creating the histogram if it does not exist.
-   */
-  [singleton,api=PPB_UMA_Singleton_API]
-  void HistogramCustomTimes([in] PP_Instance instance,
-                            [in] PP_Var name,
-                            [in] int64_t sample,
-                            [in] int64_t min,
-                            [in] int64_t max,
-                            [in] uint32_t bucket_count);
-
-  /**
-   * HistogramCustomCounts is a pointer to a function which records a sample
-   * in the histogram given by |name|, possibly creating the histogram if it
-   * does not exist.
-   */
-  [singleton,api=PPB_UMA_Singleton_API]
-  void HistogramCustomCounts([in] PP_Instance instance,
-                             [in] PP_Var name,
-                             [in] int32_t sample,
-                             [in] int32_t min,
-                             [in] int32_t max,
-                             [in] uint32_t bucket_count);
-
-  /**
-   * HistogramEnumeration is a pointer to a function which records a sample
-   * in the histogram given by |name|, possibly creating the histogram if it
-   * does not exist.  The sample represents a value in an enumeration bounded
-   * by |boundary_value|, that is, sample < boundary_value always.
-   */
-  [singleton,api=PPB_UMA_Singleton_API]
-  void HistogramEnumeration([in] PP_Instance instance,
-                            [in] PP_Var name,
-                            [in] int32_t sample,
-                            [in] int32_t boundary_value);
-
-  /**
-   * IsCrashReportingEnabled returns PP_OK to the completion callback to
-   * indicate that the current user has opted-in to crash reporting, or
-   * PP_ERROR_* on failure or when a user has not opted-in.  This can be used to
-   * gate other reporting processes such as analytics and crash reporting.
-   */
-   [singleton,api=PPB_UMA_Singleton_API]
-   int32_t IsCrashReportingEnabled([in] PP_Instance instance,
-                                   [in] PP_CompletionCallback callback);
-};
diff --git a/api/private/ppb_x509_certificate_private.idl b/api/private/ppb_x509_certificate_private.idl
deleted file mode 100644
index 9280f3c..0000000
--- a/api/private/ppb_x509_certificate_private.idl
+++ /dev/null
@@ -1,173 +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.
- */
-
-/**
- * This file defines the <code>PPB_X509Certificate_Private</code> interface for
- * an X509 certificate.
- */
-
-label Chrome {
-  M19 = 0.1
-};
-
-/**
- * This enumeration corresponds to fields of an X509 certificate. Refer to
- * <a href="http://www.ietf.org/rfc/rfc5280.txt>RFC 5280</a> for further
- * documentation about particular fields.
- */
-[assert_size(4)]
-enum PP_X509Certificate_Private_Field {
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_COMMON_NAME = 0,
-
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_LOCALITY_NAME = 1,
-
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_STATE_OR_PROVINCE_NAME = 2,
-
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_COUNTRY_NAME = 3,
-
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_ORGANIZATION_NAME = 4,
-
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_ORGANIZATION_UNIT_NAME = 5,
-
-  /**
-   * Note: This field is unimplemented and will return
-   * <code>PP_VARTYPE_NULL</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_UNIQUE_ID = 6,
-
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_COMMON_NAME = 7,
-
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_LOCALITY_NAME = 8,
-
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_STATE_OR_PROVINCE_NAME = 9,
-
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_COUNTRY_NAME = 10,
-
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_ORGANIZATION_NAME = 11,
-
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_ORGANIZATION_UNIT_NAME = 12,
-
-  /**
-   * Note: This field is unimplemented and will return
-   * <code>PP_VARTYPE_NULL</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_UNIQUE_ID = 13,
-
-  /**
-   * Note: This field is unimplemented and will return
-   * <code>PP_VARTYPE_NULL</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_VERSION = 14,
-
-  /**
-   * This corresponds to a byte array (<code>PP_VARTYPE_ARRAY_BUFFER</code>).
-   * The serial number may include a leading 0.
-   */
-  PP_X509CERTIFICATE_PRIVATE_SERIAL_NUMBER = 15,
-
-  /**
-   * Note: This field is unimplemented and will return
-   * <code>PP_VARTYPE_NULL</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_SIGNATURE_ALGORITHM_OID = 16,
-
-  /**
-   * Note: This field is unimplemented and will return
-   * <code>PP_VARTYPE_NULL</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_SIGNATURE_ALGORITHM_PARAMATERS_RAW = 17,
-
-  /**
-   * This corresponds to a double (<code>PP_VARTYPE_DOUBLE</code>) which
-   * can be cast to a <code>PP_TIME</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_VALIDITY_NOT_BEFORE = 18,
-
-  /**
-   * This corresponds to a double (<code>PP_VARTYPE_DOUBLE</code>) which
-   * can be cast to a <code>PP_TIME</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_VALIDITY_NOT_AFTER = 19,
-
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_PUBLIC_KEY_ALGORITHM_OID = 20,
-
-  /**
-   * Note: This field is unimplemented and will return
-   * <code>PP_VARTYPE_NULL</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_PUBLIC_KEY = 21,
-
-  /**
-   * This corresponds to a byte array (<code>PP_VARTYPE_ARRAY_BUFFER</code>).
-   * This is the DER-encoded representation of the certificate.
-   */
-  PP_X509CERTIFICATE_PRIVATE_RAW = 22,
-
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_DISTINGUISHED_NAME = 23,
-
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_DISTINGUISHED_NAME = 24
-};
-
-/**
- * This enumeration defines the different possible values for X5O9 certificate
- * versions as returned by:
- * <code>GetField(resource, PP_X509CERTIFICATE_PRIVATE_VERSION)</code>.
- */
-[assert_size(4)]
-enum PPB_X509Certificate_Private_Version {
-  PP_X509CERTIFICATE_PRIVATE_V1 = 0,
-  PP_X509CERTIFICATE_PRIVATE_V2 = 1,
-  PP_X509CERTIFICATE_PRIVATE_V3 = 2
-};
-
-/**
- * The <code>PPB_X509Certificate_Private</code> interface provides access to
- * the fields of an X509 certificate.
- */
-interface PPB_X509Certificate_Private {
-  /**
-   * Allocates a <code>PPB_X509Certificate_Private</code> resource.
-   * <code>Initialize()</code> must be called before using the certificate.
-   */
-  PP_Resource Create([in] PP_Instance instance);
-
-  /**
-   * Returns <code>PP_TRUE</code> if a given resource is a
-   * <code>PPB_X509Certificate_Private</code>.
-   */
-  PP_Bool IsX509CertificatePrivate([in] PP_Resource resource);
-
-  /**
-   * Initializes a <code>PPB_X509Certificate_Private</code> from the DER-encoded
-   * representation. |bytes| should represent only a single certificate.
-   * <code>PP_FALSE</code> is returned if |bytes| is not a valid DER-encoding of
-   * a certificate. Note: Flash requires this to be synchronous.
-   */
-  PP_Bool Initialize([in] PP_Resource resource,
-                     [in] str_t bytes,
-                     [in] uint32_t length);
-
-  /**
-   * Get a field of the X509Certificate as a <code>PP_Var</code>. A null
-   * <code>PP_Var</code> is returned if the field is unavailable.
-   */
-  PP_Var GetField([in] PP_Resource resource,
-                  [in] PP_X509Certificate_Private_Field field);
-};
diff --git a/api/private/ppp_instance_private.idl b/api/private/ppp_instance_private.idl
deleted file mode 100644
index 05e78ba..0000000
--- a/api/private/ppp_instance_private.idl
+++ /dev/null
@@ -1,37 +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.
- */
-
-/**
- * This file defines the PPP_InstancePrivate structure; a series of functions
- * that a trusted plugin may implement to provide capabilities only available
- * to trusted plugins.
- */
-label Chrome {
-  M18 = 0.1
-};
-
-/**
- * The PPP_Instance_Private interface contains pointers to a series of
- * functions that may be implemented in a trusted plugin to provide capabilities
- * that aren't possible in untrusted modules.
- */
-
-interface PPP_Instance_Private {
-  /**
-   * GetInstanceObject returns a PP_Var representing the scriptable object for
-   * the given instance. Normally this will be a PPP_Class_Deprecated object
-   * that exposes methods and properties to JavaScript.
-   *
-   * On Failure, the returned PP_Var should be a "void" var.
-   *
-   * The returned PP_Var should have a reference added for the caller, which
-   * will be responsible for Release()ing that reference.
-   *
-   * @param[in] instance A PP_Instance identifying the instance from which the
-   *            instance object is being requested.
-   * @return A PP_Var containing scriptable object.
-   */
-  PP_Var GetInstanceObject([in] PP_Instance instance);
-};
diff --git a/api/private/ppp_pexe_stream_handler.idl b/api/private/ppp_pexe_stream_handler.idl
deleted file mode 100644
index 92fe2e3..0000000
--- a/api/private/ppp_pexe_stream_handler.idl
+++ /dev/null
@@ -1,46 +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.
- */
-
-/* This file contains NaCl private interfaces. This interface is not versioned
- * and is for internal Chrome use. It may change without notice. */
-
-#inline c
-#include "ppapi/c/private/pp_file_handle.h"
-#endinl
-
-label Chrome {
-  M25 = 1.0
-};
-
-interface PPP_PexeStreamHandler {
-  /**
-   * Invoked as a result of a cache hit for a translated pexe.
-   */
-  void DidCacheHit([inout] mem_t user_data,
-                   [in] PP_FileHandle nexe_file_handle);
-
-  /**
-   * Invoked as a result of a cache miss for a translated pexe.
-   * Provides the expected length of the pexe, as read from HTTP headers.
-   */
-  void DidCacheMiss([inout] mem_t user_data,
-                    [in] int64_t expected_total_length,
-                    [in] PP_FileHandle temp_nexe_file);
-
-  /**
-   * Invoked when a block of data has been downloaded.
-   * Only invoked after DidCacheMiss().
-   */
-  void DidStreamData([inout] mem_t user_data,
-                     [in] mem_t data,
-                     [in] int32_t length);
-
-  /**
-   * Invoked when the stream has finished downloading, regardless of whether it
-   * succeeded. Not invoked if DidCacheHit() was called.
-   */
-  void DidFinishStream([inout] mem_t user_data,
-                       [in] int32_t pp_error);
-};
diff --git a/api/trusted/ppb_browser_font_trusted.idl b/api/trusted/ppb_browser_font_trusted.idl
deleted file mode 100644
index 26dd93d..0000000
--- a/api/trusted/ppb_browser_font_trusted.idl
+++ /dev/null
@@ -1,261 +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.
- */
-
-/**
- * This file defines the <code>PPB_BrowserFont_Trusted</code> interface.
- */
-label Chrome {
-  M19 = 1.0
-};
-
-[assert_size(4)]
-enum PP_BrowserFont_Trusted_Family {
-  /**
-   * Uses the user's default web page font (normally either the default serif
-   * or sans serif font).
-   */
-  PP_BROWSERFONT_TRUSTED_FAMILY_DEFAULT = 0,
-
-  /**
-   * These families will use the default web page font corresponding to the
-   * given family.
-   */
-  PP_BROWSERFONT_TRUSTED_FAMILY_SERIF = 1,
-  PP_BROWSERFONT_TRUSTED_FAMILY_SANSSERIF = 2,
-  PP_BROWSERFONT_TRUSTED_FAMILY_MONOSPACE = 3
-};
-
-/**
- * Specifies the font weight. Normally users will only use NORMAL or BOLD.
- */
-[assert_size(4)]
-enum PP_BrowserFont_Trusted_Weight {
-  PP_BROWSERFONT_TRUSTED_WEIGHT_100 = 0,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_200 = 1,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_300 = 2,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_400 = 3,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_500 = 4,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_600 = 5,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_700 = 6,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_800 = 7,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_900 = 8,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_NORMAL =
-      PP_BROWSERFONT_TRUSTED_WEIGHT_400,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_BOLD =
-      PP_BROWSERFONT_TRUSTED_WEIGHT_700
-};
-
-[assert_size(48)]
-struct PP_BrowserFont_Trusted_Description {
-  /**
-   * Font face name as a string. This can also be an undefined var, in which
-   * case the generic family will be obeyed. If the face is not available on
-   * the system, the browser will attempt to do font fallback or pick a default
-   * font.
-   */
-  PP_Var face;
-
-  /**
-   * When Create()ing a font and the face is an undefined var, the family
-   * specifies the generic font family type to use. If the face is specified,
-   * this will be ignored.
-   *
-   * When Describe()ing a font, the family will be the value you passed in when
-   * the font was created. In other words, if you specify a face name, the
-   * family will not be updated to reflect whether the font name you requested
-   * is serif or sans serif.
-   */
-  PP_BrowserFont_Trusted_Family family;
-
-  /**
-   * Size in pixels.
-   *
-   * You can specify 0 to get the default font size. The default font size
-   * may vary depending on the requested font. The typical example is that
-   * the user may have a different font size for the default monospace font to
-   * give it a similar optical size to the proportionally spaced fonts.
-   */
-  uint32_t size;
-
-  /**
-   * Normally you will use either normal or bold.
-   */
-  PP_BrowserFont_Trusted_Weight weight;
-
-  PP_Bool italic;
-  PP_Bool small_caps;
-
-  /**
-   * Adjustment to apply to letter and word spacing, respectively. Initialize
-   * to 0 to get normal spacing. Negative values bring letters/words closer
-   * together, positive values separate them.
-   */
-  int32_t letter_spacing;
-  int32_t word_spacing;
-
-  /**
-   * Ensure that this struct is 48-bytes wide by padding the end.  In some
-   * compilers, PP_Var is 8-byte aligned, so those compilers align this struct
-   * on 8-byte boundaries as well and pad it to 16 bytes even without this
-   * padding attribute.  This padding makes its size consistent across
-   * compilers.
-   */
-  int32_t padding;
-};
-
-[assert_size(20)]
-struct PP_BrowserFont_Trusted_Metrics {
-  int32_t height;
-  int32_t ascent;
-  int32_t descent;
-  int32_t line_spacing;
-  int32_t x_height;
-};
-
-[assert_size(24)]
-struct PP_BrowserFont_Trusted_TextRun {
-  /**
-   * This var must either be a string or a null/undefined var (which will be
-   * treated as a 0-length string).
-   */
-  PP_Var text;
-
-  /**
-   * Set to PP_TRUE if the text is right-to-left.
-   */
-  PP_Bool rtl;
-
-  /**
-   * Set to PP_TRUE to force the directionality of the text regardless of
-   * content
-   */
-  PP_Bool override_direction;
-};
-
-/**
- * Provides an interface for native browser text rendering.
- *
- * This API is "trusted" not for security reasons, but because it can not be
- * implemented efficiently when running out-of-process in Browser Client. In
- * this case, WebKit is in another process and every text call would require a
- * synchronous IPC to the renderer. It is, however, available to native
- * (non-NaCl) out-of-process PPAPI plugins since WebKit is available in the
- * plugin process.
- */
-interface PPB_BrowserFont_Trusted {
-  /**
-   * Returns a list of all available font families on the system. You can use
-   * this list to decide whether to Create() a font.
-   *
-   * The return value will be a single string with null characters delimiting
-   * the end of each font name. For example: "Arial\0Courier\0Times\0".
-   *
-   * Returns an undefined var on failure (this typically means you passed an
-   * invalid instance).
-   */
-  PP_Var GetFontFamilies(
-      [in] PP_Instance instance);
-
-  /**
-   * Returns a font which best matches the given description. The return value
-   * will have a non-zero ID on success, or zero on failure.
-   */
-  PP_Resource Create(
-      [in] PP_Instance instance,
-      [in] PP_BrowserFont_Trusted_Description description);
-
-  /**
-   * Returns PP_TRUE if the given resource is a Font. Returns PP_FALSE if the
-   * resource is invalid or some type other than a Font.
-   */
-  PP_Bool IsFont(
-      [in] PP_Resource resource);
-
-  /**
-   * Loads the description and metrics of the font into the given structures.
-   * The description will be different than the description the font was
-   * created with since it will be filled with the real values from the font
-   * that was actually selected.
-   *
-   * The PP_Var in the description should be of type Void on input. On output,
-   * this will contain the string and will have a reference count of 1. The
-   * plugin is responsible for calling Release on this var.
-   *
-   * Returns PP_TRUE on success, PP_FALSE if the font is invalid or if the Var
-   * in the description isn't Null (to prevent leaks).
-   */
-  PP_Bool Describe(
-      [in] PP_Resource font,
-      [out] PP_BrowserFont_Trusted_Description description,
-      [out] PP_BrowserFont_Trusted_Metrics metrics);
-
-  /**
-   * Draws the text to the image buffer.
-   *
-   * The given point represents the baseline of the left edge of the font,
-   * regardless of whether it is left-to-right or right-to-left (in the case of
-   * RTL text, this will actually represent the logical end of the text).
-   *
-   * The clip is optional and may be NULL. In this case, the text will be
-   * clipped to the image.
-   *
-   * The image_data_is_opaque flag indicates whether subpixel antialiasing can
-   * be performed, if it is supported. When the image below the text is
-   * opaque, subpixel antialiasing is supported and you should set this to
-   * PP_TRUE to pick up the user's default preferences. If your plugin is
-   * partially transparent, then subpixel antialiasing is not possible and
-   * grayscale antialiasing will be used instead (assuming the user has
-   * antialiasing enabled at all).
-   */
-  PP_Bool DrawTextAt(
-      [in] PP_Resource font,
-      [in] PP_Resource image_data,
-      [in] PP_BrowserFont_Trusted_TextRun text,
-      [in] PP_Point position,
-      [in] uint32_t color,
-      [in] PP_Rect clip,
-      [in] PP_Bool image_data_is_opaque);
-
-  /**
-   * Returns the width of the given string. If the font is invalid or the var
-   * isn't a valid string, this will return -1.
-   *
-   * Note that this function handles complex scripts such as Arabic, combining
-   * accents, etc. so that adding the width of substrings won't necessarily
-   * produce the correct width of the entire string.
-   *
-   * Returns -1 on failure.
-   */
-  int32_t MeasureText(
-      [in] PP_Resource font,
-      [in] PP_BrowserFont_Trusted_TextRun text);
-
-  /**
-   * Returns the character at the given pixel X position from the beginning of
-   * the string. This handles complex scripts such as Arabic, where characters
-   * may be combined or replaced depending on the context. Returns (uint32)-1
-   * on failure.
-   *
-   * TODO(brettw) this function may be broken. See the CharPosRTL test. It
-   * seems to tell you "insertion point" rather than painting position. This
-   * is useful but maybe not what we intended here.
-   */
-  uint32_t CharacterOffsetForPixel(
-      [in] PP_Resource font,
-      [in] PP_BrowserFont_Trusted_TextRun text,
-      [in] int32_t pixel_position);
-
-  /**
-   * Returns the horizontal advance to the given character if the string was
-   * placed at the given position. This handles complex scripts such as Arabic,
-   * where characters may be combined or replaced depending on context. Returns
-   * -1 on error.
-   */
-  int32_t PixelOffsetForCharacter(
-      [in] PP_Resource font,
-      [in] PP_BrowserFont_Trusted_TextRun text,
-      [in] uint32_t char_offset);
-};
-
diff --git a/api/trusted/ppb_char_set_trusted.idl b/api/trusted/ppb_char_set_trusted.idl
deleted file mode 100644
index 537dc9b..0000000
--- a/api/trusted/ppb_char_set_trusted.idl
+++ /dev/null
@@ -1,95 +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.
- */
-
-/*
- * This file defines the <code>PPB_CharSet_Trusted</code> interface.
- */
-
-label Chrome {
-  M18 = 1.0
-};
-
-[assert_size(4)] enum PP_CharSet_Trusted_ConversionError {
-  /**
-   * Causes the entire conversion to fail if an error is encountered. The
-   * conversion function will return NULL.
-   */
-  PP_CHARSET_TRUSTED_CONVERSIONERROR_FAIL,
-
-  /**
-   * Silently skips over errors. Unrepresentable characters and input encoding
-   * errors will be removed from the output.
-   */
-  PP_CHARSET_TRUSTED_CONVERSIONERROR_SKIP,
-
-  /**
-   * Replaces the error or unrepresentable character with a substitution
-   * character. When converting to a Unicode character set (UTF-8 or UTF-16) it
-   * will use the unicode "substitution character" U+FFFD. When converting to
-   * another character set, the character will be charset-specific. For many
-   * languages this will be the representation of the '?' character.
-   */
-  PP_CHARSET_TRUSTED_CONVERSIONERROR_SUBSTITUTE
-};
-
-/**
- * The <code>PPB_CharSet_Trusted</code> interface provides functions for
- * converting between character sets.
- *
- * This inteface is provided for trusted plugins only since in Native Client it
- * would require an expensive out-of-process IPC call for each conversion,
- * which makes performance unacceptable. Native Client plugins should include
- * ICU or some other library if they need this feature.
- */
-interface PPB_CharSet_Trusted {
-  /**
-   * Converts the UTF-16 string pointed to by |*utf16| to an 8-bit string in
-   * the specified code page. |utf16_len| is measured in UTF-16 units, not
-   * bytes. This value may not be NULL.
-   *
-   * The given output buffer will be filled up to output_length bytes with the
-   * result. output_length will be updated with the number of bytes required
-   * for the given string. The output buffer may be null to just retrieve the
-   * required buffer length.
-   *
-   * This function will return PP_FALSE if there was an error converting the
-   * string and you requested PP_CHARSET_CONVERSIONERROR_FAIL, or the output
-   * character set was unknown. Otherwise, it will return PP_TRUE.
-   */
-  PP_Bool UTF16ToCharSet([in, size_as=utf16_len] uint16_t[] utf16,
-                         [in] uint32_t utf16_len,
-                         [in] str_t output_char_set,
-                         [in] PP_CharSet_Trusted_ConversionError on_error,
-                         [out] str_t output_buffer,
-                         [inout] uint32_t output_length);
-
-  /**
-   * Same as UTF16ToCharSet except converts in the other direction. The input
-   * is in the given charset, and the |input_len| is the number of bytes in
-   * the |input| string.
-   *
-   * Note that the output_utf16_length is measured in UTF-16 characters.
-   *
-   * Since UTF16 can represent every Unicode character, the only time the
-   * replacement character will be used is if the encoding in the input string
-   * is incorrect.
-   */
-  PP_Bool CharSetToUTF16([in] str_t input,
-                         [in] uint32_t input_len,
-                         [in] str_t input_char_set,
-                         [in] PP_CharSet_Trusted_ConversionError on_error,
-                         [out] uint16_t output_buffer,
-                         [inout] uint32_t output_utf16_length);
-
-  /**
-   * Returns a string var representing the current multi-byte character set of
-   * the current system.
-   *
-   * WARNING: You really shouldn't be using this function unless you're dealing
-   * with legacy data. You should be using UTF-8 or UTF-16 and you don't have
-   * to worry about the character sets.
-   */
-  PP_Var GetDefaultCharSet([in] PP_Instance instance);
-};
diff --git a/api/trusted/ppb_file_chooser_trusted.idl b/api/trusted/ppb_file_chooser_trusted.idl
deleted file mode 100644
index 2688f80..0000000
--- a/api/trusted/ppb_file_chooser_trusted.idl
+++ /dev/null
@@ -1,71 +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.
- */
-
-
-/**
- * This file defines the <code>PPB_FileChooser_Trusted</code> interface.
- */
-
-[generate_thunk]
-
-label Chrome {
-  M16 = 0.5,
-  M20 = 0.6
-};
-
-[macro="PPB_FILECHOOSER_TRUSTED_INTERFACE"]
-interface PPB_FileChooserTrusted {
- /**
-  * This function displays a previously created file chooser resource as a
-  * dialog box, prompting the user to choose a file or files to open, or a
-  * single file for saving. The callback is called with PP_OK on successful
-  * completion with a file (or files) selected or PP_ERROR_USERCANCEL if the
-  * user selected no file.
-  *
-  * @param[in] chooser The file chooser resource.
-  * @param[in] save_as A <code>PP_Bool</code> value indicating if this dialog
-  * is choosing a file for saving.
-  * @param[in] suggested_file_name If saving, the suggested name for the
-  * file, otherwise, null or undefined.
-  * @param[in] callback A <code>CompletionCallback</code> to be called after
-  * the user has closed the file chooser dialog.
-  *
-  * @return PP_OK_COMPLETIONPENDING if request to show the dialog was
-  * successful, another error code from pp_errors.h on failure.
-  */
-  [deprecate=0.6]
-  int32_t ShowWithoutUserGesture(
-      [in] PP_Resource chooser,
-      [in] PP_Bool save_as,
-      [in] PP_Var suggested_file_name,
-      [in] PP_CompletionCallback callback);
-
- /**
-  * This function displays a previously created file chooser resource as a
-  * dialog box, prompting the user to choose a file or files to open, or a
-  * single file for saving. The callback is called with PP_OK on successful
-  * completion with a file (or files) selected or PP_ERROR_USERCANCEL if the
-  * user selected no file.
-  *
-  * @param[in] chooser The file chooser resource.
-  * @param[in] save_as A <code>PP_Bool</code> value indicating if this dialog
-  * is choosing a file for saving.
-  * @param[in] suggested_file_name If saving, the suggested name for the
-  * file, otherwise, null or undefined.
-  * @param[in] callback A <code>CompletionCallback</code> to be called after
-  * the user has closed the file chooser dialog.
-  *
-  * @return PP_OK_COMPLETIONPENDING if request to show the dialog was
-  * successful, another error code from pp_errors.h on failure.
-  */
-  [version=0.6]
-  int32_t ShowWithoutUserGesture(
-      [in] PP_Resource chooser,
-      [in] PP_Bool save_as,
-      [in] PP_Var suggested_file_name,
-      [in] PP_ArrayOutput output,
-      [in] PP_CompletionCallback callback);
-};
-
diff --git a/api/trusted/ppb_url_loader_trusted.idl b/api/trusted/ppb_url_loader_trusted.idl
deleted file mode 100644
index bb487af..0000000
--- a/api/trusted/ppb_url_loader_trusted.idl
+++ /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.
- */
-
-/* URL loader trusted interfaces. */
-
-[generate_thunk]
-
-label Chrome {
-  M14 = 0.3
-};
-
-/**
- * NOTE: Permission checks for functions added to this file must be done in
- * pepper_url_loader.cc.
- *
- */
-
-/**
- * Callback that indicates the status of the download and upload for the
- * given URLLoader resource.
- */
-typedef void PP_URLLoaderTrusted_StatusCallback(
-      [in] PP_Instance pp_instance,
-      [in] PP_Resource pp_resource,
-      [in] int64_t bytes_sent,
-      [in] int64_t total_bytes_to_be_sent,
-      [in] int64_t bytes_received,
-      [in] int64_t total_bytes_to_be_received);
-
-/* Available only to trusted implementations. */
-interface PPB_URLLoaderTrusted {
-  /**
-   * Grant this URLLoader the capability to make unrestricted cross-origin
-   * requests.
-   */
-  void GrantUniversalAccess([in] PP_Resource loader);
-
-  /**
-   * Registers that the given function will be called when the upload or
-   * downloaded byte count has changed. This is not exposed on the untrusted
-   * interface because it can be quite chatty and encourages people to write
-   * feedback UIs that update as frequently as the progress updates.
-   *
-   * The other serious gotcha with this callback is that the callback must not
-   * mutate the URL loader or cause it to be destroyed.
-   *
-   * However, the proxy layer needs this information to push to the other
-   * process, so we expose it here. Only one callback can be set per URL
-   * Loader. Setting to a NULL callback will disable it.
-   */
-  void RegisterStatusCallback(
-      [in] PP_Resource loader,
-      [in] PP_URLLoaderTrusted_StatusCallback cb);
-};
-
diff --git a/c/BUILD.gn b/c/BUILD.gn
deleted file mode 100644
index 899496e..0000000
--- a/c/BUILD.gn
+++ /dev/null
@@ -1,150 +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("//ppapi/buildflags/buildflags.gni")
-
-assert(enable_ppapi)
-
-# These are just headers.
-source_set("c") {
-  sources = [
-    "pp_array_output.h",
-    "pp_bool.h",
-    "pp_codecs.h",
-    "pp_completion_callback.h",
-    "pp_directory_entry.h",
-    "pp_errors.h",
-    "pp_file_info.h",
-    "pp_graphics_3d.h",
-    "pp_input_event.h",
-    "pp_instance.h",
-    "pp_macros.h",
-    "pp_module.h",
-    "pp_point.h",
-    "pp_rect.h",
-    "pp_resource.h",
-    "pp_size.h",
-    "pp_stdint.h",
-    "pp_time.h",
-    "pp_touch_point.h",
-    "pp_var.h",
-    "ppb.h",
-    "ppb_audio.h",
-    "ppb_audio_buffer.h",
-    "ppb_audio_config.h",
-    "ppb_console.h",
-    "ppb_core.h",
-    "ppb_file_io.h",
-    "ppb_file_ref.h",
-    "ppb_file_system.h",
-    "ppb_fullscreen.h",
-    "ppb_gamepad.h",
-    "ppb_graphics_2d.h",
-    "ppb_graphics_3d.h",
-    "ppb_host_resolver.h",
-    "ppb_image_data.h",
-    "ppb_input_event.h",
-    "ppb_instance.h",
-    "ppb_media_stream_audio_track.h",
-    "ppb_media_stream_video_track.h",
-    "ppb_message_loop.h",
-    "ppb_messaging.h",
-    "ppb_mouse_cursor.h",
-    "ppb_mouse_lock.h",
-    "ppb_net_address.h",
-    "ppb_network_list.h",
-    "ppb_network_monitor.h",
-    "ppb_network_proxy.h",
-    "ppb_opengles2.h",
-    "ppb_tcp_socket.h",
-    "ppb_text_input_controller.h",
-    "ppb_udp_socket.h",
-    "ppb_url_loader.h",
-    "ppb_url_request_info.h",
-    "ppb_url_response_info.h",
-    "ppb_var.h",
-    "ppb_var_array.h",
-    "ppb_var_array_buffer.h",
-    "ppb_var_dictionary.h",
-    "ppb_video_decoder.h",
-    "ppb_video_encoder.h",
-    "ppb_video_frame.h",
-    "ppb_view.h",
-    "ppb_vpn_provider.h",
-    "ppb_websocket.h",
-    "ppp.h",
-    "ppp_graphics_3d.h",
-    "ppp_input_event.h",
-    "ppp_instance.h",
-    "ppp_message_handler.h",
-    "ppp_messaging.h",
-    "ppp_mouse_lock.h",
-
-    # Dev interfaces.
-    "dev/pp_cursor_type_dev.h",
-    "dev/pp_print_settings_dev.h",
-    "dev/pp_video_capture_dev.h",
-    "dev/pp_video_dev.h",
-    "dev/ppb_audio_input_dev.h",
-    "dev/ppb_audio_output_dev.h",
-    "dev/ppb_buffer_dev.h",
-    "dev/ppb_char_set_dev.h",
-    "dev/ppb_crypto_dev.h",
-    "dev/ppb_cursor_control_dev.h",
-    "dev/ppb_device_ref_dev.h",
-    "dev/ppb_file_chooser_dev.h",
-    "dev/ppb_gles_chromium_texture_mapping_dev.h",
-    "dev/ppb_ime_input_event_dev.h",
-    "dev/ppb_memory_dev.h",
-    "dev/ppb_opengles2ext_dev.h",
-    "dev/ppb_printing_dev.h",
-    "dev/ppb_text_input_dev.h",
-    "dev/ppb_trace_event_dev.h",
-    "dev/ppb_url_util_dev.h",
-    "dev/ppb_video_capture_dev.h",
-    "dev/ppb_video_decoder_dev.h",
-    "dev/ppb_view_dev.h",
-    "dev/ppp_network_state_dev.h",
-    "dev/ppp_printing_dev.h",
-    "dev/ppp_text_input_dev.h",
-    "dev/ppp_video_capture_dev.h",
-    "dev/ppp_video_decoder_dev.h",
-
-    # Private interfaces.
-    "private/pp_file_handle.h",
-    "private/pp_private_font_charset.h",
-    "private/pp_video_capture_format.h",
-    "private/pp_video_frame_private.h",
-    "private/ppb_camera_capabilities_private.h",
-    "private/ppb_camera_device_private.h",
-    "private/ppb_display_color_profile_private.h",
-    "private/ppb_ext_crx_file_system_private.h",
-    "private/ppb_file_io_private.h",
-    "private/ppb_file_ref_private.h",
-    "private/ppb_host_resolver_private.h",
-    "private/ppb_instance_private.h",
-    "private/ppb_isolated_file_system_private.h",
-    "private/ppb_net_address_private.h",
-    "private/ppb_proxy_private.h",
-    "private/ppb_tcp_server_socket_private.h",
-    "private/ppb_tcp_socket_private.h",
-    "private/ppb_testing_private.h",
-    "private/ppb_udp_socket_private.h",
-    "private/ppb_uma_private.h",
-    "private/ppb_x509_certificate_private.h",
-    "private/ppp_instance_private.h",
-    "private/ppp_pexe_stream_handler.h",
-
-    # Deprecated interfaces.
-    "dev/deprecated_bool.h",
-    "dev/ppb_var_deprecated.h",
-    "dev/ppp_class_deprecated.h",
-
-    # Trusted interfaces.
-    "trusted/ppb_browser_font_trusted.h",
-    "trusted/ppb_char_set_trusted.h",
-    "trusted/ppb_file_chooser_trusted.h",
-    "trusted/ppb_url_loader_trusted.h",
-  ]
-}
diff --git a/c/DEPS b/c/DEPS
deleted file mode 100644
index aa6e7d0..0000000
--- a/c/DEPS
+++ /dev/null
@@ -1,11 +0,0 @@
-# ppapi/c should not be dependent on other parts of chromium; it should stay
-# browser-neutral as much as possible.
-include_rules = [
-  "-base",
-  "-build",
-  "-ipc",
-  "-uncode",
-  "-testing",
-  "-ppapi",
-  "+ppapi/c",
-]
diff --git a/c/dev/deprecated_bool.h b/c/dev/deprecated_bool.h
deleted file mode 100644
index eeb95f3..0000000
--- a/c/dev/deprecated_bool.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2010 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_C_DEV_DEPRECATED_BOOL_H_
-#define PPAPI_C_DEV_DEPRECATED_BOOL_H_
-
-/**
- * @file
- * Defines the API ...
- *
- * @addtogroup PP
- * @{
- */
-// TODO(ppapi authors):  Remove ppp_class_deprecated.h and ppb_var_deprecated.h
-// and remove this file.  This is only here to ease the transition from
-// deprecated interfaces to the new ones.  Add a usable definition of bool for
-// C code.
-#if !defined(__cplusplus)
-# if defined(_MSC_VER) || !defined(__STDC_VERSION__) || \
-    (__STDC_VERSION__ < 199901L)
-// The Visual Studio C compiler and older versions of GCC do not support C99
-// and thus have no bool or stdbool.h.  Make a simple definition of bool,
-// true, and false to make this deprecated interface compile in C.  Force it
-// to 1 byte to have some chance of ABI compatibility between C and C++, in
-// case we don't remove this.
-typedef char bool;
-#  define false 0
-#  define true 1
-# else
-// In C99-compliant compilers, we can include stdbool.h to get a bool
-// definition.
-#  include <stdbool.h>
-# endif
-#endif
-
-/**
- * @}
- * End addtogroup PP
- */
-
-#endif  // PPAPI_C_DEV_DEPRECATED_BOOL_H_
-
diff --git a/c/dev/pp_cursor_type_dev.h b/c/dev/pp_cursor_type_dev.h
deleted file mode 100644
index 9f98770..0000000
--- a/c/dev/pp_cursor_type_dev.h
+++ /dev/null
@@ -1,77 +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.
- */
-
-/* From dev/pp_cursor_type_dev.idl modified Thu Nov 17 15:27:17 2011. */
-
-#ifndef PPAPI_C_DEV_PP_CURSOR_TYPE_DEV_H_
-#define PPAPI_C_DEV_PP_CURSOR_TYPE_DEV_H_
-
-#include "ppapi/c/pp_macros.h"
-
-/**
- * @file
- * This file defines enumerations for cursor types.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-enum PP_CursorType_Dev {
-  PP_CURSORTYPE_CUSTOM = -1,
-  PP_CURSORTYPE_POINTER = 0,
-  PP_CURSORTYPE_CROSS = 1,
-  PP_CURSORTYPE_HAND = 2,
-  PP_CURSORTYPE_IBEAM = 3,
-  PP_CURSORTYPE_WAIT = 4,
-  PP_CURSORTYPE_HELP = 5,
-  PP_CURSORTYPE_EASTRESIZE = 6,
-  PP_CURSORTYPE_NORTHRESIZE = 7,
-  PP_CURSORTYPE_NORTHEASTRESIZE = 8,
-  PP_CURSORTYPE_NORTHWESTRESIZE = 9,
-  PP_CURSORTYPE_SOUTHRESIZE = 10,
-  PP_CURSORTYPE_SOUTHEASTRESIZE = 11,
-  PP_CURSORTYPE_SOUTHWESTRESIZE = 12,
-  PP_CURSORTYPE_WESTRESIZE = 13,
-  PP_CURSORTYPE_NORTHSOUTHRESIZE = 14,
-  PP_CURSORTYPE_EASTWESTRESIZE = 15,
-  PP_CURSORTYPE_NORTHEASTSOUTHWESTRESIZE = 16,
-  PP_CURSORTYPE_NORTHWESTSOUTHEASTRESIZE = 17,
-  PP_CURSORTYPE_COLUMNRESIZE = 18,
-  PP_CURSORTYPE_ROWRESIZE = 19,
-  PP_CURSORTYPE_MIDDLEPANNING = 20,
-  PP_CURSORTYPE_EASTPANNING = 21,
-  PP_CURSORTYPE_NORTHPANNING = 22,
-  PP_CURSORTYPE_NORTHEASTPANNING = 23,
-  PP_CURSORTYPE_NORTHWESTPANNING = 24,
-  PP_CURSORTYPE_SOUTHPANNING = 25,
-  PP_CURSORTYPE_SOUTHEASTPANNING = 26,
-  PP_CURSORTYPE_SOUTHWESTPANNING = 27,
-  PP_CURSORTYPE_WESTPANNING = 28,
-  PP_CURSORTYPE_MOVE = 29,
-  PP_CURSORTYPE_VERTICALTEXT = 30,
-  PP_CURSORTYPE_CELL = 31,
-  PP_CURSORTYPE_CONTEXTMENU = 32,
-  PP_CURSORTYPE_ALIAS = 33,
-  PP_CURSORTYPE_PROGRESS = 34,
-  PP_CURSORTYPE_NODROP = 35,
-  PP_CURSORTYPE_COPY = 36,
-  PP_CURSORTYPE_NONE = 37,
-  PP_CURSORTYPE_NOTALLOWED = 38,
-  PP_CURSORTYPE_ZOOMIN = 39,
-  PP_CURSORTYPE_ZOOMOUT = 40,
-  PP_CURSORTYPE_GRAB = 41,
-  PP_CURSORTYPE_GRABBING = 42,
-  PP_CURSORTYPE_MIDDLEPANNINGVERTICAL = 43,
-  PP_CURSORTYPE_MIDDLEPANNINGHORIZONTAL = 44
-};
-PP_COMPILE_ASSERT_ENUM_SIZE_IN_BYTES(PP_CursorType_Dev, 4);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PP_CURSOR_TYPE_DEV_H_ */
-
diff --git a/c/dev/pp_print_settings_dev.h b/c/dev/pp_print_settings_dev.h
deleted file mode 100644
index b6a1107..0000000
--- a/c/dev/pp_print_settings_dev.h
+++ /dev/null
@@ -1,79 +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.
- */
-
-/* From dev/pp_print_settings_dev.idl modified Tue Sep  3 14:00:26 2019. */
-
-#ifndef PPAPI_C_DEV_PP_PRINT_SETTINGS_DEV_H_
-#define PPAPI_C_DEV_PP_PRINT_SETTINGS_DEV_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * This file defines the struct for PrintSettings.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-typedef enum {
-  PP_PRINTORIENTATION_NORMAL = 0,
-  PP_PRINTORIENTATION_ROTATED_90_CW = 1,
-  PP_PRINTORIENTATION_ROTATED_180 = 2,
-  PP_PRINTORIENTATION_ROTATED_90_CCW = 3,
-  PP_PRINTORIENTATION_ROTATED_LAST = PP_PRINTORIENTATION_ROTATED_90_CCW
-} PP_PrintOrientation_Dev;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_PrintOrientation_Dev, 4);
-
-typedef enum {
-  PP_PRINTOUTPUTFORMAT_RASTER = 1u << 0,
-  PP_PRINTOUTPUTFORMAT_PDF = 1u << 1,
-  PP_PRINTOUTPUTFORMAT_POSTSCRIPT = 1u << 2,
-  PP_PRINTOUTPUTFORMAT_EMF = 1u << 3
-} PP_PrintOutputFormat_Dev;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_PrintOutputFormat_Dev, 4);
-
-typedef enum {
-  PP_PRINTSCALINGOPTION_NONE = 0,
-  PP_PRINTSCALINGOPTION_FIT_TO_PRINTABLE_AREA = 1,
-  PP_PRINTSCALINGOPTION_SOURCE_SIZE = 2,
-  PP_PRINTSCALINGOPTION_FIT_TO_PAPER = 3,
-  PP_PRINTSCALINGOPTION_LAST = PP_PRINTSCALINGOPTION_FIT_TO_PAPER
-} PP_PrintScalingOption_Dev;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_PrintScalingOption_Dev, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Structs
- * @{
- */
-struct PP_PrintSettings_Dev {
-  /** This is the size of the printable area in points (1/72 of an inch). */
-  struct PP_Rect printable_area;
-  struct PP_Rect content_area;
-  struct PP_Size paper_size;
-  int32_t dpi;
-  PP_PrintOrientation_Dev orientation;
-  PP_PrintScalingOption_Dev print_scaling_option;
-  PP_Bool grayscale;
-  /** Note that Chrome currently only supports PDF printing. */
-  PP_PrintOutputFormat_Dev format;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_PrintSettings_Dev, 60);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PP_PRINT_SETTINGS_DEV_H_ */
-
diff --git a/c/dev/pp_video_capture_dev.h b/c/dev/pp_video_capture_dev.h
deleted file mode 100644
index def1a28..0000000
--- a/c/dev/pp_video_capture_dev.h
+++ /dev/null
@@ -1,74 +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.
- */
-
-/* From dev/pp_video_capture_dev.idl modified Mon Nov 14 10:36:01 2011. */
-
-#ifndef PPAPI_C_DEV_PP_VIDEO_CAPTURE_DEV_H_
-#define PPAPI_C_DEV_PP_VIDEO_CAPTURE_DEV_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * Structs for dealing with video capture.
- */
-
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * PP_VideoCaptureDeviceInfo_Dev is a structure that represent a video capture
- * configuration, such as resolution and frame rate.
- */
-struct PP_VideoCaptureDeviceInfo_Dev {
-  uint32_t width;
-  uint32_t height;
-  uint32_t frames_per_second;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_VideoCaptureDeviceInfo_Dev, 12);
-/**
- * @}
- */
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * PP_VideoCaptureStatus_Dev is an enumeration that defines the various possible
- * states of a VideoCapture.
- */
-typedef enum {
-  /**
-   * Initial state, capture is stopped.
-   */
-  PP_VIDEO_CAPTURE_STATUS_STOPPED = 0,
-  /**
-   * StartCapture has been called, but capture hasn't started yet.
-   */
-  PP_VIDEO_CAPTURE_STATUS_STARTING = 1,
-  /**
-   * Capture has been started.
-   */
-  PP_VIDEO_CAPTURE_STATUS_STARTED = 2,
-  /**
-   * Capture has been started, but is paused because no buffer is available.
-   */
-  PP_VIDEO_CAPTURE_STATUS_PAUSED = 3,
-  /**
-   * StopCapture has been called, but capture hasn't stopped yet.
-   */
-  PP_VIDEO_CAPTURE_STATUS_STOPPING = 4
-} PP_VideoCaptureStatus_Dev;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_VideoCaptureStatus_Dev, 4);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PP_VIDEO_CAPTURE_DEV_H_ */
-
diff --git a/c/dev/pp_video_dev.h b/c/dev/pp_video_dev.h
deleted file mode 100644
index ec9aa03..0000000
--- a/c/dev/pp_video_dev.h
+++ /dev/null
@@ -1,157 +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.
- */
-
-/* From dev/pp_video_dev.idl modified Tue Oct 24 13:14:42 2017. */
-
-#ifndef PPAPI_C_DEV_PP_VIDEO_DEV_H_
-#define PPAPI_C_DEV_PP_VIDEO_DEV_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * NOTE: these must be kept in sync with the versions in media/!
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * Video format.
- *
- * Keep the values in this enum unique, as they imply format (h.264 vs. VP8,
- * for example), and keep the values for a particular format grouped together
- * for clarity.
- * Note: Keep these in sync with media::VideoCodecProfile.
- */
-typedef enum {
-  PP_VIDEODECODER_PROFILE_UNKNOWN = -1,
-  PP_VIDEODECODER_PROFILE_FIRST = PP_VIDEODECODER_PROFILE_UNKNOWN,
-  PP_VIDEODECODER_H264PROFILE_NONE = 0,
-  PP_VIDEODECODER_H264PROFILE_BASELINE = 1,
-  PP_VIDEODECODER_H264PROFILE_MAIN = 2,
-  PP_VIDEODECODER_H264PROFILE_EXTENDED = 3,
-  PP_VIDEODECODER_H264PROFILE_HIGH = 4,
-  PP_VIDEODECODER_H264PROFILE_HIGH10PROFILE = 5,
-  PP_VIDEODECODER_H264PROFILE_HIGH422PROFILE = 6,
-  PP_VIDEODECODER_H264PROFILE_HIGH444PREDICTIVEPROFILE = 7,
-  PP_VIDEODECODER_H264PROFILE_SCALABLEBASELINE = 8,
-  PP_VIDEODECODER_H264PROFILE_SCALABLEHIGH = 9,
-  PP_VIDEODECODER_H264PROFILE_STEREOHIGH = 10,
-  PP_VIDEODECODER_H264PROFILE_MULTIVIEWHIGH = 11,
-  PP_VIDEODECODER_VP8PROFILE_ANY = 12,
-  PP_VIDEODECODER_PROFILE_LAST = PP_VIDEODECODER_VP8PROFILE_ANY
-} PP_VideoDecoder_Profile;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_VideoDecoder_Profile, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * The data structure for video bitstream buffer.
- */
-struct PP_VideoBitstreamBuffer_Dev {
-  /**
-   * Client-specified identifier for the bitstream buffer. Valid values are
-   * non-negative.
-   */
-  int32_t id;
-  /**
-   * Buffer to hold the bitstream data. Should be allocated using the
-   * PPB_Buffer interface for consistent interprocess behaviour.
-   */
-  PP_Resource data;
-  /**
-   * Size of the bitstream contained in buffer (in bytes).
-   */
-  uint32_t size;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_VideoBitstreamBuffer_Dev, 12);
-
-/**
- * Struct for specifying texture-backed picture data.
- */
-struct PP_PictureBuffer_Dev {
-  /**
-   * Client-specified id for the picture buffer. By using this value client can
-   * keep track of the buffers it has assigned to the video decoder and how they
-   * are passed back to it. Valid values are non-negative.
-   */
-  int32_t id;
-  /**
-   * Dimensions of the buffer.
-   */
-  struct PP_Size size;
-  /**
-   * Texture ID in the given context where picture is stored.
-   */
-  uint32_t texture_id;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_PictureBuffer_Dev, 16);
-
-/**
- * Structure to describe a decoded output frame.
- */
-struct PP_Picture_Dev {
-  /**
-   * ID of the picture buffer where the picture is stored.
-   */
-  int32_t picture_buffer_id;
-  /**
-   * ID of the bitstream from which this data was decoded.
-   */
-  int32_t bitstream_buffer_id;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_Picture_Dev, 8);
-/**
- * @}
- */
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * Decoder error codes reported to the plugin. A reasonable naive
- * error handling policy is for the plugin to Destroy() the decoder on error.
- */
-typedef enum {
-  /**
-   * An operation was attempted during an incompatible decoder state.
-   */
-  PP_VIDEODECODERERROR_ILLEGAL_STATE = 1,
-  PP_VIDEODECODERERROR_FIRST = PP_VIDEODECODERERROR_ILLEGAL_STATE,
-  /**
-   * Invalid argument was passed to an API method.
-   */
-  PP_VIDEODECODERERROR_INVALID_ARGUMENT = 2,
-  /**
-   * Encoded input is unreadable.
-   */
-  PP_VIDEODECODERERROR_UNREADABLE_INPUT = 3,
-  /**
-   * A failure occurred at the browser layer or lower.  Examples of such
-   * failures include GPU hardware failures, GPU driver failures, GPU library
-   * failures, browser programming errors, and so on.
-   */
-  PP_VIDEODECODERERROR_PLATFORM_FAILURE = 4,
-  PP_VIDEODECODERERROR_LAST = PP_VIDEODECODERERROR_PLATFORM_FAILURE
-} PP_VideoDecodeError_Dev;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_VideoDecodeError_Dev, 4);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PP_VIDEO_DEV_H_ */
-
diff --git a/c/dev/ppb_audio_input_dev.h b/c/dev/ppb_audio_input_dev.h
deleted file mode 100644
index 43f63e5..0000000
--- a/c/dev/ppb_audio_input_dev.h
+++ /dev/null
@@ -1,238 +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.
- */
-
-/* From dev/ppb_audio_input_dev.idl modified Thu Dec 12 15:35:39 2013. */
-
-#ifndef PPAPI_C_DEV_PPB_AUDIO_INPUT_DEV_H_
-#define PPAPI_C_DEV_PPB_AUDIO_INPUT_DEV_H_
-
-#include "ppapi/c/dev/ppb_device_ref_dev.h"
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-
-#define PPB_AUDIO_INPUT_DEV_INTERFACE_0_3 "PPB_AudioInput(Dev);0.3"
-#define PPB_AUDIO_INPUT_DEV_INTERFACE_0_4 "PPB_AudioInput(Dev);0.4"
-#define PPB_AUDIO_INPUT_DEV_INTERFACE PPB_AUDIO_INPUT_DEV_INTERFACE_0_4
-
-/**
- * @file
- * This file defines the <code>PPB_AudioInput_Dev</code> interface, which
- * provides realtime audio input capture.
- */
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * <code>PPB_AudioInput_Callback</code> defines the type of an audio callback
- * function used to provide the audio buffer with data. This callback will be
- * called on a separate thread from the creation thread.
- *
- * @param[in] sample_buffer A buffer providing audio input data.
- * @param[in] buffer_size_in_bytes The size of the buffer in bytes.
- * @param[in] latency The time that has elapsed since the data was recorded.
- * @param[inout] user_data An opaque pointer that was passed into
- * <code>PPB_AudioInput_Dev.Open()</code>.
- */
-typedef void (*PPB_AudioInput_Callback)(const void* sample_buffer,
-                                        uint32_t buffer_size_in_bytes,
-                                        PP_TimeDelta latency,
-                                        void* user_data);
-
-typedef void (*PPB_AudioInput_Callback_0_3)(const void* sample_buffer,
-                                            uint32_t buffer_size_in_bytes,
-                                            void* user_data);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_AudioInput_Dev</code> interface contains pointers to several
- * functions for handling audio input resources.
- *
- * TODO(brettw) before moving out of dev, we need to resolve the issue of
- * the mismatch between the current audio config interface and this one.
- *
- * In particular, the params for input assume stereo, but this class takes
- * everything as mono. We either need to not use an audio config resource, or
- * add mono support.
- *
- * In addition, RecommendSampleFrameCount is completely wrong for audio input.
- * RecommendSampleFrameCount returns the frame count for the current
- * low-latency output device, which is likely inappropriate for a random input
- * device. We may want to move the "recommend" functions to the input or output
- * classes rather than the config.
- */
-struct PPB_AudioInput_Dev_0_4 {
-  /**
-   * Creates an audio input resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to an audio input resource
-   * if successful, 0 if failed.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Determines if the given resource is an audio input resource.
-   *
-   * @param[in] resource A <code>PP_Resource</code> containing a resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if the given
-   * resource is an audio input resource, otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool (*IsAudioInput)(PP_Resource resource);
-  /**
-   * Enumerates audio input devices.
-   *
-   * @param[in] audio_input A <code>PP_Resource</code> corresponding to an audio
-   * input resource.
-   * @param[in] output An output array which will receive
-   * <code>PPB_DeviceRef_Dev</code> resources on success. Please note that the
-   * ref count of those resources has already been increased by 1 for the
-   * caller.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * completion.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*EnumerateDevices)(PP_Resource audio_input,
-                              struct PP_ArrayOutput output,
-                              struct PP_CompletionCallback callback);
-  /**
-   * Requests device change notifications.
-   *
-   * @param[in] audio_input A <code>PP_Resource</code> corresponding to an audio
-   * input resource.
-   * @param[in] callback The callback to receive notifications. If not NULL, it
-   * will be called once for the currently available devices, and then every
-   * time the list of available devices changes. All calls will happen on the
-   * same thread as the one on which MonitorDeviceChange() is called. It will
-   * receive notifications until <code>audio_input</code> is destroyed or
-   * <code>MonitorDeviceChange()</code> is called to set a new callback for
-   * <code>audio_input</code>. You can pass NULL to cancel sending
-   * notifications.
-   * @param[inout] user_data An opaque pointer that will be passed to
-   * <code>callback</code>.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*MonitorDeviceChange)(PP_Resource audio_input,
-                                 PP_MonitorDeviceChangeCallback callback,
-                                 void* user_data);
-  /**
-   * Opens an audio input device. No sound will be captured until
-   * StartCapture() is called.
-   *
-   * @param[in] audio_input A <code>PP_Resource</code> corresponding to an audio
-   * input resource.
-   * @param[in] device_ref Identifies an audio input device. It could be one of
-   * the resource in the array returned by EnumerateDevices(), or 0 which means
-   * the default device.
-   * @param[in] config A <code>PPB_AudioConfig</code> audio configuration
-   * resource.
-   * @param[in] audio_input_callback A <code>PPB_AudioInput_Callback</code>
-   * function that will be called when data is available.
-   * @param[inout] user_data An opaque pointer that will be passed into
-   * <code>audio_input_callback</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run when this
-   * open operation is completed.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*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);
-  /**
-   * Returns an audio config resource for the given audio input resource.
-   *
-   * @param[in] audio_input A <code>PP_Resource</code> corresponding to an audio
-   * input resource.
-   *
-   * @return A <code>PP_Resource</code> containing the audio config resource if
-   * successful.
-   */
-  PP_Resource (*GetCurrentConfig)(PP_Resource audio_input);
-  /**
-   * Starts the capture of the audio input resource and begins periodically
-   * calling the callback.
-   *
-   * @param[in] audio_input A <code>PP_Resource</code> corresponding to an audio
-   * input resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if
-   * successful, otherwise <code>PP_FALSE</code>.
-   * Also returns <code>PP_TRUE</code> (and is a no-op) if called while capture
-   * is already started.
-   */
-  PP_Bool (*StartCapture)(PP_Resource audio_input);
-  /**
-   * Stops the capture of the audio input resource.
-   *
-   * @param[in] audio_input A PP_Resource containing the audio input resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if
-   * successful, otherwise <code>PP_FALSE</code>.
-   * Also returns <code>PP_TRUE</code> (and is a no-op) if called while capture
-   * is already stopped. If a buffer is being captured, StopCapture will block
-   * until the call completes.
-   */
-  PP_Bool (*StopCapture)(PP_Resource audio_input);
-  /**
-   * Closes the audio input device, and stops capturing if necessary. It is
-   * not valid to call Open() again after a call to this method.
-   * If an audio input resource is destroyed while a device is still open, then
-   * it will be implicitly closed, so you are not required to call this method.
-   *
-   * @param[in] audio_input A <code>PP_Resource</code> corresponding to an audio
-   * input resource.
-   */
-  void (*Close)(PP_Resource audio_input);
-};
-
-typedef struct PPB_AudioInput_Dev_0_4 PPB_AudioInput_Dev;
-
-struct PPB_AudioInput_Dev_0_3 {
-  PP_Resource (*Create)(PP_Instance instance);
-  PP_Bool (*IsAudioInput)(PP_Resource resource);
-  int32_t (*EnumerateDevices)(PP_Resource audio_input,
-                              struct PP_ArrayOutput output,
-                              struct PP_CompletionCallback callback);
-  int32_t (*MonitorDeviceChange)(PP_Resource audio_input,
-                                 PP_MonitorDeviceChangeCallback callback,
-                                 void* user_data);
-  int32_t (*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);
-  PP_Resource (*GetCurrentConfig)(PP_Resource audio_input);
-  PP_Bool (*StartCapture)(PP_Resource audio_input);
-  PP_Bool (*StopCapture)(PP_Resource audio_input);
-  void (*Close)(PP_Resource audio_input);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_AUDIO_INPUT_DEV_H_ */
-
diff --git a/c/dev/ppb_audio_output_dev.h b/c/dev/ppb_audio_output_dev.h
deleted file mode 100644
index 097b8cb..0000000
--- a/c/dev/ppb_audio_output_dev.h
+++ /dev/null
@@ -1,249 +0,0 @@
-/* Copyright 2017 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/* From dev/ppb_audio_output_dev.idl modified Fri Apr  7 07:07:59 2017. */
-
-#ifndef PPAPI_C_DEV_PPB_AUDIO_OUTPUT_DEV_H_
-#define PPAPI_C_DEV_PPB_AUDIO_OUTPUT_DEV_H_
-
-#include "ppapi/c/dev/ppb_device_ref_dev.h"
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-
-#define PPB_AUDIO_OUTPUT_DEV_INTERFACE_0_1 "PPB_AudioOutput(Dev);0.1"
-#define PPB_AUDIO_OUTPUT_DEV_INTERFACE PPB_AUDIO_OUTPUT_DEV_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the <code>PPB_AudioOutput_dev</code> interface, which
- * provides realtime stereo audio streaming capabilities.
- */
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * <code>PPB_AudioOutput_Callback</code> defines the type of an audio callback
- * function used to fill the audio buffer with data. Please see the
- * Create() function in the <code>PPB_AudioOutput</code> interface for
- * more details on this callback.
- *
- * @param[out] sample_buffer A buffer to fill with audio data.
- * @param[in] buffer_size_in_bytes The size of the buffer in bytes.
- * @param[in] latency How long before the audio data is to be presented.
- * @param[inout] user_data An opaque pointer that was passed into
- * <code>PPB_AudioOutput.Create()</code>.
- */
-typedef void (*PPB_AudioOutput_Callback)(void* sample_buffer,
-                                         uint32_t buffer_size_in_bytes,
-                                         PP_TimeDelta latency,
-                                         void* user_data);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_AudioOutput</code> interface contains pointers to several
- * functions for handling audio resources.
- * Please see descriptions for each <code>PPB_AudioOutput</code> and
- * <code>PPB_AudioConfig</code> function for more details. A C example using
- * <code>PPB_AudioOutput</code> and <code>PPB_AudioConfig</code> follows.
- *
- * <strong>Example: </strong>
- *
- * @code
- * void audio_output_callback(void* sample_buffer,
- *                            uint32_t buffer_size_in_bytes,
- *                            PP_TimeDelta latency,
- *                            void* user_data) {
- *   ... quickly fill in the buffer with samples and return to caller ...
- *  }
- *
- * ...Assume the application has cached the audio configuration interface in
- * audio_config_interface and the audio interface in
- * audio_output_interface...
- *
- * uint32_t count = audio_config_interface->RecommendSampleFrameCount(
- *     PP_AUDIOSAMPLERATE_44100, 4096);
- * PP_Resource pp_audio_config = audio_config_interface->CreateStereo16Bit(
- *     pp_instance, PP_AUDIOSAMPLERATE_44100, count);
- * PP_Resource pp_audio_output = audio_interface->Create(pp_instance,
- *     pp_audio_config, audio_callback, NULL);
- * audio_interface->EnumerateDevices(pp_audio_output, output_device_list,
- *     callback);
- * audio_interface->Open(pp_audio_output, device_ref, pp_audio_config,
- *     audio_output_callback, user_data, callback);
- * audio_output_interface->StartPlayback(pp_audio_output);
- *
- * ...audio_output_callback() will now be periodically invoked on a separate
- * thread...
- * @endcode
- */
-struct PPB_AudioOutput_Dev_0_1 {
-  /**
-   * Creates an audio output resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to an audio output
-    resource
-   * if successful, 0 if failed.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Determines if the given resource is an audio output resource.
-   *
-   * @param[in] resource A <code>PP_Resource</code> containing a resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if the given
-   * resource is an audio output resource, otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool (*IsAudioOutput)(PP_Resource resource);
-  /**
-   * Enumerates audio output devices.
-   *
-   * @param[in] audio_output A <code>PP_Resource</code> corresponding to an
-    audio
-   * output resource.
-   * @param[in] output An output array which will receive
-   * <code>PPB_DeviceRef_Dev</code> resources on success. Please note that the
-   * ref count of those resources has already been increased by 1 for the
-   * caller.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * completion.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*EnumerateDevices)(PP_Resource audio_output,
-                              struct PP_ArrayOutput output,
-                              struct PP_CompletionCallback callback);
-  /**
-   * Requests device change notifications.
-   *
-   * @param[in] audio_output A <code>PP_Resource</code> corresponding to an
-    audio
-   * output resource.
-   * @param[in] callback The callback to receive notifications. If not NULL, it
-   * will be called once for the currently available devices, and then every
-   * time the list of available devices changes. All calls will happen on the
-   * same thread as the one on which MonitorDeviceChange() is called. It will
-   * receive notifications until <code>audio_output</code> is destroyed or
-   * <code>MonitorDeviceChange()</code> is called to set a new callback for
-   * <code>audio_output</code>. You can pass NULL to cancel sending
-   * notifications.
-   * @param[inout] user_data An opaque pointer that will be passed to
-   * <code>callback</code>.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*MonitorDeviceChange)(PP_Resource audio_output,
-                                 PP_MonitorDeviceChangeCallback callback,
-                                 void* user_data);
-  /**
-   * Open() opens an audio output device. No sound will be heard until
-   * StartPlayback() is called. The callback is called with the buffer address
-   * and given user data whenever the buffer needs to be filled. From within the
-   * callback, you should not call <code>PPB_AudioOutput</code> functions. The
-   * callback will be called on a different thread than the one which created
-   * the interface. For performance-critical applications (i.e. low-latency
-   * audio), the callback should avoid blocking or calling functions that can
-   * obtain locks, such as malloc. The layout and the size of the buffer passed
-   * to the audio callback will be determined by the device configuration and is
-   * specified in the <code>AudioConfig</code> documentation.
-   *
-   * @param[in] audio_output A <code>PP_Resource</code> corresponding to an
-    audio
-   * output resource.
-   * @param[in] device_ref Identifies an audio output device. It could be one of
-   * the resource in the array returned by EnumerateDevices(), or 0 which means
-   * the default device.
-   * @param[in] config A <code>PPB_AudioConfig</code> audio configuration
-   * resource.
-   * @param[in] audio_output_callback A <code>PPB_AudioOutput_Callback</code>
-   * function that will be called when audio buffer needs to be filled.
-   * @param[inout] user_data An opaque pointer that will be passed into
-   * <code>audio_output_callback</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run when this
-   * open operation is completed.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*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);
-  /**
-   * GetCurrrentConfig() returns an audio config resource for the given audio
-   * output resource.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * output resource.
-   *
-   * @return A <code>PP_Resource</code> containing the audio config resource if
-   * successful.
-   */
-  PP_Resource (*GetCurrentConfig)(PP_Resource audio_output);
-  /**
-   * StartPlayback() starts the playback of the audio output resource and begins
-   * periodically calling the callback.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * output resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if
-   * successful, otherwise <code>PP_FALSE</code>. Also returns
-   * <code>PP_TRUE</code> (and be a no-op) if called while playback is already
-   * in progress.
-   */
-  PP_Bool (*StartPlayback)(PP_Resource audio_output);
-  /**
-   * StopPlayback() stops the playback of the audio resource.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * output resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if
-   * successful, otherwise <code>PP_FALSE</code>. Also returns
-   * <code>PP_TRUE</code> (and is a no-op) if called while playback is already
-   * stopped. If a callback is in progress, StopPlayback() will block until the
-   * callback completes.
-   */
-  PP_Bool (*StopPlayback)(PP_Resource audio_output);
-  /**
-   * Close() closes the audio output device,
-           and stops playback if necessary. It is
-   * not valid to call Open() again after a call to this method.
-   * If an audio output resource is destroyed while a device is still open, then
-   * it will be implicitly closed, so you are not required to call this method.
-   *
-   * @param[in] audio_output A <code>PP_Resource</code> corresponding to an
-    audio
-   * output resource.
-   */
-  void (*Close)(PP_Resource audio_output);
-};
-
-typedef struct PPB_AudioOutput_Dev_0_1 PPB_AudioOutput_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_AUDIO_OUTPUT_DEV_H_ */
-
diff --git a/c/dev/ppb_buffer_dev.h b/c/dev/ppb_buffer_dev.h
deleted file mode 100644
index aefbcec..0000000
--- a/c/dev/ppb_buffer_dev.h
+++ /dev/null
@@ -1,64 +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.
- */
-
-/* From dev/ppb_buffer_dev.idl modified Wed Oct  5 14:06:02 2011. */
-
-#ifndef PPAPI_C_DEV_PPB_BUFFER_DEV_H_
-#define PPAPI_C_DEV_PPB_BUFFER_DEV_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_BUFFER_DEV_INTERFACE_0_4 "PPB_Buffer(Dev);0.4"
-#define PPB_BUFFER_DEV_INTERFACE PPB_BUFFER_DEV_INTERFACE_0_4
-
-/**
- * @file
- * This file defines the <code>PPB_Buffer_Dev</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_Buffer_Dev_0_4 {
-  /**
-   * Allocates a buffer of the given size in bytes. The return value will have
-   * a non-zero ID on success, or zero on failure. Failure means the module
-   * handle was invalid. The buffer will be initialized to contain zeroes.
-   */
-  PP_Resource (*Create)(PP_Instance instance, uint32_t size_in_bytes);
-  /**
-   * Returns PP_TRUE if the given resource is a Buffer. Returns PP_FALSE if the
-   * resource is invalid or some type other than a Buffer.
-   */
-  PP_Bool (*IsBuffer)(PP_Resource resource);
-  /**
-   * Gets the size of the buffer. Returns PP_TRUE on success, PP_FALSE
-   * if the resource is not a buffer. On failure, |*size_in_bytes| is not set.
-   */
-  PP_Bool (*Describe)(PP_Resource resource, uint32_t* size_in_bytes);
-  /**
-   * Maps this buffer into the plugin address space and returns a pointer to
-   * the beginning of the data.
-   */
-  void* (*Map)(PP_Resource resource);
-  /**
-   * Unmaps this buffer.
-   */
-  void (*Unmap)(PP_Resource resource);
-};
-
-typedef struct PPB_Buffer_Dev_0_4 PPB_Buffer_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_BUFFER_DEV_H_ */
-
diff --git a/c/dev/ppb_char_set_dev.h b/c/dev/ppb_char_set_dev.h
deleted file mode 100644
index 84ffc62..0000000
--- a/c/dev/ppb_char_set_dev.h
+++ /dev/null
@@ -1,85 +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_C_DEV_PPB_CHAR_SET_DEV_H_
-#define PPAPI_C_DEV_PPB_CHAR_SET_DEV_H_
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_CHAR_SET_DEV_INTERFACE_0_4 "PPB_CharSet(Dev);0.4"
-#define PPB_CHAR_SET_DEV_INTERFACE PPB_CHAR_SET_DEV_INTERFACE_0_4
-
-// Specifies the error behavior for the character set conversion functions.
-// This will affect two cases: where the input is not encoded correctly, and
-// when the requested character can not be converted to the destination
-// character set.
-enum PP_CharSet_ConversionError {
-  // Causes the entire conversion to fail if an error is encountered. The
-  // conversion function will return NULL.
-  PP_CHARSET_CONVERSIONERROR_FAIL,
-
-  // Silently skips over errors. Unrepresentable characters and input encoding
-  // errors will be removed from the output.
-  PP_CHARSET_CONVERSIONERROR_SKIP,
-
-  // Replaces the error or unrepresentable character with a substitution
-  // character. When converting to a Unicode character set (UTF-8 or UTF-16)
-  // it will use the unicode "substitution character" U+FFFD. When converting
-  // to another character set, the character will be charset-specific. For
-  // many languages this will be the representation of the '?' character.
-  PP_CHARSET_CONVERSIONERROR_SUBSTITUTE
-};
-PP_COMPILE_ASSERT_ENUM_SIZE_IN_BYTES(PP_CharSet_ConversionError, 4);
-
-struct PPB_CharSet_Dev_0_4 {
-  // Converts the UTF-16 string pointed to in |*utf16| to an 8-bit string in the
-  // specified code page. |utf16_len| is measured in UTF-16 units, not bytes.
-  // This value may not be NULL.
-  //
-  // The return value is a NULL-terminated 8-bit string corresponding to the
-  // new character set, or NULL on failure. THIS STRING MUST BE FREED USING
-  // PPB_Core::MemFree(). The length of the returned string, not including the
-  // terminating NULL, will be placed into *output_length. When there is no
-  // error, the result will always be non-NULL, even if the output is 0-length.
-  // In this case, it will only contain the terminator. You must still call
-  // MemFree any time the return value is non-NULL.
-  //
-  // This function will return NULL if there was an error converting the string
-  // and you requested PP_CHARSET_CONVERSIONERROR_FAIL, or the output character
-  // set was unknown.
-  char* (*UTF16ToCharSet)(PP_Instance instance,
-                          const uint16_t* utf16, uint32_t utf16_len,
-                          const char* output_char_set,
-                          enum PP_CharSet_ConversionError on_error,
-                          uint32_t* output_length);
-
-  // Same as UTF16ToCharSet except converts in the other direction. The input
-  // is in the given charset, and the |input_len| is the number of bytes in
-  // the |input| string. |*output_length| is the number of 16-bit values in
-  // the output not counting the terminating NULL.
-  //
-  // Since UTF16 can represent every Unicode character, the only time the
-  // replacement character will be used is if the encoding in the input string
-  // is incorrect.
-  uint16_t* (*CharSetToUTF16)(PP_Instance instance,
-                              const char* input, uint32_t input_len,
-                              const char* input_char_set,
-                              enum PP_CharSet_ConversionError on_error,
-                              uint32_t* output_length);
-
-  // Returns a string var representing the current multi-byte character set of
-  // the current system.
-  //
-  // WARNING: You really shouldn't be using this function unless you're dealing
-  // with legacy data. You should be using UTF-8 or UTF-16 and you don't have
-  // to worry about the character sets.
-  struct PP_Var (*GetDefaultCharSet)(PP_Instance instance);
-};
-
-typedef struct PPB_CharSet_Dev_0_4 PPB_CharSet_Dev;
-
-#endif  // PPAPI_C_DEV_PPB_CHAR_SET_DEV_H_
diff --git a/c/dev/ppb_crypto_dev.h b/c/dev/ppb_crypto_dev.h
deleted file mode 100644
index dcb7126..0000000
--- a/c/dev/ppb_crypto_dev.h
+++ /dev/null
@@ -1,41 +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.
- */
-
-/* From dev/ppb_crypto_dev.idl modified Wed Nov  7 13:40:08 2012. */
-
-#ifndef PPAPI_C_DEV_PPB_CRYPTO_DEV_H_
-#define PPAPI_C_DEV_PPB_CRYPTO_DEV_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_CRYPTO_DEV_INTERFACE_0_1 "PPB_Crypto(Dev);0.1"
-#define PPB_CRYPTO_DEV_INTERFACE PPB_CRYPTO_DEV_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the PPB_Crypto_Dev interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_Crypto_Dev_0_1 {
-  /**
-   * Fills the given buffer with random bytes. This is potentially slow so only
-   * request the amount of data you need.
-   */
-  void (*GetRandomBytes)(char* buffer, uint32_t num_bytes);
-};
-
-typedef struct PPB_Crypto_Dev_0_1 PPB_Crypto_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_CRYPTO_DEV_H_ */
-
diff --git a/c/dev/ppb_cursor_control_dev.h b/c/dev/ppb_cursor_control_dev.h
deleted file mode 100644
index e27b975..0000000
--- a/c/dev/ppb_cursor_control_dev.h
+++ /dev/null
@@ -1,85 +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.
- */
-
-/* From dev/ppb_cursor_control_dev.idl modified Fri Nov 18 15:58:00 2011. */
-
-#ifndef PPAPI_C_DEV_PPB_CURSOR_CONTROL_DEV_H_
-#define PPAPI_C_DEV_PPB_CURSOR_CONTROL_DEV_H_
-
-#include "ppapi/c/dev/pp_cursor_type_dev.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_CURSOR_CONTROL_DEV_INTERFACE_0_4 "PPB_CursorControl(Dev);0.4"
-#define PPB_CURSOR_CONTROL_DEV_INTERFACE PPB_CURSOR_CONTROL_DEV_INTERFACE_0_4
-
-/**
- * @file
- * This file defines the <code>PPB_CursorControl_Dev</code> interface
- * implemented by the browser for controlling the cursor.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_CursorControl_Dev_0_4 {
-  /**
-   * Set a cursor.  If "type" is PP_CURSORTYPE_CUSTOM, then "custom_image"
-   * must be an ImageData resource containing the cursor and "hot_spot" must
-   * contain the offset within that image that refers to the cursor's position.
-   */
-  PP_Bool (*SetCursor)(PP_Instance instance,
-                       enum PP_CursorType_Dev type,
-                       PP_Resource custom_image,
-                       const struct PP_Point* hot_spot);
-  /**
-   * This method causes the cursor to be moved to the center of the
-   * instance and be locked, preventing the user from moving it.
-   * The cursor is implicitly hidden from the user while locked.
-   * Cursor lock may only be requested in response to a
-   * PP_InputEvent_MouseDown, and then only if the event was generated via
-   * user gesture.
-   *
-   * While the cursor is locked, any movement of the mouse will
-   * generate a PP_InputEvent_Type_MouseMove, whose x and y values
-   * indicate the position the cursor would have been moved to had
-   * the cursor not been locked, and had the screen been infinite in size.
-   *
-   * The browser may revoke cursor lock for reasons including but not
-   * limited to the user pressing the ESC key, the user activating
-   * another program via a reserved keystroke (e.g., ALT+TAB), or
-   * some other system event.
-   *
-   * Returns PP_TRUE if the cursor could be locked, PP_FALSE otherwise.
-   */
-  PP_Bool (*LockCursor)(PP_Instance instance);
-  /**
-   * Causes the cursor to be unlocked, allowing it to track user
-   * movement again.
-   */
-  PP_Bool (*UnlockCursor)(PP_Instance instance);
-  /**
-   * Returns PP_TRUE if the cursor is locked, PP_FALSE otherwise.
-   */
-  PP_Bool (*HasCursorLock)(PP_Instance instance);
-  /**
-   * Returns PP_TRUE if the cursor can be locked, PP_FALSE otherwise.
-   */
-  PP_Bool (*CanLockCursor)(PP_Instance instance);
-};
-
-typedef struct PPB_CursorControl_Dev_0_4 PPB_CursorControl_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_CURSOR_CONTROL_DEV_H_ */
-
diff --git a/c/dev/ppb_device_ref_dev.h b/c/dev/ppb_device_ref_dev.h
deleted file mode 100644
index c1e91c6..0000000
--- a/c/dev/ppb_device_ref_dev.h
+++ /dev/null
@@ -1,110 +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.
- */
-
-/* From dev/ppb_device_ref_dev.idl modified Mon Jan 09 12:04:09 2017. */
-
-#ifndef PPAPI_C_DEV_PPB_DEVICE_REF_DEV_H_
-#define PPAPI_C_DEV_PPB_DEVICE_REF_DEV_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_DEVICEREF_DEV_INTERFACE_0_1 "PPB_DeviceRef(Dev);0.1"
-#define PPB_DEVICEREF_DEV_INTERFACE PPB_DEVICEREF_DEV_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the <code>PPB_DeviceRef_Dev</code> interface.
- */
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * Defines the callback type to receive device change notifications for
- * <code>PPB_AudioInput_Dev.MonitorDeviceChange()</code> and
- * <code>PPB_VideoCapture_Dev.MonitorDeviceChange()</code>.
- *
- * @param[inout] user_data The opaque pointer that the caller passed into
- * <code>MonitorDeviceChange()</code>.
- * @param[in] device_count How many devices in the array.
- * @param[in] devices An array of <code>PPB_DeviceRef_Dev</code>. Please note
- * that the ref count of the elements is not increased on behalf of the plugin.
- */
-typedef void (*PP_MonitorDeviceChangeCallback)(void* user_data,
-                                               uint32_t device_count,
-                                               const PP_Resource devices[]);
-/**
- * @}
- */
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * Device types.
- */
-typedef enum {
-  PP_DEVICETYPE_DEV_INVALID = 0,
-  PP_DEVICETYPE_DEV_AUDIOCAPTURE = 1,
-  PP_DEVICETYPE_DEV_VIDEOCAPTURE = 2,
-  PP_DEVICETYPE_DEV_AUDIOOUTPUT = 3,
-  PP_DEVICETYPE_DEV_MAX = PP_DEVICETYPE_DEV_AUDIOOUTPUT
-} PP_DeviceType_Dev;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_DeviceType_Dev, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_DeviceRef_Dev_0_1 {
-  /**
-   * Determines if the provided resource is a device reference.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a generic
-   * resource.
-   *
-   * @return A <code>PP_Bool</code> that is <code>PP_TRUE</code> if the given
-   * resource is a device reference, otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool (*IsDeviceRef)(PP_Resource resource);
-  /**
-   * Gets the device type.
-   *
-   * @param[in] device_ref A <code>PP_Resource</code> corresponding to a device
-   * reference.
-   *
-   * @return A <code>PP_DeviceType_Dev</code> value.
-   */
-  PP_DeviceType_Dev (*GetType)(PP_Resource device_ref);
-  /**
-   * Gets the device name.
-   *
-   * @param[in] device_ref A <code>PP_Resource</code> corresponding to a device
-   * reference.
-   *
-   * @return A <code>PP_Var</code> of type <code>PP_VARTYPE_STRING</code>
-   * containing the name of the device if successful; a <code>PP_Var</code> of
-   * type <code>PP_VARTYPE_UNDEFINED</code> if failed.
-   */
-  struct PP_Var (*GetName)(PP_Resource device_ref);
-};
-
-typedef struct PPB_DeviceRef_Dev_0_1 PPB_DeviceRef_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_DEVICE_REF_DEV_H_ */
-
diff --git a/c/dev/ppb_file_chooser_dev.h b/c/dev/ppb_file_chooser_dev.h
deleted file mode 100644
index 69b6b56..0000000
--- a/c/dev/ppb_file_chooser_dev.h
+++ /dev/null
@@ -1,142 +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.
- */
-
-/* From dev/ppb_file_chooser_dev.idl modified Mon Jun  4 12:44:29 2012. */
-
-#ifndef PPAPI_C_DEV_PPB_FILE_CHOOSER_DEV_H_
-#define PPAPI_C_DEV_PPB_FILE_CHOOSER_DEV_H_
-
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_FILECHOOSER_DEV_INTERFACE_0_5 "PPB_FileChooser(Dev);0.5"
-#define PPB_FILECHOOSER_DEV_INTERFACE_0_6 "PPB_FileChooser(Dev);0.6"
-#define PPB_FILECHOOSER_DEV_INTERFACE PPB_FILECHOOSER_DEV_INTERFACE_0_6
-
-/**
- * @file
- * This file defines the <code>PPB_FileChooser_Dev</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * This enumeration contains constants to control the behavior of the file
- * chooser dialog.
- */
-typedef enum {
-  /**
-   * Mode for choosing a single existing file.
-   */
-  PP_FILECHOOSERMODE_OPEN = 0,
-  /**
-   * Mode for choosing multiple existing files.
-   */
-  PP_FILECHOOSERMODE_OPENMULTIPLE = 1
-} PP_FileChooserMode_Dev;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FileChooserMode_Dev, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_FileChooser_Dev_0_6 {
-  /**
-   * This function creates a file chooser dialog resource.  The chooser is
-   * associated with a particular instance, so that it may be positioned on the
-   * screen relative to the tab containing the instance.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] mode A <code>PP_FileChooserMode_Dev</code> value that controls
-   * the behavior of the file chooser dialog.
-   * @param[in] accept_types A comma-separated list of MIME types and file
-   * extensions such as "audio/ *,text/plain,.html" (note there should be no
-   * space between the '/' and the '*', but one is added to avoid confusing C++
-   * comments). The dialog may restrict selectable files to the specified MIME
-   * types and file extensions. If a string in the comma-separated list begins
-   * with a period (.) then the string is interpreted as a file extension,
-   * otherwise it is interpreted as a MIME-type. An empty string or an undefined
-   * var may be given to indicate that all types should be accepted.
-   *
-   * @return A <code>PP_Resource</code> containing the file chooser if
-   * successful or 0 if it could not be created.
-   */
-  PP_Resource (*Create)(PP_Instance instance,
-                        PP_FileChooserMode_Dev mode,
-                        struct PP_Var accept_types);
-  /**
-   * Determines if the provided resource is a file chooser.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a generic
-   * resource.
-   *
-   * @return A <code>PP_Bool</code> that is <code>PP_TRUE</code> if the given
-   * resource is a file chooser resource, otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool (*IsFileChooser)(PP_Resource resource);
-  /**
-   * This function displays a previously created file chooser resource as a
-   * dialog box, prompting the user to choose a file or files. This function
-   * must be called in response to a user gesture, such as a mouse click or
-   * touch event. The callback is called with PP_OK on successful completion
-   * with a file (or files) selected, PP_ERROR_USERCANCEL if the user selected
-   * no file, or another error code from pp_errors.h on failure.
-   *
-   * <b>Subtle note:</b> This function will only work when the tab containing
-   * the plugin is visible. Show() will fail if the tab is in the background.
-   * Since it's not normally possible to get input events while invisible, this
-   * is not normally an issue. But there is a race condition because events are
-   * processed asynchronously. If the user clicks and switches tabs very
-   * quickly, a plugin could believe the tab is visible while Chrome believes
-   * it is invisible and the Show() call will fail. This will not generally
-   * cause user confusion since the user will have switched tabs and will not
-   * want to see a file chooser from a different tab.
-   *
-   * @param[in] chooser The file chooser resource.
-   *
-   * @param[in] output An output array which will receive PP_Resource(s)
-   * identifying the <code>PPB_FileRef</code> objects that the user selected on
-   * success.
-   *
-   * @param[in] callback A <code>CompletionCallback</code> to be called after
-   * the user has closed the file chooser dialog.
-   *
-   * @return PP_OK_COMPLETIONPENDING if request to show the dialog was
-   * successful, another error code from pp_errors.h on failure.
-   */
-  int32_t (*Show)(PP_Resource chooser,
-                  struct PP_ArrayOutput output,
-                  struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_FileChooser_Dev_0_6 PPB_FileChooser_Dev;
-
-struct PPB_FileChooser_Dev_0_5 {
-  PP_Resource (*Create)(PP_Instance instance,
-                        PP_FileChooserMode_Dev mode,
-                        struct PP_Var accept_types);
-  PP_Bool (*IsFileChooser)(PP_Resource resource);
-  int32_t (*Show)(PP_Resource chooser, struct PP_CompletionCallback callback);
-  PP_Resource (*GetNextChosenFile)(PP_Resource chooser);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_FILE_CHOOSER_DEV_H_ */
-
diff --git a/c/dev/ppb_gles_chromium_texture_mapping_dev.h b/c/dev/ppb_gles_chromium_texture_mapping_dev.h
deleted file mode 100644
index e41cff4..0000000
--- a/c/dev/ppb_gles_chromium_texture_mapping_dev.h
+++ /dev/null
@@ -1,56 +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_C_DEV_PPB_GLES_CHROMIUM_TEXTURE_MAPPING_DEV_H_
-#define PPAPI_C_DEV_PPB_GLES_CHROMIUM_TEXTURE_MAPPING_DEV_H_
-
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/ppb_opengles2.h"
-
-#define PPB_GLES_CHROMIUM_TEXTURE_MAPPING_DEV_INTERFACE_0_1 \
-    "PPB_GLESChromiumTextureMapping(Dev);0.1"
-#define PPB_GLES_CHROMIUM_TEXTURE_MAPPING_DEV_INTERFACE \
-    PPB_GLES_CHROMIUM_TEXTURE_MAPPING_DEV_INTERFACE_0_1
-
-// PPB_GLES_CHROMIUM_TEXTURE_MAPPING_DEV_INTERFACE is deprecated. Please use
-// PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE instead.
-
-#define PPB_OPENGLES2_CHROMIUMMAPSUB_DEV_INTERFACE_1_0 \
-    "PPB_OpenGLES2ChromiumMapSub(Dev);1.0"
-
-// PPB_OPENGLES2_CHROMIUMMAPSUB_DEV_INTERFACE_1_0 is also deprecated.  Please
-// use PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE instead.
-
-struct PPB_GLESChromiumTextureMapping_Dev_0_1 {
-  // Maps the sub-image of a texture. 'level', 'xoffset', 'yoffset', 'width',
-  // 'height', 'format' and 'type' correspond to the similarly named parameters
-  // of TexSubImage2D, and define the sub-image region, as well as the format of
-  // the data. 'access' must be one of GL_READ_ONLY, GL_WRITE_ONLY or
-  // GL_READ_WRITE. If READ is included, the returned buffer will contain the
-  // pixel data for the sub-image. If WRITE is included, the pixel data for the
-  // sub-image will be updated to the contents of the buffer when
-  // UnmapTexSubImage2DCHROMIUM is called. NOTE: for a GL_WRITE_ONLY map, it
-  // means that all the values of the buffer must be written.
-  void* (*MapTexSubImage2DCHROMIUM)(
-     PP_Resource context,
-     GLenum target,
-     GLint level,
-     GLint xoffset,
-     GLint yoffset,
-     GLsizei width,
-     GLsizei height,
-     GLenum format,
-     GLenum type,
-     GLenum access);
-
-  // Unmaps the sub-image of a texture. If the sub-image was mapped with one of
-  // the WRITE accesses, the pixels are updated at this time to the contents of
-  // the buffer. 'mem' must be the pointer returned by MapTexSubImage2DCHROMIUM.
-  void (*UnmapTexSubImage2DCHROMIUM)(PP_Resource context, const void* mem);
-};
-
-typedef struct PPB_GLESChromiumTextureMapping_Dev_0_1
-    PPB_GLESChromiumTextureMapping_Dev;
-
-#endif  // PPAPI_C_DEV_PPB_GLES_CHROMIUM_TEXTURE_MAPPING_DEV_H_
diff --git a/c/dev/ppb_ime_input_event_dev.h b/c/dev/ppb_ime_input_event_dev.h
deleted file mode 100644
index a1024c8..0000000
--- a/c/dev/ppb_ime_input_event_dev.h
+++ /dev/null
@@ -1,168 +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.
- */
-
-/* From dev/ppb_ime_input_event_dev.idl modified Wed May 16 17:08:03 2012. */
-
-#ifndef PPAPI_C_DEV_PPB_IME_INPUT_EVENT_DEV_H_
-#define PPAPI_C_DEV_PPB_IME_INPUT_EVENT_DEV_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/ppb_input_event.h"
-
-#define PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_1 "PPB_IMEInputEvent(Dev);0.1"
-#define PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_2 "PPB_IMEInputEvent(Dev);0.2"
-#define PPB_IME_INPUT_EVENT_DEV_INTERFACE PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_2
-
-/**
- * @file
- * This file defines the <code>PPB_IMEInputEvent_Dev</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_IMEInputEvent_Dev_0_2 {
-  /**
-   * Create() creates an IME input event with the given parameters. Normally
-   * you will get an IME event passed through the <code>HandleInputEvent</code>
-   * and will not need to create them, but some applications may want to create
-   * their own for internal use.
-   *
-   * @param[in] instance The instance for which this event occurred.
-   *
-   * @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-   * input event. The type must be one of the IME event types.
-   *
-   * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-   * when the event occurred.
-   *
-   * @param[in] text The string returned by <code>GetText</code>.
-   *
-   * @param[in] segment_number The number returned by
-   * <code>GetSegmentNumber</code>.
-   *
-   * @param[in] segment_offsets The array of numbers returned by
-   * <code>GetSegmentOffset</code>. If <code>segment_number</code> is zero,
-   * the number of elements of the array should be zero. If
-   * <code>segment_number</code> is non-zero, the length of the array must be
-   * <code>segment_number</code> + 1.
-   *
-   * @param[in] target_segment The number returned by
-   * <code>GetTargetSegment</code>.
-   *
-   * @param[in] selection_start The start index returned by
-   * <code>GetSelection</code>.
-   *
-   * @param[in] selection_end The end index returned by
-   * <code>GetSelection</code>.
-   *
-   * @return A <code>PP_Resource</code> containing the new IME input event.
-   */
-  PP_Resource (*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);
-  /**
-   * IsIMEInputEvent() determines if a resource is an IME event.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an event.
-   *
-   * @return <code>PP_TRUE</code> if the given resource is a valid input event.
-   */
-  PP_Bool (*IsIMEInputEvent)(PP_Resource resource);
-  /**
-   * GetText() returns the composition text as a UTF-8 string for the given IME
-   * event.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @return A string var representing the composition text. For non-IME input
-   * events the return value will be an undefined var.
-   */
-  struct PP_Var (*GetText)(PP_Resource ime_event);
-  /**
-   * GetSegmentNumber() returns the number of segments in the composition text.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @return The number of segments. For events other than COMPOSITION_UPDATE,
-   * returns 0.
-   */
-  uint32_t (*GetSegmentNumber)(PP_Resource ime_event);
-  /**
-   * GetSegmentOffset() returns the position of the index-th segmentation point
-   * in the composition text. The position is given by a byte-offset (not a
-   * character-offset) of the string returned by GetText(). It always satisfies
-   * 0=GetSegmentOffset(0) < ... < GetSegmentOffset(i) < GetSegmentOffset(i+1)
-   * < ... < GetSegmentOffset(GetSegmentNumber())=(byte-length of GetText()).
-   * Note that [GetSegmentOffset(i), GetSegmentOffset(i+1)) represents the range
-   * of the i-th segment, and hence GetSegmentNumber() can be a valid argument
-   * to this function instead of an off-by-1 error.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @param[in] index An integer indicating a segment.
-   *
-   * @return The byte-offset of the segmentation point. If the event is not
-   * COMPOSITION_UPDATE or index is out of range, returns 0.
-   */
-  uint32_t (*GetSegmentOffset)(PP_Resource ime_event, uint32_t index);
-  /**
-   * GetTargetSegment() returns the index of the current target segment of
-   * composition.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @return An integer indicating the index of the target segment. When there
-   * is no active target segment, or the event is not COMPOSITION_UPDATE,
-   * returns -1.
-   */
-  int32_t (*GetTargetSegment)(PP_Resource ime_event);
-  /**
-   * GetSelection() returns the range selected by caret in the composition text.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @param[out] start The start position of the current selection.
-   *
-   * @param[out] end The end position of the current selection.
-   */
-  void (*GetSelection)(PP_Resource ime_event, uint32_t* start, uint32_t* end);
-};
-
-typedef struct PPB_IMEInputEvent_Dev_0_2 PPB_IMEInputEvent_Dev;
-
-struct PPB_IMEInputEvent_Dev_0_1 {
-  PP_Bool (*IsIMEInputEvent)(PP_Resource resource);
-  struct PP_Var (*GetText)(PP_Resource ime_event);
-  uint32_t (*GetSegmentNumber)(PP_Resource ime_event);
-  uint32_t (*GetSegmentOffset)(PP_Resource ime_event, uint32_t index);
-  int32_t (*GetTargetSegment)(PP_Resource ime_event);
-  void (*GetSelection)(PP_Resource ime_event, uint32_t* start, uint32_t* end);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_IME_INPUT_EVENT_DEV_H_ */
-
diff --git a/c/dev/ppb_memory_dev.h b/c/dev/ppb_memory_dev.h
deleted file mode 100644
index e60dfce..0000000
--- a/c/dev/ppb_memory_dev.h
+++ /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.
- */
-
-/* From dev/ppb_memory_dev.idl modified Fri Nov 18 15:58:00 2011. */
-
-#ifndef PPAPI_C_DEV_PPB_MEMORY_DEV_H_
-#define PPAPI_C_DEV_PPB_MEMORY_DEV_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_MEMORY_DEV_INTERFACE_0_1 "PPB_Memory(Dev);0.1"
-#define PPB_MEMORY_DEV_INTERFACE PPB_MEMORY_DEV_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the <code>PPB_Memory interface</code> for functions
- * related to memory management.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The PPB_Memory_Dev interface contains pointers to functions related to memory
- * management.
- *
- */
-struct PPB_Memory_Dev_0_1 {
-  /**
-   * MemAlloc is a pointer to a function that allocate memory.
-   *
-   * @param[in] num_bytes A number of bytes to allocate.
-   * @return A pointer to the memory if successful, NULL If the
-   * allocation fails.
-   */
-  void* (*MemAlloc)(uint32_t num_bytes);
-  /**
-   * MemFree is a pointer to a function that deallocates memory.
-   *
-   * @param[in] ptr A pointer to the memory to deallocate. It is safe to
-   * pass NULL to this function.
-   */
-  void (*MemFree)(void* ptr);
-};
-
-typedef struct PPB_Memory_Dev_0_1 PPB_Memory_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_MEMORY_DEV_H_ */
-
diff --git a/c/dev/ppb_opengles2ext_dev.h b/c/dev/ppb_opengles2ext_dev.h
deleted file mode 100644
index 665f447..0000000
--- a/c/dev/ppb_opengles2ext_dev.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. */
-
-/* From dev/ppb_opengles2ext_dev.idl modified Fri Sep  5 14:52:51 2014. */
-
-#ifndef PPAPI_C_DEV_PPB_OPENGLES2EXT_DEV_H_
-#define PPAPI_C_DEV_PPB_OPENGLES2EXT_DEV_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/ppb_opengles2.h"
-
-#define PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE_1_0 \
-    "PPB_OpenGLES2DrawBuffers(Dev);1.0"
-#define PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE \
-    PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE_1_0
-
-/**
- * @file
- * This file is auto-generated from
- * gpu/command_buffer/build_gles2_cmd_buffer.py
- * It's formatted by clang-format using chromium coding style:
- *    clang-format -i -style=chromium filename
- * DO NOT EDIT! */
-
-
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/ppb_opengles2.h"
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_OpenGLES2DrawBuffers_Dev_1_0 {
-  void (*DrawBuffersEXT)(PP_Resource context,
-                         GLsizei count,
-                         const GLenum* bufs);
-};
-
-struct PPB_OpenGLES2DrawBuffers_Dev {
-  void (*DrawBuffersEXT)(PP_Resource context,
-                         GLsizei count,
-                         const GLenum* bufs);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_OPENGLES2EXT_DEV_H_ */
-
diff --git a/c/dev/ppb_printing_dev.h b/c/dev/ppb_printing_dev.h
deleted file mode 100644
index 59e4cc6..0000000
--- a/c/dev/ppb_printing_dev.h
+++ /dev/null
@@ -1,70 +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.
- */
-
-/* From dev/ppb_printing_dev.idl modified Fri Apr 19 10:45:09 2013. */
-
-#ifndef PPAPI_C_DEV_PPB_PRINTING_DEV_H_
-#define PPAPI_C_DEV_PPB_PRINTING_DEV_H_
-
-#include "ppapi/c/dev/pp_print_settings_dev.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_PRINTING_DEV_INTERFACE_0_7 "PPB_Printing(Dev);0.7"
-#define PPB_PRINTING_DEV_INTERFACE PPB_PRINTING_DEV_INTERFACE_0_7
-
-/**
- * @file
- * Definition of the PPB_Printing interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_Printing_Dev_0_7 {
-  /** Create a resource for accessing printing functionality.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   *
-   * @return A <code>PP_Resource</code> containing the printing resource if
-   * successful or 0 if it could not be created.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Outputs the default print settings for the default printer into
-   * <code>print_settings</code>. The callback is called with
-   * <code>PP_OK</code> when the settings have been retrieved successfully.
-   *
-   * @param[in] resource The printing resource.
-   *
-   * @param[in] callback A <code>CompletionCallback</code> to be called when
-   * <code>print_settings</code> have been retrieved.
-   *
-   * @return PP_OK_COMPLETIONPENDING if request for the default print settings
-   * was successful, another error code from pp_errors.h on failure.
-   */
-  int32_t (*GetDefaultPrintSettings)(
-      PP_Resource resource,
-      struct PP_PrintSettings_Dev* print_settings,
-      struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_Printing_Dev_0_7 PPB_Printing_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_PRINTING_DEV_H_ */
-
diff --git a/c/dev/ppb_text_input_dev.h b/c/dev/ppb_text_input_dev.h
deleted file mode 100644
index 53c35a0..0000000
--- a/c/dev/ppb_text_input_dev.h
+++ /dev/null
@@ -1,142 +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.
- */
-
-/* From dev/ppb_text_input_dev.idl modified Tue Aug  6 10:37:25 2013. */
-
-#ifndef PPAPI_C_DEV_PPB_TEXT_INPUT_DEV_H_
-#define PPAPI_C_DEV_PPB_TEXT_INPUT_DEV_H_
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_TEXTINPUT_DEV_INTERFACE_0_1 "PPB_TextInput(Dev);0.1"
-#define PPB_TEXTINPUT_DEV_INTERFACE_0_2 "PPB_TextInput(Dev);0.2"
-#define PPB_TEXTINPUT_DEV_INTERFACE PPB_TEXTINPUT_DEV_INTERFACE_0_2
-
-/**
- * @file
- * This file defines the <code>PPB_TextInput_Dev</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * PP_TextInput_Type is used to indicate the status of a plugin in regard to
- * text input.
- */
-typedef enum {
-  /**
-   * Input caret is not in an editable mode, no input method shall be used.
-   */
-  PP_TEXTINPUT_TYPE_DEV_NONE = 0,
-  /**
-   * Input caret is in a normal editable mode, any input method can be used.
-   */
-  PP_TEXTINPUT_TYPE_DEV_TEXT = 1,
-  /**
-   * Input caret is in a password box, an input method may be used only if
-   * it's suitable for password input.
-   */
-  PP_TEXTINPUT_TYPE_DEV_PASSWORD = 2,
-  PP_TEXTINPUT_TYPE_DEV_SEARCH = 3,
-  PP_TEXTINPUT_TYPE_DEV_EMAIL = 4,
-  PP_TEXTINPUT_TYPE_DEV_NUMBER = 5,
-  PP_TEXTINPUT_TYPE_DEV_TELEPHONE = 6,
-  PP_TEXTINPUT_TYPE_DEV_URL = 7
-} PP_TextInput_Type_Dev;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_TextInput_Type_Dev, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * <code>PPB_TextInput_Dev</code> provides a set of functions for giving hints
- * to the browser about the text input status of plugins, and functions for
- * controlling input method editors (IMEs).
- */
-struct PPB_TextInput_Dev_0_2 {
-  /**
-   * Informs the browser about the current text input mode of the plugin.
-   * Typical use of this information in the browser is to properly
-   * display/suppress tools for supporting text inputs (such as virtual
-   * keyboards in touch screen based devices, or input method editors often
-   * used for composing East Asian characters).
-   */
-  void (*SetTextInputType)(PP_Instance instance, PP_TextInput_Type_Dev type);
-  /**
-   * Informs the browser about the coordinates of the text input caret and the
-   * bounding box of the text input area. Typical use of this information in
-   * the browser is to layout IME windows etc.
-   */
-  void (*UpdateCaretPosition)(PP_Instance instance,
-                              const struct PP_Rect* caret,
-                              const struct PP_Rect* bounding_box);
-  /**
-   * Cancels the current composition in IME.
-   */
-  void (*CancelCompositionText)(PP_Instance instance);
-  /**
-   * In response to the <code>PPP_TextInput_Dev::RequestSurroundingText</code>
-   * call, informs the browser about the current text selection and surrounding
-   * text. <code>text</code> is a UTF-8 string that contains the current range
-   * of text selection in the plugin. <code>caret</code> is the byte-index of
-   * the caret position within <code>text</code>. <code>anchor</code> is the
-   * byte-index of the anchor position (i.e., if a range of text is selected,
-   * it is the other edge of selection different from <code>caret</code>. If
-   * there are no selection, <code>anchor</code> is equal to <code>caret</code>.
-   *
-   * Typical use of this information in the browser is to enable "reconversion"
-   * features of IME that puts back the already committed text into the
-   * pre-commit composition state. Another use is to improve the precision
-   * of suggestion of IME by taking the context into account (e.g., if the caret
-   * looks to be on the beginning of a sentence, suggest capital letters in a
-   * virtual keyboard).
-   *
-   * When the focus is not on text, call this function setting <code>text</code>
-   * to an empty string and <code>caret</code> and <code>anchor</code> to zero.
-   * Also, the plugin should send the empty text when it does not want to reveal
-   * the selection to IME (e.g., when the surrounding text is containing
-   * password text).
-   */
-  void (*UpdateSurroundingText)(PP_Instance instance,
-                                const char* text,
-                                uint32_t caret,
-                                uint32_t anchor);
-  /**
-   * Informs the browser when a range of text selection is changed in a plugin.
-   * When the browser needs to know the content of the updated selection, it
-   * pings back by <code>PPP_TextInput_Dev::RequestSurroundingText</code>. The
-   * plugin then should send the information with
-   * <code>UpdateSurroundingText</code>.
-   */
-  void (*SelectionChanged)(PP_Instance instance);
-};
-
-typedef struct PPB_TextInput_Dev_0_2 PPB_TextInput_Dev;
-
-struct PPB_TextInput_Dev_0_1 {
-  void (*SetTextInputType)(PP_Instance instance, PP_TextInput_Type_Dev type);
-  void (*UpdateCaretPosition)(PP_Instance instance,
-                              const struct PP_Rect* caret,
-                              const struct PP_Rect* bounding_box);
-  void (*CancelCompositionText)(PP_Instance instance);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_TEXT_INPUT_DEV_H_ */
-
diff --git a/c/dev/ppb_trace_event_dev.h b/c/dev/ppb_trace_event_dev.h
deleted file mode 100644
index f90027b..0000000
--- a/c/dev/ppb_trace_event_dev.h
+++ /dev/null
@@ -1,118 +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.
- */
-
-/* From dev/ppb_trace_event_dev.idl modified Tue Jun 25 16:12:08 2013. */
-
-#ifndef PPAPI_C_DEV_PPB_TRACE_EVENT_DEV_H_
-#define PPAPI_C_DEV_PPB_TRACE_EVENT_DEV_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_TRACE_EVENT_DEV_INTERFACE_0_1 "PPB_Trace_Event(Dev);0.1"
-#define PPB_TRACE_EVENT_DEV_INTERFACE_0_2 "PPB_Trace_Event(Dev);0.2"
-#define PPB_TRACE_EVENT_DEV_INTERFACE PPB_TRACE_EVENT_DEV_INTERFACE_0_2
-
-/**
- * @file
- * This file defines the <code>PPB_Trace_Event</code> interface. It is meant
- * to be used in plugins as the API that trace macros from trace_event.h use.
- */
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * A trace event timestamp.
- */
-typedef int64_t PP_TraceEventTime;
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_Trace_Event_Dev_0_2 {
-  /**
-   * Gets a pointer to a character for identifying a category name in the
-   * tracing system as well as for being able to early exit in client-side
-   * tracing code.
-   *
-   * NB: This mem_t return value should technically be const, but return values
-   * for Pepper IDL of mem_t type are not const.  The same is true for the arg
-   * |category_enabled| for AddTraceEvent.
-   */
-  void* (*GetCategoryEnabled)(const char* category_name);
-  /**
-   * Adds a trace event to the platform tracing system. This function call is
-   * usually the result of a TRACE_* macro from trace_event.h when tracing and
-   * the category of the particular trace are enabled. It is not advisable to
-   * call this function on its own; it is really only meant to be used by the
-   * trace macros.
-   */
-  void (*AddTraceEvent)(int8_t phase,
-                        const void* category_enabled,
-                        const char* name,
-                        uint64_t id,
-                        uint32_t num_args,
-                        const char* arg_names[],
-                        const uint8_t arg_types[],
-                        const uint64_t arg_values[],
-                        uint8_t flags);
-  /**
-   * Version of the above interface that allows specifying a custom thread id
-   * and timestamp. This is useful for when tracing data cannot be registered
-   * in real time. For example, this could be used by storing timestamps
-   * internally and then registering the events retroactively.
-   */
-  void (*AddTraceEventWithThreadIdAndTimestamp)(int8_t phase,
-                                                const void* category_enabled,
-                                                const char* name,
-                                                uint64_t id,
-                                                int32_t thread_id,
-                                                PP_TraceEventTime timestamp,
-                                                uint32_t num_args,
-                                                const char* arg_names[],
-                                                const uint8_t arg_types[],
-                                                const uint64_t arg_values[],
-                                                uint8_t flags);
-  /**
-   * Get the current clock value. Since this uses the same function as the trace
-   * events use internally, it can be used to create events with explicit time
-   * stamps.
-   */
-  PP_TraceEventTime (*Now)(void);
-  /**
-   * Sets the thread name of the calling thread in the tracing system so it will
-   * show up properly in chrome://tracing.
-   */
-  void (*SetThreadName)(const char* thread_name);
-};
-
-typedef struct PPB_Trace_Event_Dev_0_2 PPB_Trace_Event_Dev;
-
-struct PPB_Trace_Event_Dev_0_1 {
-  void* (*GetCategoryEnabled)(const char* category_name);
-  void (*AddTraceEvent)(int8_t phase,
-                        const void* category_enabled,
-                        const char* name,
-                        uint64_t id,
-                        uint32_t num_args,
-                        const char* arg_names[],
-                        const uint8_t arg_types[],
-                        const uint64_t arg_values[],
-                        uint8_t flags);
-  void (*SetThreadName)(const char* thread_name);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_TRACE_EVENT_DEV_H_ */
-
diff --git a/c/dev/ppb_url_util_dev.h b/c/dev/ppb_url_util_dev.h
deleted file mode 100644
index 2b28f39..0000000
--- a/c/dev/ppb_url_util_dev.h
+++ /dev/null
@@ -1,207 +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.
- */
-
-/* From dev/ppb_url_util_dev.idl modified Wed Aug 28 19:09:17 2013. */
-
-#ifndef PPAPI_C_DEV_PPB_URL_UTIL_DEV_H_
-#define PPAPI_C_DEV_PPB_URL_UTIL_DEV_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_URLUTIL_DEV_INTERFACE_0_6 "PPB_URLUtil(Dev);0.6"
-#define PPB_URLUTIL_DEV_INTERFACE_0_7 "PPB_URLUtil(Dev);0.7"
-#define PPB_URLUTIL_DEV_INTERFACE PPB_URLUTIL_DEV_INTERFACE_0_7
-
-/**
- * @file
- * This file defines the <code>PPB_URLUtil_Dev</code> interface.
- */
-
-
-/**
- * @addtogroup Structs
- * @{
- */
-/*
- * A component specifies the range of the part of the URL. The begin specifies
- * the index into the string of the first character of that component. The len
- * specifies the length of that component.
- *
- * This range does not include any special delimiter for that component, so
- * the scheme doesn't include the trailing colon, the username and password
- * don't include the @ and :, the port doesn't include the colon, the query
- * doesn't include the ?, and the ref doesn't include the #.
- *
- * The exception is that the path *does* include the first /, since that's an
- * integral part of the path.
- *
- * If the component is not present at all, begin will be 0 and len will be -1.
- * If the component is present but empty, the length will be 0 instead. Example:
- *   http://foo/search    -> query = (0, -1)
- *   http://foo/search?   -> query = (18, 0)
- */
-struct PP_URLComponent_Dev {
-  int32_t begin;
-  int32_t len;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_URLComponent_Dev, 8);
-
-struct PP_URLComponents_Dev {
-  struct PP_URLComponent_Dev scheme;
-  struct PP_URLComponent_Dev username;
-  struct PP_URLComponent_Dev password;
-  struct PP_URLComponent_Dev host;
-  struct PP_URLComponent_Dev port;
-  struct PP_URLComponent_Dev path;
-  struct PP_URLComponent_Dev query;
-  struct PP_URLComponent_Dev ref;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_URLComponents_Dev, 64);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/*
- * URL encoding: URLs are supplied to this interface as NULL-terminated 8-bit
- * strings. You can pass non-ASCII characters which will be interpreted as
- * UTF-8. Canonicalized URL strings returned by these functions will be ASCII
- * except for the reference fragment (stuff after the '#') which will be
- * encoded as UTF-8.
- */
-struct PPB_URLUtil_Dev_0_7 {
-  /*
-   * Canonicalizes the given URL string according to the rules of the host
-   * browser. If the URL is invalid or the var is not a string, this will
-   * return a Null var and the components structure will be unchanged.
-   *
-   * The components pointer, if non-NULL and the canonicalized URL is valid,
-   * will identify the components of the resulting URL. Components may be NULL
-   * to specify that no component information is necessary.
-   */
-  struct PP_Var (*Canonicalize)(struct PP_Var url,
-                                struct PP_URLComponents_Dev* components);
-  /*
-   *  Resolves the given URL relative to the given base URL. The resulting URL
-   *  is returned as a string. If the resolution is invalid or either of the
-   *  inputs are not strings, a Null var will be returned. The resulting URL
-   *  will also be canonicalized according to the rules of the browser.
-   *
-   *  Note that the "relative" URL may in fact be absolute, in which case it
-   *  will be returned. This function is identical to resolving the full URL
-   *  for an <a href="..."> on a web page. Attempting to resolve a relative URL
-   *  on a base URL that doesn't support this (e.g. "data") will fail and will
-   *  return a Null var, unless the relative URL is itself absolute.
-   *
-   *  The components pointer, if non-NULL and the canonicalized URL is valid,
-   *  will identify the components of the resulting URL. Components may be NULL
-   *  to specify that no component information is necessary.
-   */
-  struct PP_Var (*ResolveRelativeToURL)(
-      struct PP_Var base_url,
-      struct PP_Var relative_string,
-      struct PP_URLComponents_Dev* components);
-  /*
-   *  Identical to ResolveRelativeToURL except that the base URL is the base
-   *  URL of the document containing the given plugin instance.
-   *
-   *  Danger: This will be identical to resolving a relative URL on the page,
-   *  and might be overridden by the page to something different than its actual
-   *  URL via the <base> tag. Therefore, resolving a relative URL of "" won't
-   *  necessarily give you the URL of the page!
-   */
-  struct PP_Var (*ResolveRelativeToDocument)(
-      PP_Instance instance,
-      struct PP_Var relative_string,
-      struct PP_URLComponents_Dev* components);
-  /*
-   * Checks whether the given two URLs are in the same security origin. Returns
-   * FALSE if either of the URLs are invalid.
-   */
-  PP_Bool (*IsSameSecurityOrigin)(struct PP_Var url_a, struct PP_Var url_b);
-  /*
-   * Checks whether the document hosting the given plugin instance can access
-   * the given URL according to the same origin policy of the browser. Returns
-   * PP_FALSE if the instance or the URL is invalid.
-   */
-  PP_Bool (*DocumentCanRequest)(PP_Instance instance, struct PP_Var url);
-  /*
-   * Checks whether the document containing the |active| plugin instance can
-   * access the document containing the |target| plugin instance according to
-   * the security policy of the browser. This includes the same origin policy
-   * and any cross-origin capabilities enabled by the document. If either of
-   * the plugin instances are invalid, returns PP_FALSE.
-   */
-  PP_Bool (*DocumentCanAccessDocument)(PP_Instance active, PP_Instance target);
-  /*
-   * Returns the URL for the document. This is a safe way to retrieve
-   * window.location.href.
-   * The components pointer, if non-NULL and the canonicalized URL is valid,
-   * will identify the components of the resulting URL. Components may be NULL
-   * to specify that no component information is necessary.
-   */
-  struct PP_Var (*GetDocumentURL)(PP_Instance instance,
-                                  struct PP_URLComponents_Dev* components);
-  /*
-   * Returns the Source URL for the plugin. This returns the URL that would be
-   * streamed to the plugin if it were a NPAPI plugin. This is usually the src
-   * attribute on the <embed> element, but the rules are obscure and different
-   * based on whether the plugin is loaded from an <embed> element or an
-   * <object> element.
-   * The components pointer, if non-NULL and the canonicalized URL is valid,
-   * will identify the components of the resulting URL. Components may be NULL
-   * to specify that no component information is necessary.
-   */
-  struct PP_Var (*GetPluginInstanceURL)(
-      PP_Instance instance,
-      struct PP_URLComponents_Dev* components);
-  /*
-   * Returns the Referrer URL of the HTTP request that loaded the plugin. This
-   * is the value of the 'Referer' header of the request. An undefined value
-   * means the 'Referer' header was absent.
-   * The components pointer, if non-NULL and the canonicalized URL is valid,
-   * will identify the components of the resulting URL. Components may be NULL
-   * to specify that no component information is necessary.
-   */
-  struct PP_Var (*GetPluginReferrerURL)(
-      PP_Instance instance,
-      struct PP_URLComponents_Dev* components);
-};
-
-typedef struct PPB_URLUtil_Dev_0_7 PPB_URLUtil_Dev;
-
-struct PPB_URLUtil_Dev_0_6 {
-  struct PP_Var (*Canonicalize)(struct PP_Var url,
-                                struct PP_URLComponents_Dev* components);
-  struct PP_Var (*ResolveRelativeToURL)(
-      struct PP_Var base_url,
-      struct PP_Var relative_string,
-      struct PP_URLComponents_Dev* components);
-  struct PP_Var (*ResolveRelativeToDocument)(
-      PP_Instance instance,
-      struct PP_Var relative_string,
-      struct PP_URLComponents_Dev* components);
-  PP_Bool (*IsSameSecurityOrigin)(struct PP_Var url_a, struct PP_Var url_b);
-  PP_Bool (*DocumentCanRequest)(PP_Instance instance, struct PP_Var url);
-  PP_Bool (*DocumentCanAccessDocument)(PP_Instance active, PP_Instance target);
-  struct PP_Var (*GetDocumentURL)(PP_Instance instance,
-                                  struct PP_URLComponents_Dev* components);
-  struct PP_Var (*GetPluginInstanceURL)(
-      PP_Instance instance,
-      struct PP_URLComponents_Dev* components);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_URL_UTIL_DEV_H_ */
-
diff --git a/c/dev/ppb_var_deprecated.h b/c/dev/ppb_var_deprecated.h
deleted file mode 100644
index 834e377..0000000
--- a/c/dev/ppb_var_deprecated.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/* Copyright 2010 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_C_DEV_PPB_VAR_DEPRECATED_H_
-#define PPAPI_C_DEV_PPB_VAR_DEPRECATED_H_
-
-#include "ppapi/c/dev/deprecated_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_module.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-struct PPP_Class_Deprecated;
-
-#define PPB_VAR_DEPRECATED_INTERFACE_0_3 "PPB_Var(Deprecated);0.3"
-#define PPB_VAR_DEPRECATED_INTERFACE PPB_VAR_DEPRECATED_INTERFACE_0_3
-
-/**
- * @file
- * Defines the PPB_Var_Deprecated struct.
- * See http://code.google.com/p/ppapi/wiki/InterfacingWithJavaScript
- * for general information on using this interface.
- * {PENDING: Should the generated doc really be pointing to methods?}
- *
- * @addtogroup PPB
- * @{
- */
-
-struct PPB_Var_Deprecated {
-  /**
-   * Adds a reference to the given var. If this is not a refcounted object,
-   * this function will do nothing so you can always call it no matter what the
-   * type.
-   */
-  void (*AddRef)(struct PP_Var var);
-
-  /**
-   * Removes a reference to given var, deleting it if the internal refcount
-   * becomes 0. If the given var is not a refcounted object, this function will
-   * do nothing so you can always call it no matter what the type.
-   */
-  void (*Release)(struct PP_Var var);
-
-  /**
-   * Creates a string var from a string. The string must be encoded in valid
-   * UTF-8 and is NOT NULL-terminated, the length must be specified in |len|.
-   * It is an error if the string is not valid UTF-8.
-   *
-   * If the length is 0, the |data| pointer will not be dereferenced and may
-   * be NULL. Note, however, that if you do this, the "NULL-ness" will not be
-   * preserved, as VarToUtf8 will never return NULL on success, even for empty
-   * strings.
-   *
-   * The resulting object will be a refcounted string object. It will be
-   * AddRef()ed for the caller. When the caller is done with it, it should be
-   * Release()d.
-   *
-   * On error (basically out of memory to allocate the string, or input that
-   * is not valid UTF-8), this function will return a Null var.
-   */
-  struct PP_Var (*VarFromUtf8)(PP_Module module,
-                               const char* data, uint32_t len);
-
-  /**
-   * Converts a string-type var to a char* encoded in UTF-8. This string is NOT
-   * NULL-terminated. The length will be placed in |*len|. If the string is
-   * valid but empty the return value will be non-NULL, but |*len| will still
-   * be 0.
-   *
-   * If the var is not a string, this function will return NULL and |*len| will
-   * be 0.
-   *
-   * The returned buffer will be valid as long as the underlying var is alive.
-   * If the plugin frees its reference, the string will be freed and the pointer
-   * will be to random memory.
-   */
-  const char* (*VarToUtf8)(struct PP_Var var, uint32_t* len);
-
-  /**
-   * Returns true if the property with the given name exists on the given
-   * object, false if it does not. Methods are also counted as properties.
-   *
-   * The name can either be a string or an integer var. It is an error to pass
-   * another type of var as the name.
-   *
-   * If you pass an invalid name or object, the exception will be set (if it is
-   * non-NULL, and the return value will be false).
-   */
-  bool (*HasProperty)(struct PP_Var object,
-                      struct PP_Var name,
-                      struct PP_Var* exception);
-
-  /**
-   * Identical to HasProperty, except that HasMethod additionally checks if the
-   * property is a function.
-   */
-  bool (*HasMethod)(struct PP_Var object,
-                    struct PP_Var name,
-                    struct PP_Var* exception);
-
-  /**
-   * Returns the value of the given property. If the property doesn't exist, the
-   * exception (if non-NULL) will be set and a "Void" var will be returned.
-   */
-  struct PP_Var (*GetProperty)(struct PP_Var object,
-                               struct PP_Var name,
-                               struct PP_Var* exception);
-
-  /**
-   * Retrieves all property names on the given object. Property names include
-   * methods.
-   *
-   * If there is a failure, the given exception will be set (if it is non-NULL).
-   * On failure, |*properties| will be set to NULL and |*property_count| will be
-   * set to 0.
-   *
-   * A pointer to the array of property names will be placesd in |*properties|.
-   * The caller is responsible for calling Release() on each of these properties
-   * (as per normal refcounted memory management) as well as freeing the array
-   * pointer with PPB_Core.MemFree().
-   *
-   * This function returns all "enumerable" properties. Some JavaScript
-   * properties are "hidden" and these properties won't be retrieved by this
-   * function, yet you can still set and get them.
-   *
-   * Example:
-   * <pre>  uint32_t count;
-   *   PP_Var* properties;
-   *   ppb_var.GetAllPropertyNames(object, &count, &properties);
-   *
-   *   ...use the properties here...
-   *
-   *   for (uint32_t i = 0; i < count; i++)
-   *     ppb_var.Release(properties[i]);
-   *   ppb_core.MemFree(properties); </pre>
-   */
-  void (*GetAllPropertyNames)(struct PP_Var object,
-                              uint32_t* property_count,
-                              struct PP_Var** properties,
-                              struct PP_Var* exception);
-
-  /**
-   * Sets the property with the given name on the given object. The exception
-   * will be set, if it is non-NULL, on failure.
-   */
-  void (*SetProperty)(struct PP_Var object,
-                      struct PP_Var name,
-                      struct PP_Var value,
-                      struct PP_Var* exception);
-
-  /**
-   * Removes the given property from the given object. The property name must
-   * be an string or integer var, using other types will throw an exception
-   * (assuming the exception pointer is non-NULL).
-   */
-  void (*RemoveProperty)(struct PP_Var object,
-                         struct PP_Var name,
-                         struct PP_Var* exception);
-
-  // TODO(brettw) need native array access here.
-
-  /**
-   * Invoke the function |method_name| on the given object. If |method_name|
-   * is a Null var, the default method will be invoked, which is how you can
-   * invoke function objects.
-   *
-   * Unless it is type Null, |method_name| must be a string. Unlike other
-   * Var functions, integer lookup is not supported since you can't call
-   * functions on integers in JavaScript.
-   *
-   * Pass the arguments to the function in order in the |argv| array, and the
-   * number of arguments in the |argc| parameter. |argv| can be NULL if |argc|
-   * is zero.
-   *
-   * Example:
-   *   Call(obj, VarFromUtf8("DoIt"), 0, NULL, NULL) = obj.DoIt() in JavaScript.
-   *   Call(obj, PP_MakeNull(), 0, NULL, NULL) = obj() in JavaScript.
-   */
-  struct PP_Var (*Call)(struct PP_Var object,
-                        struct PP_Var method_name,
-                        uint32_t argc,
-                        struct PP_Var* argv,
-                        struct PP_Var* exception);
-
-  /**
-   * Invoke the object as a constructor.
-   *
-   * For example, if |object| is |String|, this is like saying |new String| in
-   * JavaScript.
-   */
-  struct PP_Var (*Construct)(struct PP_Var object,
-                             uint32_t argc,
-                             struct PP_Var* argv,
-                             struct PP_Var* exception);
-
-  /**
-   * If the object is an instance of the given class, then this method returns
-   * true and sets *object_data to the value passed to CreateObject provided
-   * object_data is non-NULL. Otherwise, this method returns false.
-   */
-  bool (*IsInstanceOf)(struct PP_Var var,
-                       const struct PPP_Class_Deprecated* object_class,
-                       void** object_data);
-
-  /**
-   * Creates an object that the plugin implements. The plugin supplies a
-   * pointer to the class interface it implements for that object, and its
-   * associated internal data that represents that object. This object data
-   * must be unique among all "live" objects.
-   *
-   * The returned object will have a reference count of 1. When the reference
-   * count reached 0, the class' Destruct function wlil be called.
-   *
-   * On failure, this will return a null var. This probably means the module
-   * was invalid.
-   *
-   * Example: Say we're implementing a "Point" object.
-   * <pre>  void PointDestruct(void* object) {
-   *     delete (Point*)object;
-   *   }
-   *
-   *   const PPP_Class_Deprecated point_class = {
-   *     ... all the other class functions go here ...
-   *     &PointDestruct
-   *   };
-   *
-   *    * The plugin's internal object associated with the point.
-   *   class Point {
-   *     ...
-   *   };
-   *
-   *   PP_Var MakePoint(int x, int y) {
-   *     return CreateObject(&point_class, new Point(x, y));
-   *   }</pre>
-   */
-  struct PP_Var (*CreateObject)(PP_Instance instance,
-                                const struct PPP_Class_Deprecated* object_class,
-                                void* object_data);
-
-  // Like CreateObject but takes a module. This will be deleted when all callers
-  // can be changed to use the PP_Instance CreateObject one.
-  struct PP_Var (*CreateObjectWithModuleDeprecated)(
-      PP_Module module,
-      const struct PPP_Class_Deprecated* object_class,
-      void* object_data);
-};
-
-/**
- * @}
- * End addtogroup PPB
- */
-#endif  // PPAPI_C_DEV_PPB_VAR_DEPRECATED_H_
-
diff --git a/c/dev/ppb_video_capture_dev.h b/c/dev/ppb_video_capture_dev.h
deleted file mode 100644
index b24d8d6..0000000
--- a/c/dev/ppb_video_capture_dev.h
+++ /dev/null
@@ -1,167 +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.
- */
-
-/* From dev/ppb_video_capture_dev.idl modified Thu Dec 12 15:36:11 2013. */
-
-#ifndef PPAPI_C_DEV_PPB_VIDEO_CAPTURE_DEV_H_
-#define PPAPI_C_DEV_PPB_VIDEO_CAPTURE_DEV_H_
-
-#include "ppapi/c/dev/pp_video_capture_dev.h"
-#include "ppapi/c/dev/ppb_device_ref_dev.h"
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_VIDEOCAPTURE_DEV_INTERFACE_0_3 "PPB_VideoCapture(Dev);0.3"
-#define PPB_VIDEOCAPTURE_DEV_INTERFACE PPB_VIDEOCAPTURE_DEV_INTERFACE_0_3
-
-/**
- * @file
- * This file defines the <code>PPB_VideoCapture_Dev</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * Video capture interface. It goes hand-in-hand with PPP_VideoCapture_Dev.
- *
- * Theory of operation:
- * 1- Create a VideoCapture resource using Create.
- * 2- Find available video capture devices using EnumerateDevices.
- * 3- Open a video capture device. In addition to a device reference (0 can be
- * used to indicate the default device), you pass in the requested info
- * (resolution, frame rate), as well as suggest a number of buffers you will
- * need.
- * 4- Start the capture using StartCapture.
- * 5- Receive the OnDeviceInfo callback, in PPP_VideoCapture_Dev, which will
- * give you the actual capture info (the requested one is not guaranteed), as
- * well as an array of buffers allocated by the browser.
- * 6- On every frame captured by the browser, OnBufferReady (in
- * PPP_VideoCapture_Dev) is called with the index of the buffer from the array
- * containing the new frame. The buffer is now "owned" by the plugin, and the
- * browser won't reuse it until ReuseBuffer is called.
- * 7- When the plugin is done with the buffer, call ReuseBuffer.
- * 8- Stop the capture using StopCapture.
- * 9- Close the device.
- *
- * The browser may change the resolution based on the constraints of the system,
- * in which case OnDeviceInfo will be called again, with new buffers.
- *
- * The buffers contain the pixel data for a frame. The format is planar YUV
- * 4:2:0, one byte per pixel, tightly packed (width x height Y values, then
- * width/2 x height/2 U values, then width/2 x height/2 V values).
- */
-struct PPB_VideoCapture_Dev_0_3 {
-  /**
-   * Creates a new VideoCapture.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Returns PP_TRUE if the given resource is a VideoCapture.
-   */
-  PP_Bool (*IsVideoCapture)(PP_Resource video_capture);
-  /**
-   * Enumerates video capture devices.
-   *
-   * @param[in] video_capture A <code>PP_Resource</code> corresponding to a
-   * video capture resource.
-   * @param[in] output An output array which will receive
-   * <code>PPB_DeviceRef_Dev</code> resources on success. Please note that the
-   * ref count of those resources has already been increased by 1 for the
-   * caller.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * completion.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*EnumerateDevices)(PP_Resource video_capture,
-                              struct PP_ArrayOutput output,
-                              struct PP_CompletionCallback callback);
-  /**
-   * Requests device change notifications.
-   *
-   * @param[in] video_capture A <code>PP_Resource</code> corresponding to a
-   * video capture resource.
-   * @param[in] callback The callback to receive notifications. If not NULL, it
-   * will be called once for the currently available devices, and then every
-   * time the list of available devices changes. All calls will happen on the
-   * same thread as the one on which MonitorDeviceChange() is called. It will
-   * receive notifications until <code>video_capture</code> is destroyed or
-   * <code>MonitorDeviceChange()</code> is called to set a new callback for
-   * <code>video_capture</code>. You can pass NULL to cancel sending
-   * notifications.
-   * @param[inout] user_data An opaque pointer that will be passed to
-   * <code>callback</code>.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*MonitorDeviceChange)(PP_Resource video_capture,
-                                 PP_MonitorDeviceChangeCallback callback,
-                                 void* user_data);
-  /**
-   * Opens a video capture device. |device_ref| identifies a video capture
-   * device. It could be one of the resource in the array returned by
-   * |EnumerateDevices()|, or 0 which means the default device.
-   * |requested_info| is a pointer to a structure containing the requested
-   * resolution and frame rate. |buffer_count| is the number of buffers
-   * requested by the plugin. Note: it is only used as advisory, the browser may
-   * allocate more or fewer based on available resources. How many buffers
-   * depends on usage. At least 2 to make sure latency doesn't cause lost
-   * frames. If the plugin expects to hold on to more than one buffer at a time
-   * (e.g. to do multi-frame processing, like video encoding), it should request
-   * that many more.
-   */
-  int32_t (*Open)(PP_Resource video_capture,
-                  PP_Resource device_ref,
-                  const struct PP_VideoCaptureDeviceInfo_Dev* requested_info,
-                  uint32_t buffer_count,
-                  struct PP_CompletionCallback callback);
-  /**
-   * Starts the capture.
-   *
-   * Returns PP_ERROR_FAILED if called when the capture was already started, or
-   * PP_OK on success.
-   */
-  int32_t (*StartCapture)(PP_Resource video_capture);
-  /**
-   * Allows the browser to reuse a buffer that was previously sent by
-   * PPP_VideoCapture_Dev.OnBufferReady. |buffer| is the index of the buffer in
-   * the array returned by PPP_VideoCapture_Dev.OnDeviceInfo.
-   *
-   * Returns PP_ERROR_BADARGUMENT if buffer is out of range (greater than the
-   * number of buffers returned by PPP_VideoCapture_Dev.OnDeviceInfo), or if it
-   * is not currently owned by the plugin. Returns PP_OK otherwise.
-   */
-  int32_t (*ReuseBuffer)(PP_Resource video_capture, uint32_t buffer);
-  /**
-   * Stops the capture.
-   *
-   * Returns PP_ERROR_FAILED if the capture wasn't already started, or PP_OK on
-   * success.
-   */
-  int32_t (*StopCapture)(PP_Resource video_capture);
-  /**
-   * Closes the video capture device, and stops capturing if necessary. It is
-   * not valid to call |Open()| again after a call to this method.
-   * If a video capture resource is destroyed while a device is still open, then
-   * it will be implicitly closed, so you are not required to call this method.
-   */
-  void (*Close)(PP_Resource video_capture);
-};
-
-typedef struct PPB_VideoCapture_Dev_0_3 PPB_VideoCapture_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_VIDEO_CAPTURE_DEV_H_ */
-
diff --git a/c/dev/ppb_video_decoder_dev.h b/c/dev/ppb_video_decoder_dev.h
deleted file mode 100644
index e4d4152..0000000
--- a/c/dev/ppb_video_decoder_dev.h
+++ /dev/null
@@ -1,168 +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.
- */
-
-/* From dev/ppb_video_decoder_dev.idl modified Tue Oct 29 00:32:59 2013. */
-
-#ifndef PPAPI_C_DEV_PPB_VIDEO_DECODER_DEV_H_
-#define PPAPI_C_DEV_PPB_VIDEO_DECODER_DEV_H_
-
-#include "ppapi/c/dev/pp_video_dev.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_VIDEODECODER_DEV_INTERFACE_0_16 "PPB_VideoDecoder(Dev);0.16"
-#define PPB_VIDEODECODER_DEV_INTERFACE PPB_VIDEODECODER_DEV_INTERFACE_0_16
-
-/**
- * @file
- * This file defines the <code>PPB_VideoDecoder_Dev</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * Video decoder interface.
- *
- * Typical usage:
- * - Use Create() to create & configure a new PPB_VideoDecoder_Dev resource.
- * - Call Decode() to decode some video data.
- * - Receive ProvidePictureBuffers callback
- *   - Supply the decoder with textures using AssignPictureBuffers.
- * - Receive PictureReady callbacks
- *   - Hand the textures back to the decoder using ReusePictureBuffer.
- * - To signal EOS to the decoder: call Flush() and wait for NotifyFlushDone
- *   callback.
- * - To reset the decoder (e.g. to implement Seek): call Reset() and wait for
- *   NotifyResetDone callback.
- * - To tear down the decoder call Destroy().
- *
- * See PPP_VideoDecoder_Dev for the notifications the decoder may send the
- * plugin.
- */
-struct PPB_VideoDecoder_Dev_0_16 {
-  /**
-   * Creates & initializes a video decoder.
-   *
-   * Parameters:
-   *   |instance| pointer to the plugin instance.
-   *   |context| a PPB_Graphics3D resource in which decoding will happen.
-   *   |profile| the video stream's format profile.
-   *
-   * The created decoder is returned as PP_Resource. 0 means failure.
-   */
-  PP_Resource (*Create)(PP_Instance instance,
-                        PP_Resource context,
-                        PP_VideoDecoder_Profile profile);
-  /**
-   * Tests whether |resource| is a video decoder created through Create
-   * function of this interface.
-   *
-   * Parameters:
-   *   |resource| is handle to resource to test.
-   *
-   * Returns true if is a video decoder, false otherwise.
-   */
-  PP_Bool (*IsVideoDecoder)(PP_Resource resource);
-  /**
-   * Dispatches bitstream buffer to the decoder.
-   *
-   * Parameters:
-   *   |video_decoder| is the previously created handle to the decoder resource.
-   *   |bitstream_buffer| is the bitstream buffer that contains at most one
-   *   input frame.
-   *   |callback| will be called when |bitstream_buffer| has been processed by
-   *   the decoder.
-   *
-   * Returns an error code from pp_errors.h.
-   */
-  int32_t (*Decode)(PP_Resource video_decoder,
-                    const struct PP_VideoBitstreamBuffer_Dev* bitstream_buffer,
-                    struct PP_CompletionCallback callback);
-  /**
-   * Provides the decoder with texture-backed picture buffers for video
-   * decoding.
-   *
-   * This function should be called when the plugin has its
-   * ProvidePictureBuffers method called.  The decoder will stall until it has
-   * received all the buffers it's asked for.
-   *
-   * Parameters:
-   *   |video_decoder| is the previously created handle to the decoder resource.
-   *   |no_of_buffers| how many buffers are behind picture buffer pointer.
-   *   |buffers| contains the reference to the picture buffer that was
-   *   allocated.
-   */
-  void (*AssignPictureBuffers)(PP_Resource video_decoder,
-                               uint32_t no_of_buffers,
-                               const struct PP_PictureBuffer_Dev buffers[]);
-  /**
-   * Tells the decoder to reuse the given picture buffer. Typical use of this
-   * function is to call from PictureReady callback to recycle picture buffer
-   * back to the decoder after blitting the image so that decoder can use the
-   * image for output again.
-   *
-   * Parameters:
-   *   |video_decoder| is the previously created handle to the decoder resource.
-   *   |picture_buffer_id| contains the id of the picture buffer that was
-   *   processed.
-   */
-  void (*ReusePictureBuffer)(PP_Resource video_decoder,
-                             int32_t picture_buffer_id);
-  /**
-   * Flush input and output buffers in the decoder.  Any pending inputs are
-   * decoded and pending outputs are delivered to the plugin.  Once done
-   * flushing, the decoder will call |callback|.
-   *
-   * Parameters:
-   *   |video_decoder| is the previously created handle to the decoder resource.
-   *   |callback| is one-time callback that will be called once the flushing
-   *   request has been completed.
-   *
-   * Returns an error code from pp_errors.h.
-   */
-  int32_t (*Flush)(PP_Resource video_decoder,
-                   struct PP_CompletionCallback callback);
-  /**
-   * Reset the decoder as quickly as possible.  Pending inputs and outputs are
-   * dropped and the decoder is put back into a state ready to receive further
-   * Decode() calls.  |callback| will be called when the reset is done.
-   *
-   * Parameters:
-   *   |video_decoder| is the previously created handle to the decoder resource.
-   *   |callback| is one-time callback that will be called once the reset
-   *   request has been completed.
-   *
-   * Returns an error code from pp_errors.h.
-   */
-  int32_t (*Reset)(PP_Resource video_decoder,
-                   struct PP_CompletionCallback callback);
-  /**
-   * Tear down the decoder as quickly as possible.  Pending inputs and outputs
-   * are dropped and the decoder frees all of its resources.  Although resources
-   * may be freed asynchronously, after this method returns no more callbacks
-   * will be made on the client.  Any resources held by the client at that point
-   * may be freed.
-   *
-   * Parameters:
-   *   |video_decoder| is the previously created handle to the decoder resource.
-   */
-  void (*Destroy)(PP_Resource video_decoder);
-};
-
-typedef struct PPB_VideoDecoder_Dev_0_16 PPB_VideoDecoder_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_VIDEO_DECODER_DEV_H_ */
-
diff --git a/c/dev/ppb_view_dev.h b/c/dev/ppb_view_dev.h
deleted file mode 100644
index 0c1c73e..0000000
--- a/c/dev/ppb_view_dev.h
+++ /dev/null
@@ -1,65 +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.
- */
-
-/* From dev/ppb_view_dev.idl modified Mon Jun 18 14:55:58 2012. */
-
-#ifndef PPAPI_C_DEV_PPB_VIEW_DEV_H_
-#define PPAPI_C_DEV_PPB_VIEW_DEV_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_VIEW_DEV_INTERFACE_0_1 "PPB_View(Dev);0.1"
-#define PPB_VIEW_DEV_INTERFACE PPB_VIEW_DEV_INTERFACE_0_1
-
-/**
- * @file
- * This file contains the <code>PPB_View_Dev</code> interface. */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/* PPB_View_Dev interface */
-struct PPB_View_Dev_0_1 {
-  /**
-   * GetDeviceScale returns the scale factor between device pixels and DIPs
-   * (also known as logical pixels or UI pixels on some platforms). This allows
-   * the developer to render their contents at device resolution, even as
-   * coordinates / sizes are given in DIPs through the API.
-   *
-   * Note that the coordinate system for Pepper APIs is DIPs. Also note that
-   * one DIP might not equal one CSS pixel - when page scale/zoom is in effect.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return A <code>float</code> value representing the number of device pixels
-   * per DIP. If the resource is invalid, the value will be 0.0.
-   */
-  float (*GetDeviceScale)(PP_Resource resource);
-  /**
-   * GetCSSScale returns the scale factor between DIPs and CSS pixels. This
-   * allows proper scaling between DIPs - as sent via the Pepper API - and CSS
-   * pixel coordinates used for Web content.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return css_scale A <code>float</code> value representing the number of
-   * DIPs per CSS pixel. If the resource is invalid, the value will be 0.0.
-   */
-  float (*GetCSSScale)(PP_Resource resource);
-};
-
-typedef struct PPB_View_Dev_0_1 PPB_View_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPB_VIEW_DEV_H_ */
-
diff --git a/c/dev/ppp_class_deprecated.h b/c/dev/ppp_class_deprecated.h
deleted file mode 100644
index 44e0f38..0000000
--- a/c/dev/ppp_class_deprecated.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Copyright 2010 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_C_DEV_PPP_CLASS_DEPRECATED_H_
-#define PPAPI_C_DEV_PPP_CLASS_DEPRECATED_H_
-
-#include "ppapi/c/dev/deprecated_bool.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-/**
- * @file
- * Defines the PPP_Class_Deprecated struct.
- *
- * @addtogroup PPP
- * @{
- */
-
-struct PP_Var;
-
-/**
- * Interface for the plugin to implement JavaScript-accessible objects.
- *
- * This interface has no interface name. Instead, the plugin passes a pointer
- * to this interface to PPB_Var_Deprecated.CreateObject that corresponds to the
- * object being implemented.
- *
- * See the PPB_Var_Deprecated interface for more information on these functions.
- * This interface just allows you to implement the "back end" of those
- * functions, so most of the contract is specified in that interface.
- *
- * See
- *   http://code.google.com/p/ppapi/wiki/InterfacingWithJavaScript
- * for general information on using and implementing vars.
- */
-struct PPP_Class_Deprecated {
-  /**
-   * |name| is guaranteed to be an integer or string type var. Exception is
-   * guaranteed non-NULL. An integer is used for |name| when implementing
-   * array access into the object. This test should only return true for
-   * properties that are not methods.  Use HasMethod() to handle methods.
-   */
-  bool (*HasProperty)(void* object,
-                      struct PP_Var name,
-                      struct PP_Var* exception);
-
-  /**
-   * |name| is guaranteed to be a string-type. Exception is guaranteed non-NULL.
-   * If the method does not exist, return false and don't set the exception.
-   * Errors in this function will probably not occur in general usage, but
-   * if you need to throw an exception, still return false.
-   */
-  bool (*HasMethod)(void* object,
-                    struct PP_Var name,
-                    struct PP_Var* exception);
-
-  /**
-   * |name| is guaranteed to be a string-type or an integer-type var. Exception
-   * is guaranteed non-NULL. An integer is used for |name| when implementing
-   * array access into the object. If the property does not exist, set the
-   * exception and return a var of type Void. A property does not exist if
-   * a call HasProperty() for the same |name| would return false.
-   */
-  struct PP_Var (*GetProperty)(void* object,
-                               struct PP_Var name,
-                               struct PP_Var* exception);
-
-  /**
-   * Exception is guaranteed non-NULL.
-   *
-   * This should include all enumerable properties, including methods. Be sure
-   * to set |*property_count| to 0 and |properties| to NULL in all failure
-   * cases, these should never be unset when calling this function. The
-   * pointers passed in are guaranteed not to be NULL, so you don't have to
-   * NULL check them.
-   *
-   * If you have any properties, allocate the property array with
-   * PPB_Core.MemAlloc(sizeof(PP_Var) * property_count) and add a reference
-   * to each property on behalf of the caller. The caller is responsible for
-   * Release()ing each var and calling PPB_Core.MemFree on the property pointer.
-   */
-  void (*GetAllPropertyNames)(void* object,
-                              uint32_t* property_count,
-                              struct PP_Var** properties,
-                              struct PP_Var* exception);
-
-  /**
-   * |name| is guaranteed to be an integer or string type var. Exception is
-   * guaranteed non-NULL.
-   */
-  void (*SetProperty)(void* object,
-                      struct PP_Var name,
-                      struct PP_Var value,
-                      struct PP_Var* exception);
-
-  /**
-   * |name| is guaranteed to be an integer or string type var. Exception is
-   * guaranteed non-NULL.
-   */
-  void (*RemoveProperty)(void* object,
-                         struct PP_Var name,
-                         struct PP_Var* exception);
-
-  // TODO(brettw) need native array access here.
-
-  /**
-   * |name| is guaranteed to be a string type var. Exception is guaranteed
-   * non-NULL
-   */
-  struct PP_Var (*Call)(void* object,
-                        struct PP_Var method_name,
-                        uint32_t argc,
-                        struct PP_Var* argv,
-                        struct PP_Var* exception);
-
-  /** Exception is guaranteed non-NULL. */
-  struct PP_Var (*Construct)(void* object,
-                             uint32_t argc,
-                             struct PP_Var* argv,
-                             struct PP_Var* exception);
-
-  /**
-   * Called when the reference count of the object reaches 0. Normally, plugins
-   * would free their internal data pointed to by the |object| pointer.
-   */
-  void (*Deallocate)(void* object);
-};
-
-/**
- * @}
- * End addtogroup PPP
- */
-#endif  // PPAPI_C_DEV_PPP_CLASS_DEPRECATED_H_
-
diff --git a/c/dev/ppp_network_state_dev.h b/c/dev/ppp_network_state_dev.h
deleted file mode 100644
index 04d6d5a..0000000
--- a/c/dev/ppp_network_state_dev.h
+++ /dev/null
@@ -1,46 +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.
- */
-
-/* From dev/ppp_network_state_dev.idl modified Wed Nov  7 09:50:23 2012. */
-
-#ifndef PPAPI_C_DEV_PPP_NETWORK_STATE_DEV_H_
-#define PPAPI_C_DEV_PPP_NETWORK_STATE_DEV_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPP_NETWORK_STATE_DEV_INTERFACE_0_1 "PPP_NetworkState(Dev);0.1"
-#define PPP_NETWORK_STATE_DEV_INTERFACE PPP_NETWORK_STATE_DEV_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the PPP_NetworkState interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPP_NetworkState_Dev_0_1 {
-  /**
-   * Notification that the online state has changed for the user's network.
-   * This will change as a result of a network cable being plugged or
-   * unplugged, WiFi connections going up and down, or other events.
-   *
-   * Note that being "online" isn't a guarantee that any particular connections
-   * will succeed.
-   */
-  void (*SetOnLine)(PP_Bool is_online);
-};
-
-typedef struct PPP_NetworkState_Dev_0_1 PPP_NetworkState_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPP_NETWORK_STATE_DEV_H_ */
-
diff --git a/c/dev/ppp_printing_dev.h b/c/dev/ppp_printing_dev.h
deleted file mode 100644
index 3fa86ba..0000000
--- a/c/dev/ppp_printing_dev.h
+++ /dev/null
@@ -1,91 +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.
- */
-
-/* From dev/ppp_printing_dev.idl modified Wed Jun 13 09:20:40 2012. */
-
-#ifndef PPAPI_C_DEV_PPP_PRINTING_DEV_H_
-#define PPAPI_C_DEV_PPP_PRINTING_DEV_H_
-
-#include "ppapi/c/dev/pp_print_settings_dev.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPP_PRINTING_DEV_INTERFACE_0_6 "PPP_Printing(Dev);0.6"
-#define PPP_PRINTING_DEV_INTERFACE PPP_PRINTING_DEV_INTERFACE_0_6
-
-/**
- * @file
- * Definition of the PPP_Printing interface.
- */
-
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * Specifies a contiguous range of page numbers to be printed.
- * The page numbers use a zero-based index.
- */
-struct PP_PrintPageNumberRange_Dev {
-  uint32_t first_page_number;
-  uint32_t last_page_number;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_PrintPageNumberRange_Dev, 8);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPP_Printing_Dev_0_6 {
-  /**
-   *  Returns a bit field representing the supported print output formats.  For
-   *  example, if only PDF and PostScript are supported,
-   *  QuerySupportedFormats returns a value equivalent to:
-   *  (PP_PRINTOUTPUTFORMAT_PDF | PP_PRINTOUTPUTFORMAT_POSTSCRIPT)
-   */
-  uint32_t (*QuerySupportedFormats)(PP_Instance instance);
-  /**
-   * Begins a print session with the given print settings. Calls to PrintPages
-   * can only be made after a successful call to Begin. Returns the number of
-   * pages required for the print output at the given page size (0 indicates
-   * a failure).
-   */
-  int32_t (*Begin)(PP_Instance instance,
-                   const struct PP_PrintSettings_Dev* print_settings);
-  /**
-   * Prints the specified pages using the format specified in Begin.
-   * Returns a PPB_Buffer resource that represents the printed output. Returns
-   * 0 on failure.
-   */
-  PP_Resource (*PrintPages)(
-      PP_Instance instance,
-      const struct PP_PrintPageNumberRange_Dev* page_ranges,
-      uint32_t page_range_count);
-  /** Ends the print session. Further calls to PrintPages will fail. */
-  void (*End)(PP_Instance instance);
-  /**
-   *  Returns true if the current content should be printed into the full page
-   *  and not scaled down to fit within the printer's printable area.
-   */
-  PP_Bool (*IsScalingDisabled)(PP_Instance instance);
-};
-
-typedef struct PPP_Printing_Dev_0_6 PPP_Printing_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPP_PRINTING_DEV_H_ */
-
diff --git a/c/dev/ppp_text_input_dev.h b/c/dev/ppp_text_input_dev.h
deleted file mode 100644
index 392c877..0000000
--- a/c/dev/ppp_text_input_dev.h
+++ /dev/null
@@ -1,49 +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.
- */
-
-/* From dev/ppp_text_input_dev.idl modified Thu Mar 28 10:55:30 2013. */
-
-#ifndef PPAPI_C_DEV_PPP_TEXT_INPUT_DEV_H_
-#define PPAPI_C_DEV_PPP_TEXT_INPUT_DEV_H_
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPP_TEXTINPUT_DEV_INTERFACE_0_1 "PPP_TextInput(Dev);0.1"
-#define PPP_TEXTINPUT_DEV_INTERFACE PPP_TEXTINPUT_DEV_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the <code>PPP_TextInput_Dev</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * <code>PPP_TextInput_Dev</code> is a set of function pointers that the
- * plugin has to implement to provide hints for text input system (IME).
- */
-struct PPP_TextInput_Dev_0_1 {
-  /**
-   * Requests the plugin to send back the text around the current caret or
-   * selection by <code>PPB_TextInput_Dev::UpdateSurroundingText</code>.
-   * It is recommended to include the <code>desired_number_of_characters</code>
-   * characters before and after the selection, but not mandatory.
-   */
-  void (*RequestSurroundingText)(PP_Instance instance,
-                                 uint32_t desired_number_of_characters);
-};
-
-typedef struct PPP_TextInput_Dev_0_1 PPP_TextInput_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPP_TEXT_INPUT_DEV_H_ */
-
diff --git a/c/dev/ppp_video_capture_dev.h b/c/dev/ppp_video_capture_dev.h
deleted file mode 100644
index 805c5c2..0000000
--- a/c/dev/ppp_video_capture_dev.h
+++ /dev/null
@@ -1,85 +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.
- */
-
-/* From dev/ppp_video_capture_dev.idl modified Mon Oct 01 14:26:07 2012. */
-
-#ifndef PPAPI_C_DEV_PPP_VIDEO_CAPTURE_DEV_H_
-#define PPAPI_C_DEV_PPP_VIDEO_CAPTURE_DEV_H_
-
-#include "ppapi/c/dev/pp_video_capture_dev.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPP_VIDEO_CAPTURE_DEV_INTERFACE_0_1 "PPP_VideoCapture(Dev);0.1"
-#define PPP_VIDEO_CAPTURE_DEV_INTERFACE PPP_VIDEO_CAPTURE_DEV_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the <code>PPP_VideoCapture_Dev</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * Video Capture client interface. See |PPB_VideoCapture_Dev| for general theory
- * of operation.
- */
-struct PPP_VideoCapture_Dev_0_1 {
-  /**
-   * Signals the capture device information, such as resolution and frame rate,
-   * and the array of buffers that the browser will use to send pixel data.
-   *
-   * |info| is a pointer to the PP_VideoCaptureDeviceInfo_Dev structure
-   * containing resolution and frame rate.
-   * |buffer_count| is the number of buffers, and |buffers| is the array of
-   * PPB_Buffer_Dev buffers.
-   *
-   * Note: the buffers are passed without an extra reference. The plugin is
-   * expected to add its own references to the buffers.
-   */
-  void (*OnDeviceInfo)(PP_Instance instance,
-                       PP_Resource video_capture,
-                       const struct PP_VideoCaptureDeviceInfo_Dev* info,
-                       uint32_t buffer_count,
-                       const PP_Resource buffers[]);
-  /**
-   * Signals status changes on the VideoCapture. |status| is a
-   * one of the values from PP_VideoCaptureStatus_Dev;
-   */
-  void (*OnStatus)(PP_Instance instance,
-                   PP_Resource video_capture,
-                   uint32_t status);
-  /**
-   * Signals an error from the video capture system.
-   *
-   * Errors that can be generated:
-   * - PP_ERROR_NOMEMORY: not enough memory was available to allocate buffers.
-   * - PP_ERROR_FAILED: video capture could not start.
-   */
-  void (*OnError)(PP_Instance instance,
-                  PP_Resource video_capture,
-                  uint32_t error_code);
-  /**
-   * Signals that a buffer is available for consumption by the plugin.
-   *
-   * |buffer| is the index of the buffer, in the array returned by OnDeviceInfo.
-   */
-  void (*OnBufferReady)(PP_Instance instance,
-                        PP_Resource video_capture,
-                        uint32_t buffer);
-};
-
-typedef struct PPP_VideoCapture_Dev_0_1 PPP_VideoCapture_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPP_VIDEO_CAPTURE_DEV_H_ */
-
diff --git a/c/dev/ppp_video_decoder_dev.h b/c/dev/ppp_video_decoder_dev.h
deleted file mode 100644
index 20ee526..0000000
--- a/c/dev/ppp_video_decoder_dev.h
+++ /dev/null
@@ -1,105 +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.
- */
-
-/* From dev/ppp_video_decoder_dev.idl modified Fri Dec 13 15:21:30 2013. */
-
-#ifndef PPAPI_C_DEV_PPP_VIDEO_DECODER_DEV_H_
-#define PPAPI_C_DEV_PPP_VIDEO_DECODER_DEV_H_
-
-#include "ppapi/c/dev/pp_video_dev.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPP_VIDEODECODER_DEV_INTERFACE_0_11 "PPP_VideoDecoder(Dev);0.11"
-#define PPP_VIDEODECODER_DEV_INTERFACE PPP_VIDEODECODER_DEV_INTERFACE_0_11
-
-/**
- * @file
- * This file defines the <code>PPP_VideoDecoder_Dev</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * PPP_VideoDecoder_Dev structure contains the function pointers that the
- * plugin MUST implement to provide services needed by the video decoder
- * implementation.
- *
- * See PPB_VideoDecoder_Dev for general usage tips.
- */
-struct PPP_VideoDecoder_Dev_0_11 {
-  /**
-   * Callback function to provide buffers for the decoded output pictures. If
-   * succeeds plugin must provide buffers through AssignPictureBuffers function
-   * to the API. If |req_num_of_bufs| matching exactly the specification
-   * given in the parameters cannot be allocated decoder should be destroyed.
-   *
-   * Decoding will not proceed until buffers have been provided.
-   *
-   * Parameters:
-   *  |instance| the plugin instance to which the callback is responding.
-   *  |decoder| the PPB_VideoDecoder_Dev resource.
-   *  |req_num_of_bufs| tells how many buffers are needed by the decoder.
-   *  |dimensions| tells the dimensions of the buffer to allocate.
-   *  |texture_target| the type of texture used. Sample targets in use are
-   *      TEXTURE_2D (most platforms) and TEXTURE_EXTERNAL_OES (on ARM).
-   */
-  void (*ProvidePictureBuffers)(PP_Instance instance,
-                                PP_Resource decoder,
-                                uint32_t req_num_of_bufs,
-                                const struct PP_Size* dimensions,
-                                uint32_t texture_target);
-  /**
-   * Callback function for decoder to deliver unneeded picture buffers back to
-   * the plugin.
-   *
-   * Parameters:
-   *  |instance| the plugin instance to which the callback is responding.
-   *  |decoder| the PPB_VideoDecoder_Dev resource.
-   *  |picture_buffer| points to the picture buffer that is no longer needed.
-   */
-  void (*DismissPictureBuffer)(PP_Instance instance,
-                               PP_Resource decoder,
-                               int32_t picture_buffer_id);
-  /**
-   * Callback function for decoder to deliver decoded pictures ready to be
-   * displayed. Decoder expects the plugin to return the buffer back to the
-   * decoder through ReusePictureBuffer function in PPB Video Decoder API.
-   *
-   * Parameters:
-   *  |instance| the plugin instance to which the callback is responding.
-   *  |decoder| the PPB_VideoDecoder_Dev resource.
-   *  |picture| is the picture that is ready.
-   */
-  void (*PictureReady)(PP_Instance instance,
-                       PP_Resource decoder,
-                       const struct PP_Picture_Dev* picture);
-  /**
-   * Error handler callback for decoder to deliver information about detected
-   * errors to the plugin.
-   *
-   * Parameters:
-   *  |instance| the plugin instance to which the callback is responding.
-   *  |decoder| the PPB_VideoDecoder_Dev resource.
-   *  |error| error is the enumeration specifying the error.
-   */
-  void (*NotifyError)(PP_Instance instance,
-                      PP_Resource decoder,
-                      PP_VideoDecodeError_Dev error);
-};
-
-typedef struct PPP_VideoDecoder_Dev_0_11 PPP_VideoDecoder_Dev;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_DEV_PPP_VIDEO_DECODER_DEV_H_ */
-
diff --git a/c/documentation/Doxyfile b/c/documentation/Doxyfile
deleted file mode 100644
index 79fb774..0000000
--- a/c/documentation/Doxyfile
+++ /dev/null
@@ -1,1732 +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.
-
-# Doxyfile 1.7.4
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
-# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-DOXYFILE_ENCODING      = UTF-8
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME           =
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER         =
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer
-# a quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF          =
-
-# With the PROJECT_LOGO tag one can specify an logo or icon that is
-# included in the documentation. The maximum height of the logo should not
-# exceed 55 pixels and the maximum width should not exceed 200 pixels.
-# Doxygen will copy the logo to the output directory.
-
-PROJECT_LOGO           =
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = PepperCRefDocs
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
-# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
-# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
-# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = NO
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       = "The $name class" \
-                         "The $name widget" \
-                         "The $name file" \
-                         is \
-                         provides \
-                         specifies \
-                         contains \
-                         represents \
-                         a \
-                         an \
-                         the
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH        =
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful if your file system
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF      = YES
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF           = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for
-# Java. For instance, namespaces will be presented as packages, qualified
-# scopes will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
-
-OPTIMIZE_FOR_FORTRAN   = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for
-# VHDL.
-
-OPTIMIZE_OUTPUT_VHDL   = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given extension.
-# Doxygen has a built-in mapping, but you can override or extend it using this
-# tag. The format is ext=language, where ext is a file extension, and language
-# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
-# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
-# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
-# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
-# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
-
-EXTENSION_MAPPING      =
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also makes the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT        = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
-# Doxygen will parse them like normal C++ but will assume all classes use public
-# instead of private inheritance when no explicit protection keyword is present.
-
-SIP_SUPPORT            = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate getter
-# and setter methods for a property. Setting this option to YES (the default)
-# will make doxygen replace the get and set methods by a property in the
-# documentation. This will only work if the methods are indeed getting or
-# setting a simple type. If this is not the case, or you want to show the
-# methods anyway, you should set this option to NO.
-
-IDL_PROPERTY_SUPPORT   = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
-# unions are shown inside the group in which they are included (e.g. using
-# @ingroup) instead of on a separate page (for HTML and Man pages) or
-# section (for LaTeX and RTF).
-
-INLINE_GROUPED_CLASSES = NO
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
-# is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-
-TYPEDEF_HIDES_STRUCT   = NO
-
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
-# determine which symbols to keep in memory and which to flush to disk.
-# When the cache is full, less often used symbols will be written to disk.
-# For small to medium size projects (<1000 input files) the default value is
-# probably good enough. For larger projects a too small cache size can cause
-# doxygen to be busy swapping symbols to and from disk most of the time
-# causing a significant performance penalty.
-# If the system has enough physical memory increasing the cache will improve the
-# performance by keeping more symbols in memory. Note that the value works on
-# a logarithmic scale so increasing the size by one will roughly double the
-# memory usage. The cache size is given by this formula:
-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols
-
-SYMBOL_CACHE_SIZE      = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base
-# name of the file that contains the anonymous namespace. By default
-# anonymous namespaces are hidden.
-
-EXTRACT_ANON_NSPACES   = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = NO
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES     = NO
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
-# will list include files with double quotes in the documentation
-# rather than with sharp brackets.
-
-FORCE_LOCAL_INCLUDES   = NO
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
-# will sort the (brief and detailed) documentation of class members so that
-# constructors and destructors are listed first. If set to NO (the default)
-# the constructors will appear in the respective orders defined by
-# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
-# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
-# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the default)
-# the group names will appear in their defined order.
-
-SORT_GROUP_NAMES       = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
-# do proper type resolution of all parameters of a function it will reject a
-# match between the prototype and the implementation of a member function even
-# if there is only one candidate or it is obvious which candidate to choose
-# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
-# will still accept a match between prototype and implementation in such cases.
-
-STRICT_PROTO_MATCHING  = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or macro consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and macros in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 27
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES       = NO
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
-# This will remove the Files entry from the Quick Index and from the
-# Folder Tree View (if specified). The default is YES.
-
-SHOW_FILES             = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page.  This will remove the Namespaces entry from the Quick Index
-# and from the Folder Tree View (if specified). The default is YES.
-
-SHOW_NAMESPACES        = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER    =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. The create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option.
-# You can optionally specify a file name after the option, if omitted
-# DoxygenLayout.xml will be used as the name of the layout file.
-
-LAYOUT_FILE            = ./documentation/DoxygenLayout.xml
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# The WARN_NO_PARAMDOC option can be enabled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC       = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE           =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT                  = . \
-                         ./documentation
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
-# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
-# the list of possible encodings.
-
-INPUT_ENCODING         = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
-# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
-# *.f90 *.f *.for *.vhd *.vhdl
-
-FILE_PATTERNS          = *.h \
-                         *.dox
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE              = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE                = ./pp_macros.h
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       = _*.h
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS        =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH           =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS       = *
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH             = ./documentation/images-dox
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.  If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER           =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis.  Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match.  The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty or if
-# non of the patterns match the file name, INPUT_FILTER is applied.
-
-FILTER_PATTERNS        =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = NO
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
-# and it is also possible to disable source filtering for a specific pattern
-# using *.ext= (so without naming a filter). This option only has effect when
-# FILTER_SOURCE_FILES is enabled.
-
-FILTER_SOURCE_PATTERNS =
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = NO
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = NO
-
-# If the REFERENCES_RELATION tag is set to YES
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.  Otherwise they will link to the documentation.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header. Note that when using a custom header you are responsible
-# for the proper inclusion of any scripts and style sheets that doxygen
-# needs, which is dependent on the configuration options used.
-# It is adviced to generate a default header using "doxygen -w html
-# header.html footer.html stylesheet.css YourConfigFile" and then modify
-# that header. Note that the header is subject to change so you typically
-# have to redo this when upgrading to a newer version of doxygen or when
-# changing the value of configuration settings such as GENERATE_TREEVIEW!
-
-HTML_HEADER            = documentation/header.html
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER            = documentation/footer.html
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        = documentation/stylesheet.css
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that
-# the files will be copied as-is; there are no commands or markers available.
-
-HTML_EXTRA_FILES       =
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
-# Doxygen will adjust the colors in the stylesheet and background images
-# according to this color. Hue is specified as an angle on a colorwheel,
-# see http://en.wikipedia.org/wiki/Hue for more information.
-# For instance the value 0 represents red, 60 is yellow, 120 is green,
-# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
-# The allowed range is 0 to 359.
-
-HTML_COLORSTYLE_HUE    = 217
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
-# the colors in the HTML output. For a value of 0 the output will use
-# grayscales only. A value of 255 will produce the most vivid colors.
-
-HTML_COLORSTYLE_SAT    = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
-# the luminance component of the colors in the HTML output. Values below
-# 100 gradually make the output lighter, whereas values above 100 make
-# the output darker. The value divided by 100 is the actual gamma applied,
-# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
-# and 100 does not change the gamma.
-
-HTML_COLORSTYLE_GAMMA  = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting
-# this to NO can help when comparing the output of multiple runs.
-
-HTML_TIMESTAMP         = YES
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-
-HTML_DYNAMIC_SECTIONS  = NO
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files
-# will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5 (Leopard).
-# To create a documentation set, doxygen will generate a Makefile in the
-# HTML output directory. Running make will produce the docset in that
-# directory and running "make install" will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
-# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-
-GENERATE_DOCSET        = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
-# feed. A documentation feed provides an umbrella under which multiple
-# documentation sets from a single provider (such as a company or product suite)
-# can be grouped.
-
-DOCSET_FEEDNAME        = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
-# should uniquely identify the documentation set bundle. This should be a
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
-# will append .docset to the name.
-
-DOCSET_BUNDLE_ID       = org.doxygen.Project
-
-# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-
-DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
-
-# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
-
-DOCSET_PUBLISHER_NAME  = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE               =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
-
-CHM_INDEX_ENCODING     =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
-# that can be used as input for Qt's qhelpgenerator to generate a
-# Qt Compressed Help (.qch) of the generated HTML documentation.
-
-GENERATE_QHP           = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
-# be used to specify the file name of the resulting .qch file.
-# The path specified is relative to the HTML output folder.
-
-QCH_FILE               =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
-
-QHP_NAMESPACE          = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
-
-QHP_VIRTUAL_FOLDER     = doc
-
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
-# add. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
-
-QHP_CUST_FILTER_NAME   =
-
-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see
-# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
-# Qt Help Project / Custom Filters</a>.
-
-QHP_CUST_FILTER_ATTRS  =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's
-# filter section matches.
-# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
-# Qt Help Project / Filter Attributes</a>.
-
-QHP_SECT_FILTER_ATTRS  =
-
-# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
-# be used to specify the location of Qt's qhelpgenerator.
-# If non-empty doxygen will try to run qhelpgenerator on the generated
-# .qhp file.
-
-QHG_LOCATION           =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
-# will be generated, which together with the HTML files, form an Eclipse help
-# plugin. To install this plugin and make it available under the help contents
-# menu in Eclipse, the contents of the directory containing the HTML and XML
-# files needs to be copied into the plugins directory of eclipse. The name of
-# the directory within the plugins directory should be the same as
-# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
-# the help appears.
-
-GENERATE_ECLIPSEHELP   = NO
-
-# A unique identifier for the eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have
-# this name.
-
-ECLIPSE_DOC_ID         = org.doxygen.Project
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX          = NO
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
-# (range [0,1..20]) that doxygen will group on one line in the generated HTML
-# documentation. Note that a value of 0 will completely suppress the enum
-# values from appearing in the overview section.
-
-ENUM_VALUES_PER_LINE   = 0
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information.
-# If the tag value is set to YES, a side panel will be generated
-# containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
-# Windows users are probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW      = NO
-
-# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
-# and Class Hierarchy pages using a tree view instead of an ordered list.
-
-USE_INLINE_TREES       = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH         = 251
-
-# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
-# links to external symbols imported via tag files in a separate window.
-
-EXT_LINKS_IN_WINDOW    = NO
-
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# when you change the font size after a successful doxygen run you need
-# to manually remove any form_*.png images from the HTML output directory
-# to force them to be regenerated.
-
-FORMULA_FONTSIZE       = 10
-
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are
-# not supported properly for IE 6.0, but are supported on all modern browsers.
-# Note that when changing this option you need to delete any form_*.png files
-# in the HTML output before the changes have effect.
-
-FORMULA_TRANSPARENT    = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
-# (see http://www.mathjax.org) which uses client side Javascript for the
-# rendering instead of using prerendered bitmaps. Use this if you do not
-# have LaTeX installed or if you want to formulas look prettier in the HTML
-# output. When enabled you also need to install MathJax separately and
-# configure the path to it using the MATHJAX_RELPATH option.
-
-USE_MATHJAX            = NO
-
-# When MathJax is enabled you need to specify the location relative to the
-# HTML output directory using the MATHJAX_RELPATH option. The destination
-# directory should contain the MathJax.js script. For instance, if the mathjax
-# directory is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to the
-# mathjax.org site, so you can quickly see the result without installing
-# MathJax, but it is strongly recommended to install a local copy of MathJax
-# before deployment.
-
-MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box
-# for the HTML output. The underlying search engine uses javascript
-# and DHTML and should work on any modern browser. Note that when using
-# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
-# (GENERATE_DOCSET) there is already a search function so this one should
-# typically be disabled. For large projects the javascript based search engine
-# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
-
-SEARCHENGINE           = NO
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a PHP enabled web server instead of at the web client
-# using Javascript. Doxygen will generate the search PHP script and index
-# file to put on the web server. The advantage of the server
-# based approach is that it scales better to large projects and allows
-# full text search. The disadvantages are that it is more difficult to setup
-# and does not have live searching capabilities.
-
-SERVER_BASED_SEARCH    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-# Note that when enabling USE_PDFLATEX this option is only used for
-# generating bitmaps for formulas in the HTML output, but not in the
-# Makefile that is written to the output directory.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           =
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
-# the generated latex document. The footer should contain everything after
-# the last chapter. If it is left blank doxygen will generate a
-# standard footer. Notice: only use this tag if you know what you are doing!
-
-LATEX_FOOTER           =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include
-# source code with syntax highlighting in the LaTeX output.
-# Note that which sources are shown also depends on other settings
-# such as SOURCE_BROWSER.
-
-LATEX_SOURCE_CODE      = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA             =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD                =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader.  This is useful
-# if you want to understand what is going on.  On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = YES
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF     = YES
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# pointed to by INCLUDE_PATH will be searched when a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH           =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS  =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED             = __native_client__ \
-                         DOXYGEN_SHOULD_SKIP_THIS \
-                         __attribute__(x)= \
-                         EXTERN_C_BEGIN= \
-                         EXTERN_C_END= \
-                         PP_COMPILE_ASSERT_SIZE_IN_BYTES= \
-                         PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES= \
-                         PP_INLINE= \
-                         PP_EXPORT
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition that
-# overrules the definition found in the source code.
-
-EXPAND_AS_DEFINED      =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all references to function-like macros
-# that are alone on a line, have an all uppercase name, and do not end with a
-# semicolon, because these will confuse the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-#   TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-#   TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES               =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option also works with HAVE_DOT disabled, but it is recommended to
-# install and use dot, since it yields more powerful graphs.
-
-CLASS_DIAGRAMS         = NO
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH            =
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = YES
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
-# allowed to run in parallel. When set to 0 (the default) doxygen will
-# base this on the number of processors available in the system. You can set it
-# explicitly to a value larger than 0 to get control over the balance
-# between CPU load and processing speed.
-
-DOT_NUM_THREADS        = 4
-
-# By default doxygen will write a font called Helvetica to the output
-# directory and reference it in all dot files that doxygen generates.
-# When you want a differently looking font you can specify the font name
-# using DOT_FONTNAME. You need to make sure dot is able to find the font,
-# which can be done by putting it in a standard location or by setting the
-# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
-# containing the font.
-
-DOT_FONTNAME           = FreeSans.ttf
-
-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-# The default size is 10pt.
-
-DOT_FONTSIZE           = 10
-
-# By default doxygen will tell dot to use the output directory to look for the
-# FreeSans.ttf font (which doxygen will put there itself). If you specify a
-# different font using DOT_FONTNAME you can set the path where dot
-# can find it using this tag.
-
-DOT_FONTPATH           =
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = NO
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = NO
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK               = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH             = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will generate a graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = NO
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are svg, png, jpg, or gif.
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT       = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               = /usr/local/graphviz-2.14/bin
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS           =
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the
-# \mscfile command).
-
-MSCFILE_DIRS           =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES    = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH    = 1000
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not
-# seem to support this out of the box. Warning: Depending on the platform used,
-# enabling this option may lead to badly anti-aliased labels on the edges of
-# a graph (i.e. they become hard to read).
-
-DOT_TRANSPARENT        = YES
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP            = YES
diff --git a/c/documentation/DoxygenLayout.xml b/c/documentation/DoxygenLayout.xml
deleted file mode 100644
index 7d1d5cf..0000000
--- a/c/documentation/DoxygenLayout.xml
+++ /dev/null
@@ -1,185 +0,0 @@
-<doxygenlayout version="1.0">
-  <!-- Navigation index tabs for HTML output -->
-  <navindex>
-    <tab type="mainpage" visible="no" title=""/>
-    <tab type="pages" visible="no" title=""/>
-    <tab type="modules" visible="yes" title=""/>
-    <tab type="namespaces" visible="no" title="">
-      <tab type="namespaces" visible="no" title=""/>
-      <tab type="namespacemembers" visible="no" title=""/>
-    </tab>
-    <tab type="classes" visible="no" title="">
-      <tab type="classes" visible="no" title=""/>
-      <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
-      <tab type="hierarchy" visible="yes" title=""/>
-      <tab type="classmembers" visible="yes" title=""/>
-    </tab>
-    <tab type="files" visible="yes" title="">
-      <tab type="files" visible="yes" title=""/>
-      <tab type="globals" visible="yes" title=""/>
-    </tab>
-    <tab type="dirs" visible="yes" title=""/>
-    <tab type="examples" visible="yes" title=""/>
-  </navindex>
-
-  <!-- Layout definition for a class page -->
-  <!-- Also used for structs -->
-  <class>
-    <briefdescription visible="yes"/>
-    <includes visible="$SHOW_INCLUDE_FILES"/>
-    <inheritancegraph visible="$CLASS_GRAPH"/>
-    <allmemberslink visible="yes"/>
-    <collaborationgraph visible="$COLLABORATION_GRAPH"/>
-    <detaileddescription title=""/>
-    <memberdecl>
-      <membergroups visible="yes"/>
-      <nestedclasses visible="yes" title=""/>
-      <publictypes title=""/>
-      <publicslots title=""/>
-      <signals title=""/>
-      <publicmethods title=""/>
-      <publicstaticmethods title=""/>
-      <publicattributes title="Data Fields List"/>
-      <publicstaticattributes title=""/>
-      <protectedtypes title=""/>
-      <protectedslots title=""/>
-      <protectedmethods title=""/>
-      <protectedstaticmethods title=""/>
-      <protectedattributes title=""/>
-      <protectedstaticattributes title=""/>
-      <packagetypes title=""/>
-      <packagemethods title=""/>
-      <packagestaticmethods title=""/>
-      <packageattributes title=""/>
-      <packagestaticattributes title=""/>
-      <properties title=""/>
-      <events title=""/>
-      <privatetypes title=""/>
-      <privateslots title=""/>
-      <privatemethods title=""/>
-      <privatestaticmethods title=""/>
-      <privateattributes title=""/>
-      <privatestaticattributes title=""/>
-      <friends title=""/>
-      <related title="" subtitle=""/>
-    </memberdecl>
-    <memberdef>
-      <typedefs title=""/>
-      <enums title=""/>
-      <constructors title=""/>
-      <functions title=""/>
-      <related title=""/>
-      <variables title="Data Fields Details"/>
-      <properties title=""/>
-      <events title=""/>
-    </memberdef>
-    <usedfiles visible="$SHOW_USED_FILES"/>
-    <authorsection visible="yes"/>
-  </class>
-
-  <!-- Layout definition for a namespace page -->
-  <namespace>
-    <briefdescription visible="yes"/>
-    <memberdecl>
-      <nestednamespaces visible="yes" title=""/>
-      <classes visible="yes" title=""/>
-      <membergroups visible="yes"/>
-      <typedefs title=""/>
-      <enums title=""/>
-      <functions title=""/>
-      <variables title=""/>
-    </memberdecl>
-    <detaileddescription title=""/>
-    <memberdef>
-      <typedefs title=""/>
-      <enums title=""/>
-      <functions title=""/>
-      <variables title=""/>
-    </memberdef>
-    <authorsection visible="yes"/>
-  </namespace>
-
-  <!-- Layout definition for a file page -->
-  <!-- You can remove an entire section of documentation by removing the section -->
-  <!-- below, such as <defines title=""/> to remove Defines that we don't want to show. -->
-  <file>
-    <briefdescription visible="yes"/>
-    <includes visible="$SHOW_INCLUDE_FILES"/>
-    <includegraph visible="$INCLUDE_GRAPH"/>
-    <includedbygraph visible="$INCLUDED_BY_GRAPH"/>
-    <sourcelink visible="yes"/>
-    <memberdecl>
-      <classes visible="yes" title="Interfaces or Structures"/>
-      <namespaces visible="yes" title=""/>
-    <!--  <defines title=""/> -->
-      <typedefs title=""/>
-      <enums title=""/>
-      <functions title=""/>
-      <variables title=""/>
-    </memberdecl>
-    <detaileddescription title=""/>
-    <memberdef>
-      <!-- <defines title="Define Details"/> -->
-      <typedefs title="Typdef Details"/>
-      <enums title="Enumeration Details"/>
-      <functions title="Function Details"/>
-      <variables title="Variable Details"/>
-    </memberdef>
-    <authorsection/>
-  </file>
-
-  <!-- Layout definition for a group page -->
-  <group>
-    <briefdescription visible="yes"/>
-    <groupgraph visible="$GROUP_GRAPHS"/>
-    <memberdecl>
-      <classes visible="yes" title="Interface or Structure List"/>
-      <namespaces visible="yes" title=""/>
-      <dirs visible="yes" title=""/>
-      <nestedgroups visible="yes" title=""/>
-      <files visible="no" title=""/>
-      <defines title=""/>
-      <typedefs title="Typedef List"/>
-      <enums title="Enumeration List"/>
-      <enumvalues title=""/>
-      <functions title="Function List"/>
-      <!-- <variables title=""/> -->
-      <signals title=""/>
-      <publicslots title=""/>
-      <protectedslots title=""/>
-      <privateslots title=""/>
-      <events title=""/>
-      <properties title=""/>
-      <friends title=""/>
-    </memberdecl>
-    <detaileddescription title=""/>
-    <memberdef>
-      <pagedocs/>
-      <defines title=""/>
-      <typedefs title="Typedef Details"/>
-      <enums title="Enumeration Details"/>
-      <enumvalues title=""/>
-      <functions title="Function Details"/>
-      <!-- <variables title=""/> -->
-      <signals title=""/>
-      <publicslots title=""/>
-      <protectedslots title=""/>
-      <privateslots title=""/>
-      <events title=""/>
-      <properties title=""/>
-      <friends title=""/>
-    </memberdef>
-    <authorsection visible="yes"/>
-  </group>
-
-  <!-- Layout definition for a directory page -->
-  <directory>
-    <briefdescription visible="yes"/>
-    <directorygraph visible="yes"/>
-    <memberdecl>
-      <dirs visible="yes"/>
-      <files visible="yes"/>
-    </memberdecl>
-    <detaileddescription title=""/>
-  </directory>
-</doxygenlayout>
diff --git a/c/documentation/check.sh b/c/documentation/check.sh
deleted file mode 100755
index 651ca51..0000000
--- a/c/documentation/check.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash
-# 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.
-
-# simple script to check html via tidy. Either specify html files on
-# command line or rely on default which checks all html files in
-# current directory
-set -o nounset
-set -o errexit
-
-
-CheckFile () {
-  echo "========================================"
-  echo "checking $1"
-  echo "========================================"
-  tidy -e -q $1
-}
-
-
-if [ $# -eq 0  ] ; then
-  for file in *.html ; do
-   CheckFile ${file}
-  done
-else
-  for file in $* ; do
-   CheckFile ${file}
-  done
-fi
diff --git a/c/documentation/doxy_cleanup.py b/c/documentation/doxy_cleanup.py
deleted file mode 100755
index 37c46f3..0000000
--- a/c/documentation/doxy_cleanup.py
+++ /dev/null
@@ -1,144 +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.
-
-'''This utility cleans up the html files as emitted by doxygen so
-that they are suitable for publication on a Google documentation site.
-'''
-
-from __future__ import print_function
-
-import optparse
-import os
-import re
-import shutil
-import string
-import sys
-try:
-  from BeautifulSoup import BeautifulSoup, Tag
-except (ImportError, NotImplementedError):
-  print("This tool requires the BeautifulSoup package "
-        "(see http://www.crummy.com/software/BeautifulSoup/).\n"
-        "Make sure that the file BeautifulSoup.py is either in this directory "
-        "or is available in your PYTHON_PATH")
-  raise
-
-
-class HTMLFixer(object):
-  '''This class cleans up the html strings as produced by Doxygen
-  '''
-
-  def __init__(self, html):
-    self.soup = BeautifulSoup(html)
-
-  def FixTableHeadings(self):
-    '''Fixes the doxygen table headings.
-
-    This includes:
-      - Using bare <h2> title row instead of row embedded in <tr><td> in table
-      - Putting the "name" attribute into the "id" attribute of the <tr> tag.
-      - Splitting up tables into multiple separate tables if a table
-        heading appears in the middle of a table.
-
-    For example, this html:
-     <table>
-      <tr><td colspan="2"><h2><a name="pub-attribs"></a>
-      Data Fields List</h2></td></tr>
-      ...
-     </table>
-
-    would be converted to this:
-     <h2>Data Fields List</h2>
-     <table>
-      ...
-     </table>
-    '''
-
-    table_headers = []
-    for tag in self.soup.findAll('tr'):
-      if tag.td and tag.td.h2 and tag.td.h2.a and tag.td.h2.a['name']:
-        #tag['id'] = tag.td.h2.a['name']
-        tag.string = tag.td.h2.a.next
-        tag.name = 'h2'
-        table_headers.append(tag)
-
-    # reverse the list so that earlier tags don't delete later tags
-    table_headers.reverse()
-    # Split up tables that have multiple table header (th) rows
-    for tag in table_headers:
-      print("Header tag: %s is %s" % (tag.name, tag.string.strip()))
-      # Is this a heading in the middle of a table?
-      if tag.findPreviousSibling('tr') and tag.parent.name == 'table':
-        print("Splitting Table named %s" % tag.string.strip())
-        table = tag.parent
-        table_parent = table.parent
-        table_index = table_parent.contents.index(table)
-        new_table = Tag(self.soup, name='table', attrs=table.attrs)
-        table_parent.insert(table_index + 1, new_table)
-        tag_index = table.contents.index(tag)
-        for index, row in enumerate(table.contents[tag_index:]):
-          new_table.insert(index, row)
-      # Now move the <h2> tag to be in front of the <table> tag
-      assert tag.parent.name == 'table'
-      table = tag.parent
-      table_parent = table.parent
-      table_index = table_parent.contents.index(table)
-      table_parent.insert(table_index, tag)
-
-  def RemoveTopHeadings(self):
-    '''Removes <div> sections with a header, tabs, or navpath class attribute'''
-    header_tags = self.soup.findAll(
-        name='div',
-        attrs={'class' : re.compile('^(header|tabs[0-9]*|navpath)$')})
-    [tag.extract() for tag in header_tags]
-
-  def FixAll(self):
-    self.FixTableHeadings()
-    self.RemoveTopHeadings()
-
-  def __str__(self):
-    return str(self.soup)
-
-
-def main():
-  '''Main entry for the doxy_cleanup utility
-
-  doxy_cleanup takes a list of html files and modifies them in place.'''
-
-  parser = optparse.OptionParser(usage='Usage: %prog [options] files...')
-
-  parser.add_option('-m', '--move', dest='move', action='store_true',
-                    default=False, help='move html files to "original_html"')
-
-  options, files = parser.parse_args()
-
-  if not files:
-    parser.print_usage()
-    return 1
-
-  for filename in files:
-    try:
-      with open(filename, 'r') as file:
-        html = file.read()
-
-      print("Processing %s" % filename)
-      fixer = HTMLFixer(html)
-      fixer.FixAll()
-      with open(filename, 'w') as file:
-        file.write(str(fixer))
-      if options.move:
-        new_directory = os.path.join(
-            os.path.dirname(os.path.dirname(filename)), 'original_html')
-        if not os.path.exists(new_directory):
-          os.mkdir(new_directory)
-        shutil.move(filename, new_directory)
-    except:
-      print("Error while processing %s" % filename)
-      raise
-
-  return 0
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/c/documentation/footer.html b/c/documentation/footer.html
deleted file mode 100644
index 454a101..0000000
--- a/c/documentation/footer.html
+++ /dev/null
@@ -1,5 +0,0 @@
-</div> <!-- id="doxygen-ref" -->
-
-  </body>
-</html>
-
diff --git a/c/documentation/header.html b/c/documentation/header.html
deleted file mode 100644
index b997254..0000000
--- a/c/documentation/header.html
+++ /dev/null
@@ -1,11 +0,0 @@
-{% include "native-client/_local_variables.html" %}
-<html devsite>
-  <head>
-    <link href="/native-client/css/local_extensions.css" rel="stylesheet" type="text/css" />
-    <title>$title</title>
-    <meta name="project_path" value="/native-client/_project.yaml" />
-    <meta name="book_path" value="/native-client/_book.yaml" />
-  </head>
-  <body>
-<div id="doxygen-ref">
-<div>
\ No newline at end of file
diff --git a/c/documentation/images-dox/README.txt b/c/documentation/images-dox/README.txt
deleted file mode 100644
index 9a9e18c..0000000
--- a/c/documentation/images-dox/README.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This directory holds all images that go into the doxygen-generated
-API reference doc. To include an image, use code like the following:
-
-@image html figure.jpg
-
-If you want a caption, specify it like this:
-
-@image html figure.jpg "Test image"
-
diff --git a/c/documentation/index.dox b/c/documentation/index.dox
deleted file mode 100644
index 5b516c3..0000000
--- a/c/documentation/index.dox
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-[include "/chrome/nativeclient/_local_variables.ezt"]  [# this file should be at root of your document hierarchy ]
-[define section]docs[end]  [# this should be "docs" if the file lives in the "Docs" section (top nav)]
-                           [# Otherwise, it's "home," "articles," "download," or "terms" ]
-[define page_title]Pepper C API[end]  [# this is the title for only this page ]
-
-[include "/_boilerplate_header.ezt"]
-[verbatim]
-
-<p>This reference documentation describes the C version of the Pepper API, a cross-platform, open-source API for creating Native Client modules. Some interfaces are already implemented in any Native Client-aware browser and certain portions of the API will be implemented by you in the Native Client module. This page has the following contents:
-</p>
-
-<ol class="toc">
-<li><a href="#reading">Before you start</a></li>
-<li><a href="#pepperc">Pepper C reference</a></li>
-<li><a href="#navigate">Navigating the Pepper C reference</a></li>
-</ol>
-
-<h2 id="reading">Before you start</h2>
-
-<p>We recommend that you read the following documents prior to reading the API documentation:</p>
-
-<ul class="nolist">
-<li><a href="/chrome/nativeclient/docs/technical_overview.html">Technical Overview</a></li>
-<li><a href="/chrome/nativeclient/docs/tutorial.html">Tutorial: Getting Started</a></li>
-<li><a href="/chrome/nativeclient/docs/developers_guide.html">Developer's Guide</a></li>
-</ul>
-
-<h2 id="pepperc">Pepper C reference</h2>
-
-<p>The lowest level of the Pepper API is the C API, declared in the header files in ppapi/c. The C API represents the lowest level binary interface between a Native Client module and the browser.</p>
-
-<h3>C API Groupings</h3>
-
-<p>The C API is divided into three sub-groupings, indicated by the prefixes PP, PPB, and PPP.</p> 
-
-<p>The prefix "PP," used to help prevent naming collisions, stands for "Pepper Plugin" also known as the "Native Client module." Common structs have a PP_ prefix, such as PP_Var for representing a JavaScript variable or PP_Rect for describing a rectangle. There are also several PP_ utility functions in the PP_ grouping.</p>
-
-<p>Interfaces in the C API are named according to whether they are implemented by the browser or by you, the web app developer, in the Native Client module. Interfaces implemented by the browser are prefixed by "PPB" where "B" stands for browser. For example, the PPB_Core interface is a collection of core interfaces implemented by the browser and accessed by the Native Client module. As a web app developer, you need only know how to invoke PPB_ interfaces in your Native Client module.</p>
-
-<p>Interfaces implemented by the Native Client module (Plugin) are prefixed by "PPP" where "P" stands for plugin. For example, the PPP_Class interface provides an object accessible to JavaScript in the browser. You will implement these interfaces in your Native Client module.</p>
-
-<p>In some cases, there might be both a browser and a Native Client module interface for the same concept. For example, the PPP_Instance interface represents the Native Client module functions that the browser calls related to a certain instance. This interface is used to deliver mouse click events to the Native Client module. The Native Client module will call PPB_Instance in the browser to allow the Native Client module to manipulate its instance.</p>
-
-<h2 id="navigate">Navigating the Pepper C reference</h2>
-
-<p>Click on any of the links below "Pepper C API" on the left to view the API by construct (all interfaces, structures, functions, and so on), functional area (all APIs pertaining to audio, 2D graphics, 3D graphics, and so on), or file (all APIs in <code>pp_bool.h</code>, <code>ppp.h</code>, <code>ppb_var.h</code>, and so on).</p>
-
-[endverbatim]
-[include "/_boilerplate_footer.ezt"]
diff --git a/c/documentation/removefilesC.sh b/c/documentation/removefilesC.sh
deleted file mode 100755
index d48eeab..0000000
--- a/c/documentation/removefilesC.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-# 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.
-rm annotated.html
-rm bc_s.png
-rm classes.html
-rm closed.png
-rm doxygen.png
-rm functions*.html
-rm globals_0x*.html
-rm globals.html
-rm globals_enum.html
-rm globals_eval.html
-rm globals_func.html
-rm globals_type.html
-rm globals_vars.html
-rm graph_legend.html
-rm graph_legend.png
-rm index_8dox.html
-rm modules.html
-rm nav_f.png
-rm nav_h.png
-rm open.png
-rm tab_a.png
-rm tab_b.png
-rm tab_h.png
-rm tab_s.png
-# all .map and all .md5 files
-rm *.md5
-rm *.map
-rm *.css
-rm files.html
-rm index.html
-rm jquery.js
-
diff --git a/c/documentation/stylesheet-dox.css b/c/documentation/stylesheet-dox.css
deleted file mode 100644
index 81d1a42..0000000
--- a/c/documentation/stylesheet-dox.css
+++ /dev/null
@@ -1,478 +0,0 @@
-body, table, div, p, dl {
-  font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
-  font-size: 12px;
-}
-
-/* @group Heading Levels */
-
-h1 {
-  text-align: center;
-  font-size: 150%;
-}
-
-h1 a, h2 a, h3 a, h4 a {
-  font-weight:bold;
-}
-
-h2 {
-  font-size: 120%;
-  margin-top: 2.0em;
-  margin-bottom: 0.5em;
-}
-
-h3 {
-  font-size: 100%;
-}
-
-div.contents {
-  margin-top: 2.0em;
-}
-
-/* @end */
-
-caption {
-  font-weight: bold;
-  font-size: 9px;
-}
-
-div.qindex, div.navpath, div.navtab{
-  background-color: #e8eef2;
-  border: 1px solid #84b0c7;
-  text-align: center;
-  margin: 2px;
-  padding: 2px;
-}
-
-div.qindex, div.navpath {
-  width: 100%;
-  line-height: 140%;
-}
-
-div.navtab {
-  margin-right: 15px;
-}
-
-/* @group Link Styling */
-
-a {
-  color: #153788;
-  font-weight: normal;
-  text-decoration: none;
-}
-
-.contents a:visited {
-  color: #1b77c5;
-}
-
-a:hover {
-  text-decoration: underline;
-}
-
-a.qindex {
-  font-weight: bold;
-}
-
-a.qindexHL {
-  font-weight: bold;
-  background-color: #6666cc;
-  color: #ffffff;
-  border: 1px double #9295C2;
-}
-
-a.el {
-  font-weight: bold;
-}
-
-a.elRef {
-}
-
-a.code {
-}
-
-a.codeRef {
-}
-
-/* @end */
-
-dl.el {
-  margin-left: -1cm;
-}
-
-.fragment {
-  font-family: monospace, fixed;
-  font-size: 105%;
-}
-
-pre.fragment {
-  border: 1px solid #CCCCCC;
-  background-color: #f5f5f5;
-  padding: 4px 6px;
-  margin: 4px 8px 4px 2px;
-}
-
-div.ah {
-  background-color: black;
-  font-weight: bold;
-  color: #ffffff;
-  margin-bottom: 3px;
-  margin-top: 3px
-}
-
-div.groupHeader {
-  margin-left: 16px;
-  margin-top: 12px;
-  margin-bottom: 6px;
-  font-weight: bold;
-}
-
-div.groupText {
-  margin-left: 16px;
-  font-style: italic;
-}
-
-body {
-  background: white;
-  color: black;
-  margin-right: 20px;
-  margin-left: 20px;
-}
-
-td.indexkey {
-  background-color: #e8eef2;
-  font-weight: bold;
-  border: 1px solid #CCCCCC;
-  margin: 2px 0px 2px 0;
-  padding: 2px 10px;
-}
-
-td.indexvalue {
-  background-color: #e8eef2;
-  border: 1px solid #CCCCCC;
-  padding: 2px 10px;
-  margin: 2px 0px;
-}
-
-tr.memlist {
-  background-color: #f0f0f0;
-}
-
-p.formulaDsp {
-  text-align: center;
-}
-
-img.formulaDsp {
-}
-
-img.formulaInl {
-  vertical-align: middle;
-}
-
-/* @group Code Colorization */
-
-span.keyword {
-  color: #008000
-}
-
-span.keywordtype {
-  color: #604020
-}
-
-span.keywordflow {
-  color: #e08000
-}
-
-span.comment {
-  color: #800000
-}
-
-span.preprocessor {
-  color: #806020
-}
-
-span.stringliteral {
-  color: #002080
-}
-
-span.charliteral {
-  color: #008080
-}
-
-span.vhdldigit {
-  color: #ff00ff
-}
-
-span.vhdlchar {
-  color: #000000
-}
-
-span.vhdlkeyword {
-  color: #700070
-}
-
-span.vhdllogic {
-  color: #ff0000
-}
-
-/* @end */
-
-.search {
-  color: #003399;
-  font-weight: bold;
-}
-
-form.search {
-  margin-bottom: 0px;
-  margin-top: 0px;
-}
-
-input.search {
-  font-size: 75%;
-  color: #000080;
-  font-weight: normal;
-  background-color: #e8eef2;
-}
-
-td.tiny {
-  font-size: 75%;
-}
-
-.dirtab {
-  padding: 4px;
-  border-collapse: collapse;
-  border: 1px solid #84b0c7;
-}
-
-th.dirtab {
-  background: #e8eef2;
-  font-weight: bold;
-}
-
-hr {
-  height: 0;
-  border: none;
-  border-top: 1px solid #666;
-}
-
-/* @group Member Descriptions */
-
-.mdescLeft, .mdescRight,
-.memItemLeft, .memItemRight,
-.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
-  background-color: #FAFAFA;
-  border: none;
-  margin: 4px;
-  padding: 1px 0 0 8px;
-}
-
-.mdescLeft, .mdescRight {
-  padding: 0px 8px 4px 8px;
-  color: #555;
-}
-
-.memItemLeft, .memItemRight, .memTemplParams {
-  border-top: 1px solid #ccc;
-}
-
-.memTemplParams {
-  color: #606060;
-}
-
-/* @end */
-
-/* @group Member Details */
-
-/* Styles for detailed member documentation */
-
-.memtemplate {
-  font-size: 80%;
-  color: #606060;
-  font-weight: normal;
-  margin-left: 3px;
-}
-
-.memnav {
-  background-color: #e8eef2;
-  border: 1px solid #84b0c7;
-  text-align: center;
-  margin: 2px;
-  margin-right: 15px;
-  padding: 2px;
-}
-
-.memitem {
-  padding: 0;
-}
-
-.memname {
-  white-space: nowrap;
-  font-weight: bold;
-}
-
-.memproto, .memdoc {
-  border: 1px solid #84b0c7;
-}
-
-.memproto {
-  padding: 0;
-  background-color: #d5e1e8;
-  font-weight: bold;
-  -webkit-border-top-left-radius: 8px;
-  -webkit-border-top-right-radius: 8px;
-  -moz-border-radius-topleft: 8px;
-  -moz-border-radius-topright: 8px;
-}
-
-.memdoc {
-  padding: 2px 5px;
-  background-color: #eef3f5;
-  border-top-width: 0;
-  -webkit-border-bottom-left-radius: 8px;
-  -webkit-border-bottom-right-radius: 8px;
-  -moz-border-radius-bottomleft: 8px;
-  -moz-border-radius-bottomright: 8px;
-}
-
-.memdoc p, .memdoc dl, .memdoc ul {
-  margin: 6px 0;
-}
-
-.paramkey {
-  text-align: right;
-}
-
-.paramtype {
-  white-space: nowrap;
-}
-
-.paramname {
-  color: #602020;
-  white-space: nowrap;
-}
-.paramname em {
-  font-style: normal;
-}
-
-/* @end */
-
-/* @group Directory (tree) */
-
-/* for the tree view */
-
-.ftvtree {
-  font-family: sans-serif;
-  margin: 0.5em;
-}
-
-/* these are for tree view when used as main index */
-
-.directory {
-  font-size: 9pt;
-  font-weight: bold;
-}
-
-.directory h3 {
-  margin: 0px;
-  margin-top: 1em;
-  font-size: 11pt;
-}
-
-/*
-The following two styles can be used to replace the root node title
-with an image of your choice.  Simply uncomment the next two styles,
-specify the name of your image and be sure to set 'height' to the
-proper pixel height of your image.
-*/
-
-/*
-.directory h3.swap {
-  height: 61px;
-  background-repeat: no-repeat;
-  background-image: url("yourimage.gif");
-}
-.directory h3.swap span {
-  display: none;
-}
-*/
-
-.directory > h3 {
-  margin-top: 0;
-}
-
-.directory p {
-  margin: 0px;
-  white-space: nowrap;
-}
-
-.directory div {
-  display: none;
-  margin: 0px;
-}
-
-.directory img {
-  vertical-align: -30%;
-}
-
-/* these are for tree view when not used as main index */
-
-.directory-alt {
-  font-size: 100%;
-  font-weight: bold;
-}
-
-.directory-alt h3 {
-  margin: 0px;
-  margin-top: 1em;
-  font-size: 11pt;
-}
-
-.directory-alt > h3 {
-  margin-top: 0;
-}
-
-.directory-alt p {
-  margin: 0px;
-  white-space: nowrap;
-}
-
-.directory-alt div {
-  display: none;
-  margin: 0px;
-}
-
-.directory-alt img {
-  vertical-align: -30%;
-}
-
-/* @end */
-
-address {
-  font-style: normal;
-  text-align: center;
-  font-size: 90%;
-  color: gray;
-}
-
-DIV.tabs A, #toplinks
-{
-   font-size        : 9px;
-}
-
-#toplinks {
-  text-align: right;
-  margin-bottom: -1.9em;
-}
-
-.pending {
-  /* display:none; */
-  color:red; font-weight:bold;
-}
-
-#license {
-  color:gray;
-  font-size:90%;
-  border-top:1px solid;
-  border-color:gray;
-  padding-top:1em;
-  margin-top:3em;
-  text-align:center;
-}
diff --git a/c/documentation/stylesheet.css b/c/documentation/stylesheet.css
deleted file mode 100644
index 9ed8e38..0000000
--- a/c/documentation/stylesheet.css
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Based off the Doxygen generated template stylesheet and trimmed/edited to
- * remove items that would conflict with codesite or other overlying
- * stylesheets while maintaining the desired look and feel.
- *
- * The #doxygen-ref is an id tag which encompasses code generated by doxygen
- * and allows override of standard html tags while not affecting the rest
- * of the page such as sidebars.
- */
-
-A.qindex {
-  text-decoration: none;
-  font-weight: bold;
-  color: #1A419D;
-}
-A.qindex:visited {
-  text-decoration: none;
-  font-weight: bold;
-  color: #1A419D
-}
-A.qindex:hover {
-  text-decoration: none;
-  background-color: #ddf;
-}
-A.qindexHL {
-  text-decoration: none;
-  font-weight: bold;
-  background-color: #66c;
-  color: #fff;
-  border: 1px double #9295C2;
-}
-A.qindexHL:hover,
-A.qindexHL:visited {
-  text-decoration: none;
-  background-color: #66c;
-  color: #fff;
-}
-A.el {
-  text-decoration: none;
-  font-weight: bold;
-}
-A.elRef {
-  font-weight: bold;
-}
-A.code:link,
-A.code:visited {
-  text-decoration: none;
-  font-weight: normal;
-  color: #00F;
-}
-A.codeRef:link,
-A.codeRef:visited {
-  font-weight: normal;
-  color: #00F;
-}
-A:hover {
-  text-decoration: none;
-  background-color: #f2f2ff;
-}
-DL.el {
-  margin-left: -1cm;
-}
-.fragment {
-  font-family: Fixed, monospace;
-  font-size: 95%;
-}
-PRE.fragment {
-  border: 1px solid #CCC;
-  background-color: #f5f5f5;
-  margin: 4px 8px 4px 2px
-  padding: 4px 6px;
-}
-DIV.ah {
-  background-color: black;
-  font-weight: bold;
-  color: #fff;
-  margin-bottom: 3px;
-  margin-top: 3px
-}
-TD.md {
-  background-color: #e1e1e4;
-  font-weight: bold;
-  border: none;
-}
-TD.mdPrefix {
-  background-color: #e1e1e4;
-  color: #606060;
-  font-size: 80%;
-  border: none;
-}
-TD.mdname1 {
-  background-color: #e1e1e4;
-  font-weight: bold;
-  color: #602020;
-  border: none;
-}
-.memitem {
-  padding: 4px;
-  background-color: #ffff;
-}
-.memname {
-  background-color: #e1e1e4;
-  white-space: nowrap;
-  font-weight: bold;
-}
-.memdoc{
-  padding-left: 10px;
-}
-#doxygen-ref div.memproto td {
-  background-color: #e1e1e4;
-}
-.memproto {
-  background-color: #e1e1e4;
-  width: 100%;
-  border-width: 1px;
-  border-style: solid;
-  border-color: #e1e1f4;
-  font-weight: bold;
-  -moz-border-radius: 8px 8px 8px 8px;
-}
-.memproto .deprecated,
-.memname .deprecated,
-.summary .deprecated {
-  color: red;
-}
-.paramkey {
-  text-align: right;
-}
-.paramtype {
-  white-space: nowrap;
-}
-.paramname {
-  color: #602020;
-  font-style: italic;
-  white-space: nowrap;
-}
-DIV.groupHeader {
-  margin: 12px 16px 6px auto;
-  font-weight: bold;
-}
-DIV.groupText {
-  margin-left: 16px;
-  font-style: italic;
-  font-size: 90%;
-}
-TR.memlist {
-  background-color: #f0f0f0;
-}
-P.formulaDsp {
-  text-align: center;
-}
-IMG.formulaInl {
-  vertical-align: middle;
-}
-SPAN.keyword,
-SPAN.keywordflow {
-  color: #008000;
-}
-SPAN.keywordtyp {
-  color: #604020;
-}
-SPAN.comment {
-  color: #800000;
-}
-SPAN.preprocessor {
-  color: #806020;
-}
-SPAN.stringliteral {
-  color: #002080;
-}
-SPAN.charliteral {
-  color: #008080;
-}
-.mdTable {
-  background-color: #e1e1e4;
-  border: none;
-  padding: 0;
-}
-.mdRow {
-  padding: 8px 10px;
-  border: none;
-}
-.mdescLeft,
-.mdescRight {
-  padding: 0 8px 4px 8px;
-  font-size: 80%;
-  font-style: italic;
-  background-color: #FAFAFA;
-  border: 1px none #E0E0E0;
-  margin: 0;
-}
-.search {
-  color: #039;
-  font-weight: bold;
-}
-FORM.search {
-  margin: 0 auto;
-}
-INPUT.search {
-  font-size: 75%;
-  color: #000080;
-  font-weight: normal;
-  background-color: #e8eef2;
-}
-TD.tiny{
-  font-size: 75%;
-}
-#doxygen-ref HR {
-  height: 1px;
-  border: none;
-  border-top: 1px solid black;
-}
-#doxygen-ref table,
-#doxygen-ref td,
-#doxygen-ref tr {
-  border:none;
-}
-#doxygen-ref .contents H1 {
-  text-align: center;
-  background-color: #ffffff;
-  border: 0;
-}
-#doxygen-ref H2 {
-  margin-left: 0;
-  margin-bottom: 5px;
-}
-#doxygen-ref CAPTION {
-  font-weight: bold;
-}
-#doxygen-ref .contents .summary {
-  line-height: 1em;
-}
-#doxygen-ref .contents .summary TD {
-}
-#doxygen-ref .contents .summary .type {
-  text-align: right;
-}
-.memdoc {
-  padding-left: 30px;
-}
-.memitem {
-  border-top:1px solid #E5ECF9;
-}
-.doxygen-global {
-  background-color: #ffcc66;
-}
\ No newline at end of file
diff --git a/c/documentation/tabs.css b/c/documentation/tabs.css
deleted file mode 100644
index 132fb6e..0000000
--- a/c/documentation/tabs.css
+++ /dev/null
@@ -1,59 +0,0 @@
-.tabs, .tabs2, .tabs3 {
-    background-image: url('tab_b.png');
-    width: 100%;
-    z-index: 101;
-    font-size: 13px;
-}
-
-.tabs2 {
-    font-size: 10px;
-}
-.tabs3 {
-    font-size: 9px;
-}
-
-.tablist {
-    margin: 0;
-    padding: 0;
-    display: table;
-}
-
-.tablist li {
-    float: left;
-    display: table-cell;
-    background-image: url('tab_b.png');
-    line-height: 36px;
-    list-style: none;
-}
-
-.tablist a {
-    display: block;
-    padding: 0 20px;
-    font-weight: bold;
-    background-image:url('tab_s.png');
-    background-repeat:no-repeat;
-    background-position:right;
-    color: #283C5D;
-    text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
-    text-decoration: none;
-    outline: none;
-}
-
-.tabs3 .tablist a {
-    padding: 0 10px;
-}
-
-.tablist a:hover {
-    background-image: url('tab_h.png');
-    background-repeat:repeat-x;
-    color: #fff;
-    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
-    text-decoration: none;
-}
-
-.tablist li.current a {
-    background-image: url('tab_a.png');
-    background-repeat:repeat-x;
-    color: #fff;
-    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
-}
diff --git a/c/pp_array_output.h b/c/pp_array_output.h
deleted file mode 100644
index 6047b1e..0000000
--- a/c/pp_array_output.h
+++ /dev/null
@@ -1,119 +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.
- */
-
-/* From pp_array_output.idl modified Tue Oct 22 15:09:25 2013. */
-
-#ifndef PPAPI_C_PP_ARRAY_OUTPUT_H_
-#define PPAPI_C_PP_ARRAY_OUTPUT_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * PP_ArrayOutput_GetDataBuffer is a callback function to allocate plugin
- * memory for an array. It returns the allocated memory or null on failure.
- *
- * This function will be called reentrantly. This means that if you call a
- * function PPB_Foo.GetData(&array_output), GetData will call your
- * GetDataBuffer function before it returns.
- *
- * This function will be called even when returning 0-length arrays, so be sure
- * your implementation can support that. You can return NULL for 0 length
- * arrays and it will not be treated as a failure.
- *
- * You should not perform any processing in this callback, including calling
- * other PPAPI functions, outside of allocating memory. You should not throw
- * any exceptions. In C++, this means using "new (nothrow)" or being sure to
- * catch any exceptions before returning.
- *
- * The C++ wrapper provides a convenient templatized implementation around
- * std::vector which you should generally use instead of coding this
- * specifically.
- *
- * @param user_data The pointer provided in the PP_ArrayOutput structure. This
- * has no meaning to the browser, it is intended to be used by the
- * implementation to figure out where to put the data.
- *
- * @param element_count The number of elements in the array. This will be 0
- * if there is no data to return.
- *
- * @param element_size The size of each element in bytes.
- *
- * @return Returns a pointer to the allocated memory. On failure, returns null.
- * You can also return null if the element_count is 0. When a non-null value is
- * returned, the buffer must remain valid until after the callback runs. If used
- * with a blocking callback, the buffer must remain valid until after the
- * function returns. The plugin can then free any memory that it allocated.
- */
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-typedef void* (*PP_ArrayOutput_GetDataBuffer)(void* user_data,
-                                              uint32_t element_count,
-                                              uint32_t element_size);
-/**
- * @}
- */
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * A structure that defines a way for the browser to return arrays of data
- * to the plugin. The browser can not allocate memory on behalf of the plugin
- * because the plugin and browser may have different allocators.
- *
- * Array output works by having the browser call to the plugin to allocate a
- * buffer, and then the browser will copy the contents of the array into that
- * buffer.
- *
- * In C, you would typically implement this as follows:
- *
- * @code
- * struct MyArrayOutput {
- *   void* data;
- *   int element_count;
- * };
- * void* MyGetDataBuffer(void* user_data, uint32_t count, uint32_t size) {
- *   MyArrayOutput* output = (MyArrayOutput*)user_data;
- *   output->element_count = count;
- *   if (size) {
- *     output->data = malloc(count * size);
- *     if (!output->data)  // Be careful to set size properly on malloc failure.
- *       output->element_count = 0;
- *   } else {
- *     output->data = NULL;
- *   }
- *   return output->data;
- * }
- * void MyFunction() {
- *   MyArrayOutput array = { NULL, 0 };
- *   PP_ArrayOutput output = { &MyGetDataBuffer, &array };
- *   ppb_foo->GetData(&output);
- * }
- * @endcode
- */
-struct PP_ArrayOutput {
-  /**
-   * A pointer to the allocation function that the browser will call.
-   */
-  PP_ArrayOutput_GetDataBuffer GetDataBuffer;
-  /**
-   * Data that is passed to the allocation function. Typically, this is used
-   * to communicate how the data should be stored.
-   */
-  void* user_data;
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_ARRAY_OUTPUT_H_ */
-
diff --git a/c/pp_bool.h b/c/pp_bool.h
deleted file mode 100644
index 7bb9e64..0000000
--- a/c/pp_bool.h
+++ /dev/null
@@ -1,65 +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.
- */
-
-/* From pp_bool.idl modified Thu Nov  1 13:48:33 2012. */
-
-#ifndef PPAPI_C_PP_BOOL_H_
-#define PPAPI_C_PP_BOOL_H_
-
-#include "ppapi/c/pp_macros.h"
-
-/**
- * @file
- * This file defines the <code>PP_Bool</code> enumeration for use in PPAPI C
- * headers.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * The <code>PP_Bool</code> enum is a boolean value for use in PPAPI C headers.
- * The standard bool type is not available to pre-C99 compilers, and is not
- * guaranteed to be compatible between C and C++, whereas the PPAPI C headers
- * can be included from C or C++ code.
- */
-typedef enum {
-  PP_FALSE = 0,
-  PP_TRUE = 1
-} PP_Bool;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_Bool, 4);
-/**
- * @}
- */
-
-#ifdef __cplusplus
-/**
- * Converts a C++ "bool" type to a PP_Bool.
- *
- * @param[in] b A C++ "bool" type.
- *
- * @return A PP_Bool.
- */
-inline PP_Bool PP_FromBool(bool b) {
-  return b ? PP_TRUE : PP_FALSE;
-}
-
-/**
- * Converts a PP_Bool to a C++ "bool" type.
- *
- * @param[in] b A PP_Bool.
- *
- * @return A C++ "bool" type.
- */
-inline bool PP_ToBool(PP_Bool b) {
-  return (b != PP_FALSE);
-}
-
-#endif  /* __cplusplus */
-
-#endif  /* PPAPI_C_PP_BOOL_H_ */
-
diff --git a/c/pp_codecs.h b/c/pp_codecs.h
deleted file mode 100644
index 920873d..0000000
--- a/c/pp_codecs.h
+++ /dev/null
@@ -1,226 +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.
- */
-
-/* From pp_codecs.idl modified Fri Mar 29 17:59:41 2019. */
-
-#ifndef PPAPI_C_PP_CODECS_H_
-#define PPAPI_C_PP_CODECS_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * Video profiles.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-typedef enum {
-  PP_VIDEOPROFILE_H264BASELINE = 0,
-  PP_VIDEOPROFILE_H264MAIN = 1,
-  PP_VIDEOPROFILE_H264EXTENDED = 2,
-  PP_VIDEOPROFILE_H264HIGH = 3,
-  PP_VIDEOPROFILE_H264HIGH10PROFILE = 4,
-  PP_VIDEOPROFILE_H264HIGH422PROFILE = 5,
-  PP_VIDEOPROFILE_H264HIGH444PREDICTIVEPROFILE = 6,
-  PP_VIDEOPROFILE_H264SCALABLEBASELINE = 7,
-  PP_VIDEOPROFILE_H264SCALABLEHIGH = 8,
-  PP_VIDEOPROFILE_H264STEREOHIGH = 9,
-  PP_VIDEOPROFILE_H264MULTIVIEWHIGH = 10,
-  PP_VIDEOPROFILE_VP8_ANY = 11,
-  PP_VIDEOPROFILE_VP9_ANY = 12,
-  PP_VIDEOPROFILE_MAX = PP_VIDEOPROFILE_VP9_ANY
-} PP_VideoProfile;
-
-/**
- * Hardware acceleration options.
- */
-typedef enum {
-  /** Create a hardware accelerated resource only. */
-  PP_HARDWAREACCELERATION_ONLY = 0,
-  /**
-   * Create a hardware accelerated resource if possible. Otherwise, fall back
-   * to the software implementation.
-   */
-  PP_HARDWAREACCELERATION_WITHFALLBACK = 1,
-  /** Create the software implementation only. */
-  PP_HARDWAREACCELERATION_NONE = 2,
-  PP_HARDWAREACCELERATION_LAST = PP_HARDWAREACCELERATION_NONE
-} PP_HardwareAcceleration;
-/**
- * @}
- */
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * Struct describing a decoded video picture. The decoded picture data is stored
- * in the GL texture corresponding to |texture_id|. The plugin can determine
- * which Decode call generated the picture using |decode_id|.
- */
-struct PP_VideoPicture {
-  /**
-   * |decode_id| parameter of the Decode call which generated this picture.
-   * See the PPB_VideoDecoder function Decode() for more details.
-   */
-  uint32_t decode_id;
-  /**
-   * Texture ID in the plugin's GL context. The plugin can use this to render
-   * the decoded picture.
-   */
-  uint32_t texture_id;
-  /**
-   * The GL texture target for the decoded picture. Possible values are:
-   *   GL_TEXTURE_2D
-   *   GL_TEXTURE_RECTANGLE_ARB
-   *   GL_TEXTURE_EXTERNAL_OES
-   *
-   * The pixel format of the texture is GL_RGBA.
-   */
-  uint32_t texture_target;
-  /**
-   * Dimensions of the texture holding the decoded picture.
-   */
-  struct PP_Size texture_size;
-  /**
-   * The visible subrectangle of the picture. The plugin should display only
-   * this part of the picture.
-   */
-  struct PP_Rect visible_rect;
-};
-
-/**
- * Struct describing a decoded video picture. The decoded picture data is stored
- * in the GL texture corresponding to |texture_id|. The plugin can determine
- * which Decode call generated the picture using |decode_id|.
- */
-struct PP_VideoPicture_0_1 {
-  /**
-   * |decode_id| parameter of the Decode call which generated this picture.
-   * See the PPB_VideoDecoder function Decode() for more details.
-   */
-  uint32_t decode_id;
-  /**
-   * Texture ID in the plugin's GL context. The plugin can use this to render
-   * the decoded picture.
-   */
-  uint32_t texture_id;
-  /**
-   * The GL texture target for the decoded picture. Possible values are:
-   *   GL_TEXTURE_2D
-   *   GL_TEXTURE_RECTANGLE_ARB
-   *   GL_TEXTURE_EXTERNAL_OES
-   *
-   * The pixel format of the texture is GL_RGBA.
-   */
-  uint32_t texture_target;
-  /**
-   * Dimensions of the texture holding the decoded picture.
-   */
-  struct PP_Size texture_size;
-};
-
-/**
- * Supported video profile information. See the PPB_VideoEncoder function
- * GetSupportedProfiles() for more details.
- */
-struct PP_VideoProfileDescription {
-  /**
-   * The codec profile.
-   */
-  PP_VideoProfile profile;
-  /**
-   * Dimensions of the maximum resolution of video frames, in pixels.
-   */
-  struct PP_Size max_resolution;
-  /**
-   * The numerator of the maximum frame rate.
-   */
-  uint32_t max_framerate_numerator;
-  /**
-   * The denominator of the maximum frame rate.
-   */
-  uint32_t max_framerate_denominator;
-  /**
-   * Whether the profile is hardware accelerated.
-   */
-  PP_Bool hardware_accelerated;
-};
-
-/**
- * Supported video profile information. See the PPB_VideoEncoder function
- * GetSupportedProfiles() for more details.
- */
-struct PP_VideoProfileDescription_0_1 {
-  /**
-   * The codec profile.
-   */
-  PP_VideoProfile profile;
-  /**
-   * Dimensions of the maximum resolution of video frames, in pixels.
-   */
-  struct PP_Size max_resolution;
-  /**
-   * The numerator of the maximum frame rate.
-   */
-  uint32_t max_framerate_numerator;
-  /**
-   * The denominator of the maximum frame rate.
-   */
-  uint32_t max_framerate_denominator;
-  /**
-   * A value indicating if the profile is available in hardware, software, or
-   * both.
-   */
-  PP_HardwareAcceleration acceleration;
-};
-
-/**
- * Struct describing a bitstream buffer.
- */
-struct PP_BitstreamBuffer {
-  /**
-   * The size, in bytes, of the bitstream data.
-   */
-  uint32_t size;
-  /**
-   * The base address of the bitstream data.
-   */
-  void* buffer;
-  /**
-   * Whether the buffer represents a key frame.
-   */
-  PP_Bool key_frame;
-};
-
-/**
- * Struct describing an audio bitstream buffer.
- */
-struct PP_AudioBitstreamBuffer {
-  /**
-   * The size, in bytes, of the bitstream data.
-   */
-  uint32_t size;
-  /**
-   * The base address of the bitstream data.
-   */
-  void* buffer;
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_CODECS_H_ */
-
diff --git a/c/pp_completion_callback.h b/c/pp_completion_callback.h
deleted file mode 100644
index 282d8ee..0000000
--- a/c/pp_completion_callback.h
+++ /dev/null
@@ -1,289 +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.
- */
-
-/* From pp_completion_callback.idl modified Thu May  9 14:59:57 2013. */
-
-#ifndef PPAPI_C_PP_COMPLETION_CALLBACK_H_
-#define PPAPI_C_PP_COMPLETION_CALLBACK_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * This file defines the API to create and run a callback.
- */
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * This typedef defines the signature that you implement to receive callbacks
- * on asynchronous completion of an operation.
- *
- * @param[in] user_data A pointer to user data passed to a callback function.
- * @param[in] result If result is 0 (PP_OK), the operation succeeded.  Negative
- * values (other than -1 or PP_OK_COMPLETE) indicate error and are specified
- * in pp_errors.h. Positive values for result usually indicate success and have
- * some operation-dependent meaning (such as bytes read).
- */
-typedef void (*PP_CompletionCallback_Func)(void* user_data, int32_t result);
-/**
- * @}
- */
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * This enumeration contains flags used to control how non-NULL callbacks are
- * scheduled by asynchronous methods.
- */
-typedef enum {
-  /**
-   * By default any non-NULL callback will always invoked asynchronously,
-   * on success or error, even if the operation could complete synchronously
-   * without blocking.
-   *
-   * The method taking such callback will always return PP_OK_COMPLETIONPENDING.
-   * The callback will be invoked on the same thread on which the method was
-   * invoked.
-   *
-   * NOTE: If the method taking the callback is invoked on a background
-   * thread that has no valid PPB_MessageLoop resource attached, the system has
-   * no way to run the callback on the correct thread. In this case, a log
-   * message will be emitted and the plugin will be made to crash.
-   */
-  PP_COMPLETIONCALLBACK_FLAG_NONE = 0 << 0,
-  /**
-   * This flag allows any method taking such callback to complete synchronously
-   * and not call the callback if the operation would not block. This is useful
-   * when performance is an issue, and the operation bandwidth should not be
-   * limited to the processing speed of the message loop.
-   *
-   * On synchronous method completion, the completion result will be returned
-   * by the method itself. Otherwise, the method will return
-   * PP_OK_COMPLETIONPENDING, and the callback will be invoked asynchronously on
-   * the same thread on which the method was invoked. If there is no valid
-   * PPB_MessageLoop attached to that thread, and the callback would normally
-   * run asynchronously, the invoked method will return
-   * PP_ERROR_NO_MESSAGE_LOOP.
-   */
-  PP_COMPLETIONCALLBACK_FLAG_OPTIONAL = 1 << 0
-} PP_CompletionCallback_Flag;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_CompletionCallback_Flag, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * <code>PP_CompletionCallback</code> is a common mechanism for supporting
- * potentially asynchronous calls in browser interfaces. Any method that takes a
- * <code>PP_CompletionCallback</code> can be used in one of three different
- * ways:
- *   - Required: The callback will always be invoked asynchronously on the
- *               thread where the associated PPB method was invoked. The method
- *               will always return PP_OK_COMPLETIONPENDING when a required
- *               callback, and the callback will be invoked later (barring
- *               system or thread shutdown; see PPB_MessageLoop for details).
- *               Required callbacks are the default.
- *               <br /><br />
- *               NOTE: If you use a required callback on a background thread,
- *               you must have created and attached a PPB_MessageLoop.
- *               Otherwise, the system can not run your callback on that thread,
- *               and will instead emit a log message and crash your plugin to
- *               make the problem more obvious.
- *
- *   - Optional: The callback may be invoked asynchronously, or the PPB method
- *               may complete synchronously if it can do so without blocking.
- *               If the method will complete asynchronously, it will return
- *               PP_OK_COMPLETIONPENDING. Otherwise, it will complete
- *               synchronously and return an appropriate code (see below for
- *               more information on the return code). Optional callbacks are
- *               generally more difficult to use correctly than Required
- *               callbacks, but can provide better performance for some APIs
- *               (especially APIs with buffered reads, such as PPB_URLLoader or
- *               PPB_FileIO).
- *               <br /><br />
- *               NOTE: If you use an optional callback on a background thread,
- *               and you have not created and attached a PPB_MessageLoop, then
- *               the method you invoke will fail without running and return
- *               PP_ERROR_NO_MESSAGE_LOOP.
- *
- *   - Blocking: In this case, the callback's function pointer is NULL, and the
- *               invoked method must complete synchronously. The method will
- *               run to completion and return an appropriate code when finished
- *               (see below for more information). Blocking completion
- *               callbacks are only supported on background threads.
- *               <br /><br />
- *               <code>PP_BlockUntilComplete()</code> provides a convenient way
- *               to specify blocking behavior. Refer to
- *               <code>PP_BlockUntilComplete</code> for more information.
- *
- * When the callback is run asynchronously, the result parameter passed to
- * <code>func</code> is an int32_t that, if negative indicates an error code
- * whose meaning is specific to the calling method (refer to
- * <code>pp_error.h</code> for further information). A positive or 0 value is a
- * return result indicating success whose meaning depends on the calling method
- * (e.g. number of bytes read).
- */
-struct PP_CompletionCallback {
-  /**
-   * This value is a callback function that will be called, or NULL if this is
-   * a blocking completion callback.
-   */
-  PP_CompletionCallback_Func func;
-  /**
-   * This value is a pointer to user data passed to a callback function.
-   */
-  void* user_data;
-  /**
-   * Flags used to control how non-NULL callbacks are scheduled by
-   * asynchronous methods.
-   */
-  int32_t flags;
-};
-/**
- * @}
- */
-
-#include <stdlib.h>
-
-/**
- * @addtogroup Functions
- * @{
- */
-/**
- * PP_MakeCompletionCallback() is used to create a
- * <code>PP_CompletionCallback</code>.
- *
- * <strong>Example, creating a Required callback:</strong>
- *
- * @code
- * struct PP_CompletionCallback cc = PP_MakeCompletionCallback(Foo, NULL);
- * @endcode
- *
- * <strong>Example, creating an Optional callback:</strong>
- *
- * @code
- * struct PP_CompletionCallback cc = PP_MakeCompletionCallback(Foo, NULL);
- * cc.flags = cc.flags | PP_COMPLETIONCALLBACK_FLAG_OPTIONAL;
- * @endcode
- *
- * @param[in] func A <code>PP_CompletionCallback_Func</code> that will be
- * called.
- * @param[in] user_data A pointer to user data passed to your callback
- * function. This is optional and is typically used to help track state
- * when you may have multiple callbacks pending.
- *
- * @return A <code>PP_CompletionCallback</code> structure.
- */
-PP_INLINE struct PP_CompletionCallback PP_MakeCompletionCallback(
-    PP_CompletionCallback_Func func,
-    void* user_data) {
-  struct PP_CompletionCallback cc;
-  cc.func = func;
-  cc.user_data = user_data;
-  cc.flags = PP_COMPLETIONCALLBACK_FLAG_NONE;
-  return cc;
-}
-
-/**
- * PP_MakeOptionalCompletionCallback() is used to create a PP_CompletionCallback
- * with PP_COMPLETIONCALLBACK_FLAG_OPTIONAL set.
- *
- * @param[in] func A PP_CompletionCallback_Func to be called on completion.
- * @param[in] user_data A pointer to user data passed to be passed to the
- * callback function. This is optional and is typically used to help track state
- * in case of multiple pending callbacks.
- *
- * @return A PP_CompletionCallback structure.
- */
-PP_INLINE struct PP_CompletionCallback PP_MakeOptionalCompletionCallback(
-    PP_CompletionCallback_Func func,
-    void* user_data) {
-  struct PP_CompletionCallback cc = PP_MakeCompletionCallback(func, user_data);
-  cc.flags = cc.flags | PP_COMPLETIONCALLBACK_FLAG_OPTIONAL;
-  return cc;
-}
-/**
- * @}
- */
-
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PP_RunCompletionCallback() is used to run a callback. It invokes
- * the callback function passing it user data specified on creation and
- * completion |result|.
- *
- * @param[in] cc A pointer to a <code>PP_CompletionCallback</code> that will be
- * run.
- * @param[in] result The result of the operation. Non-positive values correspond
- * to the error codes from pp_errors.h (excluding PP_OK_COMPLETIONPENDING).
- * Positive values indicate additional information such as bytes read.
- */
-PP_INLINE void PP_RunCompletionCallback(struct PP_CompletionCallback* cc,
-                                        int32_t result) {
-  cc->func(cc->user_data, result);
-}
-
-/**
- * @}
- */
-
-/**
- * @addtogroup Functions
- * @{
- */
-
- /**
- * PP_BlockUntilComplete() is used in place of an actual completion callback
- * to request blocking behavior. If specified, the calling thread will block
- * until the function completes. Blocking completion callbacks are only allowed
- * from background threads.
- *
- * @return A <code>PP_CompletionCallback</code> structure.
- */
-PP_INLINE struct PP_CompletionCallback PP_BlockUntilComplete(void) {
-  return PP_MakeCompletionCallback(NULL, NULL);
-}
-
-/**
- * PP_RunAndClearCompletionCallback() runs a callback and clears the reference
- * to that callback.
- *
- * This function is used when the null-ness of a completion callback is used as
- * a signal for whether a completion callback has been registered. In this
- * case, after the execution of the callback, it should be cleared. However,
- * this introduces a conflict if the completion callback wants to schedule more
- * work that involves the same completion callback again (for example, when
- * reading data from an URLLoader, one would typically queue up another read
- * callback). As a result, this function clears the pointer
- * before the provided callback is executed.
- */
-PP_INLINE void PP_RunAndClearCompletionCallback(
-    struct PP_CompletionCallback* cc,
-    int32_t res) {
-  struct PP_CompletionCallback temp = *cc;
-  *cc = PP_BlockUntilComplete();
-  PP_RunCompletionCallback(&temp, res);
-}
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_COMPLETION_CALLBACK_H_ */
-
diff --git a/c/pp_directory_entry.h b/c/pp_directory_entry.h
deleted file mode 100644
index 01b8a7b..0000000
--- a/c/pp_directory_entry.h
+++ /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.
- */
-
-/* From pp_directory_entry.idl modified Tue Apr 30 05:44:50 2013. */
-
-#ifndef PPAPI_C_PP_DIRECTORY_ENTRY_H_
-#define PPAPI_C_PP_DIRECTORY_ENTRY_H_
-
-#include "ppapi/c/pp_file_info.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- *
- * This file defines the <code>PP_DirectoryEntry</code> struct.
- */
-
-
-/**
- * @addtogroup Structs
- * @{
- */
-struct PP_DirectoryEntry {
-  PP_Resource file_ref;
-  PP_FileType file_type;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_DirectoryEntry, 8);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_DIRECTORY_ENTRY_H_ */
-
diff --git a/c/pp_errors.h b/c/pp_errors.h
deleted file mode 100644
index e743075..0000000
--- a/c/pp_errors.h
+++ /dev/null
@@ -1,206 +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.
- */
-
-/* From pp_errors.idl modified Tue Sep 23 15:37:27 2014. */
-
-#ifndef PPAPI_C_PP_ERRORS_H_
-#define PPAPI_C_PP_ERRORS_H_
-
-#include "ppapi/c/pp_macros.h"
-
-/**
- * @file
- * This file defines an enumeration of all PPAPI error codes.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * This enumeration contains enumerators of all PPAPI error codes.
- *
- * Errors are negative valued. Callers should treat all negative values as a
- * failure, even if it's not in the list, since the possible errors are likely
- * to expand and change over time.
- */
-enum {
-  /**
-   * This value is returned by a function on successful synchronous completion
-   * or is passed as a result to a PP_CompletionCallback_Func on successful
-   * asynchronous completion.
-   */
-  PP_OK = 0,
-  /**
-   * This value is returned by a function that accepts a PP_CompletionCallback
-   * and cannot complete synchronously. This code indicates that the given
-   * callback will be asynchronously notified of the final result once it is
-   * available.
-   */
-  PP_OK_COMPLETIONPENDING = -1,
-  /**This value indicates failure for unspecified reasons. */
-  PP_ERROR_FAILED = -2,
-  /**
-   * This value indicates failure due to an asynchronous operation being
-   * interrupted. The most common cause of this error code is destroying a
-   * resource that still has a callback pending. All callbacks are guaranteed
-   * to execute, so any callbacks pending on a destroyed resource will be
-   * issued with PP_ERROR_ABORTED.
-   *
-   * If you get an aborted notification that you aren't expecting, check to
-   * make sure that the resource you're using is still in scope. A common
-   * mistake is to create a resource on the stack, which will destroy the
-   * resource as soon as the function returns.
-   */
-  PP_ERROR_ABORTED = -3,
-  /** This value indicates failure due to an invalid argument. */
-  PP_ERROR_BADARGUMENT = -4,
-  /** This value indicates failure due to an invalid PP_Resource. */
-  PP_ERROR_BADRESOURCE = -5,
-  /** This value indicates failure due to an unavailable PPAPI interface. */
-  PP_ERROR_NOINTERFACE = -6,
-  /** This value indicates failure due to insufficient privileges. */
-  PP_ERROR_NOACCESS = -7,
-  /** This value indicates failure due to insufficient memory. */
-  PP_ERROR_NOMEMORY = -8,
-  /** This value indicates failure due to insufficient storage space. */
-  PP_ERROR_NOSPACE = -9,
-  /** This value indicates failure due to insufficient storage quota. */
-  PP_ERROR_NOQUOTA = -10,
-  /**
-   * This value indicates failure due to an action already being in
-   * progress.
-   */
-  PP_ERROR_INPROGRESS = -11,
-  /**
-   * The requested command is not supported by the browser.
-   */
-  PP_ERROR_NOTSUPPORTED = -12,
-  /**
-   * Returned if you try to use a null completion callback to "block until
-   * complete" on the main thread. Blocking the main thread is not permitted
-   * to keep the browser responsive (otherwise, you may not be able to handle
-   * input events, and there are reentrancy and deadlock issues).
-   */
-  PP_ERROR_BLOCKS_MAIN_THREAD = -13,
-  /**
-   * This value indicates that the plugin sent bad input data to a resource,
-   * leaving it in an invalid state. The resource can't be used after returning
-   * this error and should be released.
-   */
-  PP_ERROR_MALFORMED_INPUT = -14,
-  /**
-   * This value indicates that a resource has failed.  The resource can't be
-   * used after returning this error and should be released.
-   */
-  PP_ERROR_RESOURCE_FAILED = -15,
-  /** This value indicates failure due to a file that does not exist. */
-  PP_ERROR_FILENOTFOUND = -20,
-  /** This value indicates failure due to a file that already exists. */
-  PP_ERROR_FILEEXISTS = -21,
-  /** This value indicates failure due to a file that is too big. */
-  PP_ERROR_FILETOOBIG = -22,
-  /**
-   * This value indicates failure due to a file having been modified
-   * unexpectedly.
-   */
-  PP_ERROR_FILECHANGED = -23,
-  /** This value indicates that the pathname does not reference a file. */
-  PP_ERROR_NOTAFILE = -24,
-  /** This value indicates failure due to a time limit being exceeded. */
-  PP_ERROR_TIMEDOUT = -30,
-  /**
-   * This value indicates that the user cancelled rather than providing
-   * expected input.
-   */
-  PP_ERROR_USERCANCEL = -40,
-  /**
-   * This value indicates failure due to lack of a user gesture such as a
-   * mouse click or key input event. Examples of actions requiring a user
-   * gesture are showing the file chooser dialog and going into fullscreen
-   * mode.
-   */
-  PP_ERROR_NO_USER_GESTURE = -41,
-  /**
-   * This value indicates that the graphics context was lost due to a
-   * power management event.
-   */
-  PP_ERROR_CONTEXT_LOST = -50,
-  /**
-   * Indicates an attempt to make a PPAPI call on a thread without previously
-   * registering a message loop via PPB_MessageLoop.AttachToCurrentThread.
-   * Without this registration step, no PPAPI calls are supported.
-   */
-  PP_ERROR_NO_MESSAGE_LOOP = -51,
-  /**
-   * Indicates that the requested operation is not permitted on the current
-   * thread.
-   */
-  PP_ERROR_WRONG_THREAD = -52,
-  /**
-   * Indicates that a null completion callback was used on a thread handling a
-   * blocking message from JavaScript. Null completion callbacks "block until
-   * complete", which could cause the main JavaScript thread to be blocked
-   * excessively.
-   */
-  PP_ERROR_WOULD_BLOCK_THREAD = -53,
-  /**
-   * This value indicates that the connection was closed. For TCP sockets, it
-   * corresponds to a TCP FIN.
-   */
-  PP_ERROR_CONNECTION_CLOSED = -100,
-  /**
-   * This value indicates that the connection was reset. For TCP sockets, it
-   * corresponds to a TCP RST.
-   */
-  PP_ERROR_CONNECTION_RESET = -101,
-  /**
-   * This value indicates that the connection attempt was refused.
-   */
-  PP_ERROR_CONNECTION_REFUSED = -102,
-  /**
-   * This value indicates that the connection was aborted. For TCP sockets, it
-   * means the connection timed out as a result of not receiving an ACK for data
-   * sent. This can include a FIN packet that did not get ACK'd.
-   */
-  PP_ERROR_CONNECTION_ABORTED = -103,
-  /**
-   * This value indicates that the connection attempt failed.
-   */
-  PP_ERROR_CONNECTION_FAILED = -104,
-  /**
-   * This value indicates that the connection attempt timed out.
-   */
-  PP_ERROR_CONNECTION_TIMEDOUT = -105,
-  /**
-   * This value indicates that the IP address or port number is invalid.
-   */
-  PP_ERROR_ADDRESS_INVALID = -106,
-  /**
-   * This value indicates that the IP address is unreachable. This usually means
-   * that there is no route to the specified host or network.
-   */
-  PP_ERROR_ADDRESS_UNREACHABLE = -107,
-  /**
-   * This value is returned when attempting to bind an address that is already
-   * in use.
-   */
-  PP_ERROR_ADDRESS_IN_USE = -108,
-  /**
-   * This value indicates that the message was too large for the transport.
-   */
-  PP_ERROR_MESSAGE_TOO_BIG = -109,
-  /**
-   * This value indicates that the host name could not be resolved.
-   */
-  PP_ERROR_NAME_NOT_RESOLVED = -110
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_ERRORS_H_ */
-
diff --git a/c/pp_file_info.h b/c/pp_file_info.h
deleted file mode 100644
index cb5e567..0000000
--- a/c/pp_file_info.h
+++ /dev/null
@@ -1,98 +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.
- */
-
-/* From pp_file_info.idl modified Thu May  2 16:41:50 2013. */
-
-#ifndef PPAPI_C_PP_FILE_INFO_H_
-#define PPAPI_C_PP_FILE_INFO_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-
-/**
- * @file
- * This file defines three enumerations for use in the PPAPI C file IO APIs.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * The <code>PP_FileType</code> enum contains file type constants.
- */
-typedef enum {
-  /** A regular file type */
-  PP_FILETYPE_REGULAR = 0,
-  /** A directory */
-  PP_FILETYPE_DIRECTORY = 1,
-  /** A catch-all for unidentified types */
-  PP_FILETYPE_OTHER = 2
-} PP_FileType;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FileType, 4);
-
-/**
- * The <code>PP_FileSystemType</code> enum contains file system type constants.
- */
-typedef enum {
-  /** For identified invalid return values */
-  PP_FILESYSTEMTYPE_INVALID = 0,
-  /** For external file system types */
-  PP_FILESYSTEMTYPE_EXTERNAL = 1,
-  /** For local persistent file system types */
-  PP_FILESYSTEMTYPE_LOCALPERSISTENT = 2,
-  /** For local temporary file system types */
-  PP_FILESYSTEMTYPE_LOCALTEMPORARY = 3,
-  /** For isolated file system types */
-  PP_FILESYSTEMTYPE_ISOLATED = 4
-} PP_FileSystemType;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FileSystemType, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * The <code>PP_FileInfo</code> struct represents all information about a file,
- * such as size, type, and creation time.
- */
-struct PP_FileInfo {
-  /** This value represents the size of the file measured in bytes */
-  int64_t size;
-  /**
-   * This value represents the type of file as defined by the
-   * <code>PP_FileType</code> enum
-   */
-  PP_FileType type;
-  /**
-   * This value represents the file system type of the file as defined by the
-   * <code>PP_FileSystemType</code> enum.
-   */
-  PP_FileSystemType system_type;
-  /**
-   * This value represents the creation time of the file.
-   */
-  PP_Time creation_time;
-  /**
-   * This value represents the last time the file was accessed.
-   */
-  PP_Time last_access_time;
-  /**
-   * This value represents the last time the file was modified.
-   */
-  PP_Time last_modified_time;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_FileInfo, 40);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_FILE_INFO_H_ */
-
diff --git a/c/pp_graphics_3d.h b/c/pp_graphics_3d.h
deleted file mode 100644
index 82f8189..0000000
--- a/c/pp_graphics_3d.h
+++ /dev/null
@@ -1,108 +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.
- */
-
-/* From pp_graphics_3d.idl modified Fri Jun  9 15:44:15 2017. */
-
-#ifndef PPAPI_C_PP_GRAPHICS_3D_H_
-#define PPAPI_C_PP_GRAPHICS_3D_H_
-
-#include "ppapi/c/pp_macros.h"
-
-/**
- * @file
- * This file defines the <code>PP_Graphics3DAttrib</code> enumeration for use in
- * PPAPI C headers.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-typedef enum {
-  /**
-   * Bits of Alpha in the color buffer.
-   */
-  PP_GRAPHICS3DATTRIB_ALPHA_SIZE = 0x3021,
-  /**
-   * Bits of Blue in the color buffer.
-   */
-  PP_GRAPHICS3DATTRIB_BLUE_SIZE = 0x3022,
-  /**
-   * Bits of Green in the color buffer.
-   */
-  PP_GRAPHICS3DATTRIB_GREEN_SIZE = 0x3023,
-  /**
-   * Bits of Red in the color buffer.
-   */
-  PP_GRAPHICS3DATTRIB_RED_SIZE = 0x3024,
-  /**
-   * Bits of Z in the depth buffer.
-   */
-  PP_GRAPHICS3DATTRIB_DEPTH_SIZE = 0x3025,
-  /**
-   * Bits of Stencil in the stencil buffer.
-   */
-  PP_GRAPHICS3DATTRIB_STENCIL_SIZE = 0x3026,
-  /**
-   * Number of samples per pixel.
-   */
-  PP_GRAPHICS3DATTRIB_SAMPLES = 0x3031,
-  /**
-   * Number of multisample buffers.
-   */
-  PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS = 0x3032,
-  /**
-   * Attrib list terminator.
-   */
-  PP_GRAPHICS3DATTRIB_NONE = 0x3038,
-  /**
-   * Height of surface in pixels.
-   */
-  PP_GRAPHICS3DATTRIB_HEIGHT = 0x3056,
-  /**
-   * Width of surface in pixels.
-   */
-  PP_GRAPHICS3DATTRIB_WIDTH = 0x3057,
-  /**
-   * Specifies the effect on the color buffer of posting a surface
-   * with SwapBuffers. The initial value is chosen by the implementation.
-   */
-  PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR = 0x3093,
-  /**
-   * Indicates that color buffer contents are unaffected.
-   */
-  PP_GRAPHICS3DATTRIB_BUFFER_PRESERVED = 0x3094,
-  /**
-   * Indicates that color buffer contents may be destroyed or changed.
-   */
-  PP_GRAPHICS3DATTRIB_BUFFER_DESTROYED = 0x3095,
-  /**
-   * Specifies whether the context is intended to be low-power or
-   * high-performance. The initial value is
-   * PP_GRAPHICS3DATTRIB_GPU_PREFERENCE_PERFORMANCE.
-   */
-  PP_GRAPHICS3DATTRIB_GPU_PREFERENCE = 0x11000,
-  /**
-   * The context should be low-power, and may be created on an integrated gpu.
-   */
-  PP_GRAPHICS3DATTRIB_GPU_PREFERENCE_LOW_POWER = 0x11001,
-  /**
-   * The context may be high-power and may be created on a discrete gpu.
-   */
-  PP_GRAPHICS3DATTRIB_GPU_PREFERENCE_PERFORMANCE = 0x11002,
-  /**
-   * Whether or not offscreen color buffers exist in front/back pairs that
-   * can be swapped.
-   */
-  PP_GRAPHICS3DATTRIB_SINGLE_BUFFER = 0x3085
-} PP_Graphics3DAttrib;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_Graphics3DAttrib, 4);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_GRAPHICS_3D_H_ */
-
diff --git a/c/pp_input_event.h b/c/pp_input_event.h
deleted file mode 100644
index 2deed22..0000000
--- a/c/pp_input_event.h
+++ /dev/null
@@ -1,213 +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.
- */
-
-/* From pp_input_event.idl modified Thu Mar 28 10:52:59 2013. */
-
-#ifndef PPAPI_C_PP_INPUT_EVENT_H_
-#define PPAPI_C_PP_INPUT_EVENT_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/ppb_input_event.h"
-
-/**
- * @file
- * This file defines the API used to handle mouse and keyboard input events.
- */
-
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * The <code>PP_InputEvent_Key</code> struct represents a key up or key down
- * event.
- *
- * Key up and key down events correspond to physical keys on the keyboard. The
- * actual character that the user typed (if any) will be delivered in a
- * "character" event.
- *
- * If the user loses focus on the module while a key is down, a key up
- * event might not occur. For example, if the module has focus and the user
- * presses and holds the shift key, the module will see a "shift down" message.
- * Then if the user clicks elsewhere on the web page, the module's focus will
- * be lost and no more input events will be delivered.
- *
- * If your module depends on receiving key up events, it should also handle
- * "lost focus" as the equivalent of "all keys up."
- */
-struct PP_InputEvent_Key {
-  /** This value is a bit field combination of the EVENT_MODIFIER flags. */
-  uint32_t modifier;
-  /**
-   * This value reflects the DOM KeyboardEvent <code>keyCode</code> field.
-   * Chrome populates this with the Windows-style Virtual Key code of the key.
-   */
-  uint32_t key_code;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_InputEvent_Key, 8);
-
-/**
- * The <code>PP_InputEvent_Character</code> struct represents a typed character
- * event.
- *
- * Normally, the program will receive a key down event, followed by a character
- * event, followed by a key up event. The character event will have any
- * modifier keys applied. Obvious examples are symbols, where Shift-5 gives you
- * a '%'. The key down and up events will give you the scan code for the "5"
- * key, and the character event will give you the '%' character.
- *
- * You may not get a character event for all key down events if the key doesn't
- * generate a character. Likewise, you may actually get multiple character
- * events in a row. For example, some locales have an accent key that modifies
- * the next character typed. You might get this stream of events: accent down,
- * accent up (it didn't generate a character), letter key down, letter with
- * accent character event (it was modified by the previous accent key), letter
- * key up.  If the letter can't be combined with the accent, like an umlaut and
- * an 'R', the system might send umlaut down, umlaut up, 'R' key down, umlaut
- * character (can't combine it with 'R', so just send the raw umlaut so it
- * isn't lost"), 'R' character event, 'R' key up.
- */
-struct PP_InputEvent_Character {
-  /** A combination of the <code>PP_InputEvent_Modifier</code> flags. */
-  uint32_t modifier;
-  /**
-   * This value represents the typed character as a single null-terminated UTF-8
-   * character. Any unused bytes will be filled with null bytes. Since the
-   * maximum UTF-8 character is 4 bytes, there will always be at least one null
-   * at the end so you can treat this as a null-terminated UTF-8 string.
-   */
-  int8_t text[5];
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_InputEvent_Character, 12);
-
-/**
- * The <code>PP_InputEvent_Mouse</code> struct represents all mouse events
- * except mouse wheel events.
- */
-struct PP_InputEvent_Mouse {
-  /**
-   * This value is a bit field combination of the
-   * <code>PP_InputEvent_Modifier</code> flags.
-   */
-  uint32_t modifier;
-  /**
-   * This value represents the button that changed for mouse down or up events.
-   * This value will be <code>PP_EVENT_MOUSEBUTTON_NONE</code> for mouse move,
-   * enter, and leave events.
-   */
-  PP_InputEvent_MouseButton button;
-  /**
-   * This values represents the x coordinate of the mouse when the event
-   * occurred.
-   *
-   * In most, but not all, cases these coordinates will just be integers.
-   * For example, the plugin element might be arbitrarily scaled or transformed
-   * in the DOM, and translating a mouse event into the coordinate space of the
-   * plugin will give non-integer values.
-   */
-  float x;
-  /**
-   * This values represents the y coordinate of the mouse when the event
-   * occurred.
-   *
-   * In most, but not all, cases these coordinates will just be integers.
-   * For example, the plugin element might be arbitrarily scaled or transformed
-   * in the DOM, and translating a mouse event into the coordinate space of the
-   * plugin will give non-integer values.
-   */
-  float y;
-  int32_t click_count;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_InputEvent_Mouse, 20);
-
-/**
- * The <code>PP_InputEvent_Wheel</code> struct represents all mouse wheel
- * events.
- */
-struct PP_InputEvent_Wheel {
-  /**
-   * This value represents a combination of the <code>EVENT_MODIFIER</code>
-   * flags.
-   */
-  uint32_t modifier;
-  /**
-   * The mouse wheel's horizontal scroll amount. A scroll to the right
-   * (where the content moves left) is represented as positive values,
-   * and a scroll to the left (where the content moves right) is
-   * represented as negative values.
-   *
-   * The units are either in pixels (when scroll_by_page is false) or pages
-   * (when scroll_by_page is true). For example, delta_y = -3 means scroll up 3
-   * pixels when scroll_by_page is false, and scroll up 3 pages when
-   * scroll_by_page is true.
-   *
-   * This amount is system dependent and will take into account the user's
-   * preferred scroll sensitivity and potentially also nonlinear acceleration
-   * based on the speed of the scrolling.
-   *
-   * Devices will be of varying resolution. Some mice with large detents will
-   * only generate integer scroll amounts. But fractional values are also
-   * possible, for example, on some trackpads and newer mice that don't have
-   * "clicks".
-   */
-  float delta_x;
-  /**
-   * The mouse wheel's vertical scroll amount. A scroll down (where the
-   * content moves up) is represented as positive values, and a scroll up
-   * (where the content moves down) is represented as negative values.
-   *
-   * The units are either in pixels (when scroll_by_page is false) or pages
-   * (when scroll_by_page is true). For example, delta_y = -3 means scroll up 3
-   * pixels when scroll_by_page is false, and scroll up 3 pages when
-   * scroll_by_page is true.
-   *
-   * This amount is system dependent and will take into account the user's
-   * preferred scroll sensitivity and potentially also nonlinear acceleration
-   * based on the speed of the scrolling.
-   *
-   * Devices will be of varying resolution. Some mice with large detents will
-   * only generate integer scroll amounts. But fractional values are also
-   * possible, for example, on some trackpads and newer mice that don't have
-   * "clicks".
-   */
-  float delta_y;
-  /**
-   * The number of "clicks" of the scroll wheel that have produced the
-   * event. The value may have system-specific acceleration applied to it,
-   * depending on the device. The positive and negative meanings are the same
-   * as for <code>delta_x</code> and <code>delta_y</code>.
-   *
-   * If you are scrolling, you probably want to use the delta values above.
-   * These tick events can be useful if you aren't doing actual scrolling and
-   * don't want or pixel values. An example may be cycling between different
-   * items in a game.
-   *
-   * You may receive fractional values for the wheel ticks if the mouse wheel
-   * is high resolution or doesn't have "clicks". If your program wants
-   * discrete events (as in the "picking items" example) you should accumulate
-   * fractional click values from multiple messages until the total value
-   * reaches positive or negative one. This should represent a similar amount
-   * of scrolling as for a mouse that has a discrete mouse wheel.
-   */
-  float wheel_ticks_x;
-  /** This value represents */
-  float wheel_ticks_y;
-  /**
-   * Indicates if the scroll <code>delta_x</code>/<code>delta_y</code>
-   * indicates pages or lines to scroll by. When true, the user is requesting
-   * to scroll by pages.
-   */
-  PP_Bool scroll_by_page;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_InputEvent_Wheel, 24);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_INPUT_EVENT_H_ */
-
diff --git a/c/pp_instance.h b/c/pp_instance.h
deleted file mode 100644
index b995335..0000000
--- a/c/pp_instance.h
+++ /dev/null
@@ -1,41 +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.
- */
-
-/* From pp_instance.idl modified Sat Jul 16 16:50:26 2011. */
-
-#ifndef PPAPI_C_PP_INSTANCE_H_
-#define PPAPI_C_PP_INSTANCE_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * This file defines the PP_Instance type which uniquely identifies one module
- * instance.
- */
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * The <code>PP_Instance</code> value uniquely identifies one instance of a
- * module (.nexe/PP_Module). There will be one module instance for every
- * \<embed> tag on a page.
- *
- * This identifier is an opaque handle assigned by the browser to the module.
- * It is guaranteed never to be 0, so a module can initialize it to 0 to
- * indicate a "NULL handle."
- */
-typedef int32_t PP_Instance;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_Instance, 4);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_INSTANCE_H_ */
-
diff --git a/c/pp_macros.h b/c/pp_macros.h
deleted file mode 100644
index 23679ac..0000000
--- a/c/pp_macros.h
+++ /dev/null
@@ -1,103 +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.
- */
-
-/* From pp_macros.idl modified Tue Jun 10 17:37:13 2014. */
-
-#ifndef PPAPI_C_PP_MACROS_H_
-#define PPAPI_C_PP_MACROS_H_
-
-#define PPAPI_RELEASE 60
-
-/**
- * @file
- * Defines the common macros such as assert, inline, ...
- */
-
-
-
-/*
- * @addtogroup PP
- * @{
- */
-
-/* Use PP_INLINE to tell the compiler to inline functions.  The main purpose of
- * inline functions in ppapi is to allow us to define convenience functions in
- * the ppapi header files, without requiring clients or implementers to link a
- * PPAPI C library.  The "inline" keyword is not supported by pre-C99 C
- * compilers (such as MS Visual Studio 2008 and older versions of GCC).  MSVS
- * supports __forceinline and GCC supports __inline__.  Use of the static
- * keyword ensures (in C) that the function is not compiled on its own, which
- * could cause multiple definition errors.
- *  http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx
- *  http://gcc.gnu.org/onlinedocs/gcc/Inline.html
- */
-#if defined(__cplusplus)
-/* The inline keyword is part of C++ and guarantees we won't get multiple
- * definition errors.
- */
-# define PP_INLINE inline
-#else
-# if defined(_MSC_VER)
-#  define PP_INLINE static __forceinline
-# else
-#  define PP_INLINE static __inline__
-# endif
-#endif
-
-/* This is a compile-time assertion useful for ensuring that a given type is
-   a given number of bytes wide.  The size of the array is designed to be 1
-   (which should always be valid) if the enum's size is SIZE, and otherwise the
-   size of the array will be -1 (which all/most compilers should flag as an
-   error).  This is wrapped inside a struct, because if it is a simple global
-   we get multiple definition errors at link time.
-
-   NAME is the name of the type without any spaces or the struct or enum
-   keywords.
-
-   CTYPENAME is the typename required by C.  I.e., for a struct or enum, the
-   appropriate keyword must be included.
-
-   SIZE is the expected size in bytes.
- */
-#define PP_COMPILE_ASSERT_SIZE_IN_BYTES_IMPL(NAME, CTYPENAME, SIZE) \
-struct PP_Dummy_Struct_For_##NAME { \
-char _COMPILE_ASSERT_FAILED_The_type_named_ \
-## NAME ## _is_not_ ## SIZE ## \
-_bytes_wide[(sizeof(CTYPENAME) == SIZE) ? 1 : -1]; }
-
-/* PP_COMPILE_ASSERT_SIZE_IN_BYTES is for typenames that contain no spaces.
-   E.g.:
-   PP_COMPILE_ASSERT_SIZE_IN_BYTES(int, 4);
-   typedef struct { int a; } Foo;
-   PP_COMPILE_ASSERT_SIZE_IN_BYTES(Foo, 4);
- */
-#define PP_COMPILE_ASSERT_SIZE_IN_BYTES(NAME, SIZE) \
-PP_COMPILE_ASSERT_SIZE_IN_BYTES_IMPL(NAME, NAME, SIZE)
-
-/* PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES is for typenames that contain 'struct'
-   in C.  That is, struct names that are not typedefs.
-   E.g.:
-   struct Foo { int a; };
-   PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(Foo, 4);
- */
-#define PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(NAME, SIZE) \
-PP_COMPILE_ASSERT_SIZE_IN_BYTES_IMPL(NAME, struct NAME, SIZE)
-
-/* PP_COMPILE_ASSERT_ENUM_SIZE_IN_BYTES is for typenames that contain 'enum'
-   in C.  That is, enum names that are not typedefs.
-   E.g.:
-   enum Bar { A = 0, B = 1 };
-   PP_COMPILE_ASSERT_ENUM_SIZE_IN_BYTES(Foo, 4);
- */
-#define PP_COMPILE_ASSERT_ENUM_SIZE_IN_BYTES(NAME, SIZE) \
-PP_COMPILE_ASSERT_SIZE_IN_BYTES_IMPL(NAME, enum NAME, SIZE)
-
-/**
- * @}
- * End of addtogroup PP
- */
-
-#endif  /* PPAPI_C_PP_MACROS_H_ */
-
diff --git a/c/pp_module.h b/c/pp_module.h
deleted file mode 100644
index e1a1f82..0000000
--- a/c/pp_module.h
+++ /dev/null
@@ -1,39 +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.
- */
-
-/* From pp_module.idl modified Sat Jul 16 16:50:26 2011. */
-
-#ifndef PPAPI_C_PP_MODULE_H_
-#define PPAPI_C_PP_MODULE_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * This file defines the PP_Module type which uniquely identifies the module
- * or .nexe.
- */
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * The PP_Module value uniquely identifies the module or .nexe.
- *
- * This identifier is an opaque handle assigned by the browser to the module. It
- * is guaranteed never to be 0, so a module can initialize it to 0 to
- * indicate a "NULL handle."
- */
-typedef int32_t PP_Module;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_Module, 4);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_MODULE_H_ */
-
diff --git a/c/pp_point.h b/c/pp_point.h
deleted file mode 100644
index 1319473..0000000
--- a/c/pp_point.h
+++ /dev/null
@@ -1,89 +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.
- */
-
-/* From pp_point.idl modified Wed Oct  5 14:06:02 2011. */
-
-#ifndef PPAPI_C_PP_POINT_H_
-#define PPAPI_C_PP_POINT_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * This file defines the API to create a 2 dimensional point.
- * 0,0 is the upper-left starting coordinate.
- */
-
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * The PP_Point structure defines the integer x and y coordinates of a point.
- */
-struct PP_Point {
-  /**
-   * This value represents the horizontal coordinate of a point, starting with 0
-   * as the left-most coordinate.
-   */
-  int32_t x;
-  /**
-   * This value represents the vertical coordinate of a point, starting with 0
-   * as the top-most coordinate.
-   */
-  int32_t y;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_Point, 8);
-
-/**
- * The PP_FloatPoint structure defines the floating-point x and y coordinates
- * of a point.
- */
-struct PP_FloatPoint {
-  float x;
-  float y;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_FloatPoint, 8);
-/**
- * @}
- */
-
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PP_MakePoint() creates a <code>PP_Point</code> given the x and y coordinates
- * as int32_t values.
- *
- * @param[in] x An int32_t value representing a horizontal coordinate of a
- * point, starting with 0 as the left-most coordinate.
- * @param[in] y An int32_t value representing a vertical coordinate of a point,
- * starting with 0 as the top-most coordinate.
- *
- * @return A <code>PP_Point</code> structure.
- */
-PP_INLINE struct PP_Point PP_MakePoint(int32_t x, int32_t y) {
-  struct PP_Point ret;
-  ret.x = x;
-  ret.y = y;
-  return ret;
-}
-
-PP_INLINE struct PP_FloatPoint PP_MakeFloatPoint(float x, float y) {
-  struct PP_FloatPoint ret;
-  ret.x = x;
-  ret.y = y;
-  return ret;
-}
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_POINT_H_ */
-
diff --git a/c/pp_rect.h b/c/pp_rect.h
deleted file mode 100644
index 04833cb..0000000
--- a/c/pp_rect.h
+++ /dev/null
@@ -1,115 +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.
- */
-
-/* From pp_rect.idl modified Tue Jun  3 12:31:06 2014. */
-
-#ifndef PPAPI_C_PP_RECT_H_
-#define PPAPI_C_PP_RECT_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * This file defines the APIs for creating a 2 dimensional rectangle.
- */
-
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * The <code>PP_Rect</code> struct contains the size and location of a 2D
- * rectangle.
- */
-struct PP_Rect {
-  /**
-   * This value represents the x and y coordinates of the upper-left corner of
-   * the rectangle.
-   */
-  struct PP_Point point;
-  /** This value represents the width and height of the rectangle. */
-  struct PP_Size size;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_Rect, 16);
-
-/**
- * The <code>PP_FloatRect</code> struct contains the size and location of a 2D
- * rectangle.
- */
-struct PP_FloatRect {
-  /**
-   * This value represents the x and y coordinates of the upper-left corner of
-   * the rectangle.
-   */
-  struct PP_FloatPoint point;
-  /** This value represents the width and height of the rectangle. */
-  struct PP_FloatSize size;
-};
-/**
- * @}
- */
-
-
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PP_MakeRectFromXYWH() creates a <code>PP_Rect</code> given x and y
- * coordinates and width and height dimensions as int32_t values.
- *
- * @param[in] x An int32_t value representing a horizontal coordinate of a
- * point, starting with 0 as the left-most coordinate.
- * @param[in] y An int32_t value representing a vertical coordinate of a point,
- * starting with 0 as the top-most coordinate.
- * @param[in] w An int32_t value representing a width.
- * @param[in] h An int32_t value representing a height.
- *
- * @return A <code>PP_Rect</code> structure.
- */
-PP_INLINE struct PP_Rect PP_MakeRectFromXYWH(int32_t x, int32_t y,
-                                             int32_t w, int32_t h) {
-  struct PP_Rect ret;
-  ret.point.x = x;
-  ret.point.y = y;
-  ret.size.width = w;
-  ret.size.height = h;
-  return ret;
-}
-
-/**
- * PP_MakeFloatRectFromXYWH() creates a <code>PP_FloatRect</code> given x and y
- * coordinates and width and height dimensions as float values.
- *
- * @param[in] x An float value representing a horizontal coordinate of a
- * point, starting with 0 as the left-most coordinate.
- * @param[in] y An float value representing a vertical coordinate of a point,
- * starting with 0 as the top-most coordinate.
- * @param[in] w An float value representing a width.
- * @param[in] h An float value representing a height.
- *
- * @return A <code>PP_FloatRect</code> structure.
- */
-PP_INLINE struct PP_FloatRect PP_MakeFloatRectFromXYWH(float x, float y,
-                                                       float w, float h) {
-  struct PP_FloatRect ret;
-  ret.point.x = x;
-  ret.point.y = y;
-  ret.size.width = w;
-  ret.size.height = h;
-  return ret;
-}
-
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_RECT_H_ */
-
diff --git a/c/pp_resource.h b/c/pp_resource.h
deleted file mode 100644
index cccf094..0000000
--- a/c/pp_resource.h
+++ /dev/null
@@ -1,47 +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.
- */
-
-/* From pp_resource.idl modified Thu Mar 28 10:09:51 2013. */
-
-#ifndef PPAPI_C_PP_RESOURCE_H_
-#define PPAPI_C_PP_RESOURCE_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * This file defines the <code>PP_Resource</code> type which represents data
- * associated with the module.
- */
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * This typedef represents an opaque handle assigned by the browser to the
- * resource. The handle is guaranteed never to be 0 for a valid resource, so a
- * module can initialize it to 0 to indicate a "NULL handle." Some interfaces
- * may return a NULL resource to indicate failure.
- *
- * While a Var represents something callable to JS or from the module to
- * the DOM, a resource has no meaning or visibility outside of the module
- * interface.
- *
- * Resources are reference counted. Use <code>AddRefResource()</code>
- * and <code>ReleaseResource()</code> in <code>ppb_core.h</code> to manage the
- * reference count of a resource. The data will be automatically destroyed when
- * the internal reference count reaches 0.
- */
-typedef int32_t PP_Resource;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_Resource, 4);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_RESOURCE_H_ */
-
diff --git a/c/pp_size.h b/c/pp_size.h
deleted file mode 100644
index 735baa0..0000000
--- a/c/pp_size.h
+++ /dev/null
@@ -1,88 +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.
- */
-
-/* From pp_size.idl modified Tue Jun  3 12:31:20 2014. */
-
-#ifndef PPAPI_C_PP_SIZE_H_
-#define PPAPI_C_PP_SIZE_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * This file defines the width and height of a 2D rectangle.
- */
-
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * The <code>PP_Size</code> struct contains the size of a 2D rectangle.
- */
-struct PP_Size {
-  /** This value represents the width of the rectangle. */
-  int32_t width;
-  /** This value represents the height of the rectangle. */
-  int32_t height;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_Size, 8);
-
-/**
- * The <code>PP_FloatSize</code> struct contains the size of a 2D rectangle.
- */
-struct PP_FloatSize {
-  /** This value represents the width of the rectangle. */
-  float width;
-  /** This value represents the height of the rectangle. */
-  float height;
-};
-/**
- * @}
- */
-
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PP_MakeSize() creates a <code>PP_Size</code> given a width and height as
- * int32_t values.
- *
- * @param[in] w An int32_t value representing a width.
- * @param[in] h An int32_t value representing a height.
- *
- * @return A <code>PP_Size</code> structure.
- */
-PP_INLINE struct PP_Size PP_MakeSize(int32_t w, int32_t h) {
-  struct PP_Size ret;
-  ret.width = w;
-  ret.height = h;
-  return ret;
-}
-
-/**
- * PP_MakeFloatSize() creates a <code>PP_FloatSize</code> given a
- * width and height as float values.
- *
- * @param[in] w An float value representing a width.
- * @param[in] h An float value representing a height.
- *
- * @return A <code>PP_FloatSize</code> structure.
- */
-PP_INLINE struct PP_FloatSize PP_MakeFloatSize(float w, float h) {
-  struct PP_FloatSize ret;
-  ret.width = w;
-  ret.height = h;
-  return ret;
-}
-/**
- * @}
- */
-#endif  /* PPAPI_C_PP_SIZE_H_ */
-
diff --git a/c/pp_stdint.h b/c/pp_stdint.h
deleted file mode 100644
index 1b3a0c7..0000000
--- a/c/pp_stdint.h
+++ /dev/null
@@ -1,61 +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.
- */
-
-/* From pp_stdint.idl modified Mon Jul 18 17:53:53 2011. */
-
-#ifndef PPAPI_C_PP_STDINT_H_
-#define PPAPI_C_PP_STDINT_H_
-
-#include "ppapi/c/pp_macros.h"
-
-/**
- * @file
- * This file provides a definition of C99 sized types
- * for Microsoft compilers. These definitions only apply
- * for trusted modules.
- */
-
-
-
-/**
- *
- * @addtogroup Typedefs
- * @{
- */
-#if defined(_MSC_VER)
-
-/** This value represents a guaranteed unsigned 8 bit integer. */
-typedef unsigned char uint8_t;
-
-/** This value represents a guaranteed signed 8 bit integer. */
-typedef signed char int8_t;
-
-/** This value represents a guaranteed unsigned 16 bit short. */
-typedef unsigned short uint16_t;
-
-/** This value represents a guaranteed signed 16 bit short. */
-typedef short int16_t;
-
-/** This value represents a guaranteed unsigned 32 bit integer. */
-typedef unsigned int uint32_t;
-
-/** This value represents a guaranteed signed 32 bit integer. */
-typedef int int32_t;
-
-/** This value represents a guaranteed signed 64 bit integer. */
-typedef __int64 int64_t;
-
-/** This value represents a guaranteed unsigned 64 bit integer. */
-typedef unsigned __int64 uint64_t;
-
-#else
-#include <stdint.h>
-#endif
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_STDINT_H_ */
-
diff --git a/c/pp_time.h b/c/pp_time.h
deleted file mode 100644
index b01290c..0000000
--- a/c/pp_time.h
+++ /dev/null
@@ -1,56 +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.
- */
-
-/* From pp_time.idl modified Fri May 10 15:48:42 2013. */
-
-#ifndef PPAPI_C_PP_TIME_H_
-#define PPAPI_C_PP_TIME_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * This file defines time, time ticks and time delta types.
- */
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * The <code>PP_Time</code> type represents the "wall clock time" according
- * to the browser and is defined as the number of seconds since the Epoch
- * (00:00:00 UTC, January 1, 1970).
- */
-typedef double PP_Time;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_Time, 8);
-
-/**
- * A <code>PP_TimeTicks</code> value represents time ticks which are measured
- * in seconds and are used for indicating the time that certain messages were
- * received. In contrast to <code>PP_Time</code>, <code>PP_TimeTicks</code>
- * does not correspond to any actual wall clock time and will not change
- * discontinuously if the user changes their computer clock.
- *
- * The units are in seconds, but are not measured relative to any particular
- * epoch, so the most you can do is compare two values.
- */
-typedef double PP_TimeTicks;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_TimeTicks, 8);
-
-/**
- * A <code>PP_TimeDelta</code> value represents a duration of time which is
- * measured in seconds.
- */
-typedef double PP_TimeDelta;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_TimeDelta, 8);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_TIME_H_ */
-
diff --git a/c/pp_touch_point.h b/c/pp_touch_point.h
deleted file mode 100644
index 960fab4..0000000
--- a/c/pp_touch_point.h
+++ /dev/null
@@ -1,87 +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.
- */
-
-/* From pp_touch_point.idl modified Thu Mar 28 10:13:07 2013. */
-
-#ifndef PPAPI_C_PP_TOUCH_POINT_H_
-#define PPAPI_C_PP_TOUCH_POINT_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * This file defines the API to create a touch point or position where fingers
- * makes contact with touch screen device.
- */
-
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * The <code>PP_TouchPoint</code> struct represents all information about a
- * single touch point, such as position, id, rotation angle, and pressure.
- */
-struct PP_TouchPoint {
-  /**
-   * This value represents the identifier for this TouchPoint. The id
-   * corresponds to the order in which the points were pressed. For example,
-   * the first point to be pressed has an id of 0, the second has an id of 1,
-   * and so on. An id can be reused when a touch point is released.  For
-   * example, if two fingers are down, with id 0 and 1, and finger 0 releases,
-   * the next finger to be pressed can be assigned to id 0.
-   */
-  uint32_t id;
-  /**
-   * This value represents the x and y pixel position of this TouchPoint
-   * relative to the upper-left of the module instance receiving the event.
-   */
-  struct PP_FloatPoint position;
-  /**
-   * This value represents the elliptical radii, in screen pixels, in the x
-   * and y direction of this TouchPoint.
-   */
-  struct PP_FloatPoint radius;
-  /**
-   * This value represents the angle of rotation in degrees of the elliptical
-   * model of this TouchPoint clockwise from "up."
-   */
-  float rotation_angle;
-  /**
-   * This value represents the pressure applied to this TouchPoint.  This value
-   * is typically between 0 and 1, with 0 indicating no pressure and 1
-   * indicating some maximum pressure. Scaling differs depending on the
-   * hardware and the value is not guaranteed to stay within that range.
-   */
-  float pressure;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_TouchPoint, 28);
-/**
- * @}
- */
-
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PP_MakeTouchPoint() creates a <code>PP_TouchPoint</code>.
- *
- * @return A <code>PP_TouchPoint</code> structure.
- */
-PP_INLINE struct PP_TouchPoint PP_MakeTouchPoint(void) {
-  struct PP_TouchPoint result = { 0, {0, 0}, {0, 0}, 0, 0 };
-  return result;
-}
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_TOUCH_POINT_H_ */
-
diff --git a/c/pp_var.h b/c/pp_var.h
deleted file mode 100644
index 136a25f..0000000
--- a/c/pp_var.h
+++ /dev/null
@@ -1,261 +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.
- */
-
-/* From pp_var.idl modified Thu Apr 10 14:52:30 2014. */
-
-#ifndef PPAPI_C_PP_VAR_H_
-#define PPAPI_C_PP_VAR_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * This file defines the API for handling the passing of data types between
- * your module and the page.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * The <code>PP_VarType</code> is an enumeration of the different types that
- * can be contained within a <code>PP_Var</code> structure.
- */
-typedef enum {
-  /**
-   * An undefined value.
-   */
-  PP_VARTYPE_UNDEFINED = 0,
-  /**
-   * A NULL value. This is similar to undefined, but JavaScript differentiates
-   * the two so it is exposed here as well.
-   */
-  PP_VARTYPE_NULL = 1,
-  /**
-   * A boolean value, use the <code>as_bool</code> member of the var.
-   */
-  PP_VARTYPE_BOOL = 2,
-  /**
-   * A 32-bit integer value. Use the <code>as_int</code> member of the var.
-   */
-  PP_VARTYPE_INT32 = 3,
-  /**
-   * A double-precision floating point value. Use the <code>as_double</code>
-   * member of the var.
-   */
-  PP_VARTYPE_DOUBLE = 4,
-  /**
-   * The Var represents a string. The <code>as_id</code> field is used to
-   * identify the string, which may be created and retrieved from the
-   * <code>PPB_Var</code> interface. These objects are reference counted, so
-   * AddRef() and Release() must be used properly to avoid memory leaks.
-   */
-  PP_VARTYPE_STRING = 5,
-  /**
-   * Represents a JavaScript object. This vartype is not currently usable
-   * from modules, although it is used internally for some tasks. These objects
-   * are reference counted, so AddRef() and Release() must be used properly to
-   * avoid memory leaks.
-   */
-  PP_VARTYPE_OBJECT = 6,
-  /**
-   * Represents an array of Vars. The <code>as_id</code> field is used to
-   * identify the array, which may be created and manipulated from the
-   * <code>PPB_VarArray</code> interface. These objects are reference counted,
-   * so AddRef() and Release() must be used properly to avoid memory leaks.
-   */
-  PP_VARTYPE_ARRAY = 7,
-  /**
-   * Represents a mapping from strings to Vars. The <code>as_id</code> field is
-   * used to identify the dictionary, which may be created and manipulated from
-   * the <code>PPB_VarDictionary</code> interface. These objects are reference
-   * counted, so AddRef() and Release() must be used properly to avoid memory
-   * leaks.
-   */
-  PP_VARTYPE_DICTIONARY = 8,
-  /**
-   * ArrayBuffer represents a JavaScript ArrayBuffer. This is the type which
-   * represents Typed Arrays in JavaScript. Unlike JavaScript 'Array', it is
-   * only meant to contain basic numeric types, and is always stored
-   * contiguously. See PPB_VarArrayBuffer_Dev for functions special to
-   * ArrayBuffer vars. These objects are reference counted, so AddRef() and
-   * Release() must be used properly to avoid memory leaks.
-   */
-  PP_VARTYPE_ARRAY_BUFFER = 9,
-  /**
-   * This type allows the <code>PP_Var</code> to wrap a <code>PP_Resource
-   * </code>. This can be useful for sending or receiving some types of
-   * <code>PP_Resource</code> using <code>PPB_Messaging</code> or
-   * <code>PPP_Messaging</code>.
-   *
-   * These objects are reference counted, so AddRef() and Release() must be used
-   * properly to avoid memory leaks. Under normal circumstances, the
-   * <code>PP_Var</code> will implicitly hold a reference count on the
-   * <code>PP_Resource</code> on your behalf. For example, if you call
-   * VarFromResource(), it implicitly calls PPB_Core::AddRefResource() on the
-   * <code>PP_Resource</code>. Likewise, PPB_Var::Release() on a Resource
-   * <code>PP_Var</code> will invoke PPB_Core::ReleaseResource() when the Var
-   * reference count goes to zero.
-   */
-  PP_VARTYPE_RESOURCE = 10
-} PP_VarType;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_VarType, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * The PP_VarValue union stores the data for any one of the types listed
- * in the PP_VarType enum.
- */
-union PP_VarValue {
-  /**
-   * If <code>type</code> is <code>PP_VARTYPE_BOOL</code>,
-   * <code>as_bool</code> represents the value of this <code>PP_Var</code> as
-   * <code>PP_Bool</code>.
-   */
-  PP_Bool as_bool;
-  /**
-   * If <code>type</code> is <code>PP_VARTYPE_INT32</code>,
-   * <code>as_int</code> represents the value of this <code>PP_Var</code> as
-   * <code>int32_t</code>.
-   */
-  int32_t as_int;
-  /**
-   * If <code>type</code> is <code>PP_VARTYPE_DOUBLE</code>,
-   * <code>as_double</code> represents the value of this <code>PP_Var</code>
-   * as <code>double</code>.
-   */
-  double as_double;
-  /**
-   * If <code>type</code> is <code>PP_VARTYPE_STRING</code>,
-   * <code>PP_VARTYPE_OBJECT</code>, <code>PP_VARTYPE_ARRAY</code>,
-   * <code>PP_VARTYPE_DICTIONARY</code>, <code>PP_VARTYPE_ARRAY_BUFFER</code>,
-   * or <code>PP_VARTYPE_RESOURCE</code>, <code>as_id</code> represents the
-   * value of this <code>PP_Var</code> as an opaque handle assigned by the
-   * browser. This handle is guaranteed never to be 0, so a module can
-   * initialize this ID to 0 to indicate a "NULL handle."
-   */
-  int64_t as_id;
-};
-
-/**
- * The <code>PP_VAR</code> struct is a variant data type and can contain any
- * value of one of the types named in the <code>PP_VarType</code> enum. This
- * structure is for passing data between native code which can be strongly
- * typed and the browser (JavaScript) which isn't strongly typed.
- *
- * JavaScript has a "number" type for holding a number, and does not
- * differentiate between floating point and integer numbers. The
- * JavaScript operations will try to optimize operations by using
- * integers when possible, but could end up with doubles. Therefore,
- * you can't assume a numeric <code>PP_Var</code> will be the type you expect.
- * Your code should be capable of handling either int32_t or double for numeric
- * PP_Vars sent from JavaScript.
- */
-struct PP_Var {
-  PP_VarType type;
-  /**
-   * The <code>padding</code> ensures <code>value</code> is aligned on an
-   * 8-byte boundary relative to the start of the struct. Some compilers
-   * align doubles on 8-byte boundaries for 32-bit x86, and some align on
-   * 4-byte boundaries.
-   */
-  int32_t padding;
-  /**
-   * This <code>value</code> represents the contents of the PP_Var. Only one of
-   * the fields of <code>value</code> is valid at a time based upon
-   * <code>type</code>.
-   */
-  union PP_VarValue value;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_Var, 16);
-/**
- * @}
- */
-
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PP_MakeUndefined() is used to wrap an undefined value into a
- * <code>PP_Var</code> struct for passing to the browser.
- *
- * @return A <code>PP_Var</code> structure.
- */
-PP_INLINE struct PP_Var PP_MakeUndefined(void) {
-  struct PP_Var result = { PP_VARTYPE_UNDEFINED, 0, {PP_FALSE} };
-  return result;
-}
-
-/**
- * PP_MakeNull() is used to wrap a null value into a
- * <code>PP_Var</code> struct for passing to the browser.
- *
- * @return A <code>PP_Var</code> structure,
- */
-PP_INLINE struct PP_Var PP_MakeNull(void) {
-  struct PP_Var result = { PP_VARTYPE_NULL, 0, {PP_FALSE} };
-  return result;
-}
-
-/**
- * PP_MakeBool() is used to wrap a boolean value into a
- * <code>PP_Var</code> struct for passing to the browser.
- *
- * @param[in] value A <code>PP_Bool</code> enumeration to
- * wrap.
- *
- * @return A <code>PP_Var</code> structure.
- */
-PP_INLINE struct PP_Var PP_MakeBool(PP_Bool value) {
-  struct PP_Var result = { PP_VARTYPE_BOOL, 0, {PP_FALSE} };
-  result.value.as_bool = value;
-  return result;
-}
-
-/**
- * PP_MakeInt32() is used to wrap a 32 bit integer value
- * into a <code>PP_Var</code> struct for passing to the browser.
- *
- * @param[in] value An int32 to wrap.
- *
- * @return A <code>PP_Var</code> structure.
- */
-PP_INLINE struct PP_Var PP_MakeInt32(int32_t value) {
-  struct PP_Var result = { PP_VARTYPE_INT32, 0, {PP_FALSE} };
-  result.value.as_int = value;
-  return result;
-}
-
-/**
- * PP_MakeDouble() is used to wrap a double value into a
- * <code>PP_Var</code> struct for passing to the browser.
- *
- * @param[in] value A double to wrap.
- *
- * @return A <code>PP_Var</code> structure.
- */
-PP_INLINE struct PP_Var PP_MakeDouble(double value) {
-  struct PP_Var result = { PP_VARTYPE_DOUBLE, 0, {PP_FALSE} };
-  result.value.as_double = value;
-  return result;
-}
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PP_VAR_H_ */
-
diff --git a/c/ppb.h b/c/ppb.h
deleted file mode 100644
index c6b0ac6..0000000
--- a/c/ppb.h
+++ /dev/null
@@ -1,48 +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.
- */
-
-/* From ppb.idl modified Fri Jan 24 16:19:56 2014. */
-
-#ifndef PPAPI_C_PPB_H_
-#define PPAPI_C_PPB_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * This file defines a function pointer type for the
- * <code>PPB_GetInterface</code> function.
- */
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * This function pointer type defines the signature for the
- * <code>PPB_GetInterface</code> function. A generic
- * <code>PPB_GetInterface</code> pointer is passed to
- * <code>PPP_InitializedModule</code> when your module is loaded. You can use
- * this pointer to request a pointer to a specific browser interface. Browser
- * interface names are ASCII strings and are generally defined in the header
- * file for the interface, such as <code>PPB_AUDIO_INTERFACE</code> found in
- * <code>ppb.audio.h</code> or
- * <code>PPB_GRAPHICS_2D_INTERFACE</code> in <code>ppb_graphics_2d.h</code>.
- * Click
- * <a href="globals_defs.html"
- * title="macros">here</a> for a complete list of interface
- * names.
- *
- * This value will be NULL if the interface is not supported on the browser.
- */
-typedef const void* (*PPB_GetInterface)(const char* interface_name);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_H_ */
-
diff --git a/c/ppb_audio.h b/c/ppb_audio.h
deleted file mode 100644
index 2ca4ad6..0000000
--- a/c/ppb_audio.h
+++ /dev/null
@@ -1,190 +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.
- */
-
-/* From ppb_audio.idl modified Fri Jan 24 16:18:44 2014. */
-
-#ifndef PPAPI_C_PPB_AUDIO_H_
-#define PPAPI_C_PPB_AUDIO_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-
-#define PPB_AUDIO_INTERFACE_1_0 "PPB_Audio;1.0"
-#define PPB_AUDIO_INTERFACE_1_1 "PPB_Audio;1.1"
-#define PPB_AUDIO_INTERFACE PPB_AUDIO_INTERFACE_1_1
-
-/**
- * @file
- * This file defines the <code>PPB_Audio</code> interface, which provides
- * realtime stereo audio streaming capabilities.
- */
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * <code>PPB_Audio_Callback</code> defines the type of an audio callback
- * function used to fill the audio buffer with data. Please see the
- * Create() function in the <code>PPB_Audio</code> interface for
- * more details on this callback.
- *
- * @param[in] sample_buffer A buffer to fill with audio data.
- * @param[in] buffer_size_in_bytes The size of the buffer in bytes.
- * @param[in] latency How long before the audio data is to be presented.
- * @param[inout] user_data An opaque pointer that was passed into
- * <code>PPB_Audio.Create()</code>.
- */
-typedef void (*PPB_Audio_Callback)(void* sample_buffer,
-                                   uint32_t buffer_size_in_bytes,
-                                   PP_TimeDelta latency,
-                                   void* user_data);
-
-typedef void (*PPB_Audio_Callback_1_0)(void* sample_buffer,
-                                       uint32_t buffer_size_in_bytes,
-                                       void* user_data);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_Audio</code> interface contains pointers to several functions
- * for handling audio resources. Refer to the
- * <a href="/native-client/devguide/coding/audio.html">Audio</a>
- * chapter in the Developer's Guide for information on using this interface.
- * Please see descriptions for each <code>PPB_Audio</code> and
- * <code>PPB_AudioConfig</code> function for more details. A C example using
- * <code>PPB_Audio</code> and <code>PPB_AudioConfig</code> follows.
- *
- * <strong>Example: </strong>
- *
- * @code
- * void audio_callback(void* sample_buffer,
- *                     uint32_t buffer_size_in_bytes,
- *                     void* user_data) {
- *   ... quickly fill in the buffer with samples and return to caller ...
- *  }
- *
- * ...Assume the application has cached the audio configuration interface in
- * audio_config_interface and the audio interface in
- * audio_interface...
- *
- * uint32_t count = audio_config_interface->RecommendSampleFrameCount(
- *     PP_AUDIOSAMPLERATE_44100, 4096);
- * PP_Resource pp_audio_config = audio_config_interface->CreateStereo16Bit(
- *     pp_instance, PP_AUDIOSAMPLERATE_44100, count);
- * PP_Resource pp_audio = audio_interface->Create(pp_instance, pp_audio_config,
- *     audio_callback, NULL);
- * audio_interface->StartPlayback(pp_audio);
- *
- * ...audio_callback() will now be periodically invoked on a separate thread...
- * @endcode
- */
-struct PPB_Audio_1_1 {
-  /**
-   * Create() creates an audio resource. No sound will be heard until
-   * StartPlayback() is called. The callback is called with the buffer address
-   * and given user data whenever the buffer needs to be filled. From within the
-   * callback, you should not call <code>PPB_Audio</code> functions. The
-   * callback will be called on a different thread than the one which created
-   * the interface. For performance-critical applications (i.e. low-latency
-   * audio), the callback should avoid blocking or calling functions that can
-   * obtain locks, such as malloc. The layout and the size of the buffer passed
-   * to the audio callback will be determined by the device configuration and is
-   * specified in the <code>AudioConfig</code> documentation.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * config resource.
-   * @param[in] audio_callback A <code>PPB_Audio_Callback</code> callback
-   * function that the browser calls when it needs more samples to play.
-   * @param[in] user_data A pointer to user data used in the callback function.
-   *
-   * @return A <code>PP_Resource</code> containing the audio resource if
-   * successful or 0 if the configuration cannot be honored or the callback is
-   * null.
-   */
-  PP_Resource (*Create)(PP_Instance instance,
-                        PP_Resource config,
-                        PPB_Audio_Callback audio_callback,
-                        void* user_data);
-  /**
-   * IsAudio() determines if the provided resource is an audio resource.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a generic
-   * resource.
-   *
-   * @return A <code>PP_Bool</code> containing containing <code>PP_TRUE</code>
-   * if the given resource is an Audio resource, otherwise
-   * <code>PP_FALSE</code>.
-   */
-  PP_Bool (*IsAudio)(PP_Resource resource);
-  /**
-   * GetCurrrentConfig() returns an audio config resource for the given audio
-   * resource.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * resource.
-   *
-   * @return A <code>PP_Resource</code> containing the audio config resource if
-   * successful.
-   */
-  PP_Resource (*GetCurrentConfig)(PP_Resource audio);
-  /**
-   * StartPlayback() starts the playback of the audio resource and begins
-   * periodically calling the callback.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if
-   * successful, otherwise <code>PP_FALSE</code>. Also returns
-   * <code>PP_TRUE</code> (and be a no-op) if called while playback is already
-   * in progress.
-   */
-  PP_Bool (*StartPlayback)(PP_Resource audio);
-  /**
-   * StopPlayback() stops the playback of the audio resource.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if
-   * successful, otherwise <code>PP_FALSE</code>. Also returns
-   * <code>PP_TRUE</code> (and is a no-op) if called while playback is already
-   * stopped. If a callback is in progress, StopPlayback() will block until the
-   * callback completes.
-   */
-  PP_Bool (*StopPlayback)(PP_Resource audio);
-};
-
-typedef struct PPB_Audio_1_1 PPB_Audio;
-
-struct PPB_Audio_1_0 {
-  PP_Resource (*Create)(PP_Instance instance,
-                        PP_Resource config,
-                        PPB_Audio_Callback_1_0 audio_callback,
-                        void* user_data);
-  PP_Bool (*IsAudio)(PP_Resource resource);
-  PP_Resource (*GetCurrentConfig)(PP_Resource audio);
-  PP_Bool (*StartPlayback)(PP_Resource audio);
-  PP_Bool (*StopPlayback)(PP_Resource audio);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_AUDIO_H_ */
-
diff --git a/c/ppb_audio_buffer.h b/c/ppb_audio_buffer.h
deleted file mode 100644
index 9ed5609..0000000
--- a/c/ppb_audio_buffer.h
+++ /dev/null
@@ -1,156 +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.
- */
-
-/* From ppb_audio_buffer.idl modified Tue Mar 25 18:29:27 2014. */
-
-#ifndef PPAPI_C_PPB_AUDIO_BUFFER_H_
-#define PPAPI_C_PPB_AUDIO_BUFFER_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-
-#define PPB_AUDIOBUFFER_INTERFACE_0_1 "PPB_AudioBuffer;0.1"
-#define PPB_AUDIOBUFFER_INTERFACE PPB_AUDIOBUFFER_INTERFACE_0_1
-
-/**
- * @file
- * Defines the <code>PPB_AudioBuffer</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * PP_AudioBuffer_SampleRate is an enumeration of the different audio sample
- * rates.
- */
-typedef enum {
-  PP_AUDIOBUFFER_SAMPLERATE_UNKNOWN = 0,
-  PP_AUDIOBUFFER_SAMPLERATE_8000 = 8000,
-  PP_AUDIOBUFFER_SAMPLERATE_16000 = 16000,
-  PP_AUDIOBUFFER_SAMPLERATE_22050 = 22050,
-  PP_AUDIOBUFFER_SAMPLERATE_32000 = 32000,
-  PP_AUDIOBUFFER_SAMPLERATE_44100 = 44100,
-  PP_AUDIOBUFFER_SAMPLERATE_48000 = 48000,
-  PP_AUDIOBUFFER_SAMPLERATE_96000 = 96000,
-  PP_AUDIOBUFFER_SAMPLERATE_192000 = 192000
-} PP_AudioBuffer_SampleRate;
-
-/**
- * PP_AudioBuffer_SampleSize is an enumeration of the different audio sample
- * sizes.
- */
-typedef enum {
-  PP_AUDIOBUFFER_SAMPLESIZE_UNKNOWN = 0,
-  PP_AUDIOBUFFER_SAMPLESIZE_16_BITS = 2
-} PP_AudioBuffer_SampleSize;
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_AudioBuffer_0_1 {
-  /**
-   * Determines if a resource is an AudioBuffer resource.
-   *
-   * @param[in] resource The <code>PP_Resource</code> to test.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * resource is an AudioBuffer resource or <code>PP_FALSE</code> otherwise.
-   */
-  PP_Bool (*IsAudioBuffer)(PP_Resource resource);
-  /**
-   * Gets the timestamp of the audio buffer.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   *
-   * @return A <code>PP_TimeDelta</code> containing the timestamp of the audio
-   * buffer. Given in seconds since the start of the containing audio stream.
-   */
-  PP_TimeDelta (*GetTimestamp)(PP_Resource buffer);
-  /**
-   * Sets the timestamp of the audio buffer.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   * @param[in] timestamp A <code>PP_TimeDelta</code> containing the timestamp
-   * of the audio buffer. Given in seconds since the start of the containing
-   * audio stream.
-   */
-  void (*SetTimestamp)(PP_Resource buffer, PP_TimeDelta timestamp);
-  /**
-   * Gets the sample rate of the audio buffer.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   *
-   * @return The sample rate of the audio buffer.
-   */
-  PP_AudioBuffer_SampleRate (*GetSampleRate)(PP_Resource buffer);
-  /**
-   * Gets the sample size of the audio buffer.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   *
-   * @return The sample size of the audio buffer.
-   */
-  PP_AudioBuffer_SampleSize (*GetSampleSize)(PP_Resource buffer);
-  /**
-   * Gets the number of channels in the audio buffer.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   *
-   * @return The number of channels in the audio buffer.
-   */
-  uint32_t (*GetNumberOfChannels)(PP_Resource buffer);
-  /**
-   * Gets the number of samples in the audio buffer.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   *
-   * @return The number of samples in the audio buffer.
-   * For example, at a sampling rate of 44,100 Hz in stereo audio, a buffer
-   * containing 4410 * 2 samples would have a duration of 100 milliseconds.
-   */
-  uint32_t (*GetNumberOfSamples)(PP_Resource buffer);
-  /**
-   * Gets the data buffer containing the audio samples.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   *
-   * @return A pointer to the beginning of the data buffer.
-   */
-  void* (*GetDataBuffer)(PP_Resource buffer);
-  /**
-   * Gets the size of the data buffer in bytes.
-   *
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to an audio
-   * buffer resource.
-   *
-   * @return The size of the data buffer in bytes.
-   */
-  uint32_t (*GetDataBufferSize)(PP_Resource buffer);
-};
-
-typedef struct PPB_AudioBuffer_0_1 PPB_AudioBuffer;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_AUDIO_BUFFER_H_ */
-
diff --git a/c/ppb_audio_config.h b/c/ppb_audio_config.h
deleted file mode 100644
index 96fd571..0000000
--- a/c/ppb_audio_config.h
+++ /dev/null
@@ -1,212 +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.
- */
-
-/* From ppb_audio_config.idl modified Mon Oct 23 15:24:19 2017. */
-
-#ifndef PPAPI_C_PPB_AUDIO_CONFIG_H_
-#define PPAPI_C_PPB_AUDIO_CONFIG_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_AUDIO_CONFIG_INTERFACE_1_0 "PPB_AudioConfig;1.0"
-#define PPB_AUDIO_CONFIG_INTERFACE_1_1 "PPB_AudioConfig;1.1"
-#define PPB_AUDIO_CONFIG_INTERFACE PPB_AUDIO_CONFIG_INTERFACE_1_1
-
-/**
- * @file
- * This file defines the PPB_AudioConfig interface for establishing an
- * audio configuration resource within the browser.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * This enumeration contains audio frame count constants.
- * <code>PP_AUDIOMINSAMPLEFRAMECOUNT</code> is the minimum possible frame
- * count. <code>PP_AUDIOMAXSAMPLEFRAMECOUNT</code> is the maximum possible
- * frame count.
- */
-enum {
-  PP_AUDIOMINSAMPLEFRAMECOUNT = 64,
-  PP_AUDIOMAXSAMPLEFRAMECOUNT = 32768
-};
-
-/**
- * PP_AudioSampleRate is an enumeration of the different audio sampling rates.
- * <code>PP_AUDIOSAMPLERATE_44100</code> is the sample rate used on CDs and
- * <code>PP_AUDIOSAMPLERATE_48000</code> is the sample rate used on DVDs and
- * Digital Audio Tapes.
- */
-typedef enum {
-  PP_AUDIOSAMPLERATE_NONE = 0,
-  PP_AUDIOSAMPLERATE_44100 = 44100,
-  PP_AUDIOSAMPLERATE_48000 = 48000,
-  PP_AUDIOSAMPLERATE_LAST = PP_AUDIOSAMPLERATE_48000
-} PP_AudioSampleRate;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_AudioSampleRate, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_AudioConfig</code> interface contains pointers to several
- * functions for establishing your audio configuration within the browser.
- * This interface only supports 16-bit stereo output.
- *
- * Refer to the
- * <a href="/native-client/devguide/coding/audio.html">Audio
- * </a> chapter in the Developer's Guide for information on using this
- * interface.
- */
-struct PPB_AudioConfig_1_1 {
-  /**
-   * CreateStereo16bit() creates a 16 bit audio configuration resource. The
-   * <code>sample_rate</code> should be the result of calling
-   * <code>RecommendSampleRate</code> and <code>sample_frame_count</code> should
-   * be the result of calling <code>RecommendSampleFrameCount</code>. If the
-   * sample frame count or bit rate isn't supported, this function will fail and
-   * return a null resource.
-   *
-   * A single sample frame on a stereo device means one value for the left
-   * channel and one value for the right channel.
-   *
-   * Buffer layout for a stereo int16 configuration:
-   * <code>int16_t *buffer16;</code>
-   * <code>buffer16[0]</code> is the first left channel sample.
-   * <code>buffer16[1]</code> is the first right channel sample.
-   * <code>buffer16[2]</code> is the second left channel sample.
-   * <code>buffer16[3]</code> is the second right channel sample.
-   * ...
-   * <code>buffer16[2 * (sample_frame_count - 1)]</code> is the last left
-   * channel sample.
-   * <code>buffer16[2 * (sample_frame_count - 1) + 1]</code> is the last
-   * right channel sample.
-   * Data will always be in the native endian format of the platform.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] sample_rate A <code>PP_AudioSampleRate</code> which is either
-   * <code>PP_AUDIOSAMPLERATE_44100</code> or
-   * <code>PP_AUDIOSAMPLERATE_48000</code>.
-   * @param[in] sample_frame_count A <code>uint32_t</code> frame count returned
-   * from the <code>RecommendSampleFrameCount</code> function.
-   *
-   * @return A <code>PP_Resource</code> containing the
-   * <code>PPB_Audio_Config</code> if successful or a null resource if the
-   * sample frame count or bit rate are not supported.
-   */
-  PP_Resource (*CreateStereo16Bit)(PP_Instance instance,
-                                   PP_AudioSampleRate sample_rate,
-                                   uint32_t sample_frame_count);
-  /**
-   * RecommendSampleFrameCount() returns the supported sample frame count
-   * closest to the requested count. The sample frame count determines the
-   * overall latency of audio. Since one "frame" is always buffered in advance,
-   * smaller frame counts will yield lower latency, but higher CPU utilization.
-   *
-   * Supported sample frame counts will vary by hardware and system (consider
-   * that the local system might be anywhere from a cell phone or a high-end
-   * audio workstation). Sample counts less than
-   * <code>PP_AUDIOMINSAMPLEFRAMECOUNT</code> and greater than
-   * <code>PP_AUDIOMAXSAMPLEFRAMECOUNT</code> are never supported on any
-   * system, but values in between aren't necessarily valid. This function
-   * will return a supported count closest to the requested frame count.
-   *
-   * RecommendSampleFrameCount() result is intended for audio output devices.
-   *
-   * @param[in] instance
-   * @param[in] sample_rate A <code>PP_AudioSampleRate</code> which is either
-   * <code>PP_AUDIOSAMPLERATE_44100</code> or
-   * <code>PP_AUDIOSAMPLERATE_48000.</code>
-   * @param[in] requested_sample_frame_count A <code>uint_32t</code> requested
-   * frame count.
-   *
-   * @return A <code>uint32_t</code> containing the recommended sample frame
-   * count if successful.
-   */
-  uint32_t (*RecommendSampleFrameCount)(
-      PP_Instance instance,
-      PP_AudioSampleRate sample_rate,
-      uint32_t requested_sample_frame_count);
-  /**
-   * IsAudioConfig() determines if the given resource is a
-   * <code>PPB_Audio_Config</code>.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an audio
-   * config resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if the given
-   * resource is an <code>AudioConfig</code> resource, otherwise
-   * <code>PP_FALSE</code>.
-   */
-  PP_Bool (*IsAudioConfig)(PP_Resource resource);
-  /**
-   * GetSampleRate() returns the sample rate for the given
-   * <code>PPB_Audio_Config</code>.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_Audio_Config</code>.
-   *
-   * @return A <code>PP_AudioSampleRate</code> containing sample rate or
-   * <code>PP_AUDIOSAMPLERATE_NONE</code> if the resource is invalid.
-   */
-  PP_AudioSampleRate (*GetSampleRate)(PP_Resource config);
-  /**
-   * GetSampleFrameCount() returns the sample frame count for the given
-   * <code>PPB_Audio_Config</code>.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to an audio
-   * config resource.
-   *
-   * @return A <code>uint32_t</code> containing sample frame count or
-   * 0 if the resource is invalid. Refer to
-   * RecommendSampleFrameCount() for more on sample frame counts.
-   */
-  uint32_t (*GetSampleFrameCount)(PP_Resource config);
-  /**
-   * RecommendSampleRate() returns the native sample rate that the browser
-   * is using in the backend.  Applications that use the recommended sample
-   * rate will have potentially better latency and fidelity.  The return value
-   * is intended for audio output devices.  If the output sample rate cannot be
-   * determined, this function can return PP_AUDIOSAMPLERATE_NONE.
-   *
-   * @param[in] instance
-   *
-   * @return A <code>uint32_t</code> containing the recommended sample frame
-   * count if successful.
-   */
-  PP_AudioSampleRate (*RecommendSampleRate)(PP_Instance instance);
-};
-
-typedef struct PPB_AudioConfig_1_1 PPB_AudioConfig;
-
-struct PPB_AudioConfig_1_0 {
-  PP_Resource (*CreateStereo16Bit)(PP_Instance instance,
-                                   PP_AudioSampleRate sample_rate,
-                                   uint32_t sample_frame_count);
-  uint32_t (*RecommendSampleFrameCount)(
-      PP_AudioSampleRate sample_rate,
-      uint32_t requested_sample_frame_count);
-  PP_Bool (*IsAudioConfig)(PP_Resource resource);
-  PP_AudioSampleRate (*GetSampleRate)(PP_Resource config);
-  uint32_t (*GetSampleFrameCount)(PP_Resource config);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_AUDIO_CONFIG_H_ */
-
diff --git a/c/ppb_console.h b/c/ppb_console.h
deleted file mode 100644
index 8e2ff7e..0000000
--- a/c/ppb_console.h
+++ /dev/null
@@ -1,75 +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.
- */
-
-/* From ppb_console.idl modified Fri Nov 16 15:28:43 2012. */
-
-#ifndef PPAPI_C_PPB_CONSOLE_H_
-#define PPAPI_C_PPB_CONSOLE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_CONSOLE_INTERFACE_1_0 "PPB_Console;1.0"
-#define PPB_CONSOLE_INTERFACE PPB_CONSOLE_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_Console</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-typedef enum {
-  PP_LOGLEVEL_TIP = 0,
-  PP_LOGLEVEL_LOG = 1,
-  PP_LOGLEVEL_WARNING = 2,
-  PP_LOGLEVEL_ERROR = 3
-} PP_LogLevel;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_LogLevel, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_Console_1_0 {
-  /**
-   * Logs the given message to the JavaScript console associated with the
-   * given plugin instance with the given logging level. The name of the plugin
-   * issuing the log message will be automatically prepended to the message.
-   * The value may be any type of Var.
-   */
-  void (*Log)(PP_Instance instance, PP_LogLevel level, struct PP_Var value);
-  /**
-   * Logs a message to the console with the given source information rather
-   * than using the internal PPAPI plugin name. The name must be a string var.
-   *
-   * The regular log function will automatically prepend the name of your
-   * plugin to the message as the "source" of the message. Some plugins may
-   * wish to override this. For example, if your plugin is a Python
-   * interpreter, you would want log messages to contain the source .py file
-   * doing the log statement rather than have "python" show up in the console.
-   */
-  void (*LogWithSource)(PP_Instance instance,
-                        PP_LogLevel level,
-                        struct PP_Var source,
-                        struct PP_Var value);
-};
-
-typedef struct PPB_Console_1_0 PPB_Console;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_CONSOLE_H_ */
-
diff --git a/c/ppb_core.h b/c/ppb_core.h
deleted file mode 100644
index 1d46f69..0000000
--- a/c/ppb_core.h
+++ /dev/null
@@ -1,119 +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.
- */
-
-/* From ppb_core.idl modified Mon Mar 19 12:02:10 2012. */
-
-#ifndef PPAPI_C_PPB_CORE_H_
-#define PPAPI_C_PPB_CORE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-
-#define PPB_CORE_INTERFACE_1_0 "PPB_Core;1.0"
-#define PPB_CORE_INTERFACE PPB_CORE_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_Core</code> interface defined by the browser
- * and containing pointers to functions related to memory management, time, and
- * threads.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_Core</code> interface contains pointers to functions related
- * to memory management, time, and threads on the browser.
- *
- */
-struct PPB_Core_1_0 {
-  /**
-   *
-   * AddRefResource() adds a reference to a resource.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to a
-   * resource.
-   */
-  void (*AddRefResource)(PP_Resource resource);
-  /**
-   * ReleaseResource() removes a reference from a resource.
-   *
-   * @param[in] config A <code>PP_Resource</code> corresponding to a
-   * resource.
-   */
-  void (*ReleaseResource)(PP_Resource resource);
-  /**
-   * GetTime() returns the "wall clock time" according to the
-   * browser.
-   *
-   * @return A <code>PP_Time</code> containing the "wall clock time" according
-   * to the browser.
-   */
-  PP_Time (*GetTime)(void);
-  /**
-   * GetTimeTicks() returns the "tick time" according to the browser.
-   * This clock is used by the browser when passing some event times to the
-   * module (e.g. using the <code>PP_InputEvent::time_stamp_seconds</code>
-   * field). It is not correlated to any actual wall clock time
-   * (like GetTime()). Because of this, it will not run change if the user
-   * changes their computer clock.
-   *
-   * @return A <code>PP_TimeTicks</code> containing the "tick time" according
-   * to the browser.
-   */
-  PP_TimeTicks (*GetTimeTicks)(void);
-  /**
-   * CallOnMainThread() schedules work to be executed on the main module thread
-   * after the specified delay. The delay may be 0 to specify a call back as
-   * soon as possible.
-   *
-   * The <code>result</code> parameter will just be passed as the second
-   * argument to the callback. Many applications won't need this, but it allows
-   * a module to emulate calls of some callbacks which do use this value.
-   *
-   * <strong>Note:</strong> CallOnMainThread, even when used from the main
-   * thread with a delay of 0 milliseconds, will never directly invoke the
-   * callback.  Even in this case, the callback will be scheduled
-   * asynchronously.
-   *
-   * <strong>Note:</strong> If the browser is shutting down or if the module
-   * has no instances, then the callback function may not be called.
-   *
-   * @param[in] delay_in_milliseconds An int32_t delay in milliseconds.
-   * @param[in] callback A <code>PP_CompletionCallback</code> callback function
-   * that the browser will call after the specified delay.
-   * @param[in] result An int32_t that the browser will pass to the given
-   * <code>PP_CompletionCallback</code>.
-   */
-  void (*CallOnMainThread)(int32_t delay_in_milliseconds,
-                           struct PP_CompletionCallback callback,
-                           int32_t result);
-  /**
-   * IsMainThread() returns true if the current thread is the main pepper
-   * thread.
-   *
-   * This function is useful for implementing sanity checks, and deciding if
-   * dispatching using CallOnMainThread() is required.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if the
-   * current thread is the main pepper thread, otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool (*IsMainThread)(void);
-};
-
-typedef struct PPB_Core_1_0 PPB_Core;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_CORE_H_ */
-
diff --git a/c/ppb_file_io.h b/c/ppb_file_io.h
deleted file mode 100644
index 170cc7c..0000000
--- a/c/ppb_file_io.h
+++ /dev/null
@@ -1,337 +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.
- */
-
-/* From ppb_file_io.idl modified Tue Oct 22 15:09:47 2013. */
-
-#ifndef PPAPI_C_PPB_FILE_IO_H_
-#define PPAPI_C_PPB_FILE_IO_H_
-
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_file_info.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-
-#define PPB_FILEIO_INTERFACE_1_0 "PPB_FileIO;1.0"
-#define PPB_FILEIO_INTERFACE_1_1 "PPB_FileIO;1.1"
-#define PPB_FILEIO_INTERFACE PPB_FILEIO_INTERFACE_1_1
-
-/**
- * @file
- * This file defines the API to create a file i/o object.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * The PP_FileOpenFlags enum contains file open constants.
- */
-typedef enum {
-  /** Requests read access to a file. */
-  PP_FILEOPENFLAG_READ = 1 << 0,
-  /**
-   * Requests write access to a file.  May be combined with
-   * <code>PP_FILEOPENFLAG_READ</code> to request read and write access.
-   */
-  PP_FILEOPENFLAG_WRITE = 1 << 1,
-  /**
-   * Requests that the file be created if it does not exist.  If the file
-   * already exists, then this flag is ignored unless
-   * <code>PP_FILEOPENFLAG_EXCLUSIVE</code> was also specified, in which case
-   * FileIO::Open() will fail.
-   */
-  PP_FILEOPENFLAG_CREATE = 1 << 2,
-  /**
-   * Requests that the file be truncated to length 0 if it exists and is a
-   * regular file. <code>PP_FILEOPENFLAG_WRITE</code> must also be specified.
-   */
-  PP_FILEOPENFLAG_TRUNCATE = 1 << 3,
-  /**
-   * Requests that the file is created when this flag is combined with
-   * <code>PP_FILEOPENFLAG_CREATE</code>.  If this flag is specified, and the
-   * file already exists, then the FileIO::Open() call will fail.
-   */
-  PP_FILEOPENFLAG_EXCLUSIVE = 1 << 4,
-  /**
-   * Requests write access to a file, but writes will always occur at the end of
-   * the file. Mututally exclusive with <code>PP_FILEOPENFLAG_WRITE</code>.
-   *
-   * This is only supported in version 1.2 (Chrome 29) and later.
-   */
-  PP_FILEOPENFLAG_APPEND = 1 << 5
-} PP_FileOpenFlags;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FileOpenFlags, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_FileIO</code> struct is used to operate on a regular file
- * (PP_FileType_Regular).
- */
-struct PPB_FileIO_1_1 {
-  /**
-   * Create() creates a new FileIO object.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * with the file.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a FileIO if
-   * successful or 0 if the module is invalid.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * IsFileIO() determines if the provided resource is a FileIO.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a FileIO.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a
-   * <code>PPB_FileIO</code>, <code>PP_FALSE</code> if the resource is
-   * invalid or some type other than <code>PPB_FileIO</code>.
-   */
-  PP_Bool (*IsFileIO)(PP_Resource resource);
-  /**
-   * Open() opens the specified regular file for I/O according to the given
-   * open flags, which is a bit-mask of the <code>PP_FileOpenFlags</code>
-   * values. Upon success, the corresponding file is classified as "in use"
-   * by this FileIO object until such time as the FileIO object is closed
-   * or destroyed.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a
-   * FileIO.
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[in] open_flags A bit-mask of the <code>PP_FileOpenFlags</code>
-   * values.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Open().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*Open)(PP_Resource file_io,
-                  PP_Resource file_ref,
-                  int32_t open_flags,
-                  struct PP_CompletionCallback callback);
-  /**
-   * Query() queries info about the file opened by this FileIO object. The
-   * FileIO object must be opened, and there must be no other operations
-   * pending.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a
-   * FileIO.
-   * @param[out] info The <code>PP_FileInfo</code> structure representing all
-   * information about the file.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Query(). <code>info</code> must remain valid until after the
-   * callback runs. If you pass a blocking callback, <code>info</code> must
-   * remain valid until after Query() returns.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * PP_ERROR_FAILED will be returned if the file isn't opened, and
-   * PP_ERROR_INPROGRESS will be returned if there is another operation pending.
-   */
-  int32_t (*Query)(PP_Resource file_io,
-                   struct PP_FileInfo* info,
-                   struct PP_CompletionCallback callback);
-  /**
-   * Touch() Updates time stamps for the file opened by this FileIO object.
-   * This function will fail if the FileIO object has not been opened. The
-   * FileIO object must be opened, and there must be no other operations
-   * pending.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-   * FileIO.
-   * @param[in] last_access_time The last time the FileIO was accessed.
-   * @param[in] last_modified_time The last time the FileIO was modified.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Touch().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * PP_ERROR_FAILED will be returned if the file isn't opened, and
-   * PP_ERROR_INPROGRESS will be returned if there is another operation pending.
-   */
-  int32_t (*Touch)(PP_Resource file_io,
-                   PP_Time last_access_time,
-                   PP_Time last_modified_time,
-                   struct PP_CompletionCallback callback);
-  /**
-   * Read() reads from an offset in the file.  The size of the buffer must be
-   * large enough to hold the specified number of bytes to read.  This function
-   * might perform a partial read, meaning all the requested bytes
-   * might not be returned, even if the end of the file has not been reached.
-   * The FileIO object must have been opened with read access.
-   *
-   * ReadToArray() is preferred to Read() when doing asynchronous operations.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-   * FileIO.
-   * @param[in] offset The offset into the file.
-   * @param[in] buffer The buffer to hold the specified number of bytes read.
-   * @param[in] bytes_to_read The number of bytes to read from
-   * <code>offset</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Read(). <code>buffer</code> must remain valid until after
-   * the callback runs. If you pass a blocking callback, <code>buffer</code>
-   * must remain valid until after Read() returns.
-   *
-   * @return The number of bytes read or an error code from
-   * <code>pp_errors.h</code>. If the return value is 0, then end-of-file was
-   * reached. It is valid to call Read() multiple times with a completion
-   * callback to queue up parallel reads from the file, but pending reads
-   * cannot be interleaved with other operations.
-   */
-  int32_t (*Read)(PP_Resource file_io,
-                  int64_t offset,
-                  char* buffer,
-                  int32_t bytes_to_read,
-                  struct PP_CompletionCallback callback);
-  /**
-   * Write() writes to an offset in the file.  This function might perform a
-   * partial write. The FileIO object must have been opened with write access.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-   * FileIO.
-   * @param[in] offset The offset into the file.
-   * @param[in] buffer The buffer to hold the specified number of bytes read.
-   * @param[in] bytes_to_write The number of bytes to write to
-   * <code>offset</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Write().
-   *
-   * @return The number of bytes written or an error code from
-   * <code>pp_errors.h</code>. If the return value is 0, then end-of-file was
-   * reached. It is valid to call Write() multiple times with a completion
-   * callback to queue up parallel writes to the file, but pending writes
-   * cannot be interleaved with other operations.
-   */
-  int32_t (*Write)(PP_Resource file_io,
-                   int64_t offset,
-                   const char* buffer,
-                   int32_t bytes_to_write,
-                   struct PP_CompletionCallback callback);
-  /**
-   * SetLength() sets the length of the file.  If the file size is extended,
-   * then the extended area of the file is zero-filled. The FileIO object must
-   * have been opened with write access and there must be no other operations
-   * pending.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-   * FileIO.
-   * @param[in] length The length of the file to be set.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of SetLength().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * PP_ERROR_FAILED will be returned if the file isn't opened, and
-   * PP_ERROR_INPROGRESS will be returned if there is another operation pending.
-   */
-  int32_t (*SetLength)(PP_Resource file_io,
-                       int64_t length,
-                       struct PP_CompletionCallback callback);
-  /**
-   * Flush() flushes changes to disk.  This call can be very expensive! The
-   * FileIO object must have been opened with write access and there must be no
-   * other operations pending.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-   * FileIO.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Flush().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * PP_ERROR_FAILED will be returned if the file isn't opened, and
-   * PP_ERROR_INPROGRESS will be returned if there is another operation pending.
-   */
-  int32_t (*Flush)(PP_Resource file_io, struct PP_CompletionCallback callback);
-  /**
-   * Close() cancels any IO that may be pending, and closes the FileIO object.
-   * Any pending callbacks will still run, reporting
-   * <code>PP_ERROR_ABORTED</code> if pending IO was interrupted.  It is not
-   * valid to call Open() again after a call to this method.
-   * <strong>Note:</strong> If the FileIO object is destroyed, and it is still
-   * open, then it will be implicitly closed, so you are not required to call
-   * Close().
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-   * FileIO.
-   */
-  void (*Close)(PP_Resource file_io);
-  /**
-   * ReadToArray() reads from an offset in the file.  A PP_ArrayOutput must be
-   * provided so that output will be stored in its allocated buffer.  This
-   * function might perform a partial read. The FileIO object must have been
-   * opened with read access.
-   *
-   * @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-   * FileIO.
-   * @param[in] offset The offset into the file.
-   * @param[in] max_read_length The maximum number of bytes to read from
-   * <code>offset</code>.
-   * @param[in] output A <code>PP_ArrayOutput</code> to hold the output data.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of ReadToArray().
-   *
-   * @return The number of bytes read or an error code from
-   * <code>pp_errors.h</code>. If the return value is 0, then end-of-file was
-   * reached. It is valid to call ReadToArray() multiple times with a completion
-   * callback to queue up parallel reads from the file, but pending reads
-   * cannot be interleaved with other operations.
-   */
-  int32_t (*ReadToArray)(PP_Resource file_io,
-                         int64_t offset,
-                         int32_t max_read_length,
-                         struct PP_ArrayOutput* output,
-                         struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_FileIO_1_1 PPB_FileIO;
-
-struct PPB_FileIO_1_0 {
-  PP_Resource (*Create)(PP_Instance instance);
-  PP_Bool (*IsFileIO)(PP_Resource resource);
-  int32_t (*Open)(PP_Resource file_io,
-                  PP_Resource file_ref,
-                  int32_t open_flags,
-                  struct PP_CompletionCallback callback);
-  int32_t (*Query)(PP_Resource file_io,
-                   struct PP_FileInfo* info,
-                   struct PP_CompletionCallback callback);
-  int32_t (*Touch)(PP_Resource file_io,
-                   PP_Time last_access_time,
-                   PP_Time last_modified_time,
-                   struct PP_CompletionCallback callback);
-  int32_t (*Read)(PP_Resource file_io,
-                  int64_t offset,
-                  char* buffer,
-                  int32_t bytes_to_read,
-                  struct PP_CompletionCallback callback);
-  int32_t (*Write)(PP_Resource file_io,
-                   int64_t offset,
-                   const char* buffer,
-                   int32_t bytes_to_write,
-                   struct PP_CompletionCallback callback);
-  int32_t (*SetLength)(PP_Resource file_io,
-                       int64_t length,
-                       struct PP_CompletionCallback callback);
-  int32_t (*Flush)(PP_Resource file_io, struct PP_CompletionCallback callback);
-  void (*Close)(PP_Resource file_io);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_FILE_IO_H_ */
-
diff --git a/c/ppb_file_ref.h b/c/ppb_file_ref.h
deleted file mode 100644
index abeaa63..0000000
--- a/c/ppb_file_ref.h
+++ /dev/null
@@ -1,290 +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.
- */
-
-/* From ppb_file_ref.idl modified Wed Jan 29 20:50:29 2014. */
-
-#ifndef PPAPI_C_PPB_FILE_REF_H_
-#define PPAPI_C_PPB_FILE_REF_H_
-
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_file_info.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_FILEREF_INTERFACE_1_0 "PPB_FileRef;1.0"
-#define PPB_FILEREF_INTERFACE_1_1 "PPB_FileRef;1.1"
-#define PPB_FILEREF_INTERFACE_1_2 "PPB_FileRef;1.2"
-#define PPB_FILEREF_INTERFACE PPB_FILEREF_INTERFACE_1_2
-
-/**
- * @file
- * This file defines the API to create a file reference or "weak pointer" to a
- * file in a file system.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * The <code>PP_MakeDirectoryFlags</code> enum contains flags used to control
- * behavior of <code>PPB_FileRef.MakeDirectory()</code>.
- */
-typedef enum {
-  PP_MAKEDIRECTORYFLAG_NONE = 0 << 0,
-  /** Requests that ancestor directories are created if they do not exist. */
-  PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS = 1 << 0,
-  /**
-   * Requests that the PPB_FileRef.MakeDirectory() call fails if the directory
-   * already exists.
-   */
-  PP_MAKEDIRECTORYFLAG_EXCLUSIVE = 1 << 1
-} PP_MakeDirectoryFlags;
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_FileRef</code> struct represents a "weak pointer" to a file in
- * a file system.  This struct contains a <code>PP_FileSystemType</code>
- * identifier and a file path string.
- */
-struct PPB_FileRef_1_2 {
-  /**
-   * Create() creates a weak pointer to a file in the given file system. File
-   * paths are POSIX style.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a file
-   * system.
-   * @param[in] path A path to the file. Must begin with a '/' character.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a file reference if
-   * successful or 0 if the path is malformed.
-   */
-  PP_Resource (*Create)(PP_Resource file_system, const char* path);
-  /**
-   * IsFileRef() determines if the provided resource is a file reference.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a
-   * <code>PPB_FileRef</code>, <code>PP_FALSE</code> if the resource is
-   * invalid or some type other than <code>PPB_FileRef</code>.
-   */
-  PP_Bool (*IsFileRef)(PP_Resource resource);
-  /**
-   * GetFileSystemType() returns the type of the file system.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   *
-   * @return A <code>PP_FileSystemType</code> with the file system type if
-   * valid or <code>PP_FILESYSTEMTYPE_INVALID</code> if the provided resource
-   * is not a valid file reference.
-   */
-  PP_FileSystemType (*GetFileSystemType)(PP_Resource file_ref);
-  /**
-   * GetName() returns the name of the file.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   *
-   * @return A <code>PP_Var</code> containing the name of the file.  The value
-   * returned by this function does not include any path components (such as
-   * the name of the parent directory, for example). It is just the name of the
-   * file. Use GetPath() to get the full file path.
-   */
-  struct PP_Var (*GetName)(PP_Resource file_ref);
-  /**
-   * GetPath() returns the absolute path of the file.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   *
-   * @return A <code>PP_Var</code> containing the absolute path of the file.
-   * This function fails if the file system type is
-   * <code>PP_FileSystemType_External</code>.
-   */
-  struct PP_Var (*GetPath)(PP_Resource file_ref);
-  /**
-   * GetParent() returns the parent directory of this file.  If
-   * <code>file_ref</code> points to the root of the filesystem, then the root
-   * is returned.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   *
-   * @return A <code>PP_Resource</code> containing the parent directory of the
-   * file. This function fails if the file system type is
-   * <code>PP_FileSystemType_External</code>.
-   */
-  PP_Resource (*GetParent)(PP_Resource file_ref);
-  /**
-   * MakeDirectory() makes a new directory in the file system according to the
-   * given <code>make_directory_flags</code>, which is a bit-mask of the
-   * <code>PP_MakeDirectoryFlags</code> values.  It is not valid to make a
-   * directory in the external file system.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[in] make_directory_flags A bit-mask of the
-   * <code>PP_MakeDirectoryFlags</code> values.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of MakeDirectory().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*MakeDirectory)(PP_Resource directory_ref,
-                           int32_t make_directory_flags,
-                           struct PP_CompletionCallback callback);
-  /**
-   * Touch() Updates time stamps for a file.  You must have write access to the
-   * file if it exists in the external filesystem.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[in] last_access_time The last time the file was accessed.
-   * @param[in] last_modified_time The last time the file was modified.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Touch().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*Touch)(PP_Resource file_ref,
-                   PP_Time last_access_time,
-                   PP_Time last_modified_time,
-                   struct PP_CompletionCallback callback);
-  /**
-   * Delete() deletes a file or directory. If <code>file_ref</code> refers to
-   * a directory, then the directory must be empty. It is an error to delete a
-   * file or directory that is in use.  It is not valid to delete a file in
-   * the external file system.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Delete().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*Delete)(PP_Resource file_ref,
-                    struct PP_CompletionCallback callback);
-  /**
-   * Rename() renames a file or directory.  Arguments <code>file_ref</code> and
-   * <code>new_file_ref</code> must both refer to files in the same file
-   * system. It is an error to rename a file or directory that is in use.  It
-   * is not valid to rename a file in the external file system.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[in] new_file_ref A <code>PP_Resource</code> corresponding to a new
-   * file reference.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Rename().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*Rename)(PP_Resource file_ref,
-                    PP_Resource new_file_ref,
-                    struct PP_CompletionCallback callback);
-  /**
-   * Query() queries info about a file or directory. You must have access to
-   * read this file or directory if it exists in the external filesystem.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[out] info A pointer to a <code>PP_FileInfo</code> which will be
-   * populated with information about the file or directory.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Query().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*Query)(PP_Resource file_ref,
-                   struct PP_FileInfo* info,
-                   struct PP_CompletionCallback callback);
-  /**
-   * ReadDirectoryEntries() reads all entries in a directory.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a directory
-   * reference.
-   * @param[in] output An output array which will receive
-   * <code>PP_DirectoryEntry</code> objects on success.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*ReadDirectoryEntries)(PP_Resource file_ref,
-                                  struct PP_ArrayOutput output,
-                                  struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_FileRef_1_2 PPB_FileRef;
-
-struct PPB_FileRef_1_0 {
-  PP_Resource (*Create)(PP_Resource file_system, const char* path);
-  PP_Bool (*IsFileRef)(PP_Resource resource);
-  PP_FileSystemType (*GetFileSystemType)(PP_Resource file_ref);
-  struct PP_Var (*GetName)(PP_Resource file_ref);
-  struct PP_Var (*GetPath)(PP_Resource file_ref);
-  PP_Resource (*GetParent)(PP_Resource file_ref);
-  int32_t (*MakeDirectory)(PP_Resource directory_ref,
-                           PP_Bool make_ancestors,
-                           struct PP_CompletionCallback callback);
-  int32_t (*Touch)(PP_Resource file_ref,
-                   PP_Time last_access_time,
-                   PP_Time last_modified_time,
-                   struct PP_CompletionCallback callback);
-  int32_t (*Delete)(PP_Resource file_ref,
-                    struct PP_CompletionCallback callback);
-  int32_t (*Rename)(PP_Resource file_ref,
-                    PP_Resource new_file_ref,
-                    struct PP_CompletionCallback callback);
-};
-
-struct PPB_FileRef_1_1 {
-  PP_Resource (*Create)(PP_Resource file_system, const char* path);
-  PP_Bool (*IsFileRef)(PP_Resource resource);
-  PP_FileSystemType (*GetFileSystemType)(PP_Resource file_ref);
-  struct PP_Var (*GetName)(PP_Resource file_ref);
-  struct PP_Var (*GetPath)(PP_Resource file_ref);
-  PP_Resource (*GetParent)(PP_Resource file_ref);
-  int32_t (*MakeDirectory)(PP_Resource directory_ref,
-                           PP_Bool make_ancestors,
-                           struct PP_CompletionCallback callback);
-  int32_t (*Touch)(PP_Resource file_ref,
-                   PP_Time last_access_time,
-                   PP_Time last_modified_time,
-                   struct PP_CompletionCallback callback);
-  int32_t (*Delete)(PP_Resource file_ref,
-                    struct PP_CompletionCallback callback);
-  int32_t (*Rename)(PP_Resource file_ref,
-                    PP_Resource new_file_ref,
-                    struct PP_CompletionCallback callback);
-  int32_t (*Query)(PP_Resource file_ref,
-                   struct PP_FileInfo* info,
-                   struct PP_CompletionCallback callback);
-  int32_t (*ReadDirectoryEntries)(PP_Resource file_ref,
-                                  struct PP_ArrayOutput output,
-                                  struct PP_CompletionCallback callback);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_FILE_REF_H_ */
-
diff --git a/c/ppb_file_system.h b/c/ppb_file_system.h
deleted file mode 100644
index 0b240ed..0000000
--- a/c/ppb_file_system.h
+++ /dev/null
@@ -1,101 +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.
- */
-
-/* From ppb_file_system.idl modified Thu Jun 13 14:30:40 2013. */
-
-#ifndef PPAPI_C_PPB_FILE_SYSTEM_H_
-#define PPAPI_C_PPB_FILE_SYSTEM_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_file_info.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_FILESYSTEM_INTERFACE_1_0 "PPB_FileSystem;1.0"
-#define PPB_FILESYSTEM_INTERFACE PPB_FILESYSTEM_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the API to create a file system associated with a file.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_FileSystem</code> struct identifies the file system type
- * associated with a file.
- */
-struct PPB_FileSystem_1_0 {
-  /** Create() creates a file system object of the given type.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * with the file.
-   * @param[in] type A file system type as defined by
-   * <code>PP_FileSystemType</code> enum (except PP_FILESYSTEMTYPE_ISOLATED,
-   * which is currently not supported).
-   * @return A <code>PP_Resource</code> corresponding to a file system if
-   * successful.
-   */
-  PP_Resource (*Create)(PP_Instance instance, PP_FileSystemType type);
-  /**
-   * IsFileSystem() determines if the provided resource is a file system.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a file
-   * system.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a
-   * <code>PPB_FileSystem</code>, <code>PP_FALSE</code> if the resource is
-   * invalid or some type other than <code>PPB_FileSystem</code>.
-   */
-  PP_Bool (*IsFileSystem)(PP_Resource resource);
-  /**
-   * Open() opens the file system. A file system must be opened before running
-   * any other operation on it.
-   *
-   * @param[in] file_system A <code>PP_Resource</code> corresponding to a file
-   * system.
-   *
-   * @param[in] expected_size The expected size of the file system. Note that
-   * this does not request quota; to do that, you must either invoke
-   * requestQuota from JavaScript:
-   * http://www.html5rocks.com/en/tutorials/file/filesystem/#toc-requesting-quota
-   * or set the unlimitedStorage permission for Chrome Web Store apps:
-   * http://code.google.com/chrome/extensions/manifest.html#permissions
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Open().
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*Open)(PP_Resource file_system,
-                  int64_t expected_size,
-                  struct PP_CompletionCallback callback);
-  /**
-   * GetType() returns the type of the provided file system.
-   *
-   * @param[in] file_system A <code>PP_Resource</code> corresponding to a file
-   * system.
-   *
-   * @return A <code>PP_FileSystemType</code> with the file system type if
-   * valid or <code>PP_FILESYSTEMTYPE_INVALID</code> if the provided resource
-   * is not a valid file system. It is valid to call this function even before
-   * Open() completes.
-   */
-  PP_FileSystemType (*GetType)(PP_Resource file_system);
-};
-
-typedef struct PPB_FileSystem_1_0 PPB_FileSystem;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_FILE_SYSTEM_H_ */
-
diff --git a/c/ppb_fullscreen.h b/c/ppb_fullscreen.h
deleted file mode 100644
index 613c172..0000000
--- a/c/ppb_fullscreen.h
+++ /dev/null
@@ -1,91 +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.
- */
-
-/* From ppb_fullscreen.idl modified Wed Dec 21 19:08:34 2011. */
-
-#ifndef PPAPI_C_PPB_FULLSCREEN_H_
-#define PPAPI_C_PPB_FULLSCREEN_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_FULLSCREEN_INTERFACE_1_0 "PPB_Fullscreen;1.0"
-#define PPB_FULLSCREEN_INTERFACE PPB_FULLSCREEN_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_Fullscreen</code> interface for
- * handling transitions of a module instance to and from fullscreen mode.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_Fullscreen</code> interface is implemented by the browser.
- * This interface provides a way of checking the current screen mode and
- * toggling fullscreen mode.
- */
-struct PPB_Fullscreen_1_0 {
-  /**
-   * IsFullscreen() checks whether the module instance is currently in
-   * fullscreen mode.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   *
-   * @return <code>PP_TRUE</code> if the module instance is in fullscreen mode,
-   * <code>PP_FALSE</code> if the module instance is not in fullscreen mode.
-   */
-  PP_Bool (*IsFullscreen)(PP_Instance instance);
-  /**
-   * SetFullscreen() switches the module instance to and from fullscreen
-   * mode.
-   *
-   * The transition to and from fullscreen mode is asynchronous. During the
-   * transition, IsFullscreen() will return the previous value and
-   * no 2D or 3D device can be bound. The transition ends at DidChangeView()
-   * when IsFullscreen() returns the new value. You might receive other
-   * DidChangeView() calls while in transition.
-   *
-   * The transition to fullscreen mode can only occur while the browser is
-   * processing a user gesture, even if <code>PP_TRUE</code> is returned.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] fullscreen <code>PP_TRUE</code> to enter fullscreen mode, or
-   * <code>PP_FALSE</code> to exit fullscreen mode.
-   *
-   * @return <code>PP_TRUE</code> on success or <code>PP_FALSE</code> on
-   * failure.
-   */
-  PP_Bool (*SetFullscreen)(PP_Instance instance, PP_Bool fullscreen);
-  /**
-   * GetScreenSize() gets the size of the screen in pixels. The module instance
-   * will be resized to this size when SetFullscreen() is called to enter
-   * fullscreen mode.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[out] size The size of the entire screen in pixels.
-   *
-   * @return <code>PP_TRUE</code> on success or <code>PP_FALSE</code> on
-   * failure.
-   */
-  PP_Bool (*GetScreenSize)(PP_Instance instance, struct PP_Size* size);
-};
-
-typedef struct PPB_Fullscreen_1_0 PPB_Fullscreen;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_FULLSCREEN_H_ */
-
diff --git a/c/ppb_gamepad.h b/c/ppb_gamepad.h
deleted file mode 100644
index 4300f1a..0000000
--- a/c/ppb_gamepad.h
+++ /dev/null
@@ -1,112 +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.
- */
-
-/* From ppb_gamepad.idl modified Tue Apr 16 09:04:34 2013. */
-
-#ifndef PPAPI_C_PPB_GAMEPAD_H_
-#define PPAPI_C_PPB_GAMEPAD_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_GAMEPAD_INTERFACE_1_0 "PPB_Gamepad;1.0"
-#define PPB_GAMEPAD_INTERFACE PPB_GAMEPAD_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_Gamepad</code> interface, which
- * provides access to gamepad devices.
- */
-
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * The data for one gamepad device.
- */
-struct PP_GamepadSampleData {
-  /**
-   * Number of valid elements in the |axes| array.
-   */
-  uint32_t axes_length;
-  /**
-   * Normalized values for the axes, indices valid up to |axes_length|-1. Axis
-   * values range from -1..1, and are in order of "importance".
-   */
-  float axes[16];
-  /**
-   * Number of valid elements in the |buttons| array.
-   */
-  uint32_t buttons_length;
-  /**
-   * Normalized values for the buttons, indices valid up to |buttons_length|
-   * - 1. Button values range from 0..1, and are in order of importance.
-   */
-  float buttons[32];
-  /**
-   * Monotonically increasing value that is incremented when the data have
-   * been updated.
-   */
-  double timestamp;
-  /**
-   * Identifier for the type of device/manufacturer.
-   */
-  uint16_t id[128];
-  /**
-   * Is there a gamepad connected at this index? If this is false, no other
-   * data in this structure is valid.
-   */
-  PP_Bool connected;
-  /* Padding to make the struct the same size between 64 and 32. */
-  int8_t unused_pad_[4];
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_GamepadSampleData, 472);
-
-/**
- * The data for all gamepads connected to the system.
- */
-struct PP_GamepadsSampleData {
-  /**
-   * Number of valid elements in the |items| array.
-   */
-  uint32_t length;
-  /* Padding to make the struct the same size between 64 and 32. */
-  int8_t unused_pad_[4];
-  /**
-   * Data for an individual gamepad device connected to the system.
-   */
-  struct PP_GamepadSampleData items[4];
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_GamepadsSampleData, 1896);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_Gamepad</code> interface allows retrieving data from
- * gamepad/joystick devices that are connected to the system.
- */
-struct PPB_Gamepad_1_0 {
-  /**
-   * Samples the current state of the available gamepads.
-   */
-  void (*Sample)(PP_Instance instance, struct PP_GamepadsSampleData* data);
-};
-
-typedef struct PPB_Gamepad_1_0 PPB_Gamepad;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_GAMEPAD_H_ */
-
diff --git a/c/ppb_graphics_2d.h b/c/ppb_graphics_2d.h
deleted file mode 100644
index d909285..0000000
--- a/c/ppb_graphics_2d.h
+++ /dev/null
@@ -1,349 +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.
- */
-
-/* From ppb_graphics_2d.idl modified Wed Apr 20 13:37:06 2016. */
-
-#ifndef PPAPI_C_PPB_GRAPHICS_2D_H_
-#define PPAPI_C_PPB_GRAPHICS_2D_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_GRAPHICS_2D_INTERFACE_1_0 "PPB_Graphics2D;1.0"
-#define PPB_GRAPHICS_2D_INTERFACE_1_1 "PPB_Graphics2D;1.1"
-#define PPB_GRAPHICS_2D_INTERFACE_1_2 "PPB_Graphics2D;1.2"
-#define PPB_GRAPHICS_2D_INTERFACE PPB_GRAPHICS_2D_INTERFACE_1_2
-
-/**
- * @file
- * Defines the <code>PPB_Graphics2D</code> struct representing a 2D graphics
- * context within the browser.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * <code>PPB_Graphics2D</code> defines the interface for a 2D graphics context.
- */
-struct PPB_Graphics2D_1_2 {
-  /**
-   * Create() creates a 2D graphics context. The returned graphics context will
-   * not be bound to the module instance on creation (call BindGraphics() on
-   * the module instance to bind the returned graphics context to the module
-   * instance).
-   *
-   * @param[in] instance The module instance.
-   * @param[in] size The size of the graphic context.
-   * @param[in] is_always_opaque Set the <code>is_always_opaque</code> flag to
-   * <code>PP_TRUE</code> if you know that you will be painting only opaque
-   * data to this context. This option will disable blending when compositing
-   * the module with the web page, which might give higher performance on some
-   * computers.
-   *
-   * If you set <code>is_always_opaque</code>, your alpha channel should always
-   * be set to 0xFF or there may be painting artifacts. The alpha values
-   * overwrite the destination alpha values without blending when
-   * <code>is_always_opaque</code> is true.
-   *
-   * @return A <code>PP_Resource</code> containing the 2D graphics context if
-   * successful or 0 if unsuccessful.
-   */
-  PP_Resource (*Create)(PP_Instance instance,
-                        const struct PP_Size* size,
-                        PP_Bool is_always_opaque);
-  /**
-   * IsGraphics2D() determines if the given resource is a valid
-   * <code>Graphics2D</code>.
-   *
-   * @param[in] resource A <code>Graphics2D</code> context resource.
-   *
-   * @return PP_TRUE if the given resource is a valid <code>Graphics2D</code>,
-   * <code>PP_FALSE</code> if it is an invalid resource or is a resource of
-   * another type.
-   */
-  PP_Bool (*IsGraphics2D)(PP_Resource resource);
-  /**
-   * Describe() retrieves the configuration for the given graphics context,
-   * filling the given values (which must not be <code>NULL</code>).
-   *
-   * @param[in] resource The 2D Graphics resource.
-   * @param[in,out] size The size of the 2D graphics context in the browser.
-   * @param[in,out] is_always_opaque Identifies whether only opaque data
-   * will be painted.
-   *
-   * @return Returns <code>PP_TRUE</code> on success or <code>PP_FALSE</code> if
-   * the resource is invalid. The output parameters will be set to 0 on a
-   * <code>PP_FALSE</code>.
-   */
-  PP_Bool (*Describe)(PP_Resource graphics_2d,
-                      struct PP_Size* size,
-                      PP_Bool* is_always_opaque);
-  /**
-   * PaintImageData() enqueues a paint of the given image into the context.
-   * This function has no effect until you call Flush() As a result, what
-   * counts is the contents of the bitmap when you call Flush(), not when
-   * you call this function.
-   *
-   * The provided image will be placed at <code>top_left</code> from the top
-   *  left of the context's internal backing store. Then the pixels contained
-   * in <code>src_rect</code> will be copied into the backing store. This
-   * means that the rectangle being painted will be at <code>src_rect</code>
-   * offset by <code>top_left</code>.
-   *
-   * The <code>src_rect</code> is specified in the coordinate system of the
-   * image being painted, not the context. For the common case of copying the
-   * entire image, you may specify an empty <code>src_rect</code>.
-   *
-   * The painted area of the source bitmap must fall entirely within the
-   * context. Attempting to paint outside of the context will result in an
-   * error. However, the source bitmap may fall outside the context, as long
-   * as the <code>src_rect</code> subset of it falls entirely within the
-   * context.
-   *
-   * There are two methods most modules will use for painting. The first
-   * method is to generate a new <code>ImageData</code> and then paint it. In
-   * this case, you'll set the location of your painting to
-   * <code>top_left</code> and set <code>src_rect</code> to <code>NULL</code>.
-   * The second is that you're generating small invalid regions out of a larger
-   * bitmap representing your entire instance. In this case, you would set the
-   * location of your image to (0,0) and then set <code>src_rect</code> to the
-   * pixels you changed.
-   *
-   * @param[in] resource The 2D Graphics resource.
-   * @param[in] image The <code>ImageData</code> to be painted.
-   * @param[in] top_left A <code>Point</code> representing the
-   * <code>top_left</code> location where the <code>ImageData</code> will be
-   * painted.
-   * @param[in] src_rect The rectangular area where the <code>ImageData</code>
-   * will be painted.
-   */
-  void (*PaintImageData)(PP_Resource graphics_2d,
-                         PP_Resource image_data,
-                         const struct PP_Point* top_left,
-                         const struct PP_Rect* src_rect);
-  /**
-   * Scroll() enqueues a scroll of the context's backing store. This
-   * function has no effect until you call Flush(). The data within the
-   * provided clipping rectangle will be shifted by (dx, dy) pixels.
-   *
-   * This function will result in some exposed region which will have undefined
-   * contents. The module should call PaintImageData() on these exposed regions
-   * to give the correct contents.
-   *
-   * The scroll can be larger than the area of the clipping rectangle, which
-   * means the current image will be scrolled out of the rectangle. This
-   * scenario is not an error but will result in a no-op.
-   *
-   * @param[in] graphics_2d The 2D Graphics resource.
-   * @param[in] clip The clipping rectangle.
-   * @param[in] amount The amount the area in the clipping rectangle will
-   * shifted.
-   */
-  void (*Scroll)(PP_Resource graphics_2d,
-                 const struct PP_Rect* clip_rect,
-                 const struct PP_Point* amount);
-  /**
-   * ReplaceContents() provides a slightly more efficient way to paint the
-   * entire module's image. Normally, calling PaintImageData() requires that
-   * the browser copy the pixels out of the image and into the graphics
-   * context's backing store. This function replaces the graphics context's
-   * backing store with the given image, avoiding the copy.
-   *
-   * The new image must be the exact same size as this graphics context. If the
-   * new image uses a different image format than the browser's native bitmap
-   * format (use <code>PPB_ImageData.GetNativeImageDataFormat()</code> to
-   * retrieve the format), then a conversion will be done inside the browser
-   * which may slow the performance a little bit.
-   *
-   * <strong>Note:</strong> The new image will not be painted until you call
-   * Flush().
-   *
-   * After this call, you should take care to release your references to the
-   * image. If you paint to the image after ReplaceContents(), there is the
-   * possibility of significant painting artifacts because the page might use
-   * partially-rendered data when copying out of the backing store.
-   *
-   * In the case of an animation, you will want to allocate a new image for the
-   * next frame. It is best if you wait until the flush callback has executed
-   * before allocating this bitmap. This gives the browser the option of
-   * caching the previous backing store and handing it back to you (assuming
-   * the sizes match). In the optimal case, this means no bitmaps are allocated
-   * during the animation, and the backing store and "front buffer" (which the
-   * plugin is painting into) are just being swapped back and forth.
-   *
-   * @param[in] graphics_2d The 2D Graphics resource.
-   * @param[in] image The <code>ImageData</code> to be painted.
-   */
-  void (*ReplaceContents)(PP_Resource graphics_2d, PP_Resource image_data);
-  /**
-   * Flush() flushes any enqueued paint, scroll, and replace commands to the
-   * backing store. This function actually executes the updates, and causes a
-   * repaint of the webpage, assuming this graphics context is bound to a module
-   * instance.
-   *
-   * Flush() runs in asynchronous mode. Specify a callback function and the
-   * argument for that callback function. The callback function will be
-   * executed on the calling thread when the image has been painted to the
-   * screen. While you are waiting for a flush callback, additional calls to
-   * Flush() will fail.
-   *
-   * Because the callback is executed (or thread unblocked) only when the
-   * instance's image is actually on the screen, this function provides
-   * a way to rate limit animations. By waiting until the image is on the
-   * screen before painting the next frame, you can ensure you're not
-   * flushing 2D graphics faster than the screen can be updated.
-   *
-   * <strong>Unbound contexts</strong>
-   * If the context is not bound to a module instance, you will
-   * still get a callback. The callback will execute after Flush() returns
-   * to avoid reentrancy. The callback will not wait until anything is
-   * painted to the screen because there will be nothing on the screen. The
-   * timing of this callback is not guaranteed and may be deprioritized by
-   * the browser because it is not affecting the user experience.
-   *
-   * <strong>Off-screen instances</strong>
-   * If the context is bound to an instance that is currently not visible (for
-   * example, scrolled out of view) it will behave like the "unbound context"
-   * case.
-   *
-   * <strong>Detaching a context</strong>
-   * If you detach a context from a module instance, any pending flush
-   * callbacks will be converted into the "unbound context" case.
-   *
-   * <strong>Released contexts</strong>
-   * A callback may or may not get called even if you have released all
-   * of your references to the context. This scenario can occur if there are
-   * internal references to the context suggesting it has not been internally
-   * destroyed (for example, if it is still bound to an instance) or due to
-   * other implementation details. As a result, you should be careful to
-   * check that flush callbacks are for the context you expect and that
-   * you're capable of handling callbacks for unreferenced contexts.
-   *
-   * <strong>Shutdown</strong>
-   * If a module instance is removed when a flush is pending, the
-   * callback will not be executed.
-   *
-   * @param[in] graphics_2d The 2D Graphics resource.
-   * @param[in] callback A <code>CompletionCallback</code> to be called when
-   * the image has been painted on the screen.
-   *
-   * @return Returns <code>PP_OK</code> on success or
-   * <code>PP_ERROR_BADRESOURCE</code> if the graphics context is invalid,
-   * <code>PP_ERROR_BADARGUMENT</code> if the callback is null and flush is
-   * being called from the main thread of the module, or
-   * <code>PP_ERROR_INPROGRESS</code> if a flush is already pending that has
-   * not issued its callback yet.  In the failure case, nothing will be updated
-   * and no callback will be scheduled.
-   */
-  int32_t (*Flush)(PP_Resource graphics_2d,
-                   struct PP_CompletionCallback callback);
-  /**
-   * SetScale() sets the scale factor that will be applied when painting the
-   * graphics context onto the output device. Typically, if rendering at device
-   * resolution is desired, the context would be created with the width and
-   * height scaled up by the view's GetDeviceScale and SetScale called with a
-   * scale of 1.0 / GetDeviceScale(). For example, if the view resource passed
-   * to DidChangeView has a rectangle of (w=200, h=100) and a device scale of
-   * 2.0, one would call Create with a size of (w=400, h=200) and then call
-   * SetScale with 0.5. One would then treat each pixel in the context as a
-   * single device pixel.
-   *
-   * @param[in] resource A <code>Graphics2D</code> context resource.
-   * @param[in] scale The scale to apply when painting.
-   *
-   * @return Returns <code>PP_TRUE</code> on success or <code>PP_FALSE</code> if
-   * the resource is invalid or the scale factor is 0 or less.
-   */
-  PP_Bool (*SetScale)(PP_Resource resource, float scale);
-  /***
-   * GetScale() gets the scale factor that will be applied when painting the
-   * graphics context onto the output device.
-   *
-   * @param[in] resource A <code>Graphics2D</code> context resource.
-   *
-   * @return Returns the scale factor for the graphics context. If the resource
-   * is not a valid <code>Graphics2D</code> context, this will return 0.0.
-   */
-  float (*GetScale)(PP_Resource resource);
-  /**
-   * SetLayerTransform() sets a transformation factor that will be applied for
-   * the current graphics context displayed on the output device.  If both
-   * SetScale and SetLayerTransform will be used, they are going to get combined
-   * for the final result.
-   *
-   * This function has no effect until you call Flush().
-   *
-   * @param[in] scale The scale to be applied.
-   * @param[in] origin The origin of the scale.
-   * @param[in] translate The translation to be applied.
-   *
-   * @return Returns <code>PP_TRUE</code> on success or <code>PP_FALSE</code>
-   * if the resource is invalid or the scale factor is 0 or less.
-   */
-  PP_Bool (*SetLayerTransform)(PP_Resource resource,
-                               float scale,
-                               const struct PP_Point* origin,
-                               const struct PP_Point* translate);
-};
-
-typedef struct PPB_Graphics2D_1_2 PPB_Graphics2D;
-
-struct PPB_Graphics2D_1_0 {
-  PP_Resource (*Create)(PP_Instance instance,
-                        const struct PP_Size* size,
-                        PP_Bool is_always_opaque);
-  PP_Bool (*IsGraphics2D)(PP_Resource resource);
-  PP_Bool (*Describe)(PP_Resource graphics_2d,
-                      struct PP_Size* size,
-                      PP_Bool* is_always_opaque);
-  void (*PaintImageData)(PP_Resource graphics_2d,
-                         PP_Resource image_data,
-                         const struct PP_Point* top_left,
-                         const struct PP_Rect* src_rect);
-  void (*Scroll)(PP_Resource graphics_2d,
-                 const struct PP_Rect* clip_rect,
-                 const struct PP_Point* amount);
-  void (*ReplaceContents)(PP_Resource graphics_2d, PP_Resource image_data);
-  int32_t (*Flush)(PP_Resource graphics_2d,
-                   struct PP_CompletionCallback callback);
-};
-
-struct PPB_Graphics2D_1_1 {
-  PP_Resource (*Create)(PP_Instance instance,
-                        const struct PP_Size* size,
-                        PP_Bool is_always_opaque);
-  PP_Bool (*IsGraphics2D)(PP_Resource resource);
-  PP_Bool (*Describe)(PP_Resource graphics_2d,
-                      struct PP_Size* size,
-                      PP_Bool* is_always_opaque);
-  void (*PaintImageData)(PP_Resource graphics_2d,
-                         PP_Resource image_data,
-                         const struct PP_Point* top_left,
-                         const struct PP_Rect* src_rect);
-  void (*Scroll)(PP_Resource graphics_2d,
-                 const struct PP_Rect* clip_rect,
-                 const struct PP_Point* amount);
-  void (*ReplaceContents)(PP_Resource graphics_2d, PP_Resource image_data);
-  int32_t (*Flush)(PP_Resource graphics_2d,
-                   struct PP_CompletionCallback callback);
-  PP_Bool (*SetScale)(PP_Resource resource, float scale);
-  float (*GetScale)(PP_Resource resource);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_GRAPHICS_2D_H_ */
-
diff --git a/c/ppb_graphics_3d.h b/c/ppb_graphics_3d.h
deleted file mode 100644
index f32db83..0000000
--- a/c/ppb_graphics_3d.h
+++ /dev/null
@@ -1,298 +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.
- */
-
-/* From ppb_graphics_3d.idl modified Fri Aug 30 08:36:16 2013. */
-
-#ifndef PPAPI_C_PPB_GRAPHICS_3D_H_
-#define PPAPI_C_PPB_GRAPHICS_3D_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_GRAPHICS_3D_INTERFACE_1_0 "PPB_Graphics3D;1.0"
-#define PPB_GRAPHICS_3D_INTERFACE PPB_GRAPHICS_3D_INTERFACE_1_0
-
-/**
- * @file
- * Defines the <code>PPB_Graphics3D</code> struct representing a 3D graphics
- * context within the browser.
- */
-
-
-/* Add 3D graphics enums */
-#include "ppapi/c/pp_graphics_3d.h"
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * <code>PPB_Graphics3D</code> defines the interface for a 3D graphics context.
- * <strong>Example usage from plugin code:</strong>
- *
- * <strong>Setup:</strong>
- * @code
- * PP_Resource context;
- * int32_t attribs[] = {PP_GRAPHICS3DATTRIB_WIDTH, 800,
- *                      PP_GRAPHICS3DATTRIB_HEIGHT, 800,
- *                      PP_GRAPHICS3DATTRIB_NONE};
- * context = g3d->Create(instance, 0, attribs);
- * inst->BindGraphics(instance, context);
- * @endcode
- *
- * <strong>Present one frame:</strong>
- * @code
- * PP_CompletionCallback callback = {
- *   DidFinishSwappingBuffers, 0, PP_COMPLETIONCALLBACK_FLAG_NONE,
- * };
- * gles2->Clear(context, GL_COLOR_BUFFER_BIT);
- * g3d->SwapBuffers(context, callback);
- * @endcode
- *
- * <strong>Shutdown:</strong>
- * @code
- * core->ReleaseResource(context);
- * @endcode
- */
-struct PPB_Graphics3D_1_0 {
-  /**
-   * GetAttribMaxValue() retrieves the maximum supported value for the
-   * given attribute. This function may be used to check if a particular
-   * attribute value is supported before attempting to create a context.
-   *
-   * @param[in] instance The module instance.
-   * @param[in] attribute The attribute for which maximum value is queried.
-   * Attributes that can be queried for include:
-   * - <code>PP_GRAPHICS3DATTRIB_ALPHA_SIZE</code>
-   * - <code>PP_GRAPHICS3DATTRIB_BLUE_SIZE</code>
-   * - <code>PP_GRAPHICS3DATTRIB_GREEN_SIZE</code>
-   * - <code>PP_GRAPHICS3DATTRIB_RED_SIZE</code>
-   * - <code>PP_GRAPHICS3DATTRIB_DEPTH_SIZE</code>
-   * - <code>PP_GRAPHICS3DATTRIB_STENCIL_SIZE</code>
-   * - <code>PP_GRAPHICS3DATTRIB_SAMPLES</code>
-   * - <code>PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS</code>
-   * - <code>PP_GRAPHICS3DATTRIB_WIDTH</code>
-   * - <code>PP_GRAPHICS3DATTRIB_HEIGHT</code>
-   * @param[out] value The maximum supported value for <code>attribute</code>
-   *
-   * @return Returns <code>PP_TRUE</code> on success or the following on error:
-   * - <code>PP_ERROR_BADRESOURCE</code> if <code>instance</code> is invalid
-   * - <code>PP_ERROR_BADARGUMENT</code> if <code>attribute</code> is invalid
-   *   or <code>value</code> is 0
-   */
-  int32_t (*GetAttribMaxValue)(PP_Resource instance,
-                               int32_t attribute,
-                               int32_t* value);
-  /**
-   * Create() creates and initializes a 3D rendering context.
-   * The returned context is off-screen to start with. It must be attached to
-   * a plugin instance using <code>PPB_Instance::BindGraphics</code> to draw
-   * on the web page.
-   *
-   * @param[in] instance The module instance.
-   *
-   * @param[in] share_context The 3D context with which the created context
-   * would share resources. If <code>share_context</code> is not 0, then all
-   * shareable data, as defined by the client API (note that for OpenGL and
-   * OpenGL ES, shareable data excludes texture objects named 0) will be shared
-   * by <code>share_context<code>, all other contexts <code>share_context</code>
-   * already shares with, and the newly created context. An arbitrary number of
-   * <code>PPB_Graphics3D</code> can share data in this fashion.
-   *
-   * @param[in] attrib_list specifies a list of attributes for the context.
-   * It is a list of attribute name-value pairs in which each attribute is
-   * immediately followed by the corresponding desired value. The list is
-   * terminated with <code>PP_GRAPHICS3DATTRIB_NONE</code>.
-   * The <code>attrib_list<code> may be 0 or empty (first attribute is
-   * <code>PP_GRAPHICS3DATTRIB_NONE</code>). If an attribute is not
-   * specified in <code>attrib_list</code>, then the default value is used
-   * (it is said to be specified implicitly).
-   * Attributes for the context are chosen according to an attribute-specific
-   * criteria. Attributes can be classified into two categories:
-   * - AtLeast: The attribute value in the returned context meets or exceeds
-   *            the value specified in <code>attrib_list</code>.
-   * - Exact: The attribute value in the returned context is equal to
-   *          the value specified in <code>attrib_list</code>.
-   *
-   * Attributes that can be specified in <code>attrib_list</code> include:
-   * - <code>PP_GRAPHICS3DATTRIB_ALPHA_SIZE</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_BLUE_SIZE</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_GREEN_SIZE</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_RED_SIZE</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_DEPTH_SIZE</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_STENCIL_SIZE</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_SAMPLES</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS</code>:
-   *   Category: AtLeast Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_WIDTH</code>:
-   *   Category: Exact Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_HEIGHT</code>:
-   *   Category: Exact Default: 0.
-   * - <code>PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR</code>:
-   *   Category: Exact Default: Implementation defined.
-   *
-   * @return A <code>PP_Resource</code> containing the 3D graphics context if
-   * successful or 0 if unsuccessful.
-   */
-  PP_Resource (*Create)(PP_Instance instance,
-                        PP_Resource share_context,
-                        const int32_t attrib_list[]);
-  /**
-   * IsGraphics3D() determines if the given resource is a valid
-   * <code>Graphics3D</code> context.
-   *
-   * @param[in] resource A <code>Graphics3D</code> context resource.
-   *
-   * @return PP_TRUE if the given resource is a valid <code>Graphics3D</code>,
-   * <code>PP_FALSE</code> if it is an invalid resource or is a resource of
-   * another type.
-   */
-  PP_Bool (*IsGraphics3D)(PP_Resource resource);
-  /**
-   * GetAttribs() retrieves the value for each attribute in
-   * <code>attrib_list</code>.
-   *
-   * @param[in] context The 3D graphics context.
-   * @param[in,out] attrib_list The list of attributes that are queried.
-   * <code>attrib_list</code> has the same structure as described for
-   * <code>PPB_Graphics3D::Create</code>. It is both input and output
-   * structure for this function. All attributes specified in
-   * <code>PPB_Graphics3D::Create</code> can be queried for.
-   *
-   * @return Returns <code>PP_OK</code> on success or:
-   * - <code>PP_ERROR_BADRESOURCE</code> if context is invalid
-   * - <code>PP_ERROR_BADARGUMENT</code> if attrib_list is 0 or any attribute
-   *   in the <code>attrib_list</code> is not a valid attribute.
-   *
-   * <strong>Example usage:</strong> To get the values for rgb bits in the
-   * color buffer, this function must be called as following:
-   * @code
-   * int attrib_list[] = {PP_GRAPHICS3DATTRIB_RED_SIZE, 0,
-   *                      PP_GRAPHICS3DATTRIB_GREEN_SIZE, 0,
-   *                      PP_GRAPHICS3DATTRIB_BLUE_SIZE, 0,
-   *                      PP_GRAPHICS3DATTRIB_NONE};
-   * GetAttribs(context, attrib_list);
-   * int red_bits = attrib_list[1];
-   * int green_bits = attrib_list[3];
-   * int blue_bits = attrib_list[5];
-   * @endcode
-   */
-  int32_t (*GetAttribs)(PP_Resource context, int32_t attrib_list[]);
-  /**
-   * SetAttribs() sets the values for each attribute in
-   * <code>attrib_list</code>.
-   *
-   * @param[in] context The 3D graphics context.
-   * @param[in] attrib_list The list of attributes whose values need to be set.
-   * <code>attrib_list</code> has the same structure as described for
-   * <code>PPB_Graphics3D::Create</code>.
-   * Attributes that can be specified are:
-   * - <code>PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR</code>
-   *
-   * @return Returns <code>PP_OK</code> on success or:
-   * - <code>PP_ERROR_BADRESOURCE</code> if <code>context</code> is invalid.
-   * - <code>PP_ERROR_BADARGUMENT</code> if <code>attrib_list</code> is 0 or
-   *   any attribute in the <code>attrib_list</code> is not a valid attribute.
-   */
-  int32_t (*SetAttribs)(PP_Resource context, const int32_t attrib_list[]);
-  /**
-   * GetError() returns the current state of the given 3D context.
-   *
-   * The recoverable error conditions that have no side effect are
-   * detected and returned immediately by all functions in this interface.
-   * In addition the implementation may get into a fatal state while
-   * processing a command. In this case the application must destroy the
-   * context and reinitialize client API state and objects to continue
-   * rendering.
-   *
-   * Note that the same error code is also returned in the SwapBuffers callback.
-   * It is recommended to handle error in the SwapBuffers callback because
-   * GetError is synchronous. This function may be useful in rare cases where
-   * drawing a frame is expensive and you want to verify the result of
-   * ResizeBuffers before attempting to draw a frame.
-   *
-   * @param[in] The 3D graphics context.
-   * @return Returns:
-   * - <code>PP_OK</code> if no error
-   * - <code>PP_ERROR_NOMEMORY</code>
-   * - <code>PP_ERROR_CONTEXT_LOST</code>
-   */
-  int32_t (*GetError)(PP_Resource context);
-  /**
-   * ResizeBuffers() resizes the backing surface for context.
-   *
-   * If the surface could not be resized due to insufficient resources,
-   * <code>PP_ERROR_NOMEMORY</code> error is returned on the next
-   * <code>SwapBuffers</code> callback.
-   *
-   * @param[in] context The 3D graphics context.
-   * @param[in] width The width of the backing surface.
-   * @param[in] height The height of the backing surface.
-   * @return Returns <code>PP_OK</code> on success or:
-   * - <code>PP_ERROR_BADRESOURCE</code> if context is invalid.
-   * - <code>PP_ERROR_BADARGUMENT</code> if the value specified for
-   *   <code>width</code> or <code>height</code> is less than zero.
-   */
-  int32_t (*ResizeBuffers)(PP_Resource context, int32_t width, int32_t height);
-  /**
-   * SwapBuffers() makes the contents of the color buffer available for
-   * compositing. This function has no effect on off-screen surfaces - ones not
-   * bound to any plugin instance. The contents of ancillary buffers are always
-   * undefined after calling <code>SwapBuffers</code>. The contents of the color
-   * buffer are undefined if the value of the
-   * <code>PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR</code> attribute of context is not
-   * <code>PP_GRAPHICS3DATTRIB_BUFFER_PRESERVED</code>.
-   *
-   * <code>SwapBuffers</code> runs in asynchronous mode. Specify a callback
-   * function and the argument for that callback function. The callback function
-   * will be executed on the calling thread after the color buffer has been
-   * composited with rest of the html page. While you are waiting for a
-   * SwapBuffers callback, additional calls to SwapBuffers will fail.
-   *
-   * Because the callback is executed (or thread unblocked) only when the
-   * plugin's current state is actually on the screen, this function provides a
-   * way to rate limit animations. By waiting until the image is on the screen
-   * before painting the next frame, you can ensure you're not generating
-   * updates faster than the screen can be updated.
-   *
-   * SwapBuffers performs an implicit flush operation on context.
-   * If the context gets into an unrecoverable error condition while
-   * processing a command, the error code will be returned as the argument
-   * for the callback. The callback may return the following error codes:
-   * - <code>PP_ERROR_NOMEMORY</code>
-   * - <code>PP_ERROR_CONTEXT_LOST</code>
-   * Note that the same error code may also be obtained by calling GetError.
-   *
-   * @param[in] context The 3D graphics context.
-   * @param[in] callback The callback that will executed when
-   * <code>SwapBuffers</code> completes.
-   *
-   * @return Returns PP_OK on success or:
-   * - <code>PP_ERROR_BADRESOURCE</code> if context is invalid.
-   * - <code>PP_ERROR_BADARGUMENT</code> if callback is invalid.
-   *
-   */
-  int32_t (*SwapBuffers)(PP_Resource context,
-                         struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_Graphics3D_1_0 PPB_Graphics3D;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_GRAPHICS_3D_H_ */
-
diff --git a/c/ppb_host_resolver.h b/c/ppb_host_resolver.h
deleted file mode 100644
index db49955..0000000
--- a/c/ppb_host_resolver.h
+++ /dev/null
@@ -1,174 +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.
- */
-
-/* From ppb_host_resolver.idl modified Sat Jun 22 11:11:38 2013. */
-
-#ifndef PPAPI_C_PPB_HOST_RESOLVER_H_
-#define PPAPI_C_PPB_HOST_RESOLVER_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/ppb_net_address.h"
-
-#define PPB_HOSTRESOLVER_INTERFACE_1_0 "PPB_HostResolver;1.0"
-#define PPB_HOSTRESOLVER_INTERFACE PPB_HOSTRESOLVER_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_HostResolver</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * <code>PP_HostResolver_Flag</code> is an enumeration of flags which can be
- * OR-ed and passed to the host resolver. Currently there is only one flag
- * defined.
- */
-typedef enum {
-  /**
-   * Hint to request the canonical name of the host, which can be retrieved by
-   * <code>GetCanonicalName()</code>.
-   */
-  PP_HOSTRESOLVER_FLAG_CANONNAME = 1 << 0
-} PP_HostResolver_Flag;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_HostResolver_Flag, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * <code>PP_HostResolver_Hint</code> represents hints for host resolution.
- */
-struct PP_HostResolver_Hint {
-  /**
-   * Network address family.
-   */
-  PP_NetAddress_Family family;
-  /**
-   * Combination of flags from <code>PP_HostResolver_Flag</code>.
-   */
-  int32_t flags;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_HostResolver_Hint, 8);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_HostResolver</code> interface supports host name
- * resolution.
- *
- * Permissions: In order to run <code>Resolve()</code>, apps permission
- * <code>socket</code> with subrule <code>resolve-host</code> is required.
- * For more details about network communication permissions, please see:
- * http://developer.chrome.com/apps/app_network.html
- */
-struct PPB_HostResolver_1_0 {
-  /**
-   * Creates a host resolver resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a host reslover or 0
-   * on failure.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Determines if a given resource is a host resolver.
-   *
-   * @param[in] resource A <code>PP_Resource</code> to check.
-   *
-   * @return <code>PP_TRUE</code> if the input is a
-   * <code>PPB_HostResolver</code> resource; <code>PP_FALSE</code> otherwise.
-   */
-  PP_Bool (*IsHostResolver)(PP_Resource resource);
-  /**
-   * Requests resolution of a host name. If the call completes successfully, the
-   * results can be retrieved by <code>GetCanonicalName()</code>,
-   * <code>GetNetAddressCount()</code> and <code>GetNetAddress()</code>.
-   *
-   * @param[in] host_resolver A <code>PP_Resource</code> corresponding to a host
-   * resolver.
-   * @param[in] host The host name (or IP address literal) to resolve.
-   * @param[in] port The port number to be set in the resulting network
-   * addresses.
-   * @param[in] hint A <code>PP_HostResolver_Hint</code> structure providing
-   * hints for host resolution.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have
-   * required permissions. <code>PP_ERROR_NAME_NOT_RESOLVED</code> will be
-   * returned if the host name couldn't be resolved.
-   */
-  int32_t (*Resolve)(PP_Resource host_resolver,
-                     const char* host,
-                     uint16_t port,
-                     const struct PP_HostResolver_Hint* hint,
-                     struct PP_CompletionCallback callback);
-  /**
-   * Gets the canonical name of the host.
-   *
-   * @param[in] host_resolver A <code>PP_Resource</code> corresponding to a host
-   * resolver.
-   *
-   * @return A string <code>PP_Var</code> on success, which is an empty string
-   * if <code>PP_HOSTRESOLVER_FLAG_CANONNAME</code> is not set in the hint flags
-   * when calling <code>Resolve()</code>; an undefined <code>PP_Var</code> if
-   * there is a pending <code>Resolve()</code> call or the previous
-   * <code>Resolve()</code> call failed.
-   */
-  struct PP_Var (*GetCanonicalName)(PP_Resource host_resolver);
-  /**
-   * Gets the number of network addresses.
-   *
-   * @param[in] host_resolver A <code>PP_Resource</code> corresponding to a host
-   * resolver.
-   *
-   * @return The number of available network addresses on success; 0 if there is
-   * a pending <code>Resolve()</code> call or the previous
-   * <code>Resolve()</code> call failed.
-   */
-  uint32_t (*GetNetAddressCount)(PP_Resource host_resolver);
-  /**
-   * Gets a network address.
-   *
-   * @param[in] host_resolver A <code>PP_Resource</code> corresponding to a host
-   * resolver.
-   * @param[in] index An index indicating which address to return.
-   *
-   * @return A <code>PPB_NetAddress</code> resource on success; 0 if there is a
-   * pending <code>Resolve()</code> call or the previous <code>Resolve()</code>
-   * call failed, or the specified index is out of range.
-   */
-  PP_Resource (*GetNetAddress)(PP_Resource host_resolver, uint32_t index);
-};
-
-typedef struct PPB_HostResolver_1_0 PPB_HostResolver;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_HOST_RESOLVER_H_ */
-
diff --git a/c/ppb_image_data.h b/c/ppb_image_data.h
deleted file mode 100644
index 383cd0f..0000000
--- a/c/ppb_image_data.h
+++ /dev/null
@@ -1,209 +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.
- */
-
-/* From ppb_image_data.idl modified Tue Nov 13 08:48:25 2012. */
-
-#ifndef PPAPI_C_PPB_IMAGE_DATA_H_
-#define PPAPI_C_PPB_IMAGE_DATA_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_IMAGEDATA_INTERFACE_1_0 "PPB_ImageData;1.0"
-#define PPB_IMAGEDATA_INTERFACE PPB_IMAGEDATA_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_ImageData</code> struct for determining how
- * a browser handles image data.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * <code>PP_ImageDataFormat</code> is an enumeration of the different types of
- * image data formats.
- *
- * The third part of each enumeration value describes the memory layout from
- * the lowest address to the highest. For example, BGRA means the B component
- * is stored in the lowest address, no matter what endianness the platform is
- * using.
- *
- * The PREMUL suffix implies pre-multiplied alpha is used. In this mode, the
- * red, green and blue color components of the pixel data supplied to an image
- * data should be pre-multiplied by their alpha value. For example: starting
- * with floating point color components, here is how to convert them to 8-bit
- * premultiplied components for image data:
- *
- * ...components of a pixel, floats ranging from 0 to 1...
- * <code>float red = 1.0f;</code>
- * <code>float green = 0.50f;</code>
- * <code>float blue = 0.0f;</code>
- * <code>float alpha = 0.75f;</code>
- * ...components for image data are 8-bit values ranging from 0 to 255...
- * <code>uint8_t image_data_red_premul = (uint8_t)(red * alpha * 255.0f);
- * </code>
- * <code>uint8_t image_data_green_premul = (uint8_t)(green * alpha * 255.0f);
- * </code>
- * <code>uint8_t image_data_blue_premul = (uint8_t)(blue * alpha * 255.0f);
- * </code>
- * <code>uint8_t image_data_alpha_premul = (uint8_t)(alpha * 255.0f);</code>
- *
- * <strong>Note:</strong> The resulting pre-multiplied red, green and blue
- * components should not be greater than the alpha value.
- */
-typedef enum {
-  PP_IMAGEDATAFORMAT_BGRA_PREMUL,
-  PP_IMAGEDATAFORMAT_RGBA_PREMUL,
-  PP_IMAGEDATAFORMAT_LAST = PP_IMAGEDATAFORMAT_RGBA_PREMUL
-} PP_ImageDataFormat;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_ImageDataFormat, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * The <code>PP_ImageDataDesc</code> structure represents a description of
- * image data.
- */
-struct PP_ImageDataDesc {
-  /**
-   * This value represents one of the image data types in the
-   * <code>PP_ImageDataFormat</code> enum.
-   */
-  PP_ImageDataFormat format;
-  /** This value represents the size of the bitmap in pixels. */
-  struct PP_Size size;
-  /**
-   * This value represents the row width in bytes. This may be different than
-   * width * 4 since there may be padding at the end of the lines.
-   */
-  int32_t stride;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_ImageDataDesc, 16);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_ImageData</code> interface contains pointers to several
- * functions for determining the browser's treatment of image data.
- */
-struct PPB_ImageData_1_0 {
-  /**
-   * GetNativeImageDataFormat() returns the browser's preferred format for
-   * image data. The browser uses this format internally for painting. Other
-   * formats may require internal conversions to paint or may have additional
-   * restrictions depending on the function.
-   *
-   * @return A <code>PP_ImageDataFormat</code> containing the preferred format.
-   */
-  PP_ImageDataFormat (*GetNativeImageDataFormat)(void);
-  /**
-   * IsImageDataFormatSupported() determines if the given image data format is
-   * supported by the browser. Note: <code>PP_IMAGEDATAFORMAT_BGRA_PREMUL</code>
-   * and <code>PP_IMAGEDATAFORMAT_RGBA_PREMUL</code> formats are always
-   * supported. Other image formats do not make this guarantee, and should be
-   * checked first with IsImageDataFormatSupported() before using.
-   *
-   * @param[in] format The image data format.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * image data format is supported by the browser.
-   */
-  PP_Bool (*IsImageDataFormatSupported)(PP_ImageDataFormat format);
-  /**
-   * Create() allocates an image data resource with the given format and size.
-   *
-   * For security reasons, if uninitialized, the bitmap will not contain random
-   * memory, but may contain data from a previous image produced by the same
-   * module if the bitmap was cached and re-used.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] format The desired image data format.
-   * @param[in] size A pointer to a <code>PP_Size</code> containing the image
-   * size.
-   * @param[in] init_to_zero A <code>PP_Bool</code> to determine transparency
-   * at creation.
-   * Set the <code>init_to_zero</code> flag if you want the bitmap initialized
-   * to transparent during the creation process. If this flag is not set, the
-   * current contents of the bitmap will be undefined, and the module should
-   * be sure to set all the pixels.
-   *
-   * @return A <code>PP_Resource</code> with a nonzero ID on success or zero on
-   * failure. Failure means the instance, image size, or format was invalid.
-   */
-  PP_Resource (*Create)(PP_Instance instance,
-                        PP_ImageDataFormat format,
-                        const struct PP_Size* size,
-                        PP_Bool init_to_zero);
-  /**
-   * IsImageData() determines if a given resource is image data.
-   *
-   * @param[in] image_data A <code>PP_Resource</code> corresponding to image
-   * data.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * resource is an image data or <code>PP_FALSE</code> if the resource is
-   * invalid or some type other than image data.
-   */
-  PP_Bool (*IsImageData)(PP_Resource image_data);
-  /**
-   * Describe() computes the description of the
-   * image data.
-   *
-   * @param[in] image_data A <code>PP_Resource</code> corresponding to image
-   * data.
-   * @param[in,out] desc A pointer to a <code>PP_ImageDataDesc</code>
-   * containing the description.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> on success or
-   * <code>PP_FALSE</code> if the resource is not an image data. On
-   * <code>PP_FALSE</code>, the <code>desc</code> structure will be filled
-   * with 0.
-   */
-  PP_Bool (*Describe)(PP_Resource image_data, struct PP_ImageDataDesc* desc);
-  /**
-   * Map() maps an image data into the module address space.
-   *
-   * @param[in] image_data A <code>PP_Resource</code> corresponding to image
-   * data.
-   *
-   * @return A pointer to the beginning of the data.
-   */
-  void* (*Map)(PP_Resource image_data);
-  /**
-   * Unmap is a pointer to a function that unmaps an image data from the module
-   * address space.
-   *
-   * @param[in] image_data A <code>PP_Resource</code> corresponding to image
-   * data.
-   */
-  void (*Unmap)(PP_Resource image_data);
-};
-
-typedef struct PPB_ImageData_1_0 PPB_ImageData;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_IMAGE_DATA_H_ */
-
diff --git a/c/ppb_input_event.h b/c/ppb_input_event.h
deleted file mode 100644
index 4806f08..0000000
--- a/c/ppb_input_event.h
+++ /dev/null
@@ -1,1105 +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.
- */
-
-/* From ppb_input_event.idl modified Tue Oct 24 12:49:54 2017. */
-
-#ifndef PPAPI_C_PPB_INPUT_EVENT_H_
-#define PPAPI_C_PPB_INPUT_EVENT_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-#include "ppapi/c/pp_touch_point.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_INPUT_EVENT_INTERFACE_1_0 "PPB_InputEvent;1.0"
-#define PPB_INPUT_EVENT_INTERFACE PPB_INPUT_EVENT_INTERFACE_1_0
-
-#define PPB_MOUSE_INPUT_EVENT_INTERFACE_1_0 "PPB_MouseInputEvent;1.0"
-#define PPB_MOUSE_INPUT_EVENT_INTERFACE_1_1 "PPB_MouseInputEvent;1.1"
-#define PPB_MOUSE_INPUT_EVENT_INTERFACE PPB_MOUSE_INPUT_EVENT_INTERFACE_1_1
-
-#define PPB_WHEEL_INPUT_EVENT_INTERFACE_1_0 "PPB_WheelInputEvent;1.0"
-#define PPB_WHEEL_INPUT_EVENT_INTERFACE PPB_WHEEL_INPUT_EVENT_INTERFACE_1_0
-
-#define PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_0 "PPB_KeyboardInputEvent;1.0"
-#define PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_2 "PPB_KeyboardInputEvent;1.2"
-#define PPB_KEYBOARD_INPUT_EVENT_INTERFACE \
-    PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_2
-
-#define PPB_TOUCH_INPUT_EVENT_INTERFACE_1_0 "PPB_TouchInputEvent;1.0"
-#define PPB_TOUCH_INPUT_EVENT_INTERFACE_1_4 "PPB_TouchInputEvent;1.4"
-#define PPB_TOUCH_INPUT_EVENT_INTERFACE PPB_TOUCH_INPUT_EVENT_INTERFACE_1_4
-
-#define PPB_IME_INPUT_EVENT_INTERFACE_1_0 "PPB_IMEInputEvent;1.0"
-#define PPB_IME_INPUT_EVENT_INTERFACE PPB_IME_INPUT_EVENT_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the Input Event interfaces.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * This enumeration contains the types of input events.
- */
-typedef enum {
-  PP_INPUTEVENT_TYPE_UNDEFINED = -1,
-  PP_INPUTEVENT_TYPE_FIRST = PP_INPUTEVENT_TYPE_UNDEFINED,
-  /**
-   * Notification that a mouse button was pressed.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_MOUSE class.
-   */
-  PP_INPUTEVENT_TYPE_MOUSEDOWN = 0,
-  /**
-   * Notification that a mouse button was released.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_MOUSE class.
-   */
-  PP_INPUTEVENT_TYPE_MOUSEUP = 1,
-  /**
-   * Notification that a mouse button was moved when it is over the instance
-   * or dragged out of it.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_MOUSE class.
-   */
-  PP_INPUTEVENT_TYPE_MOUSEMOVE = 2,
-  /**
-   * Notification that the mouse entered the instance's bounds.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_MOUSE class.
-   */
-  PP_INPUTEVENT_TYPE_MOUSEENTER = 3,
-  /**
-   * Notification that a mouse left the instance's bounds.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_MOUSE class.
-   */
-  PP_INPUTEVENT_TYPE_MOUSELEAVE = 4,
-  /**
-   * Notification that the scroll wheel was used.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_WHEEL class.
-   */
-  PP_INPUTEVENT_TYPE_WHEEL = 5,
-  /**
-   * Notification that a key transitioned from "up" to "down".
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_KEYBOARD class.
-   */
-  PP_INPUTEVENT_TYPE_RAWKEYDOWN = 6,
-  /**
-   * Notification that a key was pressed. This does not necessarily correspond
-   * to a character depending on the key and language. Use the
-   * PP_INPUTEVENT_TYPE_CHAR for character input.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_KEYBOARD class.
-   */
-  PP_INPUTEVENT_TYPE_KEYDOWN = 7,
-  /**
-   * Notification that a key was released.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_KEYBOARD class.
-   */
-  PP_INPUTEVENT_TYPE_KEYUP = 8,
-  /**
-   * Notification that a character was typed. Use this for text input. Key
-   * down events may generate 0, 1, or more than one character event depending
-   * on the key, locale, and operating system.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_KEYBOARD class.
-   */
-  PP_INPUTEVENT_TYPE_CHAR = 9,
-  /**
-   * Notification that a context menu should be shown.
-   *
-   * This message will be sent when the user right-clicks or performs another
-   * OS-specific mouse command that should open a context menu. When this event
-   * is delivered depends on the system, on some systems (Mac) it will
-   * delivered after the mouse down event, and on others (Windows) it will be
-   * delivered after the mouse up event.
-   *
-   * You will always get the normal mouse events. For example, you may see
-   * MOUSEDOWN,CONTEXTMENU,MOUSEUP or MOUSEDOWN,MOUSEUP,CONTEXTMENU.
-   *
-   * The return value from the event handler determines if the context menu
-   * event will be passed to the page when you are using filtered input events
-   * (via RequestFilteringInputEvents()). In non-filtering mode the event will
-   * never be propagated and no context menu will be displayed. If you are
-   * handling mouse events in filtering mode, you may want to return true from
-   * this event even if you do not support a context menu to suppress the
-   * default one.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_MOUSE class.
-   */
-  PP_INPUTEVENT_TYPE_CONTEXTMENU = 10,
-  /**
-   * Notification that an input method composition process has just started.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_IME class.
-   */
-  PP_INPUTEVENT_TYPE_IME_COMPOSITION_START = 11,
-  /**
-   * Notification that the input method composition string is updated.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_IME class.
-   */
-  PP_INPUTEVENT_TYPE_IME_COMPOSITION_UPDATE = 12,
-  /**
-   * Notification that an input method composition process has completed.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_IME class.
-   */
-  PP_INPUTEVENT_TYPE_IME_COMPOSITION_END = 13,
-  /**
-   * Notification that an input method committed a string.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_IME class.
-   */
-  PP_INPUTEVENT_TYPE_IME_TEXT = 14,
-  /**
-   * Notification that a finger was placed on a touch-enabled device.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_TOUCH class.
-   */
-  PP_INPUTEVENT_TYPE_TOUCHSTART = 15,
-  /**
-   * Notification that a finger was moved on a touch-enabled device.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_TOUCH class.
-   */
-  PP_INPUTEVENT_TYPE_TOUCHMOVE = 16,
-  /**
-   * Notification that a finger was released on a touch-enabled device.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_TOUCH class.
-   */
-  PP_INPUTEVENT_TYPE_TOUCHEND = 17,
-  /**
-   * Notification that a touch event was canceled.
-   *
-   * Register for this event using the PP_INPUTEVENT_CLASS_TOUCH class.
-   */
-  PP_INPUTEVENT_TYPE_TOUCHCANCEL = 18,
-  PP_INPUTEVENT_TYPE_LAST = PP_INPUTEVENT_TYPE_TOUCHCANCEL
-} PP_InputEvent_Type;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_InputEvent_Type, 4);
-
-/**
- * This enumeration contains event modifier constants. Each modifier is one
- * bit. Retrieve the modifiers from an input event using the GetEventModifiers
- * function on PPB_InputEvent.
- */
-typedef enum {
-  PP_INPUTEVENT_MODIFIER_SHIFTKEY = 1 << 0,
-  PP_INPUTEVENT_MODIFIER_CONTROLKEY = 1 << 1,
-  PP_INPUTEVENT_MODIFIER_ALTKEY = 1 << 2,
-  PP_INPUTEVENT_MODIFIER_METAKEY = 1 << 3,
-  PP_INPUTEVENT_MODIFIER_ISKEYPAD = 1 << 4,
-  PP_INPUTEVENT_MODIFIER_ISAUTOREPEAT = 1 << 5,
-  PP_INPUTEVENT_MODIFIER_LEFTBUTTONDOWN = 1 << 6,
-  PP_INPUTEVENT_MODIFIER_MIDDLEBUTTONDOWN = 1 << 7,
-  PP_INPUTEVENT_MODIFIER_RIGHTBUTTONDOWN = 1 << 8,
-  PP_INPUTEVENT_MODIFIER_CAPSLOCKKEY = 1 << 9,
-  PP_INPUTEVENT_MODIFIER_NUMLOCKKEY = 1 << 10,
-  PP_INPUTEVENT_MODIFIER_ISLEFT = 1 << 11,
-  PP_INPUTEVENT_MODIFIER_ISRIGHT = 1 << 12,
-  PP_INPUTEVENT_MODIFIER_ISPEN = 1 << 13,
-  PP_INPUTEVENT_MODIFIER_ISERASER = 1 << 14
-} PP_InputEvent_Modifier;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_InputEvent_Modifier, 4);
-
-/**
- * This enumeration contains constants representing each mouse button. To get
- * the mouse button for a mouse down or up event, use GetMouseButton on
- * PPB_InputEvent.
- */
-typedef enum {
-  PP_INPUTEVENT_MOUSEBUTTON_NONE = -1,
-  PP_INPUTEVENT_MOUSEBUTTON_FIRST = PP_INPUTEVENT_MOUSEBUTTON_NONE,
-  PP_INPUTEVENT_MOUSEBUTTON_LEFT = 0,
-  PP_INPUTEVENT_MOUSEBUTTON_MIDDLE = 1,
-  PP_INPUTEVENT_MOUSEBUTTON_RIGHT = 2,
-  PP_INPUTEVENT_MOUSEBUTTON_LAST = PP_INPUTEVENT_MOUSEBUTTON_RIGHT
-} PP_InputEvent_MouseButton;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_InputEvent_MouseButton, 4);
-
-typedef enum {
-  /**
-   * Request mouse input events.
-   *
-   * Normally you will request mouse events by calling RequestInputEvents().
-   * The only use case for filtered events (via RequestFilteringInputEvents())
-   * is for instances that have irregular outlines and you want to perform hit
-   * testing, which is very uncommon. Requesting non-filtered mouse events will
-   * lead to higher performance.
-   */
-  PP_INPUTEVENT_CLASS_MOUSE = 1 << 0,
-  /**
-   * Requests keyboard events. Often you will want to request filtered mode
-   * (via RequestFilteringInputEvents) for keyboard events so you can pass on
-   * events (by returning false) that you don't handle. For example, if you
-   * don't request filtered mode and the user pressed "Page Down" when your
-   * instance has focus, the page won't scroll which will be a poor experience.
-   *
-   * A small number of tab and window management commands like Alt-F4 are never
-   * sent to the page. You can not request these keyboard commands since it
-   * would allow pages to trap users on a page.
-   */
-  PP_INPUTEVENT_CLASS_KEYBOARD = 1 << 1,
-  /**
-   * Identifies scroll wheel input event. Wheel events must be requested in
-   * filtering mode via RequestFilteringInputEvents(). This is because many
-   * wheel commands should be forwarded to the page.
-   *
-   * Most instances will not need this event. Consuming wheel events by
-   * returning true from your filtered event handler will prevent the user from
-   * scrolling the page when the mouse is over the instance which can be very
-   * annoying.
-   *
-   * If you handle wheel events (for example, you have a document viewer which
-   * the user can scroll), the recommended behavior is to return false only if
-   * the wheel event actually causes your document to scroll. When the user
-   * reaches the end of the document, return false to indicating that the event
-   * was not handled. This will then forward the event to the containing page
-   * for scrolling, producing the nested scrolling behavior users expect from
-   * frames in a page.
-   */
-  PP_INPUTEVENT_CLASS_WHEEL = 1 << 2,
-  /**
-   * Identifies touch input events.
-   *
-   * Request touch events only if you intend to handle them. If the browser
-   * knows you do not need to handle touch events, it can handle them at a
-   * higher level and achieve higher performance. If the plugin does not
-   * register for touch-events, then it will receive synthetic mouse events that
-   * are generated from the touch events (e.g. mouse-down for touch-start,
-   * mouse-move for touch-move (with left-button down), and mouse-up for
-   * touch-end. If the plugin does register for touch events, then the synthetic
-   * mouse events are not created.
-   */
-  PP_INPUTEVENT_CLASS_TOUCH = 1 << 3,
-  /**
-   * Identifies IME composition input events.
-   *
-   * Request this input event class if you allow on-the-spot IME input.
-   */
-  PP_INPUTEVENT_CLASS_IME = 1 << 4,
-  /**
-   * Identifies coalesced touch input events.
-   *
-   * Touch events are coalesced for each frame. By default, the coalesced touch
-   * events will be dropped. Request this input event class if you intend to
-   * handle all the touch events.
-   */
-  PP_INPUTEVENT_CLASS_COALESCED_TOUCH = 1 << 5
-} PP_InputEvent_Class;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_InputEvent_Class, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_InputEvent</code> interface contains pointers to several
- * functions related to generic input events on the browser.
- */
-struct PPB_InputEvent_1_0 {
-  /**
-   * RequestInputEvent() requests that input events corresponding to the given
-   * input events are delivered to the instance.
-   *
-   * It's recommended that you use RequestFilteringInputEvents() for keyboard
-   * events instead of this function so that you don't interfere with normal
-   * browser accelerators.
-   *
-   * By default, no input events are delivered. Call this function with the
-   * classes of events you are interested in to have them be delivered to
-   * the instance. Calling this function will override any previous setting for
-   * each specified class of input events (for example, if you previously
-   * called RequestFilteringInputEvents(), this function will set those events
-   * to non-filtering mode).
-   *
-   * Input events may have high overhead, so you should only request input
-   * events that your plugin will actually handle. For example, the browser may
-   * do optimizations for scroll or touch events that can be processed
-   * substantially faster if it knows there are no non-default receivers for
-   * that message. Requesting that such messages be delivered, even if they are
-   * processed very quickly, may have a noticeable effect on the performance of
-   * the page.
-   *
-   * Note that synthetic mouse events will be generated from touch events if
-   * (and only if) you do not request touch events.
-   *
-   * When requesting input events through this function, the events will be
-   * delivered and <i>not</i> bubbled to the default handlers.
-   *
-   * <strong>Example:</strong>
-   * @code
-   *   RequestInputEvents(instance, PP_INPUTEVENT_CLASS_MOUSE);
-   *   RequestFilteringInputEvents(instance,
-   *       PP_INPUTEVENT_CLASS_WHEEL | PP_INPUTEVENT_CLASS_KEYBOARD);
-   * @endcode
-   *
-   * @param instance The <code>PP_Instance</code> of the instance requesting
-   * the given events.
-   *
-   * @param event_classes A combination of flags from
-   * <code>PP_InputEvent_Class</code> that identifies the classes of events the
-   * instance is requesting. The flags are combined by logically ORing their
-   * values.
-   *
-   * @return <code>PP_OK</code> if the operation succeeded,
-   * <code>PP_ERROR_BADARGUMENT</code> if instance is invalid, or
-   * <code>PP_ERROR_NOTSUPPORTED</code> if one of the event class bits were
-   * illegal. In the case of an invalid bit, all valid bits will be applied
-   * and only the illegal bits will be ignored. The most common cause of a
-   * <code>PP_ERROR_NOTSUPPORTED</code> return value is requesting keyboard
-   * events, these must use RequestFilteringInputEvents().
-   */
-  int32_t (*RequestInputEvents)(PP_Instance instance, uint32_t event_classes);
-  /**
-   * RequestFilteringInputEvents() requests that input events corresponding to
-   * the given input events are delivered to the instance for filtering.
-   *
-   * By default, no input events are delivered. In most cases you would
-   * register to receive events by calling RequestInputEvents(). In some cases,
-   * however, you may wish to filter events such that they can be bubbled up
-   * to the default handlers. In this case, register for those classes of
-   * events using this function instead of RequestInputEvents().
-   *
-   * Filtering input events requires significantly more overhead than just
-   * delivering them to the instance. As such, you should only request
-   * filtering in those cases where it's absolutely necessary. The reason is
-   * that it requires the browser to stop and block for the instance to handle
-   * the input event, rather than sending the input event asynchronously. This
-   * can have significant overhead.
-   *
-   * <strong>Example:</strong>
-   * @code
-   *   RequestInputEvents(instance, PP_INPUTEVENT_CLASS_MOUSE);
-   *   RequestFilteringInputEvents(instance,
-   *       PP_INPUTEVENT_CLASS_WHEEL | PP_INPUTEVENT_CLASS_KEYBOARD);
-   * @endcode
-   *
-   * @return <code>PP_OK</code> if the operation succeeded,
-   * <code>PP_ERROR_BADARGUMENT</code> if instance is invalid, or
-   * <code>PP_ERROR_NOTSUPPORTED</code> if one of the event class bits were
-   * illegal. In the case of an invalid bit, all valid bits will be applied
-   * and only the illegal bits will be ignored.
-   */
-  int32_t (*RequestFilteringInputEvents)(PP_Instance instance,
-                                         uint32_t event_classes);
-  /**
-   * ClearInputEventRequest() requests that input events corresponding to the
-   * given input classes no longer be delivered to the instance.
-   *
-   * By default, no input events are delivered. If you have previously
-   * requested input events via RequestInputEvents() or
-   * RequestFilteringInputEvents(), this function will unregister handling
-   * for the given instance. This will allow greater browser performance for
-   * those events.
-   *
-   * Note that you may still get some input events after clearing the flag if
-   * they were dispatched before the request was cleared. For example, if
-   * there are 3 mouse move events waiting to be delivered, and you clear the
-   * mouse event class during the processing of the first one, you'll still
-   * receive the next two. You just won't get more events generated.
-   *
-   * @param instance The <code>PP_Instance</code> of the instance requesting
-   * to no longer receive the given events.
-   *
-   * @param event_classes A combination of flags from
-   * <code>PP_InputEvent_Class</code> that identify the classes of events the
-   * instance is no longer interested in.
-   */
-  void (*ClearInputEventRequest)(PP_Instance instance, uint32_t event_classes);
-  /**
-   * IsInputEvent() returns true if the given resource is a valid input event
-   * resource.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a generic
-   * resource.
-   *
-   * @return <code>PP_TRUE</code> if the given resource is a valid input event
-   * resource.
-   */
-  PP_Bool (*IsInputEvent)(PP_Resource resource);
-  /**
-   * GetType() returns the type of input event for the given input event
-   * resource.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an input
-   * event.
-   *
-   * @return A <code>PP_InputEvent_Type</code> if its a valid input event or
-   * <code>PP_INPUTEVENT_TYPE_UNDEFINED</code> if the resource is invalid.
-   */
-  PP_InputEvent_Type (*GetType)(PP_Resource event);
-  /**
-   * GetTimeStamp() Returns the time that the event was generated. This will be
-   *  before the current time since processing and dispatching the event has
-   * some overhead. Use this value to compare the times the user generated two
-   * events without being sensitive to variable processing time.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to the event.
-   *
-   * @return The return value is in time ticks, which is a monotonically
-   * increasing clock not related to the wall clock time. It will not change
-   * if the user changes their clock or daylight savings time starts, so can
-   * be reliably used to compare events. This means, however, that you can't
-   * correlate event times to a particular time of day on the system clock.
-   */
-  PP_TimeTicks (*GetTimeStamp)(PP_Resource event);
-  /**
-   * GetModifiers() returns a bitfield indicating which modifiers were down
-   * at the time of the event. This is a combination of the flags in the
-   * <code>PP_InputEvent_Modifier</code> enum.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an input
-   * event.
-   *
-   * @return The modifiers associated with the event, or 0 if the given
-   * resource is not a valid event resource.
-   */
-  uint32_t (*GetModifiers)(PP_Resource event);
-};
-
-typedef struct PPB_InputEvent_1_0 PPB_InputEvent;
-
-/**
- * The <code>PPB_MouseInputEvent</code> interface contains pointers to several
- * functions related to mouse input events.
- */
-struct PPB_MouseInputEvent_1_1 {
-  /**
-   * Create() creates a mouse input event with the given parameters. Normally
-   * you will get a mouse event passed through the
-   * <code>HandleInputEvent</code> and will not need to create them, but some
-   * applications may want to create their own for internal use. The type must
-   * be one of the mouse event types.
-   *
-   * @param[in] instance The instance for which this event occurred.
-   *
-   * @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-   * input event.
-   *
-   * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-   * when the event occurred.
-   *
-   * @param[in] modifiers A bit field combination of the
-   * <code>PP_InputEvent_Modifier</code> flags.
-   *
-   * @param[in] mouse_button The button that changed for mouse down or up
-   * events. This value will be <code>PP_EVENT_MOUSEBUTTON_NONE</code> for
-   * mouse move, enter, and leave events.
-   *
-   * @param[in] mouse_position A <code>Point</code> containing the x and y
-   * position of the mouse when the event occurred.
-   *
-   * @param[in] mouse_movement The change in position of the mouse.
-   *
-   * @return A <code>PP_Resource</code> containing the new mouse input event.
-   */
-  PP_Resource (*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);
-  /**
-   * IsMouseInputEvent() determines if a resource is a mouse event.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an event.
-   *
-   * @return <code>PP_TRUE</code> if the given resource is a valid mouse input
-   * event, otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool (*IsMouseInputEvent)(PP_Resource resource);
-  /**
-   * GetButton() returns the mouse button that generated a mouse down or up
-   * event.
-   *
-   * @param[in] mouse_event A <code>PP_Resource</code> corresponding to a
-   * mouse event.
-   *
-   * @return The mouse button associated with mouse down and up events. This
-   * value will be <code>PP_EVENT_MOUSEBUTTON_NONE</code> for mouse move,
-   * enter, and leave events, and for all non-mouse events.
-   */
-  PP_InputEvent_MouseButton (*GetButton)(PP_Resource mouse_event);
-  /**
-   * GetPosition() returns the pixel location of a mouse input event. When
-   * the mouse is locked, it returns the last known mouse position just as
-   * mouse lock was entered.
-   *
-   * @param[in] mouse_event A <code>PP_Resource</code> corresponding to a
-   * mouse event.
-   *
-   * @return The point associated with the mouse event, relative to the upper-
-   * left of the instance receiving the event. These values can be negative for
-   * mouse drags. The return value will be (0, 0) for non-mouse events.
-   */
-  struct PP_Point (*GetPosition)(PP_Resource mouse_event);
-  int32_t (*GetClickCount)(PP_Resource mouse_event);
-  /**
-   * Returns the change in position of the mouse. When the mouse is locked,
-   * although the mouse position doesn't actually change, this function
-   * still provides movement information, which indicates what the change in
-   * position would be had the mouse not been locked.
-   *
-   * @param[in] mouse_event A <code>PP_Resource</code> corresponding to a
-   * mouse event.
-   *
-   * @return The change in position of the mouse, relative to the previous
-   * position.
-   */
-  struct PP_Point (*GetMovement)(PP_Resource mouse_event);
-};
-
-typedef struct PPB_MouseInputEvent_1_1 PPB_MouseInputEvent;
-
-struct PPB_MouseInputEvent_1_0 {
-  PP_Resource (*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);
-  PP_Bool (*IsMouseInputEvent)(PP_Resource resource);
-  PP_InputEvent_MouseButton (*GetButton)(PP_Resource mouse_event);
-  struct PP_Point (*GetPosition)(PP_Resource mouse_event);
-  int32_t (*GetClickCount)(PP_Resource mouse_event);
-};
-
-/**
- * The <code>PPB_WheelIputEvent</code> interface contains pointers to several
- * functions related to wheel input events.
- */
-struct PPB_WheelInputEvent_1_0 {
-  /**
-   * Create() creates a wheel input event with the given parameters. Normally
-   * you will get a wheel event passed through the
-   * <code>HandleInputEvent</code> and will not need to create them, but some
-   * applications may want to create their own for internal use.
-   *
-   * @param[in] instance The instance for which this event occurred.
-   *
-   * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-   * when the event occurred.
-   *
-   * @param[in] modifiers A bit field combination of the
-   * <code>PP_InputEvent_Modifier</code> flags.
-   *
-   * @param[in] wheel_delta The scroll wheel's horizontal and vertical scroll
-   * amounts.
-   *
-   * @param[in] wheel_ticks The number of "clicks" of the scroll wheel that
-   * have produced the event.
-   *
-   * @param[in] scroll_by_page When true, the user is requesting to scroll
-   * by pages. When false, the user is requesting to scroll by lines.
-   *
-   * @return A <code>PP_Resource</code> containing the new wheel input event.
-   */
-  PP_Resource (*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);
-  /**
-   * IsWheelInputEvent() determines if a resource is a wheel event.
-   *
-   * @param[in] wheel_event A <code>PP_Resource</code> corresponding to an
-   * event.
-   *
-   * @return <code>PP_TRUE</code> if the given resource is a valid wheel input
-   * event.
-   */
-  PP_Bool (*IsWheelInputEvent)(PP_Resource resource);
-  /**
-   * GetDelta() returns the amount vertically and horizontally the user has
-   * requested to scroll by with their mouse wheel. A scroll down or to the
-   * right (where the content moves up or left) is represented as positive
-   * values, and a scroll up or to the left (where the content moves down or
-   * right) is represented as negative values.
-   *
-   * This amount is system dependent and will take into account the user's
-   * preferred scroll sensitivity and potentially also nonlinear acceleration
-   * based on the speed of the scrolling.
-   *
-   * Devices will be of varying resolution. Some mice with large detents will
-   * only generate integer scroll amounts. But fractional values are also
-   * possible, for example, on some trackpads and newer mice that don't have
-   * "clicks".
-   *
-   * @param[in] wheel_event A <code>PP_Resource</code> corresponding to a wheel
-   * event.
-   *
-   * @return The vertical and horizontal scroll values. The units are either in
-   * pixels (when scroll_by_page is false) or pages (when scroll_by_page is
-   * true). For example, y = -3 means scroll up 3 pixels when scroll_by_page
-   * is false, and scroll up 3 pages when scroll_by_page is true.
-   */
-  struct PP_FloatPoint (*GetDelta)(PP_Resource wheel_event);
-  /**
-   * GetTicks() returns the number of "clicks" of the scroll wheel
-   * that have produced the event. The value may have system-specific
-   * acceleration applied to it, depending on the device. The positive and
-   * negative meanings are the same as for GetDelta().
-   *
-   * If you are scrolling, you probably want to use the delta values.  These
-   * tick events can be useful if you aren't doing actual scrolling and don't
-   * want or pixel values. An example may be cycling between different items in
-   * a game.
-   *
-   * @param[in] wheel_event A <code>PP_Resource</code> corresponding to a wheel
-   * event.
-   *
-   * @return The number of "clicks" of the scroll wheel. You may receive
-   * fractional values for the wheel ticks if the mouse wheel is high
-   * resolution or doesn't have "clicks". If your program wants discrete
-   * events (as in the "picking items" example) you should accumulate
-   * fractional click values from multiple messages until the total value
-   * reaches positive or negative one. This should represent a similar amount
-   * of scrolling as for a mouse that has a discrete mouse wheel.
-   */
-  struct PP_FloatPoint (*GetTicks)(PP_Resource wheel_event);
-  /**
-   * GetScrollByPage() indicates if the scroll delta x/y indicates pages or
-   * lines to scroll by.
-   *
-   * @param[in] wheel_event A <code>PP_Resource</code> corresponding to a wheel
-   * event.
-   *
-   * @return <code>PP_TRUE</code> if the event is a wheel event and the user is
-   * scrolling by pages. <code>PP_FALSE</code> if not or if the resource is not
-   * a wheel event.
-   */
-  PP_Bool (*GetScrollByPage)(PP_Resource wheel_event);
-};
-
-typedef struct PPB_WheelInputEvent_1_0 PPB_WheelInputEvent;
-
-/**
- * The <code>PPB_KeyboardInputEvent</code> interface contains pointers to
- * several functions related to keyboard input events.
- */
-struct PPB_KeyboardInputEvent_1_2 {
-  /**
-   * Creates a keyboard input event with the given parameters. Normally you
-   * will get a keyboard event passed through the HandleInputEvent and will not
-   * need to create them, but some applications may want to create their own
-   * for internal use. The type must be one of the keyboard event types.
-   *
-   * @param[in] instance The instance for which this event occurred.
-   *
-   * @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-   * input event.
-   *
-   * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-   * when the event occurred.
-   *
-   * @param[in] modifiers A bit field combination of the
-   * <code>PP_InputEvent_Modifier</code> flags.
-   *
-   * @param[in] key_code This value reflects the DOM KeyboardEvent
-   * <code>keyCode</code> field, which is the Windows-style Virtual Key
-   * code of the key.
-   *
-   * @param[in] character_text This value represents the typed character as a
-   * UTF-8 string.
-   *
-   * @param[in] code This value represents the DOM3 |code| string that
-   * corresponds to the physical key being pressed.
-   *
-   * @return A <code>PP_Resource</code> containing the new keyboard input
-   * event.
-   */
-  PP_Resource (*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);
-  /**
-   * IsKeyboardInputEvent() determines if a resource is a keyboard event.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an event.
-   *
-   * @return <code>PP_TRUE</code> if the given resource is a valid input event.
-   */
-  PP_Bool (*IsKeyboardInputEvent)(PP_Resource resource);
-  /**
-   * GetKeyCode() returns the DOM keyCode field for the keyboard event.
-   * Chrome populates this with the Windows-style Virtual Key code of the key.
-   *
-   * @param[in] key_event A <code>PP_Resource</code> corresponding to a
-   * keyboard event.
-   *
-   * @return The DOM keyCode field for the keyboard event.
-   */
-  uint32_t (*GetKeyCode)(PP_Resource key_event);
-  /**
-   * GetCharacterText() returns the typed character as a UTF-8 string for the
-   * given character event.
-   *
-   * @param[in] character_event A <code>PP_Resource</code> corresponding to a
-   * keyboard event.
-   *
-   * @return A string var representing a single typed character for character
-   * input events. For non-character input events the return value will be an
-   * undefined var.
-   */
-  struct PP_Var (*GetCharacterText)(PP_Resource character_event);
-  /**
-   * GetCode() returns the DOM |code| field for this keyboard event, as
-   * defined in the DOM3 Events spec:
-   * http://www.w3.org/TR/DOM-Level-3-Events/
-   *
-   * @param[in] key_event The key event for which to return the key code.
-   *
-   * @return The string that contains the DOM |code| for the keyboard event.
-   */
-  struct PP_Var (*GetCode)(PP_Resource key_event);
-};
-
-typedef struct PPB_KeyboardInputEvent_1_2 PPB_KeyboardInputEvent;
-
-struct PPB_KeyboardInputEvent_1_0 {
-  PP_Resource (*Create)(PP_Instance instance,
-                        PP_InputEvent_Type type,
-                        PP_TimeTicks time_stamp,
-                        uint32_t modifiers,
-                        uint32_t key_code,
-                        struct PP_Var character_text);
-  PP_Bool (*IsKeyboardInputEvent)(PP_Resource resource);
-  uint32_t (*GetKeyCode)(PP_Resource key_event);
-  struct PP_Var (*GetCharacterText)(PP_Resource character_event);
-};
-/**
- * @}
- */
-
-/**
- * @addtogroup Enums
- * @{
- */
-typedef enum {
-  /**
-   * The list of all TouchPoints which are currently down.
-   */
-  PP_TOUCHLIST_TYPE_TOUCHES = 0,
-  /**
-   * The list of all TouchPoints whose state has changed since the last
-   * TouchInputEvent.
-   */
-  PP_TOUCHLIST_TYPE_CHANGEDTOUCHES = 1,
-  /**
-   * The list of all TouchPoints which are targeting this plugin.  This is a
-   * subset of Touches.
-   */
-  PP_TOUCHLIST_TYPE_TARGETTOUCHES = 2
-} PP_TouchListType;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_TouchListType, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_TouchInputEvent</code> interface contains pointers to several
- * functions related to touch events.
- */
-struct PPB_TouchInputEvent_1_4 {
-  /**
-   * Creates a touch input event with the given parameters. Normally you
-   * will get a touch event passed through the HandleInputEvent and will not
-   * need to create them, but some applications may want to create their own
-   * for internal use. The type must be one of the touch event types.
-   * This newly created touch input event does not have any touch point in any
-   * of the touch-point lists. <code>AddTouchPoint</code> should be called to
-   * add the touch-points.
-   *
-   * @param[in] instance The instance for which this event occurred.
-   *
-   * @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-   * input event.
-   *
-   * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-   * when the event occurred.
-   *
-   * @param[in]  modifiers A bit field combination of the
-   * <code>PP_InputEvent_Modifier</code> flags.
-   *
-   * @return A <code>PP_Resource</code> containing the new touch input event.
-   */
-  PP_Resource (*Create)(PP_Instance instance,
-                        PP_InputEvent_Type type,
-                        PP_TimeTicks time_stamp,
-                        uint32_t modifiers);
-  /**
-   * Adds a touch point to the touch event in the specified touch-list.
-   *
-   * @param[in] touch_event A <code>PP_Resource</code> corresponding to a touch
-   * event.
-   *
-   * @param[in] list The list to add the touch point to.
-   *
-   * @param[in] point The point to add to the list.
-   */
-  void (*AddTouchPoint)(PP_Resource touch_event,
-                        PP_TouchListType list,
-                        const struct PP_TouchPoint* point);
-  /**
-   * IsTouchInputEvent() determines if a resource is a touch event.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an event.
-   *
-   * @return <code>PP_TRUE</code> if the given resource is a valid touch input
-   * event, otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool (*IsTouchInputEvent)(PP_Resource resource);
-  /**
-   * Returns the number of touch-points in the specified list.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a touch
-   * event.
-   *
-   * @param[in] list The list.
-   *
-   * @return The number of touch-points in the specified list.
-   */
-  uint32_t (*GetTouchCount)(PP_Resource resource, PP_TouchListType list);
-  /**
-   * Returns the touch-point at the specified index from the specified list.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a touch
-   * event.
-   *
-   * @param[in] list The list.
-   *
-   * @param[in] index The index.
-   *
-   * @return A <code>PP_TouchPoint</code> representing the touch-point.
-   */
-  struct PP_TouchPoint (*GetTouchByIndex)(PP_Resource resource,
-                                          PP_TouchListType list,
-                                          uint32_t index);
-  /**
-   * Returns the touch-point with the specified touch-id in the specified list.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a touch
-   * event.
-   *
-   * @param[in] list The list.
-   *
-   * @param[in] touch_id The id of the touch-point.
-   *
-   * @return A <code>PP_TouchPoint</code> representing the touch-point.
-   */
-  struct PP_TouchPoint (*GetTouchById)(PP_Resource resource,
-                                       PP_TouchListType list,
-                                       uint32_t touch_id);
-  /**
-   * Returns the touch-tilt with the specified index in the specified list.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a touch
-   * event.
-   *
-   * @param[in] list The list.
-   *
-   * @param[in] index The index.
-   *
-   * @return A <code>PP_FloatPoint</code> representing the tilt of the
-   * touch-point.
-   */
-  struct PP_FloatPoint (*GetTouchTiltByIndex)(PP_Resource resource,
-                                              PP_TouchListType list,
-                                              uint32_t index);
-  /**
-   * Returns the touch-tilt with the specified touch-id in the specified list.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a touch
-   * event.
-   *
-   * @param[in] list The list.
-   *
-   * @param[in] touch_id The id of the touch-point.
-   *
-   * @return A <code>PP_FloatPoint</code> representing the tilt of the
-   * touch-point.
-   */
-  struct PP_FloatPoint (*GetTouchTiltById)(PP_Resource resource,
-                                           PP_TouchListType list,
-                                           uint32_t touch_id);
-};
-
-typedef struct PPB_TouchInputEvent_1_4 PPB_TouchInputEvent;
-
-struct PPB_TouchInputEvent_1_0 {
-  PP_Resource (*Create)(PP_Instance instance,
-                        PP_InputEvent_Type type,
-                        PP_TimeTicks time_stamp,
-                        uint32_t modifiers);
-  void (*AddTouchPoint)(PP_Resource touch_event,
-                        PP_TouchListType list,
-                        const struct PP_TouchPoint* point);
-  PP_Bool (*IsTouchInputEvent)(PP_Resource resource);
-  uint32_t (*GetTouchCount)(PP_Resource resource, PP_TouchListType list);
-  struct PP_TouchPoint (*GetTouchByIndex)(PP_Resource resource,
-                                          PP_TouchListType list,
-                                          uint32_t index);
-  struct PP_TouchPoint (*GetTouchById)(PP_Resource resource,
-                                       PP_TouchListType list,
-                                       uint32_t touch_id);
-};
-
-struct PPB_IMEInputEvent_1_0 {
-  /**
-   * Create() creates an IME input event with the given parameters. Normally
-   * you will get an IME event passed through the <code>HandleInputEvent</code>
-   * and will not need to create them, but some applications may want to create
-   * their own for internal use.
-   *
-   * @param[in] instance The instance for which this event occurred.
-   *
-   * @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-   * input event. The type must be one of the IME event types.
-   *
-   * @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-   * when the event occurred.
-   *
-   * @param[in] text The string returned by <code>GetText</code>.
-   *
-   * @param[in] segment_number The number returned by
-   * <code>GetSegmentNumber</code>.
-   *
-   * @param[in] segment_offsets The array of numbers returned by
-   * <code>GetSegmentOffset</code>. If <code>segment_number</code> is zero,
-   * the number of elements of the array should be zero. If
-   * <code>segment_number</code> is non-zero, the length of the array must be
-   * <code>segment_number</code> + 1.
-   *
-   * @param[in] target_segment The number returned by
-   * <code>GetTargetSegment</code>.
-   *
-   * @param[in] selection_start The start index returned by
-   * <code>GetSelection</code>.
-   *
-   * @param[in] selection_end The end index returned by
-   * <code>GetSelection</code>.
-   *
-   * @return A <code>PP_Resource</code> containing the new IME input event.
-   */
-  PP_Resource (*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);
-  /**
-   * IsIMEInputEvent() determines if a resource is an IME event.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an event.
-   *
-   * @return <code>PP_TRUE</code> if the given resource is a valid input event.
-   */
-  PP_Bool (*IsIMEInputEvent)(PP_Resource resource);
-  /**
-   * GetText() returns the composition text as a UTF-8 string for the given IME
-   * event.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @return A string var representing the composition text. For non-IME input
-   * events the return value will be an undefined var.
-   */
-  struct PP_Var (*GetText)(PP_Resource ime_event);
-  /**
-   * GetSegmentNumber() returns the number of segments in the composition text.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @return The number of segments. For events other than COMPOSITION_UPDATE,
-   * returns 0.
-   */
-  uint32_t (*GetSegmentNumber)(PP_Resource ime_event);
-  /**
-   * GetSegmentOffset() returns the position of the index-th segmentation point
-   * in the composition text. The position is given by a byte-offset (not a
-   * character-offset) of the string returned by GetText(). It always satisfies
-   * 0=GetSegmentOffset(0) < ... < GetSegmentOffset(i) < GetSegmentOffset(i+1)
-   * < ... < GetSegmentOffset(GetSegmentNumber())=(byte-length of GetText()).
-   * Note that [GetSegmentOffset(i), GetSegmentOffset(i+1)) represents the range
-   * of the i-th segment, and hence GetSegmentNumber() can be a valid argument
-   * to this function instead of an off-by-1 error.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @param[in] index An integer indicating a segment.
-   *
-   * @return The byte-offset of the segmentation point. If the event is not
-   * COMPOSITION_UPDATE or index is out of range, returns 0.
-   */
-  uint32_t (*GetSegmentOffset)(PP_Resource ime_event, uint32_t index);
-  /**
-   * GetTargetSegment() returns the index of the current target segment of
-   * composition.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @return An integer indicating the index of the target segment. When there
-   * is no active target segment, or the event is not COMPOSITION_UPDATE,
-   * returns -1.
-   */
-  int32_t (*GetTargetSegment)(PP_Resource ime_event);
-  /**
-   * GetSelection() returns the range selected by caret in the composition text.
-   *
-   * @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-   * event.
-   *
-   * @param[out] start The start position of the current selection.
-   *
-   * @param[out] end The end position of the current selection.
-   */
-  void (*GetSelection)(PP_Resource ime_event, uint32_t* start, uint32_t* end);
-};
-
-typedef struct PPB_IMEInputEvent_1_0 PPB_IMEInputEvent;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_INPUT_EVENT_H_ */
-
diff --git a/c/ppb_instance.h b/c/ppb_instance.h
deleted file mode 100644
index 652edcf..0000000
--- a/c/ppb_instance.h
+++ /dev/null
@@ -1,86 +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.
- */
-
-/* From ppb_instance.idl modified Fri Dec 07 12:57:46 2012. */
-
-#ifndef PPAPI_C_PPB_INSTANCE_H_
-#define PPAPI_C_PPB_INSTANCE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_INSTANCE_INTERFACE_1_0 "PPB_Instance;1.0"
-#define PPB_INSTANCE_INTERFACE PPB_INSTANCE_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_Instance</code> interface implemented by the
- * browser and containing pointers to functions related to
- * the module instance on a web page.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The PPB_Instance interface contains pointers to functions
- * related to the module instance on a web page.
- */
-struct PPB_Instance_1_0 {
-  /**
-   * BindGraphics() binds the given graphics as the current display surface.
-   * The contents of this device is what will be displayed in the instance's
-   * area on the web page. The device must be a 2D or a 3D device.
-   *
-   * You can pass a <code>NULL</code> resource as the device parameter to
-   * unbind all devices from the given instance. The instance will then appear
-   * transparent. Re-binding the same device will return <code>PP_TRUE</code>
-   * and will do nothing.
-   *
-   * Any previously-bound device will be released. It is an error to bind
-   * a device when it is already bound to another instance. If you want
-   * to move a device between instances, first unbind it from the old one, and
-   * then rebind it to the new one.
-   *
-   * Binding a device will invalidate that portion of the web page to flush the
-   * contents of the new device to the screen.
-   *
-   * @param[in] instance A PP_Instance identifying one instance of a module.
-   * @param[in] device A PP_Resource corresponding to a graphics device.
-   *
-   * @return <code>PP_Bool</code> containing <code>PP_TRUE</code> if bind was
-   * successful or <code>PP_FALSE</code> if the device was not the correct
-   * type. On success, a reference to the device will be held by the
-   * instance, so the caller can release its reference if it chooses.
-   */
-  PP_Bool (*BindGraphics)(PP_Instance instance, PP_Resource device);
-  /**
-   * IsFullFrame() determines if the instance is full-frame. Such an instance
-   * represents the entire document in a frame rather than an embedded
-   * resource. This can happen if the user does a top-level navigation or the
-   * page specifies an iframe to a resource with a MIME type registered by the
-   * module.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if the
-   * instance is full-frame.
-   */
-  PP_Bool (*IsFullFrame)(PP_Instance instance);
-};
-
-typedef struct PPB_Instance_1_0 PPB_Instance;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_INSTANCE_H_ */
-
diff --git a/c/ppb_media_stream_audio_track.h b/c/ppb_media_stream_audio_track.h
deleted file mode 100644
index 124dcd7..0000000
--- a/c/ppb_media_stream_audio_track.h
+++ /dev/null
@@ -1,215 +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.
- */
-
-/* From ppb_media_stream_audio_track.idl modified Wed May 28 09:36:15 2014. */
-
-#ifndef PPAPI_C_PPB_MEDIA_STREAM_AUDIO_TRACK_H_
-#define PPAPI_C_PPB_MEDIA_STREAM_AUDIO_TRACK_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_MEDIASTREAMAUDIOTRACK_INTERFACE_0_1 "PPB_MediaStreamAudioTrack;0.1"
-#define PPB_MEDIASTREAMAUDIOTRACK_INTERFACE \
-    PPB_MEDIASTREAMAUDIOTRACK_INTERFACE_0_1
-
-/**
- * @file
- * Defines the <code>PPB_MediaStreamAudioTrack</code> interface. Used for
- * receiving audio samples from a MediaStream audio track in the browser.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * This enumeration contains audio track attributes which are used by
- * <code>Configure()</code>.
- */
-typedef enum {
-  /**
-   * Attribute list terminator.
-   */
-  PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE = 0,
-  /**
-   * The maximum number of buffers to hold audio samples.
-   * Note: this is only used as advisory; the browser may allocate more or fewer
-   * based on available resources. How many buffers depends on usage -
-   * request at least 2 to make sure latency doesn't cause lost samples. If
-   * the plugin expects to hold on to more than one buffer at a time (e.g. to do
-   * multi-buffer processing), it should request that many more.
-   */
-  PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS = 1,
-  /**
-   * The sample rate of audio data in buffers. The attribute value is a
-   * <code>PP_AudioBuffer_SampleRate</code>.
-   */
-  PP_MEDIASTREAMAUDIOTRACK_ATTRIB_SAMPLE_RATE = 2,
-  /**
-   * The sample size of audio data in buffers in bytes. The attribute value is a
-   * <code>PP_AudioBuffer_SampleSize</code>.
-   */
-  PP_MEDIASTREAMAUDIOTRACK_ATTRIB_SAMPLE_SIZE = 3,
-  /**
-   * The number of channels in audio buffers.
-   *
-   * Supported values: 1, 2
-   */
-  PP_MEDIASTREAMAUDIOTRACK_ATTRIB_CHANNELS = 4,
-  /**
-   * The duration of an audio buffer in milliseconds.
-   *
-   * Valid range: 10 to 10000
-   */
-  PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION = 5
-} PP_MediaStreamAudioTrack_Attrib;
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_MediaStreamAudioTrack_0_1 {
-  /**
-   * Determines if a resource is a MediaStream audio track resource.
-   *
-   * @param[in] resource The <code>PP_Resource</code> to test.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * resource is a Mediastream audio track resource or <code>PP_FALSE</code>
-   * otherwise.
-   */
-  PP_Bool (*IsMediaStreamAudioTrack)(PP_Resource resource);
-  /**
-   * Configures underlying buffers for incoming audio samples.
-   * If the application doesn't want to drop samples, then the
-   * <code>PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS</code> should be
-   * chosen such that inter-buffer processing time variability won't overrun all
-   * the input buffers. If all buffers are filled, then samples will be
-   * dropped. The application can detect this by examining the timestamp on
-   * returned buffers. If <code>Configure()</code> is not called, default
-   * settings will be used. Calls to Configure while the plugin holds
-   * buffers will fail.
-   * Example usage from plugin code:
-   * @code
-   * int32_t attribs[] = {
-   *     PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS, 4,
-   *     PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION, 10,
-   *     PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE};
-   * track_if->Configure(track, attribs, callback);
-   * @endcode
-   *
-   * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
-   * resource.
-   * @param[in] attrib_list A list of attribute name-value pairs in which each
-   * attribute is immediately followed by the corresponding desired value.
-   * The list is terminated by
-   * <code>PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of <code>Configure()</code>.
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   */
-  int32_t (*Configure)(PP_Resource audio_track,
-                       const int32_t attrib_list[],
-                       struct PP_CompletionCallback callback);
-  /**
-   * Gets attribute value for a given attribute name.
-   *
-   * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
-   * resource.
-   * @param[in] attrib A <code>PP_MediaStreamAudioTrack_Attrib</code> for
-   * querying.
-   * @param[out] value A int32_t for storing the attribute value on success.
-   * Otherwise, the value will not be changed.
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   */
-  int32_t (*GetAttrib)(PP_Resource audio_track,
-                       PP_MediaStreamAudioTrack_Attrib attrib,
-                       int32_t* value);
-  /**
-   * Returns the track ID of the underlying MediaStream audio track.
-   *
-   * @param[in] audio_track The <code>PP_Resource</code> to check.
-   *
-   * @return A <code>PP_Var</code> containing the MediaStream track ID as
-   * a string.
-   */
-  struct PP_Var (*GetId)(PP_Resource audio_track);
-  /**
-   * Checks whether the underlying MediaStream track has ended.
-   * Calls to GetBuffer while the track has ended are safe to make and will
-   * complete, but will fail.
-   *
-   * @param[in] audio_track The <code>PP_Resource</code> to check.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * MediaStream track has ended or <code>PP_FALSE</code> otherwise.
-   */
-  PP_Bool (*HasEnded)(PP_Resource audio_track);
-  /**
-   * Gets the next audio buffer from the MediaStream track.
-   * If internal processing is slower than the incoming buffer rate, new buffers
-   * will be dropped from the incoming stream. Once all buffers are full,
-   * audio samples will be dropped until <code>RecycleBuffer()</code> is called
-   * to free a slot for another buffer.
-   * If there are no audio data in the input buffer,
-   * <code>PP_OK_COMPLETIONPENDING</code> will be returned immediately and the
-   * <code>callback</code> will be called, when a new buffer of audio samples
-   * is received or an error happens.
-   *
-   * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
-   * resource.
-   * @param[out] buffer A <code>PP_Resource</code> corresponding to
-   * an AudioBuffer resource.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of GetBuffer().
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   */
-  int32_t (*GetBuffer)(PP_Resource audio_track,
-                       PP_Resource* buffer,
-                       struct PP_CompletionCallback callback);
-  /**
-   * Recycles a buffer returned by <code>GetBuffer()</code>, so the track can
-   * reuse the buffer. And the buffer will become invalid. The caller should
-   * release all references it holds to <code>buffer</code> and not use it
-   * anymore.
-   *
-   * @param[in] audio_track A <code>PP_Resource</code> corresponding to an audio
-   * resource.
-   * @param[in] buffer A <code>PP_Resource</code> corresponding to
-   * an AudioBuffer resource returned by <code>GetBuffer()</code>.
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   */
-  int32_t (*RecycleBuffer)(PP_Resource audio_track, PP_Resource buffer);
-  /**
-   * Closes the MediaStream audio track and disconnects it from the audio
-   * source. After calling <code>Close()</code>, no new buffers will be
-   * received.
-   *
-   * @param[in] audio_track A <code>PP_Resource</code> corresponding to a
-   * MediaStream audio track resource.
-   */
-  void (*Close)(PP_Resource audio_track);
-};
-
-typedef struct PPB_MediaStreamAudioTrack_0_1 PPB_MediaStreamAudioTrack;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_MEDIA_STREAM_AUDIO_TRACK_H_ */
-
diff --git a/c/ppb_media_stream_video_track.h b/c/ppb_media_stream_video_track.h
deleted file mode 100644
index 28e514c..0000000
--- a/c/ppb_media_stream_video_track.h
+++ /dev/null
@@ -1,275 +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.
- */
-
-/* From ppb_media_stream_video_track.idl modified Mon Apr  7 15:25:56 2014. */
-
-#ifndef PPAPI_C_PPB_MEDIA_STREAM_VIDEO_TRACK_H_
-#define PPAPI_C_PPB_MEDIA_STREAM_VIDEO_TRACK_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_0_1 "PPB_MediaStreamVideoTrack;0.1"
-#define PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_1_0 \
-    "PPB_MediaStreamVideoTrack;1.0" /* dev */
-#define PPB_MEDIASTREAMVIDEOTRACK_INTERFACE \
-    PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_0_1
-
-/**
- * @file
- * Defines the <code>PPB_MediaStreamVideoTrack</code> interface. Used for
- * receiving video frames from a MediaStream video track in the browser.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * This enumeration contains video track attributes which are used by
- * <code>Configure()</code>.
- */
-typedef enum {
-  /**
-   * Attribute list terminator.
-   */
-  PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE = 0,
-  /**
-   * The maximum number of frames to hold in the input buffer.
-   * Note: this is only used as advisory; the browser may allocate more or fewer
-   * based on available resources. How many frames to buffer depends on usage -
-   * request at least 2 to make sure latency doesn't cause lost frames. If
-   * the plugin expects to hold on to more than one frame at a time (e.g. to do
-   * multi-frame processing), it should request that many more.
-   * If this attribute is not specified or value 0 is specified for this
-   * attribute, the default value will be used.
-   */
-  PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES = 1,
-  /**
-   * The width of video frames in pixels. It should be a multiple of 4.
-   * If the specified size is different from the video source (webcam),
-   * frames will be scaled to specified size.
-   * If this attribute is not specified or value 0 is specified, the original
-   * frame size of the video track will be used.
-   *
-   * Maximum value: 4096 (4K resolution).
-   */
-  PP_MEDIASTREAMVIDEOTRACK_ATTRIB_WIDTH = 2,
-  /**
-   * The height of video frames in pixels. It should be a multiple of 4.
-   * If the specified size is different from the video source (webcam),
-   * frames will be scaled to specified size.
-   * If this attribute is not specified or value 0 is specified, the original
-   * frame size of the video track will be used.
-   *
-   * Maximum value: 4096 (4K resolution).
-   */
-  PP_MEDIASTREAMVIDEOTRACK_ATTRIB_HEIGHT = 3,
-  /**
-   * The format of video frames. The attribute value is
-   * a <code>PP_VideoFrame_Format</code>. If the specified format is different
-   * from the video source (webcam), frames will be converted to specified
-   * format.
-   * If this attribute is not specified or value
-   * <code>PP_VIDEOFRAME_FORMAT_UNKNOWN</code> is specified, the orignal frame
-   * format of the video track will be used.
-   */
-  PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT = 4
-} PP_MediaStreamVideoTrack_Attrib;
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_MediaStreamVideoTrack_1_0 { /* dev */
-  /**
-   * Creates a PPB_MediaStreamVideoTrack resource for video output. Call this
-   * when you will be creating frames and putting them to the track.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a
-   * PPB_MediaStreamVideoTrack resource if successful, 0 if failed.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Determines if a resource is a MediaStream video track resource.
-   *
-   * @param[in] resource The <code>PP_Resource</code> to test.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * resource is a Mediastream video track resource or <code>PP_FALSE</code>
-   * otherwise.
-   */
-  PP_Bool (*IsMediaStreamVideoTrack)(PP_Resource resource);
-  /**
-   * Configures underlying frame buffers for incoming frames.
-   * If the application doesn't want to drop frames, then the
-   * <code>PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES</code> should be
-   * chosen such that inter-frame processing time variability won't overrun the
-   * input buffer. If the buffer is overfilled, then frames will be dropped.
-   * The application can detect this by examining the timestamp on returned
-   * frames. If some attributes are not specified, default values will be used
-   * for those unspecified attributes. If <code>Configure()</code> is not
-   * called, default settings will be used.
-   * Example usage from plugin code:
-   * @code
-   * int32_t attribs[] = {
-   *     PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES, 4,
-   *     PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE};
-   * track_if->Configure(track, attribs, callback);
-   * @endcode
-   *
-   * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
-   * resource.
-   * @param[in] attrib_list A list of attribute name-value pairs in which each
-   * attribute is immediately followed by the corresponding desired value.
-   * The list is terminated by
-   * <code>PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE</code>.
-   * @param[in] callback <code>PP_CompletionCallback</code> to be called upon
-   * completion of <code>Configure()</code>.
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   * Returns <code>PP_ERROR_INPROGRESS</code> if there is a pending call of
-   * <code>Configure()</code> or <code>GetFrame()</code>, or the plugin
-   * holds some frames which are not recycled with <code>RecycleFrame()</code>.
-   * If an error is returned, all attributes and the underlying buffer will not
-   * be changed.
-   */
-  int32_t (*Configure)(PP_Resource video_track,
-                       const int32_t attrib_list[],
-                       struct PP_CompletionCallback callback);
-  /**
-   * Gets attribute value for a given attribute name.
-   *
-   * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
-   * resource.
-   * @param[in] attrib A <code>PP_MediaStreamVideoTrack_Attrib</code> for
-   * querying.
-   * @param[out] value A int32_t for storing the attribute value on success.
-   * Otherwise, the value will not be changed.
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   */
-  int32_t (*GetAttrib)(PP_Resource video_track,
-                       PP_MediaStreamVideoTrack_Attrib attrib,
-                       int32_t* value);
-  /**
-   * Returns the track ID of the underlying MediaStream video track.
-   *
-   * @param[in] video_track The <code>PP_Resource</code> to check.
-   *
-   * @return A <code>PP_Var</code> containing the MediaStream track ID as
-   * a string.
-   */
-  struct PP_Var (*GetId)(PP_Resource video_track);
-  /**
-   * Checks whether the underlying MediaStream track has ended.
-   * Calls to GetFrame while the track has ended are safe to make and will
-   * complete, but will fail.
-   *
-   * @param[in] video_track The <code>PP_Resource</code> to check.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * MediaStream track has ended or <code>PP_FALSE</code> otherwise.
-   */
-  PP_Bool (*HasEnded)(PP_Resource video_track);
-  /**
-   * Gets the next video frame from the MediaStream track.
-   * If internal processing is slower than the incoming frame rate, new frames
-   * will be dropped from the incoming stream. Once the input buffer is full,
-   * frames will be dropped until <code>RecycleFrame()</code> is called to free
-   * a spot for another frame to be buffered.
-   * If there are no frames in the input buffer,
-   * <code>PP_OK_COMPLETIONPENDING</code> will be returned immediately and the
-   * <code>callback</code> will be called when a new frame is received or an
-   * error happens.
-   *
-   * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
-   * resource.
-   * @param[out] frame A <code>PP_Resource</code> corresponding to a VideoFrame
-   * resource.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of GetFrame().
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_NOMEMORY if <code>max_buffered_frames</code> frames buffer
-   * was not allocated successfully.
-   */
-  int32_t (*GetFrame)(PP_Resource video_track,
-                      PP_Resource* frame,
-                      struct PP_CompletionCallback callback);
-  /**
-   * Recycles a frame returned by <code>GetFrame()</code>, so the track can
-   * reuse the underlying buffer of this frame. And the frame will become
-   * invalid. The caller should release all references it holds to
-   * <code>frame</code> and not use it anymore.
-   *
-   * @param[in] video_track A <code>PP_Resource</code> corresponding to a video
-   * resource.
-   * @param[in] frame A <code>PP_Resource</code> corresponding to a VideoFrame
-   * resource returned by <code>GetFrame()</code>.
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   */
-  int32_t (*RecycleFrame)(PP_Resource video_track, PP_Resource frame);
-  /**
-   * Closes the MediaStream video track and disconnects it from video source.
-   * After calling <code>Close()</code>, no new frames will be received.
-   *
-   * @param[in] video_track A <code>PP_Resource</code> corresponding to a
-   * MediaStream video track resource.
-   */
-  void (*Close)(PP_Resource video_track);
-  /**
-   * Gets a free frame for output. The frame is allocated by
-   * <code>Configure()</code>. The caller should fill it with frame data, and
-   * then use |PutFrame()| to send the frame back.
-   */
-  int32_t (*GetEmptyFrame)(PP_Resource video_track,
-                           PP_Resource* frame,
-                           struct PP_CompletionCallback callback);
-  /**
-   * Sends a frame returned by |GetEmptyFrame()| to the output track.
-   * After this function, the |frame| should not be used anymore and the
-   * caller should release the reference that it holds.
-   */
-  int32_t (*PutFrame)(PP_Resource video_track, PP_Resource frame);
-};
-
-struct PPB_MediaStreamVideoTrack_0_1 {
-  PP_Bool (*IsMediaStreamVideoTrack)(PP_Resource resource);
-  int32_t (*Configure)(PP_Resource video_track,
-                       const int32_t attrib_list[],
-                       struct PP_CompletionCallback callback);
-  int32_t (*GetAttrib)(PP_Resource video_track,
-                       PP_MediaStreamVideoTrack_Attrib attrib,
-                       int32_t* value);
-  struct PP_Var (*GetId)(PP_Resource video_track);
-  PP_Bool (*HasEnded)(PP_Resource video_track);
-  int32_t (*GetFrame)(PP_Resource video_track,
-                      PP_Resource* frame,
-                      struct PP_CompletionCallback callback);
-  int32_t (*RecycleFrame)(PP_Resource video_track, PP_Resource frame);
-  void (*Close)(PP_Resource video_track);
-};
-
-typedef struct PPB_MediaStreamVideoTrack_0_1 PPB_MediaStreamVideoTrack;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_MEDIA_STREAM_VIDEO_TRACK_H_ */
-
diff --git a/c/ppb_message_loop.h b/c/ppb_message_loop.h
deleted file mode 100644
index 8ed7557..0000000
--- a/c/ppb_message_loop.h
+++ /dev/null
@@ -1,291 +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.
- */
-
-/* From ppb_message_loop.idl modified Thu May  9 14:59:57 2013. */
-
-#ifndef PPAPI_C_PPB_MESSAGE_LOOP_H_
-#define PPAPI_C_PPB_MESSAGE_LOOP_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_MESSAGELOOP_INTERFACE_1_0 "PPB_MessageLoop;1.0"
-#define PPB_MESSAGELOOP_INTERFACE PPB_MESSAGELOOP_INTERFACE_1_0
-
-/**
- * @file
- * Defines the PPB_MessageLoop interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * A message loop allows PPAPI calls to be issued on a thread. You may not
- * issue any API calls on a thread without creating a message loop. It also
- * allows you to post work to the message loop for a thread.
- *
- * To process work posted to the message loop, as well as completion callbacks
- * for asynchronous operations, you must run the message loop via Run().
- *
- * Note the system manages the lifetime of the instance (and all associated
- * resources). If the instance is deleted from the page, background threads may
- * suddenly see their PP_Resource handles become invalid. In this case, calls
- * will fail with PP_ERROR_BADRESOURCE. If you need to access data associated
- * with your instance, you will probably want to create some kind of threadsafe
- * proxy object that can handle asynchronous destruction of the instance object.
- *
- * Typical usage:
- *   On the main thread:
- *    - Create the thread yourself (using pthreads).
- *    - Create the message loop resource.
- *    - Pass the message loop resource to your thread's main function.
- *    - Call PostWork() on the message loop to run functions on the thread.
- *
- *   From the background thread's main function:
- *    - Call AttachToCurrentThread() with the message loop resource.
- *    - Call Run() with the message loop resource.
- *
- *   Your callbacks should look like this:
- *   @code
- *   void DoMyWork(void* user_data, int32_t status) {
- *     if (status != PP_OK) {
- *       Cleanup();  // e.g. free user_data.
- *       return;
- *     }
- *     ... do your work...
- *   }
- *   @endcode
- * For a C++ example, see ppapi/utility/threading/simple_thread.h
- *
- * (You can also create the message loop resource on the background thread,
- * but then the main thread will have no reference to it should you want to
- * call PostWork()).
- *
- *
- * THREAD HANDLING
- *
- * The main thread has an implicitly created message loop. The main thread is
- * the thread where PPP_InitializeModule and PPP_Instance functions are called.
- * You can retrieve a reference to this message loop by calling
- * GetForMainThread() or, if your code is on the main thread, GetCurrent() will
- * also work.
- *
- * Some special threads created by the system can not have message loops. In
- * particular, the background thread created for audio processing has this
- * requirement because it's intended to be highly responsive to keep up with
- * the realtime requirements of audio processing. You can not make PPAPI calls
- * from these threads.
- *
- * Once you associate a message loop with a thread, you don't have to keep a
- * reference to it. The system will hold a reference to the message loop for as
- * long as the thread is running. The current message loop can be retrieved
- * using the GetCurrent() function.
- *
- * It is legal to create threads in your plugin without message loops, but
- * PPAPI calls will fail unless explicitly noted in the documentation.
- *
- * You can create a message loop object on a thread and never actually run the
- * message loop. This will allow you to call blocking PPAPI calls (via
- * PP_BlockUntilComplete()). If you make any asynchronous calls, the callbacks
- * from those calls will be queued in the message loop and never run. The same
- * thing will happen if work is scheduled after the message loop exits and
- * the message loop is not run again.
- *
- *
- * DESTRUCTION AND ERROR HANDLING
- *
- * Often, your application will associate memory with completion callbacks. For
- * example, the C++ CompletionCallbackFactory has a small amount of
- * heap-allocated memory for each callback. This memory will be leaked if the
- * callback is never run. To avoid this memory leak, you need to be careful
- * about error handling and shutdown.
- *
- * There are a number of cases where posted callbacks will never be run:
- *
- *  - You tear down the thread (via pthreads) without "destroying" the message
- *    loop (via PostQuit with should_destroy = PP_TRUE). In this case, any
- *    tasks in the message queue will be lost.
- *
- *  - You create a message loop, post callbacks to it, and never run it.
- *
- *  - You quit the message loop via PostQuit with should_destroy set to
- *    PP_FALSE. In this case, the system will assume the message loop will be
- *    run again later and keep your tasks.
- *
- * To do proper shutdown, call PostQuit with should_destroy = PP_TRUE. This
- * will prohibit future work from being posted, and will allow the message loop
- * to run until all pending tasks are run.
- *
- * If you post a callback to a message loop that's been destroyed, or to an
- * invalid message loop, PostWork will return an error and will not run the
- * callback. This is true even for callbacks with the "required" flag set,
- * since the system may not even know what thread to issue the error callback
- * on.
- *
- * Therefore, you should check for errors from PostWork and destroy any
- * associated memory to avoid leaks. If you're using the C++
- * CompletionCallbackFactory, use the following pattern:
- * @code
- * pp::CompletionCallback callback = factory_.NewOptionalCallback(...);
- * int32_t result = message_loop.PostWork(callback);
- * if (result != PP_OK)
- *   callback.Run(result);
- * @endcode
- * This will run the callback with an error value, and assumes that the
- * implementation of your callback checks the "result" argument and returns
- * immediately on error.
- */
-struct PPB_MessageLoop_1_0 {
-  /**
-   * Creates a message loop resource.
-   *
-   * This may be called from any thread. After your thread starts but before
-   * issuing any other PPAPI calls on it, you must associate it with a message
-   * loop by calling AttachToCurrentThread.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Returns a resource identifying the message loop for the main thread. The
-   * main thread always has a message loop created by the system.
-   */
-  PP_Resource (*GetForMainThread)(void);
-  /**
-   * Returns a reference to the PPB_MessageLoop object attached to the current
-   * thread. If there is no attached message loop, the return value will be 0.
-   */
-  PP_Resource (*GetCurrent)(void);
-  /**
-   * Sets the given message loop resource as being the associated message loop
-   * for the currently running thread.
-   *
-   * You must call this function exactly once on a thread before making any
-   * PPAPI calls. A message loop can only be attached to one thread, and the
-   * message loop can not be changed later. The message loop will be attached
-   * as long as the thread is running or until you quit with should_destroy
-   * set to PP_TRUE.
-   *
-   * If this function fails, attempting to run the message loop will fail.
-   * Note that you can still post work to the message loop: it will get queued
-   * up should the message loop eventually be successfully attached and run.
-   *
-   * @return
-   *   - PP_OK: The message loop was successfully attached to the thread and is
-   *     ready to use.
-   *   - PP_ERROR_BADRESOURCE: The given message loop resource is invalid.
-   *   - PP_ERROR_INPROGRESS: The current thread already has a message loop
-   *     attached. This will always be the case for the main thread, which has
-   *     an implicit system-created message loop attached.
-   *   - PP_ERROR_WRONG_THREAD: The current thread type can not have a message
-   *     loop attached to it. See the interface level discussion about these
-   *     special threads, which include realtime audio threads.
-   */
-  int32_t (*AttachToCurrentThread)(PP_Resource message_loop);
-  /**
-   * Runs the thread message loop. Running the message loop is required for you
-   * to get issued completion callbacks on the thread.
-   *
-   * The message loop identified by the argument must have been previously
-   * successfully attached to the current thread.
-   *
-   * You may not run nested run loops. Since the main thread has an
-   * implicit message loop that the system runs, you may not call Run on the
-   * main thread.
-   *
-   * @return
-   *   - PP_OK: The message loop was successfully run. Note that on
-   *     success, the message loop will only exit when you call PostQuit().
-   *   - PP_ERROR_BADRESOURCE: The given message loop resource is invalid.
-   *   - PP_ERROR_WRONG_THREAD: You are attempting to run a message loop that
-   *     has not been successfully attached to the current thread. Call
-   *     AttachToCurrentThread().
-   *   - PP_ERROR_INPROGRESS: You are attempting to call Run in a nested
-   *     fashion (Run is already on the stack). This will occur if you attempt
-   *     to call run on the main thread's message loop (see above).
-   */
-  int32_t (*Run)(PP_Resource message_loop);
-  /**
-   * Schedules work to run on the given message loop. This may be called from
-   * any thread. Posted work will be executed in the order it was posted when
-   * the message loop is Run().
-   *
-   * @param message_loop The message loop resource.
-   *
-   * @param callback The completion callback to execute from the message loop.
-   *
-   * @param delay_ms The number of milliseconds to delay execution of the given
-   * completion callback. Passing 0 means it will get queued normally and
-   * executed in order.
-   *
-   *
-   * The completion callback will be called with PP_OK as the "result" parameter
-   * if it is run normally. It is good practice to check for PP_OK and return
-   * early otherwise.
-   *
-   * The "required" flag on the completion callback is ignored. If there is an
-   * error posting your callback, the error will be returned from PostWork and
-   * the callback will never be run (because there is no appropriate place to
-   * run your callback with an error without causing unexpected threading
-   * problems). If you associate memory with the completion callback (for
-   * example, you're using the C++ CompletionCallbackFactory), you will need to
-   * free this or manually run the callback. See "Destruction and error
-   * handling" above.
-   *
-   *
-   * You can call this function before the message loop has started and the
-   * work will get queued until the message loop is run. You can also post
-   * work after the message loop has exited as long as should_destroy was
-   * PP_FALSE. It will be queued until the next invocation of Run().
-   *
-   * @return
-   *   - PP_OK: The work was posted to the message loop's queue. As described
-   *     above, this does not mean that the work has been or will be executed
-   *     (if you never run the message loop after posting).
-   *   - PP_ERROR_BADRESOURCE: The given message loop resource is invalid.
-   *   - PP_ERROR_BADARGUMENT: The function pointer for the completion callback
-   *     is null (this will be the case if you pass PP_BlockUntilComplete()).
-   *   - PP_ERROR_FAILED: The message loop has been destroyed.
-   */
-  int32_t (*PostWork)(PP_Resource message_loop,
-                      struct PP_CompletionCallback callback,
-                      int64_t delay_ms);
-  /**
-   * Posts a quit message to the given message loop's work queue. Work posted
-   * before that point will be processed before quitting.
-   *
-   * This may be called on the message loop registered for the current thread,
-   * or it may be called on the message loop registered for another thread. It
-   * is an error to attempt to PostQuit() the main thread loop.
-   *
-   * @param should_destroy Marks the message loop as being in a destroyed state
-   * and prevents further posting of messages.
-   *
-   * If you quit a message loop without setting should_destroy, it will still
-   * be attached to the thread and you can still run it again by calling Run()
-   * again. If you destroy it, it will be detached from the current thread.
-   *
-   * @return
-   *   - PP_OK: The request to quit was successfully posted.
-   *   - PP_ERROR_BADRESOURCE: The message loop was invalid.
-   *   - PP_ERROR_WRONG_THREAD: You are attempting to quit the main thread.
-   *     The main thread's message loop is managed by the system and can't be
-   *     quit.
-   */
-  int32_t (*PostQuit)(PP_Resource message_loop, PP_Bool should_destroy);
-};
-
-typedef struct PPB_MessageLoop_1_0 PPB_MessageLoop;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_MESSAGE_LOOP_H_ */
-
diff --git a/c/ppb_messaging.h b/c/ppb_messaging.h
deleted file mode 100644
index 7a4d2b6..0000000
--- a/c/ppb_messaging.h
+++ /dev/null
@@ -1,170 +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.
- */
-
-/* From ppb_messaging.idl modified Wed Sep 24 10:48:37 2014. */
-
-#ifndef PPAPI_C_PPB_MESSAGING_H_
-#define PPAPI_C_PPB_MESSAGING_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/ppp_message_handler.h"
-
-#define PPB_MESSAGING_INTERFACE_1_0 "PPB_Messaging;1.0"
-#define PPB_MESSAGING_INTERFACE_1_2 "PPB_Messaging;1.2"
-#define PPB_MESSAGING_INTERFACE PPB_MESSAGING_INTERFACE_1_2
-
-/**
- * @file
- * This file defines the <code>PPB_Messaging</code> interface implemented
- * by the browser for sending messages to DOM elements associated with a
- * specific module instance.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_Messaging</code> interface is implemented by the browser
- * and is related to sending messages to JavaScript message event listeners on
- * the DOM element associated with specific module instance.
- */
-struct PPB_Messaging_1_2 {
-  /**
-   * PostMessage() asynchronously invokes any listeners for message events on
-   * the DOM element for the given module instance. A call to PostMessage()
-   * will not block while the message is processed.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] message A <code>PP_Var</code> containing the data to be sent to
-   * JavaScript.
-   * <code>message</code> can be any <code>PP_Var</code> type except
-   * <code>PP_VARTYPE_OBJECT</code>. Array/Dictionary types are supported from
-   * Chrome M29 onward. All var types are copied when passing them to
-   * JavaScript.
-   *
-   * When passing array or dictionary <code>PP_Var</code>s, the entire reference
-   * graph will be converted and transferred. If the reference graph has cycles,
-   * the message will not be sent and an error will be logged to the console.
-   *
-   * Listeners for message events in JavaScript code will receive an object
-   * conforming to the HTML 5 <code>MessageEvent</code> interface.
-   * Specifically, the value of message will be contained as a property called
-   *  data in the received <code>MessageEvent</code>.
-   *
-   * This messaging system is similar to the system used for listening for
-   * messages from Web Workers. Refer to
-   * <code>http://www.whatwg.org/specs/web-workers/current-work/</code> for
-   * further information.
-   *
-   * <strong>Example:</strong>
-   *
-   * @code
-   *
-   * <body>
-   *   <object id="plugin"
-   *           type="application/x-ppapi-postMessage-example"/>
-   *   <script type="text/javascript">
-   *     var plugin = document.getElementById('plugin');
-   *     plugin.addEventListener("message",
-   *                             function(message) { alert(message.data); },
-   *                             false);
-   *   </script>
-   * </body>
-   *
-   * @endcode
-   *
-   * The module instance then invokes PostMessage() as follows:
-   *
-   * @code
-   *
-   *  char hello_world[] = "Hello world!";
-   *  PP_Var hello_var = ppb_var_interface->VarFromUtf8(instance,
-   *                                                    hello_world,
-   *                                                    sizeof(hello_world));
-   *  ppb_messaging_interface->PostMessage(instance, hello_var); // Copies var.
-   *  ppb_var_interface->Release(hello_var);
-   *
-   * @endcode
-   *
-   * The browser will pop-up an alert saying "Hello world!"
-   */
-  void (*PostMessage)(PP_Instance instance, struct PP_Var message);
-  /**
-   * Registers a handler for receiving messages from JavaScript. If a handler
-   * is registered this way, it will replace PPP_Messaging, and all messages
-   * sent from JavaScript via postMessage and postMessageAndAwaitResponse will
-   * be dispatched to <code>handler</code>.
-   *
-   * The function calls will be dispatched via <code>message_loop</code>. This
-   * means that the functions will be invoked on the thread to which
-   * <code>message_loop</code> is attached, when <code>message_loop</code> is
-   * run. It is illegal to pass the main thread message loop;
-   * RegisterMessageHandler will return PP_ERROR_WRONG_THREAD in that case.
-   * If you quit <code>message_loop</code> before calling Unregister(),
-   * the browser will not be able to call functions in the plugin's message
-   * handler any more. That could mean missing some messages or could cause a
-   * leak if you depend on Destroy() to free hander data. So you should,
-   * whenever possible, Unregister() the handler prior to quitting its event
-   * loop.
-   *
-   * Attempting to register a message handler when one is already registered
-   * will cause the current MessageHandler to be unregistered and replaced. In
-   * that case, no messages will be sent to the "default" message handler
-   * (PPP_Messaging). Messages will stop arriving at the prior message handler
-   * and will begin to be dispatched at the new message handler.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] user_data A pointer the plugin may choose to use when handling
-   * calls to functions within PPP_MessageHandler. The browser will pass this
-   * same pointer when invoking functions within PPP_MessageHandler.
-   * @param[in] handler The plugin-provided set of functions for handling
-   * messages.
-   * @param[in] message_loop Represents the message loop on which
-   * PPP_MessageHandler functions should be invoked.
-   * @return PP_OK on success, or an error from pp_errors.h.
-   */
-  int32_t (*RegisterMessageHandler)(
-      PP_Instance instance,
-      void* user_data,
-      const struct PPP_MessageHandler_0_2* handler,
-      PP_Resource message_loop);
-  /**
-   * Unregisters the current message handler for <code>instance</code> if one
-   * is registered. After this call, the message handler (if one was
-   * registered) will have "Destroy" called on it and will receive no further
-   * messages after that point. After that point, all messages sent from
-   * JavaScript using postMessage() will be dispatched to PPP_Messaging (if
-   * the plugin supports PPP_MESSAGING_INTERFACE). Attempts to call
-   * postMessageAndAwaitResponse() from JavaScript will fail.
-   *
-   * Attempting to unregister a message handler when none is registered has no
-   * effect.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   */
-  void (*UnregisterMessageHandler)(PP_Instance instance);
-};
-
-typedef struct PPB_Messaging_1_2 PPB_Messaging;
-
-struct PPB_Messaging_1_0 {
-  void (*PostMessage)(PP_Instance instance, struct PP_Var message);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_MESSAGING_H_ */
-
diff --git a/c/ppb_mouse_cursor.h b/c/ppb_mouse_cursor.h
deleted file mode 100644
index ffdd412..0000000
--- a/c/ppb_mouse_cursor.h
+++ /dev/null
@@ -1,140 +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.
- */
-
-/* From ppb_mouse_cursor.idl modified Thu Mar 28 10:11:32 2013. */
-
-#ifndef PPAPI_C_PPB_MOUSE_CURSOR_H_
-#define PPAPI_C_PPB_MOUSE_CURSOR_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_MOUSECURSOR_INTERFACE_1_0 "PPB_MouseCursor;1.0"
-#define PPB_MOUSECURSOR_INTERFACE PPB_MOUSECURSOR_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_MouseCursor</code> interface for setting
- * the mouse cursor.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * The <code>PP_MouseCursor_Type</code> enumeration lists the available stock
- * cursor types.
- */
-enum PP_MouseCursor_Type {
-  PP_MOUSECURSOR_TYPE_CUSTOM = -1,
-  PP_MOUSECURSOR_TYPE_POINTER = 0,
-  PP_MOUSECURSOR_TYPE_CROSS = 1,
-  PP_MOUSECURSOR_TYPE_HAND = 2,
-  PP_MOUSECURSOR_TYPE_IBEAM = 3,
-  PP_MOUSECURSOR_TYPE_WAIT = 4,
-  PP_MOUSECURSOR_TYPE_HELP = 5,
-  PP_MOUSECURSOR_TYPE_EASTRESIZE = 6,
-  PP_MOUSECURSOR_TYPE_NORTHRESIZE = 7,
-  PP_MOUSECURSOR_TYPE_NORTHEASTRESIZE = 8,
-  PP_MOUSECURSOR_TYPE_NORTHWESTRESIZE = 9,
-  PP_MOUSECURSOR_TYPE_SOUTHRESIZE = 10,
-  PP_MOUSECURSOR_TYPE_SOUTHEASTRESIZE = 11,
-  PP_MOUSECURSOR_TYPE_SOUTHWESTRESIZE = 12,
-  PP_MOUSECURSOR_TYPE_WESTRESIZE = 13,
-  PP_MOUSECURSOR_TYPE_NORTHSOUTHRESIZE = 14,
-  PP_MOUSECURSOR_TYPE_EASTWESTRESIZE = 15,
-  PP_MOUSECURSOR_TYPE_NORTHEASTSOUTHWESTRESIZE = 16,
-  PP_MOUSECURSOR_TYPE_NORTHWESTSOUTHEASTRESIZE = 17,
-  PP_MOUSECURSOR_TYPE_COLUMNRESIZE = 18,
-  PP_MOUSECURSOR_TYPE_ROWRESIZE = 19,
-  PP_MOUSECURSOR_TYPE_MIDDLEPANNING = 20,
-  PP_MOUSECURSOR_TYPE_EASTPANNING = 21,
-  PP_MOUSECURSOR_TYPE_NORTHPANNING = 22,
-  PP_MOUSECURSOR_TYPE_NORTHEASTPANNING = 23,
-  PP_MOUSECURSOR_TYPE_NORTHWESTPANNING = 24,
-  PP_MOUSECURSOR_TYPE_SOUTHPANNING = 25,
-  PP_MOUSECURSOR_TYPE_SOUTHEASTPANNING = 26,
-  PP_MOUSECURSOR_TYPE_SOUTHWESTPANNING = 27,
-  PP_MOUSECURSOR_TYPE_WESTPANNING = 28,
-  PP_MOUSECURSOR_TYPE_MOVE = 29,
-  PP_MOUSECURSOR_TYPE_VERTICALTEXT = 30,
-  PP_MOUSECURSOR_TYPE_CELL = 31,
-  PP_MOUSECURSOR_TYPE_CONTEXTMENU = 32,
-  PP_MOUSECURSOR_TYPE_ALIAS = 33,
-  PP_MOUSECURSOR_TYPE_PROGRESS = 34,
-  PP_MOUSECURSOR_TYPE_NODROP = 35,
-  PP_MOUSECURSOR_TYPE_COPY = 36,
-  PP_MOUSECURSOR_TYPE_NONE = 37,
-  PP_MOUSECURSOR_TYPE_NOTALLOWED = 38,
-  PP_MOUSECURSOR_TYPE_ZOOMIN = 39,
-  PP_MOUSECURSOR_TYPE_ZOOMOUT = 40,
-  PP_MOUSECURSOR_TYPE_GRAB = 41,
-  PP_MOUSECURSOR_TYPE_GRABBING = 42,
-  PP_MOUSECURSOR_TYPE_MIDDLEPANNINGVERTICAL = 43,
-  PP_MOUSECURSOR_TYPE_MIDDLEPANNINGHORIZONTAL = 44
-};
-PP_COMPILE_ASSERT_ENUM_SIZE_IN_BYTES(PP_MouseCursor_Type, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_MouseCursor</code> allows setting the mouse cursor.
- */
-struct PPB_MouseCursor_1_0 {
-  /**
-   * Sets the given mouse cursor. The mouse cursor will be in effect whenever
-   * the mouse is over the given instance until it is set again by another
-   * call. Note that you can hide the mouse cursor by setting it to the
-   * <code>PP_MOUSECURSOR_TYPE_NONE</code> type.
-   *
-   * This function allows setting both system defined mouse cursors and
-   * custom cursors. To set a system-defined cursor, pass the type you want
-   * and set the custom image to 0 and the hot spot to NULL. To set a custom
-   * cursor, set the type to <code>PP_MOUSECURSOR_TYPE_CUSTOM</code> and
-   * specify your image and hot spot.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * that the mouse cursor will affect.
-   *
-   * @param[in] type A <code>PP_MouseCursor_Type</code> identifying the type of
-   * mouse cursor to show.
-   *
-   * @param[in] image A <code>PPB_ImageData</code> resource identifying the
-   * custom image to set when the type is
-   * <code>PP_MOUSECURSOR_TYPE_CUSTOM</code>. The image must be less than 32
-   * pixels in each direction and must be of the system's native image format.
-   * When you are specifying a predefined cursor, this parameter must be 0.
-   *
-   * @param[in] hot_spot When setting a custom cursor, this identifies the
-   * pixel position within the given image of the "hot spot" of the cursor.
-   * When specifying a stock cursor, this parameter is ignored.
-   *
-   * @return PP_TRUE on success, or PP_FALSE if the instance or cursor type
-   * is invalid, or if the image is too large.
-   */
-  PP_Bool (*SetCursor)(PP_Instance instance,
-                       enum PP_MouseCursor_Type type,
-                       PP_Resource image,
-                       const struct PP_Point* hot_spot);
-};
-
-typedef struct PPB_MouseCursor_1_0 PPB_MouseCursor;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_MOUSE_CURSOR_H_ */
-
diff --git a/c/ppb_mouse_lock.h b/c/ppb_mouse_lock.h
deleted file mode 100644
index 3513f28..0000000
--- a/c/ppb_mouse_lock.h
+++ /dev/null
@@ -1,82 +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.
- */
-
-/* From ppb_mouse_lock.idl modified Mon Dec 17 16:09:50 2012. */
-
-#ifndef PPAPI_C_PPB_MOUSE_LOCK_H_
-#define PPAPI_C_PPB_MOUSE_LOCK_H_
-
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_MOUSELOCK_INTERFACE_1_0 "PPB_MouseLock;1.0"
-#define PPB_MOUSELOCK_INTERFACE PPB_MOUSELOCK_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_MouseLock</code> interface for
- * locking the target of mouse events to a specific module instance.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_MouseLock</code> interface is implemented by the browser.
- * This interface provides a way of locking the target of mouse events to a
- * single module instance and removing the cursor from view. This mode is
- * useful for certain classes of applications, especially first-person
- * perspective 3D applications and 3D modeling software.
- */
-struct PPB_MouseLock_1_0 {
-  /**
-   * LockMouse() requests the mouse to be locked.
-   *
-   * While the mouse is locked, the cursor is implicitly hidden from the user.
-   * Any movement of the mouse will generate a
-   * <code>PP_INPUTEVENT_TYPE_MOUSEMOVE</code> event. The
-   * <code>GetPosition()</code> function in the <code>PPB_MouseInputEvent</code>
-   * interface reports the last known mouse position just as mouse lock was
-   * entered. The <code>GetMovement()</code> function provides relative movement
-   * information indicating what the change in position of the mouse would be
-   * had it not been locked.
-   *
-   * The browser may revoke the mouse lock for reasons including (but not
-   * limited to) the user pressing the ESC key, the user activating another
-   * program using a reserved keystroke (e.g. ALT+TAB), or some other system
-   * event.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*LockMouse)(PP_Instance instance,
-                       struct PP_CompletionCallback callback);
-  /**
-   * UnlockMouse() causes the mouse to be unlocked, allowing it to track user
-   * movement again. This is an asynchronous operation. The module instance
-   * will be notified using the <code>PPP_MouseLock</code> interface when it
-   * has lost the mouse lock.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   */
-  void (*UnlockMouse)(PP_Instance instance);
-};
-
-typedef struct PPB_MouseLock_1_0 PPB_MouseLock;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_MOUSE_LOCK_H_ */
-
diff --git a/c/ppb_net_address.h b/c/ppb_net_address.h
deleted file mode 100644
index ead7890..0000000
--- a/c/ppb_net_address.h
+++ /dev/null
@@ -1,203 +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.
- */
-
-/* From ppb_net_address.idl modified Sat Jun 22 10:14:31 2013. */
-
-#ifndef PPAPI_C_PPB_NET_ADDRESS_H_
-#define PPAPI_C_PPB_NET_ADDRESS_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_NETADDRESS_INTERFACE_1_0 "PPB_NetAddress;1.0"
-#define PPB_NETADDRESS_INTERFACE PPB_NETADDRESS_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_NetAddress</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * Network address family types.
- */
-typedef enum {
-  /**
-   * The address family is unspecified.
-   */
-  PP_NETADDRESS_FAMILY_UNSPECIFIED = 0,
-  /**
-   * The Internet Protocol version 4 (IPv4) address family.
-   */
-  PP_NETADDRESS_FAMILY_IPV4 = 1,
-  /**
-   * The Internet Protocol version 6 (IPv6) address family.
-   */
-  PP_NETADDRESS_FAMILY_IPV6 = 2
-} PP_NetAddress_Family;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_NetAddress_Family, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * All members are expressed in network byte order.
- */
-struct PP_NetAddress_IPv4 {
-  /**
-   * Port number.
-   */
-  uint16_t port;
-  /**
-   * IPv4 address.
-   */
-  uint8_t addr[4];
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_NetAddress_IPv4, 6);
-
-/**
- * All members are expressed in network byte order.
- */
-struct PP_NetAddress_IPv6 {
-  /**
-   * Port number.
-   */
-  uint16_t port;
-  /**
-   * IPv6 address.
-   */
-  uint8_t addr[16];
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_NetAddress_IPv6, 18);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_NetAddress</code> interface provides operations on network
- * addresses.
- */
-struct PPB_NetAddress_1_0 {
-  /**
-   * Creates a <code>PPB_NetAddress</code> resource with the specified IPv4
-   * address.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   * @param[in] ipv4_addr An IPv4 address.
-   *
-   * @return A <code>PP_Resource</code> representing the same address as
-   * <code>ipv4_addr</code> or 0 on failure.
-   */
-  PP_Resource (*CreateFromIPv4Address)(
-      PP_Instance instance,
-      const struct PP_NetAddress_IPv4* ipv4_addr);
-  /**
-   * Creates a <code>PPB_NetAddress</code> resource with the specified IPv6
-   * address.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   * @param[in] ipv6_addr An IPv6 address.
-   *
-   * @return A <code>PP_Resource</code> representing the same address as
-   * <code>ipv6_addr</code> or 0 on failure.
-   */
-  PP_Resource (*CreateFromIPv6Address)(
-      PP_Instance instance,
-      const struct PP_NetAddress_IPv6* ipv6_addr);
-  /**
-   * Determines if a given resource is a network address.
-   *
-   * @param[in] resource A <code>PP_Resource</code> to check.
-   *
-   * @return <code>PP_TRUE</code> if the input is a <code>PPB_NetAddress</code>
-   * resource; <code>PP_FALSE</code> otherwise.
-   */
-  PP_Bool (*IsNetAddress)(PP_Resource resource);
-  /**
-   * Gets the address family.
-   *
-   * @param[in] addr A <code>PP_Resource</code> corresponding to a network
-   * address.
-   *
-   * @return The address family on success;
-   * <code>PP_NETADDRESS_FAMILY_UNSPECIFIED</code> on failure.
-   */
-  PP_NetAddress_Family (*GetFamily)(PP_Resource addr);
-  /**
-   * Returns a human-readable description of the network address. The
-   * description is in the form of host [ ":" port ] and conforms to
-   * http://tools.ietf.org/html/rfc3986#section-3.2 for IPv4 and IPv6 addresses
-   * (e.g., "192.168.0.1", "192.168.0.1:99", or "[::1]:80").
-   *
-   * @param[in] addr A <code>PP_Resource</code> corresponding to a network
-   * address.
-   * @param[in] include_port Whether to include the port number in the
-   * description.
-   *
-   * @return A string <code>PP_Var</code> on success; an undefined
-   * <code>PP_Var</code> on failure.
-   */
-  struct PP_Var (*DescribeAsString)(PP_Resource addr, PP_Bool include_port);
-  /**
-   * Fills a <code>PP_NetAddress_IPv4</code> structure if the network address is
-   * of <code>PP_NETADDRESS_FAMILY_IPV4</code> address family.
-   * Note that passing a network address of
-   * <code>PP_NETADDRESS_FAMILY_IPV6</code> address family will fail even if the
-   * address is an IPv4-mapped IPv6 address.
-   *
-   * @param[in] addr A <code>PP_Resource</code> corresponding to a network
-   * address.
-   * @param[out] ipv4_addr A <code>PP_NetAddress_IPv4</code> structure to store
-   * the result.
-   *
-   * @return A <code>PP_Bool</code> value indicating whether the operation
-   * succeeded.
-   */
-  PP_Bool (*DescribeAsIPv4Address)(PP_Resource addr,
-                                   struct PP_NetAddress_IPv4* ipv4_addr);
-  /**
-   * Fills a <code>PP_NetAddress_IPv6</code> structure if the network address is
-   * of <code>PP_NETADDRESS_FAMILY_IPV6</code> address family.
-   * Note that passing a network address of
-   * <code>PP_NETADDRESS_FAMILY_IPV4</code> address family will fail - this
-   * method doesn't map it to an IPv6 address.
-   *
-   * @param[in] addr A <code>PP_Resource</code> corresponding to a network
-   * address.
-   * @param[out] ipv6_addr A <code>PP_NetAddress_IPv6</code> structure to store
-   * the result.
-   *
-   * @return A <code>PP_Bool</code> value indicating whether the operation
-   * succeeded.
-   */
-  PP_Bool (*DescribeAsIPv6Address)(PP_Resource addr,
-                                   struct PP_NetAddress_IPv6* ipv6_addr);
-};
-
-typedef struct PPB_NetAddress_1_0 PPB_NetAddress;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_NET_ADDRESS_H_ */
-
diff --git a/c/ppb_network_list.h b/c/ppb_network_list.h
deleted file mode 100644
index d79604e..0000000
--- a/c/ppb_network_list.h
+++ /dev/null
@@ -1,183 +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.
- */
-
-/* From ppb_network_list.idl modified Mon Sep  9 11:16:26 2013. */
-
-#ifndef PPAPI_C_PPB_NETWORK_LIST_H_
-#define PPAPI_C_PPB_NETWORK_LIST_H_
-
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_NETWORKLIST_INTERFACE_1_0 "PPB_NetworkList;1.0"
-#define PPB_NETWORKLIST_INTERFACE PPB_NETWORKLIST_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_NetworkList</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * Type of a network interface.
- */
-typedef enum {
-  /**
-   * Type of the network interface is not known.
-   */
-  PP_NETWORKLIST_TYPE_UNKNOWN = 0,
-  /**
-   * Wired Ethernet network.
-   */
-  PP_NETWORKLIST_TYPE_ETHERNET = 1,
-  /**
-   * Wireless Wi-Fi network.
-   */
-  PP_NETWORKLIST_TYPE_WIFI = 2,
-  /**
-   * Cellular network (e.g. LTE).
-   */
-  PP_NETWORKLIST_TYPE_CELLULAR = 3
-} PP_NetworkList_Type;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_NetworkList_Type, 4);
-
-/**
- * State of a network interface.
- */
-typedef enum {
-  /**
-   * Network interface is down.
-   */
-  PP_NETWORKLIST_STATE_DOWN = 0,
-  /**
-   * Network interface is up.
-   */
-  PP_NETWORKLIST_STATE_UP = 1
-} PP_NetworkList_State;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_NetworkList_State, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_NetworkList</code> is used to represent a list of
- * network interfaces and their configuration. The content of the list
- * is immutable.  The current networks configuration can be received
- * using the <code>PPB_NetworkMonitor</code> interface.
- */
-struct PPB_NetworkList_1_0 {
-  /**
-   * Determines if the specified <code>resource</code> is a
-   * <code>NetworkList</code> object.
-   *
-   * @param[in] resource A <code>PP_Resource</code> resource.
-   *
-   * @return Returns <code>PP_TRUE</code> if <code>resource</code> is
-   * a <code>PPB_NetworkList</code>, <code>PP_FALSE</code>
-   * otherwise.
-   */
-  PP_Bool (*IsNetworkList)(PP_Resource resource);
-  /**
-   * Gets number of interfaces in the list.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * network list.
-   *
-   * @return Returns number of available network interfaces or 0 if
-   * the list has never been updated.
-   */
-  uint32_t (*GetCount)(PP_Resource resource);
-  /**
-   * Gets name of a network interface.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * network list.
-   * @param[in] index Index of the network interface.
-   *
-   * @return Returns name for the network interface with the specified
-   * <code>index</code>.
-   */
-  struct PP_Var (*GetName)(PP_Resource resource, uint32_t index);
-  /**
-   * Gets type of a network interface.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * network list.
-   * @param[in] index Index of the network interface.
-   *
-   * @return Returns type of the network interface with the specified
-   * <code>index</code>.
-   */
-  PP_NetworkList_Type (*GetType)(PP_Resource resource, uint32_t index);
-  /**
-   * Gets state of a network interface.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * network list.
-   * @param[in] index Index of the network interface.
-   *
-   * @return Returns current state of the network interface with the
-   * specified <code>index</code>.
-   */
-  PP_NetworkList_State (*GetState)(PP_Resource resource, uint32_t index);
-  /**
-   * Gets list of IP addresses for a network interface.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * network list.
-   * @param[in] index Index of the network interface.
-   * @param[in] output An output array which will receive
-   * <code>PPB_NetAddress</code> resources on success. Please note that the
-   * ref count of those resources has already been increased by 1 for the
-   * caller.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*GetIpAddresses)(PP_Resource resource,
-                            uint32_t index,
-                            struct PP_ArrayOutput output);
-  /**
-   * Gets display name of a network interface.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * network list.
-   * @param[in] index Index of the network interface.
-   *
-   * @return Returns display name for the network interface with the
-   * specified <code>index</code>.
-   */
-  struct PP_Var (*GetDisplayName)(PP_Resource resource, uint32_t index);
-  /**
-   * Gets MTU (Maximum Transmission Unit) of a network interface.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * network list.
-   * @param[in] index Index of the network interface.
-   *
-   * @return Returns MTU for the network interface with the specified
-   * <code>index</code> or 0 if MTU is unknown.
-   */
-  uint32_t (*GetMTU)(PP_Resource resource, uint32_t index);
-};
-
-typedef struct PPB_NetworkList_1_0 PPB_NetworkList;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_NETWORK_LIST_H_ */
-
diff --git a/c/ppb_network_monitor.h b/c/ppb_network_monitor.h
deleted file mode 100644
index a1bfaf8..0000000
--- a/c/ppb_network_monitor.h
+++ /dev/null
@@ -1,89 +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.
- */
-
-/* From ppb_network_monitor.idl modified Thu Sep 19 16:42:34 2013. */
-
-#ifndef PPAPI_C_PPB_NETWORK_MONITOR_H_
-#define PPAPI_C_PPB_NETWORK_MONITOR_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_NETWORKMONITOR_INTERFACE_1_0 "PPB_NetworkMonitor;1.0"
-#define PPB_NETWORKMONITOR_INTERFACE PPB_NETWORKMONITOR_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_NetworkMonitor</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_NetworkMonitor</code> allows to get network interfaces
- * configuration and monitor network configuration changes.
- *
- * Permissions: Apps permission <code>socket</code> with subrule
- * <code>network-state</code> is required for <code>UpdateNetworkList()</code>.
- * For more details about network communication permissions, please see:
- * http://developer.chrome.com/apps/app_network.html
- */
-struct PPB_NetworkMonitor_1_0 {
-  /**
-   * Creates a Network Monitor resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a network monitor or 0
-   * on failure.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Gets current network configuration. When called for the first time,
-   * completes as soon as the current network configuration is received from
-   * the browser. Each consequent call will wait for network list changes,
-   * returning a new <code>PPB_NetworkList</code> resource every time.
-   *
-   * @param[in] network_monitor A <code>PP_Resource</code> corresponding to a
-   * network monitor.
-   * @param[out] network_list The <code>PPB_NetworkList<code> resource with the
-   * current state of network interfaces.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have
-   * required permissions.
-   */
-  int32_t (*UpdateNetworkList)(PP_Resource network_monitor,
-                               PP_Resource* network_list,
-                               struct PP_CompletionCallback callback);
-  /**
-   * Determines if the specified <code>resource</code> is a
-   * <code>NetworkMonitor</code> object.
-   *
-   * @param[in] resource A <code>PP_Resource</code> resource.
-   *
-   * @return Returns <code>PP_TRUE</code> if <code>resource</code> is a
-   * <code>PPB_NetworkMonitor</code>, <code>PP_FALSE</code>  otherwise.
-   */
-  PP_Bool (*IsNetworkMonitor)(PP_Resource resource);
-};
-
-typedef struct PPB_NetworkMonitor_1_0 PPB_NetworkMonitor;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_NETWORK_MONITOR_H_ */
-
diff --git a/c/ppb_network_proxy.h b/c/ppb_network_proxy.h
deleted file mode 100644
index 5a39473..0000000
--- a/c/ppb_network_proxy.h
+++ /dev/null
@@ -1,75 +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.
- */
-
-/* From ppb_network_proxy.idl modified Fri Jun 21 09:37:20 2013. */
-
-#ifndef PPAPI_C_PPB_NETWORK_PROXY_H_
-#define PPAPI_C_PPB_NETWORK_PROXY_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_NETWORKPROXY_INTERFACE_1_0 "PPB_NetworkProxy;1.0"
-#define PPB_NETWORKPROXY_INTERFACE PPB_NETWORKPROXY_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_NetworkProxy</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * This interface provides a way to determine the appropriate proxy settings
- * for a given URL.
- *
- * Permissions: Apps permission <code>socket</code> with subrule
- * <code>resolve-proxy</code> is required for using this API.
- * For more details about network communication permissions, please see:
- * http://developer.chrome.com/apps/app_network.html
- */
-struct PPB_NetworkProxy_1_0 {
-  /**
-   * Retrieves the proxy that will be used for the given URL. The result will
-   * be a string in PAC format. For more details about PAC format, please see
-   * http://en.wikipedia.org/wiki/Proxy_auto-config
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   *
-   * @param[in] url A string <code>PP_Var</code> containing a URL.
-   *
-   * @param[out] proxy_string A <code>PP_Var</code> that GetProxyForURL will
-   * set upon successful completion. If the call fails, <code>proxy_string
-   * </code> will be unchanged. Otherwise, it will be set to a string <code>
-   * PP_Var</code> containing the appropriate PAC string for <code>url</code>.
-   * If set, <code>proxy_string</code> will have a reference count of 1 which
-   * the plugin must manage.
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*GetProxyForURL)(PP_Instance instance,
-                            struct PP_Var url,
-                            struct PP_Var* proxy_string,
-                            struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_NetworkProxy_1_0 PPB_NetworkProxy;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_NETWORK_PROXY_H_ */
-
diff --git a/c/ppb_opengles2.h b/c/ppb_opengles2.h
deleted file mode 100644
index e05d4e5..0000000
--- a/c/ppb_opengles2.h
+++ /dev/null
@@ -1,1195 +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. */
-
-/* From ppb_opengles2.idl modified Fri Sep  5 14:52:51 2014. */
-
-#ifndef PPAPI_C_PPB_OPENGLES2_H_
-#define PPAPI_C_PPB_OPENGLES2_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_OPENGLES2_INTERFACE_1_0 "PPB_OpenGLES2;1.0"
-#define PPB_OPENGLES2_INTERFACE PPB_OPENGLES2_INTERFACE_1_0
-
-#define PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE_1_0 \
-    "PPB_OpenGLES2InstancedArrays;1.0"
-#define PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE \
-    PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE_1_0
-
-#define PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE_1_0 \
-    "PPB_OpenGLES2FramebufferBlit;1.0"
-#define PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE \
-    PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE_1_0
-
-#define PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE_1_0 \
-    "PPB_OpenGLES2FramebufferMultisample;1.0"
-#define PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE \
-    PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE_1_0
-
-#define PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE_1_0 \
-    "PPB_OpenGLES2ChromiumEnableFeature;1.0"
-#define PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE \
-    PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE_1_0
-
-#define PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE_1_0 \
-    "PPB_OpenGLES2ChromiumMapSub;1.0"
-#define PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE \
-    PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE_1_0
-
-#define PPB_OPENGLES2_QUERY_INTERFACE_1_0 "PPB_OpenGLES2Query;1.0"
-#define PPB_OPENGLES2_QUERY_INTERFACE PPB_OPENGLES2_QUERY_INTERFACE_1_0
-
-#define PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE_1_0 \
-    "PPB_OpenGLES2VertexArrayObject;1.0"
-#define PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE \
-    PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE_1_0
-
-/**
- * @file
- * This file is auto-generated from
- * gpu/command_buffer/build_gles2_cmd_buffer.py
- * It's formatted by clang-format using chromium coding style:
- *    clang-format -i -style=chromium filename
- * DO NOT EDIT! */
-
-
-#include "ppapi/c/pp_resource.h"
-
-#ifndef __gl2_h_
-typedef void GLvoid;
-typedef int GLsizei;
-typedef unsigned short GLushort;
-typedef short GLshort;
-typedef unsigned char GLubyte;
-typedef unsigned int GLenum;
-typedef int GLint;
-typedef unsigned char GLboolean;
-typedef unsigned int GLbitfield;
-typedef float GLfloat;
-typedef float GLclampf;
-typedef signed char GLbyte;
-typedef unsigned int GLuint;
-typedef int GLfixed;
-typedef int GLclampx;
-#ifdef _WIN64
-typedef long long int GLintptr;
-typedef long long int GLsizeiptr;
-#else
-typedef long int GLintptr;
-typedef long int GLsizeiptr;
-#endif  // _WIN64
-#endif  // __gl2_h_
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_OpenGLES2_1_0 {
-  void (*ActiveTexture)(PP_Resource context, GLenum texture);
-  void (*AttachShader)(PP_Resource context, GLuint program, GLuint shader);
-  void (*BindAttribLocation)(PP_Resource context,
-                             GLuint program,
-                             GLuint index,
-                             const char* name);
-  void (*BindBuffer)(PP_Resource context, GLenum target, GLuint buffer);
-  void (*BindFramebuffer)(PP_Resource context,
-                          GLenum target,
-                          GLuint framebuffer);
-  void (*BindRenderbuffer)(PP_Resource context,
-                           GLenum target,
-                           GLuint renderbuffer);
-  void (*BindTexture)(PP_Resource context, GLenum target, GLuint texture);
-  void (*BlendColor)(PP_Resource context,
-                     GLclampf red,
-                     GLclampf green,
-                     GLclampf blue,
-                     GLclampf alpha);
-  void (*BlendEquation)(PP_Resource context, GLenum mode);
-  void (*BlendEquationSeparate)(PP_Resource context,
-                                GLenum modeRGB,
-                                GLenum modeAlpha);
-  void (*BlendFunc)(PP_Resource context, GLenum sfactor, GLenum dfactor);
-  void (*BlendFuncSeparate)(PP_Resource context,
-                            GLenum srcRGB,
-                            GLenum dstRGB,
-                            GLenum srcAlpha,
-                            GLenum dstAlpha);
-  void (*BufferData)(PP_Resource context,
-                     GLenum target,
-                     GLsizeiptr size,
-                     const void* data,
-                     GLenum usage);
-  void (*BufferSubData)(PP_Resource context,
-                        GLenum target,
-                        GLintptr offset,
-                        GLsizeiptr size,
-                        const void* data);
-  GLenum (*CheckFramebufferStatus)(PP_Resource context, GLenum target);
-  void (*Clear)(PP_Resource context, GLbitfield mask);
-  void (*ClearColor)(PP_Resource context,
-                     GLclampf red,
-                     GLclampf green,
-                     GLclampf blue,
-                     GLclampf alpha);
-  void (*ClearDepthf)(PP_Resource context, GLclampf depth);
-  void (*ClearStencil)(PP_Resource context, GLint s);
-  void (*ColorMask)(PP_Resource context,
-                    GLboolean red,
-                    GLboolean green,
-                    GLboolean blue,
-                    GLboolean alpha);
-  void (*CompileShader)(PP_Resource context, GLuint shader);
-  void (*CompressedTexImage2D)(PP_Resource context,
-                               GLenum target,
-                               GLint level,
-                               GLenum internalformat,
-                               GLsizei width,
-                               GLsizei height,
-                               GLint border,
-                               GLsizei imageSize,
-                               const void* data);
-  void (*CompressedTexSubImage2D)(PP_Resource context,
-                                  GLenum target,
-                                  GLint level,
-                                  GLint xoffset,
-                                  GLint yoffset,
-                                  GLsizei width,
-                                  GLsizei height,
-                                  GLenum format,
-                                  GLsizei imageSize,
-                                  const void* data);
-  void (*CopyTexImage2D)(PP_Resource context,
-                         GLenum target,
-                         GLint level,
-                         GLenum internalformat,
-                         GLint x,
-                         GLint y,
-                         GLsizei width,
-                         GLsizei height,
-                         GLint border);
-  void (*CopyTexSubImage2D)(PP_Resource context,
-                            GLenum target,
-                            GLint level,
-                            GLint xoffset,
-                            GLint yoffset,
-                            GLint x,
-                            GLint y,
-                            GLsizei width,
-                            GLsizei height);
-  GLuint (*CreateProgram)(PP_Resource context);
-  GLuint (*CreateShader)(PP_Resource context, GLenum type);
-  void (*CullFace)(PP_Resource context, GLenum mode);
-  void (*DeleteBuffers)(PP_Resource context, GLsizei n, const GLuint* buffers);
-  void (*DeleteFramebuffers)(PP_Resource context,
-                             GLsizei n,
-                             const GLuint* framebuffers);
-  void (*DeleteProgram)(PP_Resource context, GLuint program);
-  void (*DeleteRenderbuffers)(PP_Resource context,
-                              GLsizei n,
-                              const GLuint* renderbuffers);
-  void (*DeleteShader)(PP_Resource context, GLuint shader);
-  void (*DeleteTextures)(PP_Resource context,
-                         GLsizei n,
-                         const GLuint* textures);
-  void (*DepthFunc)(PP_Resource context, GLenum func);
-  void (*DepthMask)(PP_Resource context, GLboolean flag);
-  void (*DepthRangef)(PP_Resource context, GLclampf zNear, GLclampf zFar);
-  void (*DetachShader)(PP_Resource context, GLuint program, GLuint shader);
-  void (*Disable)(PP_Resource context, GLenum cap);
-  void (*DisableVertexAttribArray)(PP_Resource context, GLuint index);
-  void (*DrawArrays)(PP_Resource context,
-                     GLenum mode,
-                     GLint first,
-                     GLsizei count);
-  void (*DrawElements)(PP_Resource context,
-                       GLenum mode,
-                       GLsizei count,
-                       GLenum type,
-                       const void* indices);
-  void (*Enable)(PP_Resource context, GLenum cap);
-  void (*EnableVertexAttribArray)(PP_Resource context, GLuint index);
-  void (*Finish)(PP_Resource context);
-  void (*Flush)(PP_Resource context);
-  void (*FramebufferRenderbuffer)(PP_Resource context,
-                                  GLenum target,
-                                  GLenum attachment,
-                                  GLenum renderbuffertarget,
-                                  GLuint renderbuffer);
-  void (*FramebufferTexture2D)(PP_Resource context,
-                               GLenum target,
-                               GLenum attachment,
-                               GLenum textarget,
-                               GLuint texture,
-                               GLint level);
-  void (*FrontFace)(PP_Resource context, GLenum mode);
-  void (*GenBuffers)(PP_Resource context, GLsizei n, GLuint* buffers);
-  void (*GenerateMipmap)(PP_Resource context, GLenum target);
-  void (*GenFramebuffers)(PP_Resource context, GLsizei n, GLuint* framebuffers);
-  void (*GenRenderbuffers)(PP_Resource context,
-                           GLsizei n,
-                           GLuint* renderbuffers);
-  void (*GenTextures)(PP_Resource context, GLsizei n, GLuint* textures);
-  void (*GetActiveAttrib)(PP_Resource context,
-                          GLuint program,
-                          GLuint index,
-                          GLsizei bufsize,
-                          GLsizei* length,
-                          GLint* size,
-                          GLenum* type,
-                          char* name);
-  void (*GetActiveUniform)(PP_Resource context,
-                           GLuint program,
-                           GLuint index,
-                           GLsizei bufsize,
-                           GLsizei* length,
-                           GLint* size,
-                           GLenum* type,
-                           char* name);
-  void (*GetAttachedShaders)(PP_Resource context,
-                             GLuint program,
-                             GLsizei maxcount,
-                             GLsizei* count,
-                             GLuint* shaders);
-  GLint (*GetAttribLocation)(PP_Resource context,
-                             GLuint program,
-                             const char* name);
-  void (*GetBooleanv)(PP_Resource context, GLenum pname, GLboolean* params);
-  void (*GetBufferParameteriv)(PP_Resource context,
-                               GLenum target,
-                               GLenum pname,
-                               GLint* params);
-  GLenum (*GetError)(PP_Resource context);
-  void (*GetFloatv)(PP_Resource context, GLenum pname, GLfloat* params);
-  void (*GetFramebufferAttachmentParameteriv)(PP_Resource context,
-                                              GLenum target,
-                                              GLenum attachment,
-                                              GLenum pname,
-                                              GLint* params);
-  void (*GetIntegerv)(PP_Resource context, GLenum pname, GLint* params);
-  void (*GetProgramiv)(PP_Resource context,
-                       GLuint program,
-                       GLenum pname,
-                       GLint* params);
-  void (*GetProgramInfoLog)(PP_Resource context,
-                            GLuint program,
-                            GLsizei bufsize,
-                            GLsizei* length,
-                            char* infolog);
-  void (*GetRenderbufferParameteriv)(PP_Resource context,
-                                     GLenum target,
-                                     GLenum pname,
-                                     GLint* params);
-  void (*GetShaderiv)(PP_Resource context,
-                      GLuint shader,
-                      GLenum pname,
-                      GLint* params);
-  void (*GetShaderInfoLog)(PP_Resource context,
-                           GLuint shader,
-                           GLsizei bufsize,
-                           GLsizei* length,
-                           char* infolog);
-  void (*GetShaderPrecisionFormat)(PP_Resource context,
-                                   GLenum shadertype,
-                                   GLenum precisiontype,
-                                   GLint* range,
-                                   GLint* precision);
-  void (*GetShaderSource)(PP_Resource context,
-                          GLuint shader,
-                          GLsizei bufsize,
-                          GLsizei* length,
-                          char* source);
-  const GLubyte* (*GetString)(PP_Resource context, GLenum name);
-  void (*GetTexParameterfv)(PP_Resource context,
-                            GLenum target,
-                            GLenum pname,
-                            GLfloat* params);
-  void (*GetTexParameteriv)(PP_Resource context,
-                            GLenum target,
-                            GLenum pname,
-                            GLint* params);
-  void (*GetUniformfv)(PP_Resource context,
-                       GLuint program,
-                       GLint location,
-                       GLfloat* params);
-  void (*GetUniformiv)(PP_Resource context,
-                       GLuint program,
-                       GLint location,
-                       GLint* params);
-  GLint (*GetUniformLocation)(PP_Resource context,
-                              GLuint program,
-                              const char* name);
-  void (*GetVertexAttribfv)(PP_Resource context,
-                            GLuint index,
-                            GLenum pname,
-                            GLfloat* params);
-  void (*GetVertexAttribiv)(PP_Resource context,
-                            GLuint index,
-                            GLenum pname,
-                            GLint* params);
-  void (*GetVertexAttribPointerv)(PP_Resource context,
-                                  GLuint index,
-                                  GLenum pname,
-                                  void** pointer);
-  void (*Hint)(PP_Resource context, GLenum target, GLenum mode);
-  GLboolean (*IsBuffer)(PP_Resource context, GLuint buffer);
-  GLboolean (*IsEnabled)(PP_Resource context, GLenum cap);
-  GLboolean (*IsFramebuffer)(PP_Resource context, GLuint framebuffer);
-  GLboolean (*IsProgram)(PP_Resource context, GLuint program);
-  GLboolean (*IsRenderbuffer)(PP_Resource context, GLuint renderbuffer);
-  GLboolean (*IsShader)(PP_Resource context, GLuint shader);
-  GLboolean (*IsTexture)(PP_Resource context, GLuint texture);
-  void (*LineWidth)(PP_Resource context, GLfloat width);
-  void (*LinkProgram)(PP_Resource context, GLuint program);
-  void (*PixelStorei)(PP_Resource context, GLenum pname, GLint param);
-  void (*PolygonOffset)(PP_Resource context, GLfloat factor, GLfloat units);
-  void (*ReadPixels)(PP_Resource context,
-                     GLint x,
-                     GLint y,
-                     GLsizei width,
-                     GLsizei height,
-                     GLenum format,
-                     GLenum type,
-                     void* pixels);
-  void (*ReleaseShaderCompiler)(PP_Resource context);
-  void (*RenderbufferStorage)(PP_Resource context,
-                              GLenum target,
-                              GLenum internalformat,
-                              GLsizei width,
-                              GLsizei height);
-  void (*SampleCoverage)(PP_Resource context, GLclampf value, GLboolean invert);
-  void (*Scissor)(PP_Resource context,
-                  GLint x,
-                  GLint y,
-                  GLsizei width,
-                  GLsizei height);
-  void (*ShaderBinary)(PP_Resource context,
-                       GLsizei n,
-                       const GLuint* shaders,
-                       GLenum binaryformat,
-                       const void* binary,
-                       GLsizei length);
-  void (*ShaderSource)(PP_Resource context,
-                       GLuint shader,
-                       GLsizei count,
-                       const char** str,
-                       const GLint* length);
-  void (*StencilFunc)(PP_Resource context, GLenum func, GLint ref, GLuint mask);
-  void (*StencilFuncSeparate)(PP_Resource context,
-                              GLenum face,
-                              GLenum func,
-                              GLint ref,
-                              GLuint mask);
-  void (*StencilMask)(PP_Resource context, GLuint mask);
-  void (*StencilMaskSeparate)(PP_Resource context, GLenum face, GLuint mask);
-  void (*StencilOp)(PP_Resource context,
-                    GLenum fail,
-                    GLenum zfail,
-                    GLenum zpass);
-  void (*StencilOpSeparate)(PP_Resource context,
-                            GLenum face,
-                            GLenum fail,
-                            GLenum zfail,
-                            GLenum zpass);
-  void (*TexImage2D)(PP_Resource context,
-                     GLenum target,
-                     GLint level,
-                     GLint internalformat,
-                     GLsizei width,
-                     GLsizei height,
-                     GLint border,
-                     GLenum format,
-                     GLenum type,
-                     const void* pixels);
-  void (*TexParameterf)(PP_Resource context,
-                        GLenum target,
-                        GLenum pname,
-                        GLfloat param);
-  void (*TexParameterfv)(PP_Resource context,
-                         GLenum target,
-                         GLenum pname,
-                         const GLfloat* params);
-  void (*TexParameteri)(PP_Resource context,
-                        GLenum target,
-                        GLenum pname,
-                        GLint param);
-  void (*TexParameteriv)(PP_Resource context,
-                         GLenum target,
-                         GLenum pname,
-                         const GLint* params);
-  void (*TexSubImage2D)(PP_Resource context,
-                        GLenum target,
-                        GLint level,
-                        GLint xoffset,
-                        GLint yoffset,
-                        GLsizei width,
-                        GLsizei height,
-                        GLenum format,
-                        GLenum type,
-                        const void* pixels);
-  void (*Uniform1f)(PP_Resource context, GLint location, GLfloat x);
-  void (*Uniform1fv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLfloat* v);
-  void (*Uniform1i)(PP_Resource context, GLint location, GLint x);
-  void (*Uniform1iv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLint* v);
-  void (*Uniform2f)(PP_Resource context, GLint location, GLfloat x, GLfloat y);
-  void (*Uniform2fv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLfloat* v);
-  void (*Uniform2i)(PP_Resource context, GLint location, GLint x, GLint y);
-  void (*Uniform2iv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLint* v);
-  void (*Uniform3f)(PP_Resource context,
-                    GLint location,
-                    GLfloat x,
-                    GLfloat y,
-                    GLfloat z);
-  void (*Uniform3fv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLfloat* v);
-  void (*Uniform3i)(PP_Resource context,
-                    GLint location,
-                    GLint x,
-                    GLint y,
-                    GLint z);
-  void (*Uniform3iv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLint* v);
-  void (*Uniform4f)(PP_Resource context,
-                    GLint location,
-                    GLfloat x,
-                    GLfloat y,
-                    GLfloat z,
-                    GLfloat w);
-  void (*Uniform4fv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLfloat* v);
-  void (*Uniform4i)(PP_Resource context,
-                    GLint location,
-                    GLint x,
-                    GLint y,
-                    GLint z,
-                    GLint w);
-  void (*Uniform4iv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLint* v);
-  void (*UniformMatrix2fv)(PP_Resource context,
-                           GLint location,
-                           GLsizei count,
-                           GLboolean transpose,
-                           const GLfloat* value);
-  void (*UniformMatrix3fv)(PP_Resource context,
-                           GLint location,
-                           GLsizei count,
-                           GLboolean transpose,
-                           const GLfloat* value);
-  void (*UniformMatrix4fv)(PP_Resource context,
-                           GLint location,
-                           GLsizei count,
-                           GLboolean transpose,
-                           const GLfloat* value);
-  void (*UseProgram)(PP_Resource context, GLuint program);
-  void (*ValidateProgram)(PP_Resource context, GLuint program);
-  void (*VertexAttrib1f)(PP_Resource context, GLuint indx, GLfloat x);
-  void (*VertexAttrib1fv)(PP_Resource context,
-                          GLuint indx,
-                          const GLfloat* values);
-  void (*VertexAttrib2f)(PP_Resource context,
-                         GLuint indx,
-                         GLfloat x,
-                         GLfloat y);
-  void (*VertexAttrib2fv)(PP_Resource context,
-                          GLuint indx,
-                          const GLfloat* values);
-  void (*VertexAttrib3f)(PP_Resource context,
-                         GLuint indx,
-                         GLfloat x,
-                         GLfloat y,
-                         GLfloat z);
-  void (*VertexAttrib3fv)(PP_Resource context,
-                          GLuint indx,
-                          const GLfloat* values);
-  void (*VertexAttrib4f)(PP_Resource context,
-                         GLuint indx,
-                         GLfloat x,
-                         GLfloat y,
-                         GLfloat z,
-                         GLfloat w);
-  void (*VertexAttrib4fv)(PP_Resource context,
-                          GLuint indx,
-                          const GLfloat* values);
-  void (*VertexAttribPointer)(PP_Resource context,
-                              GLuint indx,
-                              GLint size,
-                              GLenum type,
-                              GLboolean normalized,
-                              GLsizei stride,
-                              const void* ptr);
-  void (*Viewport)(PP_Resource context,
-                   GLint x,
-                   GLint y,
-                   GLsizei width,
-                   GLsizei height);
-};
-
-struct PPB_OpenGLES2 {
-  void (*ActiveTexture)(PP_Resource context, GLenum texture);
-  void (*AttachShader)(PP_Resource context, GLuint program, GLuint shader);
-  void (*BindAttribLocation)(PP_Resource context,
-                             GLuint program,
-                             GLuint index,
-                             const char* name);
-  void (*BindBuffer)(PP_Resource context, GLenum target, GLuint buffer);
-  void (*BindFramebuffer)(PP_Resource context,
-                          GLenum target,
-                          GLuint framebuffer);
-  void (*BindRenderbuffer)(PP_Resource context,
-                           GLenum target,
-                           GLuint renderbuffer);
-  void (*BindTexture)(PP_Resource context, GLenum target, GLuint texture);
-  void (*BlendColor)(PP_Resource context,
-                     GLclampf red,
-                     GLclampf green,
-                     GLclampf blue,
-                     GLclampf alpha);
-  void (*BlendEquation)(PP_Resource context, GLenum mode);
-  void (*BlendEquationSeparate)(PP_Resource context,
-                                GLenum modeRGB,
-                                GLenum modeAlpha);
-  void (*BlendFunc)(PP_Resource context, GLenum sfactor, GLenum dfactor);
-  void (*BlendFuncSeparate)(PP_Resource context,
-                            GLenum srcRGB,
-                            GLenum dstRGB,
-                            GLenum srcAlpha,
-                            GLenum dstAlpha);
-  void (*BufferData)(PP_Resource context,
-                     GLenum target,
-                     GLsizeiptr size,
-                     const void* data,
-                     GLenum usage);
-  void (*BufferSubData)(PP_Resource context,
-                        GLenum target,
-                        GLintptr offset,
-                        GLsizeiptr size,
-                        const void* data);
-  GLenum (*CheckFramebufferStatus)(PP_Resource context, GLenum target);
-  void (*Clear)(PP_Resource context, GLbitfield mask);
-  void (*ClearColor)(PP_Resource context,
-                     GLclampf red,
-                     GLclampf green,
-                     GLclampf blue,
-                     GLclampf alpha);
-  void (*ClearDepthf)(PP_Resource context, GLclampf depth);
-  void (*ClearStencil)(PP_Resource context, GLint s);
-  void (*ColorMask)(PP_Resource context,
-                    GLboolean red,
-                    GLboolean green,
-                    GLboolean blue,
-                    GLboolean alpha);
-  void (*CompileShader)(PP_Resource context, GLuint shader);
-  void (*CompressedTexImage2D)(PP_Resource context,
-                               GLenum target,
-                               GLint level,
-                               GLenum internalformat,
-                               GLsizei width,
-                               GLsizei height,
-                               GLint border,
-                               GLsizei imageSize,
-                               const void* data);
-  void (*CompressedTexSubImage2D)(PP_Resource context,
-                                  GLenum target,
-                                  GLint level,
-                                  GLint xoffset,
-                                  GLint yoffset,
-                                  GLsizei width,
-                                  GLsizei height,
-                                  GLenum format,
-                                  GLsizei imageSize,
-                                  const void* data);
-  void (*CopyTexImage2D)(PP_Resource context,
-                         GLenum target,
-                         GLint level,
-                         GLenum internalformat,
-                         GLint x,
-                         GLint y,
-                         GLsizei width,
-                         GLsizei height,
-                         GLint border);
-  void (*CopyTexSubImage2D)(PP_Resource context,
-                            GLenum target,
-                            GLint level,
-                            GLint xoffset,
-                            GLint yoffset,
-                            GLint x,
-                            GLint y,
-                            GLsizei width,
-                            GLsizei height);
-  GLuint (*CreateProgram)(PP_Resource context);
-  GLuint (*CreateShader)(PP_Resource context, GLenum type);
-  void (*CullFace)(PP_Resource context, GLenum mode);
-  void (*DeleteBuffers)(PP_Resource context, GLsizei n, const GLuint* buffers);
-  void (*DeleteFramebuffers)(PP_Resource context,
-                             GLsizei n,
-                             const GLuint* framebuffers);
-  void (*DeleteProgram)(PP_Resource context, GLuint program);
-  void (*DeleteRenderbuffers)(PP_Resource context,
-                              GLsizei n,
-                              const GLuint* renderbuffers);
-  void (*DeleteShader)(PP_Resource context, GLuint shader);
-  void (*DeleteTextures)(PP_Resource context,
-                         GLsizei n,
-                         const GLuint* textures);
-  void (*DepthFunc)(PP_Resource context, GLenum func);
-  void (*DepthMask)(PP_Resource context, GLboolean flag);
-  void (*DepthRangef)(PP_Resource context, GLclampf zNear, GLclampf zFar);
-  void (*DetachShader)(PP_Resource context, GLuint program, GLuint shader);
-  void (*Disable)(PP_Resource context, GLenum cap);
-  void (*DisableVertexAttribArray)(PP_Resource context, GLuint index);
-  void (*DrawArrays)(PP_Resource context,
-                     GLenum mode,
-                     GLint first,
-                     GLsizei count);
-  void (*DrawElements)(PP_Resource context,
-                       GLenum mode,
-                       GLsizei count,
-                       GLenum type,
-                       const void* indices);
-  void (*Enable)(PP_Resource context, GLenum cap);
-  void (*EnableVertexAttribArray)(PP_Resource context, GLuint index);
-  void (*Finish)(PP_Resource context);
-  void (*Flush)(PP_Resource context);
-  void (*FramebufferRenderbuffer)(PP_Resource context,
-                                  GLenum target,
-                                  GLenum attachment,
-                                  GLenum renderbuffertarget,
-                                  GLuint renderbuffer);
-  void (*FramebufferTexture2D)(PP_Resource context,
-                               GLenum target,
-                               GLenum attachment,
-                               GLenum textarget,
-                               GLuint texture,
-                               GLint level);
-  void (*FrontFace)(PP_Resource context, GLenum mode);
-  void (*GenBuffers)(PP_Resource context, GLsizei n, GLuint* buffers);
-  void (*GenerateMipmap)(PP_Resource context, GLenum target);
-  void (*GenFramebuffers)(PP_Resource context, GLsizei n, GLuint* framebuffers);
-  void (*GenRenderbuffers)(PP_Resource context,
-                           GLsizei n,
-                           GLuint* renderbuffers);
-  void (*GenTextures)(PP_Resource context, GLsizei n, GLuint* textures);
-  void (*GetActiveAttrib)(PP_Resource context,
-                          GLuint program,
-                          GLuint index,
-                          GLsizei bufsize,
-                          GLsizei* length,
-                          GLint* size,
-                          GLenum* type,
-                          char* name);
-  void (*GetActiveUniform)(PP_Resource context,
-                           GLuint program,
-                           GLuint index,
-                           GLsizei bufsize,
-                           GLsizei* length,
-                           GLint* size,
-                           GLenum* type,
-                           char* name);
-  void (*GetAttachedShaders)(PP_Resource context,
-                             GLuint program,
-                             GLsizei maxcount,
-                             GLsizei* count,
-                             GLuint* shaders);
-  GLint (*GetAttribLocation)(PP_Resource context,
-                             GLuint program,
-                             const char* name);
-  void (*GetBooleanv)(PP_Resource context, GLenum pname, GLboolean* params);
-  void (*GetBufferParameteriv)(PP_Resource context,
-                               GLenum target,
-                               GLenum pname,
-                               GLint* params);
-  GLenum (*GetError)(PP_Resource context);
-  void (*GetFloatv)(PP_Resource context, GLenum pname, GLfloat* params);
-  void (*GetFramebufferAttachmentParameteriv)(PP_Resource context,
-                                              GLenum target,
-                                              GLenum attachment,
-                                              GLenum pname,
-                                              GLint* params);
-  void (*GetIntegerv)(PP_Resource context, GLenum pname, GLint* params);
-  void (*GetProgramiv)(PP_Resource context,
-                       GLuint program,
-                       GLenum pname,
-                       GLint* params);
-  void (*GetProgramInfoLog)(PP_Resource context,
-                            GLuint program,
-                            GLsizei bufsize,
-                            GLsizei* length,
-                            char* infolog);
-  void (*GetRenderbufferParameteriv)(PP_Resource context,
-                                     GLenum target,
-                                     GLenum pname,
-                                     GLint* params);
-  void (*GetShaderiv)(PP_Resource context,
-                      GLuint shader,
-                      GLenum pname,
-                      GLint* params);
-  void (*GetShaderInfoLog)(PP_Resource context,
-                           GLuint shader,
-                           GLsizei bufsize,
-                           GLsizei* length,
-                           char* infolog);
-  void (*GetShaderPrecisionFormat)(PP_Resource context,
-                                   GLenum shadertype,
-                                   GLenum precisiontype,
-                                   GLint* range,
-                                   GLint* precision);
-  void (*GetShaderSource)(PP_Resource context,
-                          GLuint shader,
-                          GLsizei bufsize,
-                          GLsizei* length,
-                          char* source);
-  const GLubyte* (*GetString)(PP_Resource context, GLenum name);
-  void (*GetTexParameterfv)(PP_Resource context,
-                            GLenum target,
-                            GLenum pname,
-                            GLfloat* params);
-  void (*GetTexParameteriv)(PP_Resource context,
-                            GLenum target,
-                            GLenum pname,
-                            GLint* params);
-  void (*GetUniformfv)(PP_Resource context,
-                       GLuint program,
-                       GLint location,
-                       GLfloat* params);
-  void (*GetUniformiv)(PP_Resource context,
-                       GLuint program,
-                       GLint location,
-                       GLint* params);
-  GLint (*GetUniformLocation)(PP_Resource context,
-                              GLuint program,
-                              const char* name);
-  void (*GetVertexAttribfv)(PP_Resource context,
-                            GLuint index,
-                            GLenum pname,
-                            GLfloat* params);
-  void (*GetVertexAttribiv)(PP_Resource context,
-                            GLuint index,
-                            GLenum pname,
-                            GLint* params);
-  void (*GetVertexAttribPointerv)(PP_Resource context,
-                                  GLuint index,
-                                  GLenum pname,
-                                  void** pointer);
-  void (*Hint)(PP_Resource context, GLenum target, GLenum mode);
-  GLboolean (*IsBuffer)(PP_Resource context, GLuint buffer);
-  GLboolean (*IsEnabled)(PP_Resource context, GLenum cap);
-  GLboolean (*IsFramebuffer)(PP_Resource context, GLuint framebuffer);
-  GLboolean (*IsProgram)(PP_Resource context, GLuint program);
-  GLboolean (*IsRenderbuffer)(PP_Resource context, GLuint renderbuffer);
-  GLboolean (*IsShader)(PP_Resource context, GLuint shader);
-  GLboolean (*IsTexture)(PP_Resource context, GLuint texture);
-  void (*LineWidth)(PP_Resource context, GLfloat width);
-  void (*LinkProgram)(PP_Resource context, GLuint program);
-  void (*PixelStorei)(PP_Resource context, GLenum pname, GLint param);
-  void (*PolygonOffset)(PP_Resource context, GLfloat factor, GLfloat units);
-  void (*ReadPixels)(PP_Resource context,
-                     GLint x,
-                     GLint y,
-                     GLsizei width,
-                     GLsizei height,
-                     GLenum format,
-                     GLenum type,
-                     void* pixels);
-  void (*ReleaseShaderCompiler)(PP_Resource context);
-  void (*RenderbufferStorage)(PP_Resource context,
-                              GLenum target,
-                              GLenum internalformat,
-                              GLsizei width,
-                              GLsizei height);
-  void (*SampleCoverage)(PP_Resource context, GLclampf value, GLboolean invert);
-  void (*Scissor)(PP_Resource context,
-                  GLint x,
-                  GLint y,
-                  GLsizei width,
-                  GLsizei height);
-  void (*ShaderBinary)(PP_Resource context,
-                       GLsizei n,
-                       const GLuint* shaders,
-                       GLenum binaryformat,
-                       const void* binary,
-                       GLsizei length);
-  void (*ShaderSource)(PP_Resource context,
-                       GLuint shader,
-                       GLsizei count,
-                       const char** str,
-                       const GLint* length);
-  void (*StencilFunc)(PP_Resource context, GLenum func, GLint ref, GLuint mask);
-  void (*StencilFuncSeparate)(PP_Resource context,
-                              GLenum face,
-                              GLenum func,
-                              GLint ref,
-                              GLuint mask);
-  void (*StencilMask)(PP_Resource context, GLuint mask);
-  void (*StencilMaskSeparate)(PP_Resource context, GLenum face, GLuint mask);
-  void (*StencilOp)(PP_Resource context,
-                    GLenum fail,
-                    GLenum zfail,
-                    GLenum zpass);
-  void (*StencilOpSeparate)(PP_Resource context,
-                            GLenum face,
-                            GLenum fail,
-                            GLenum zfail,
-                            GLenum zpass);
-  void (*TexImage2D)(PP_Resource context,
-                     GLenum target,
-                     GLint level,
-                     GLint internalformat,
-                     GLsizei width,
-                     GLsizei height,
-                     GLint border,
-                     GLenum format,
-                     GLenum type,
-                     const void* pixels);
-  void (*TexParameterf)(PP_Resource context,
-                        GLenum target,
-                        GLenum pname,
-                        GLfloat param);
-  void (*TexParameterfv)(PP_Resource context,
-                         GLenum target,
-                         GLenum pname,
-                         const GLfloat* params);
-  void (*TexParameteri)(PP_Resource context,
-                        GLenum target,
-                        GLenum pname,
-                        GLint param);
-  void (*TexParameteriv)(PP_Resource context,
-                         GLenum target,
-                         GLenum pname,
-                         const GLint* params);
-  void (*TexSubImage2D)(PP_Resource context,
-                        GLenum target,
-                        GLint level,
-                        GLint xoffset,
-                        GLint yoffset,
-                        GLsizei width,
-                        GLsizei height,
-                        GLenum format,
-                        GLenum type,
-                        const void* pixels);
-  void (*Uniform1f)(PP_Resource context, GLint location, GLfloat x);
-  void (*Uniform1fv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLfloat* v);
-  void (*Uniform1i)(PP_Resource context, GLint location, GLint x);
-  void (*Uniform1iv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLint* v);
-  void (*Uniform2f)(PP_Resource context, GLint location, GLfloat x, GLfloat y);
-  void (*Uniform2fv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLfloat* v);
-  void (*Uniform2i)(PP_Resource context, GLint location, GLint x, GLint y);
-  void (*Uniform2iv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLint* v);
-  void (*Uniform3f)(PP_Resource context,
-                    GLint location,
-                    GLfloat x,
-                    GLfloat y,
-                    GLfloat z);
-  void (*Uniform3fv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLfloat* v);
-  void (*Uniform3i)(PP_Resource context,
-                    GLint location,
-                    GLint x,
-                    GLint y,
-                    GLint z);
-  void (*Uniform3iv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLint* v);
-  void (*Uniform4f)(PP_Resource context,
-                    GLint location,
-                    GLfloat x,
-                    GLfloat y,
-                    GLfloat z,
-                    GLfloat w);
-  void (*Uniform4fv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLfloat* v);
-  void (*Uniform4i)(PP_Resource context,
-                    GLint location,
-                    GLint x,
-                    GLint y,
-                    GLint z,
-                    GLint w);
-  void (*Uniform4iv)(PP_Resource context,
-                     GLint location,
-                     GLsizei count,
-                     const GLint* v);
-  void (*UniformMatrix2fv)(PP_Resource context,
-                           GLint location,
-                           GLsizei count,
-                           GLboolean transpose,
-                           const GLfloat* value);
-  void (*UniformMatrix3fv)(PP_Resource context,
-                           GLint location,
-                           GLsizei count,
-                           GLboolean transpose,
-                           const GLfloat* value);
-  void (*UniformMatrix4fv)(PP_Resource context,
-                           GLint location,
-                           GLsizei count,
-                           GLboolean transpose,
-                           const GLfloat* value);
-  void (*UseProgram)(PP_Resource context, GLuint program);
-  void (*ValidateProgram)(PP_Resource context, GLuint program);
-  void (*VertexAttrib1f)(PP_Resource context, GLuint indx, GLfloat x);
-  void (*VertexAttrib1fv)(PP_Resource context,
-                          GLuint indx,
-                          const GLfloat* values);
-  void (*VertexAttrib2f)(PP_Resource context,
-                         GLuint indx,
-                         GLfloat x,
-                         GLfloat y);
-  void (*VertexAttrib2fv)(PP_Resource context,
-                          GLuint indx,
-                          const GLfloat* values);
-  void (*VertexAttrib3f)(PP_Resource context,
-                         GLuint indx,
-                         GLfloat x,
-                         GLfloat y,
-                         GLfloat z);
-  void (*VertexAttrib3fv)(PP_Resource context,
-                          GLuint indx,
-                          const GLfloat* values);
-  void (*VertexAttrib4f)(PP_Resource context,
-                         GLuint indx,
-                         GLfloat x,
-                         GLfloat y,
-                         GLfloat z,
-                         GLfloat w);
-  void (*VertexAttrib4fv)(PP_Resource context,
-                          GLuint indx,
-                          const GLfloat* values);
-  void (*VertexAttribPointer)(PP_Resource context,
-                              GLuint indx,
-                              GLint size,
-                              GLenum type,
-                              GLboolean normalized,
-                              GLsizei stride,
-                              const void* ptr);
-  void (*Viewport)(PP_Resource context,
-                   GLint x,
-                   GLint y,
-                   GLsizei width,
-                   GLsizei height);
-};
-
-struct PPB_OpenGLES2InstancedArrays_1_0 {
-  void (*DrawArraysInstancedANGLE)(PP_Resource context,
-                                   GLenum mode,
-                                   GLint first,
-                                   GLsizei count,
-                                   GLsizei primcount);
-  void (*DrawElementsInstancedANGLE)(PP_Resource context,
-                                     GLenum mode,
-                                     GLsizei count,
-                                     GLenum type,
-                                     const void* indices,
-                                     GLsizei primcount);
-  void (*VertexAttribDivisorANGLE)(PP_Resource context,
-                                   GLuint index,
-                                   GLuint divisor);
-};
-
-struct PPB_OpenGLES2InstancedArrays {
-  void (*DrawArraysInstancedANGLE)(PP_Resource context,
-                                   GLenum mode,
-                                   GLint first,
-                                   GLsizei count,
-                                   GLsizei primcount);
-  void (*DrawElementsInstancedANGLE)(PP_Resource context,
-                                     GLenum mode,
-                                     GLsizei count,
-                                     GLenum type,
-                                     const void* indices,
-                                     GLsizei primcount);
-  void (*VertexAttribDivisorANGLE)(PP_Resource context,
-                                   GLuint index,
-                                   GLuint divisor);
-};
-
-struct PPB_OpenGLES2FramebufferBlit_1_0 {
-  void (*BlitFramebufferEXT)(PP_Resource context,
-                             GLint srcX0,
-                             GLint srcY0,
-                             GLint srcX1,
-                             GLint srcY1,
-                             GLint dstX0,
-                             GLint dstY0,
-                             GLint dstX1,
-                             GLint dstY1,
-                             GLbitfield mask,
-                             GLenum filter);
-};
-
-struct PPB_OpenGLES2FramebufferBlit {
-  void (*BlitFramebufferEXT)(PP_Resource context,
-                             GLint srcX0,
-                             GLint srcY0,
-                             GLint srcX1,
-                             GLint srcY1,
-                             GLint dstX0,
-                             GLint dstY0,
-                             GLint dstX1,
-                             GLint dstY1,
-                             GLbitfield mask,
-                             GLenum filter);
-};
-
-struct PPB_OpenGLES2FramebufferMultisample_1_0 {
-  void (*RenderbufferStorageMultisampleEXT)(PP_Resource context,
-                                            GLenum target,
-                                            GLsizei samples,
-                                            GLenum internalformat,
-                                            GLsizei width,
-                                            GLsizei height);
-};
-
-struct PPB_OpenGLES2FramebufferMultisample {
-  void (*RenderbufferStorageMultisampleEXT)(PP_Resource context,
-                                            GLenum target,
-                                            GLsizei samples,
-                                            GLenum internalformat,
-                                            GLsizei width,
-                                            GLsizei height);
-};
-
-struct PPB_OpenGLES2ChromiumEnableFeature_1_0 {
-  GLboolean (*EnableFeatureCHROMIUM)(PP_Resource context, const char* feature);
-};
-
-struct PPB_OpenGLES2ChromiumEnableFeature {
-  GLboolean (*EnableFeatureCHROMIUM)(PP_Resource context, const char* feature);
-};
-
-struct PPB_OpenGLES2ChromiumMapSub_1_0 {
-  void* (*MapBufferSubDataCHROMIUM)(PP_Resource context,
-                                    GLuint target,
-                                    GLintptr offset,
-                                    GLsizeiptr size,
-                                    GLenum access);
-  void (*UnmapBufferSubDataCHROMIUM)(PP_Resource context, const void* mem);
-  void* (*MapTexSubImage2DCHROMIUM)(PP_Resource context,
-                                    GLenum target,
-                                    GLint level,
-                                    GLint xoffset,
-                                    GLint yoffset,
-                                    GLsizei width,
-                                    GLsizei height,
-                                    GLenum format,
-                                    GLenum type,
-                                    GLenum access);
-  void (*UnmapTexSubImage2DCHROMIUM)(PP_Resource context, const void* mem);
-};
-
-struct PPB_OpenGLES2ChromiumMapSub {
-  void* (*MapBufferSubDataCHROMIUM)(PP_Resource context,
-                                    GLuint target,
-                                    GLintptr offset,
-                                    GLsizeiptr size,
-                                    GLenum access);
-  void (*UnmapBufferSubDataCHROMIUM)(PP_Resource context, const void* mem);
-  void* (*MapTexSubImage2DCHROMIUM)(PP_Resource context,
-                                    GLenum target,
-                                    GLint level,
-                                    GLint xoffset,
-                                    GLint yoffset,
-                                    GLsizei width,
-                                    GLsizei height,
-                                    GLenum format,
-                                    GLenum type,
-                                    GLenum access);
-  void (*UnmapTexSubImage2DCHROMIUM)(PP_Resource context, const void* mem);
-};
-
-struct PPB_OpenGLES2Query_1_0 {
-  void (*GenQueriesEXT)(PP_Resource context, GLsizei n, GLuint* queries);
-  void (*DeleteQueriesEXT)(PP_Resource context,
-                           GLsizei n,
-                           const GLuint* queries);
-  GLboolean (*IsQueryEXT)(PP_Resource context, GLuint id);
-  void (*BeginQueryEXT)(PP_Resource context, GLenum target, GLuint id);
-  void (*EndQueryEXT)(PP_Resource context, GLenum target);
-  void (*GetQueryivEXT)(PP_Resource context,
-                        GLenum target,
-                        GLenum pname,
-                        GLint* params);
-  void (*GetQueryObjectuivEXT)(PP_Resource context,
-                               GLuint id,
-                               GLenum pname,
-                               GLuint* params);
-};
-
-struct PPB_OpenGLES2Query {
-  void (*GenQueriesEXT)(PP_Resource context, GLsizei n, GLuint* queries);
-  void (*DeleteQueriesEXT)(PP_Resource context,
-                           GLsizei n,
-                           const GLuint* queries);
-  GLboolean (*IsQueryEXT)(PP_Resource context, GLuint id);
-  void (*BeginQueryEXT)(PP_Resource context, GLenum target, GLuint id);
-  void (*EndQueryEXT)(PP_Resource context, GLenum target);
-  void (*GetQueryivEXT)(PP_Resource context,
-                        GLenum target,
-                        GLenum pname,
-                        GLint* params);
-  void (*GetQueryObjectuivEXT)(PP_Resource context,
-                               GLuint id,
-                               GLenum pname,
-                               GLuint* params);
-};
-
-struct PPB_OpenGLES2VertexArrayObject_1_0 {
-  void (*GenVertexArraysOES)(PP_Resource context, GLsizei n, GLuint* arrays);
-  void (*DeleteVertexArraysOES)(PP_Resource context,
-                                GLsizei n,
-                                const GLuint* arrays);
-  GLboolean (*IsVertexArrayOES)(PP_Resource context, GLuint array);
-  void (*BindVertexArrayOES)(PP_Resource context, GLuint array);
-};
-
-struct PPB_OpenGLES2VertexArrayObject {
-  void (*GenVertexArraysOES)(PP_Resource context, GLsizei n, GLuint* arrays);
-  void (*DeleteVertexArraysOES)(PP_Resource context,
-                                GLsizei n,
-                                const GLuint* arrays);
-  GLboolean (*IsVertexArrayOES)(PP_Resource context, GLuint array);
-  void (*BindVertexArrayOES)(PP_Resource context, GLuint array);
-};
-/**
- * @}
- */
-
-#endif  // PPAPI_C_PPB_OPENGLES2_H_
-
diff --git a/c/ppb_tcp_socket.h b/c/ppb_tcp_socket.h
deleted file mode 100644
index 4d6f510..0000000
--- a/c/ppb_tcp_socket.h
+++ /dev/null
@@ -1,344 +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.
- */
-
-/* From ppb_tcp_socket.idl modified Mon Dec  8 16:50:44 2014. */
-
-#ifndef PPAPI_C_PPB_TCP_SOCKET_H_
-#define PPAPI_C_PPB_TCP_SOCKET_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_TCPSOCKET_INTERFACE_1_0 "PPB_TCPSocket;1.0"
-#define PPB_TCPSOCKET_INTERFACE_1_1 "PPB_TCPSocket;1.1"
-#define PPB_TCPSOCKET_INTERFACE_1_2 "PPB_TCPSocket;1.2"
-#define PPB_TCPSOCKET_INTERFACE PPB_TCPSOCKET_INTERFACE_1_2
-
-/**
- * @file
- * This file defines the <code>PPB_TCPSocket</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * Option names used by <code>SetOption()</code>.
- */
-typedef enum {
-  /**
-   * Disables coalescing of small writes to make TCP segments, and instead
-   * delivers data immediately. Value's type is <code>PP_VARTYPE_BOOL</code>.
-   * On version 1.1 or earlier, this option can only be set after a successful
-   * <code>Connect()</code> call. On version 1.2 or later, there is no such
-   * limitation.
-   */
-  PP_TCPSOCKET_OPTION_NO_DELAY = 0,
-  /**
-   * Specifies the total per-socket buffer space reserved for sends. Value's
-   * type should be <code>PP_VARTYPE_INT32</code>.
-   * On version 1.1 or earlier, this option can only be set after a successful
-   * <code>Connect()</code> call. On version 1.2 or later, there is no such
-   * limitation.
-   *
-   * Note: This is only treated as a hint for the browser to set the buffer
-   * size. Even if <code>SetOption()</code> succeeds, the browser doesn't
-   * guarantee it will conform to the size.
-   */
-  PP_TCPSOCKET_OPTION_SEND_BUFFER_SIZE = 1,
-  /**
-   * Specifies the total per-socket buffer space reserved for receives. Value's
-   * type should be <code>PP_VARTYPE_INT32</code>.
-   * On version 1.1 or earlier, this option can only be set after a successful
-   * <code>Connect()</code> call. On version 1.2 or later, there is no such
-   * limitation.
-   *
-   * Note: This is only treated as a hint for the browser to set the buffer
-   * size. Even if <code>SetOption()</code> succeeds, the browser doesn't
-   * guarantee it will conform to the size.
-   */
-  PP_TCPSOCKET_OPTION_RECV_BUFFER_SIZE = 2
-} PP_TCPSocket_Option;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_TCPSocket_Option, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_TCPSocket</code> interface provides TCP socket operations.
- *
- * Permissions: Apps permission <code>socket</code> with subrule
- * <code>tcp-connect</code> is required for <code>Connect()</code>; subrule
- * <code>tcp-listen</code> is required for <code>Listen()</code>.
- * For more details about network communication permissions, please see:
- * http://developer.chrome.com/apps/app_network.html
- */
-struct PPB_TCPSocket_1_2 {
-  /**
-   * Creates a TCP socket resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a TCP socket or 0
-   * on failure.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Determines if a given resource is a TCP socket.
-   *
-   * @param[in] resource A <code>PP_Resource</code> to check.
-   *
-   * @return <code>PP_TRUE</code> if the input is a
-   * <code>PPB_TCPSocket</code> resource; <code>PP_FALSE</code> otherwise.
-   */
-  PP_Bool (*IsTCPSocket)(PP_Resource resource);
-  /**
-   * Binds the socket to the given address. The socket must not be bound.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[in] addr A <code>PPB_NetAddress</code> resource.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>,
-   * including (but not limited to):
-   * - <code>PP_ERROR_ADDRESS_IN_USE</code>: the address is already in use.
-   * - <code>PP_ERROR_ADDRESS_INVALID</code>: the address is invalid.
-   */
-  int32_t (*Bind)(PP_Resource tcp_socket,
-                  PP_Resource addr,
-                  struct PP_CompletionCallback callback);
-  /**
-   * Connects the socket to the given address. The socket must not be listening.
-   * Binding the socket beforehand is optional.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[in] addr A <code>PPB_NetAddress</code> resource.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>,
-   * including (but not limited to):
-   * - <code>PP_ERROR_NOACCESS</code>: the caller doesn't have required
-   *   permissions.
-   * - <code>PP_ERROR_ADDRESS_UNREACHABLE</code>: <code>addr</code> is
-   *   unreachable.
-   * - <code>PP_ERROR_CONNECTION_REFUSED</code>: the connection attempt was
-   *   refused.
-   * - <code>PP_ERROR_CONNECTION_FAILED</code>: the connection attempt failed.
-   * - <code>PP_ERROR_CONNECTION_TIMEDOUT</code>: the connection attempt timed
-   *   out.
-   *
-   * Since version 1.1, if the socket is listening/connected or has a pending
-   * listen/connect request, <code>Connect()</code> will fail without starting a
-   * connection attempt; otherwise, any failure during the connection attempt
-   * will cause the socket to be closed.
-   */
-  int32_t (*Connect)(PP_Resource tcp_socket,
-                     PP_Resource addr,
-                     struct PP_CompletionCallback callback);
-  /**
-   * Gets the local address of the socket, if it is bound.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   *
-   * @return A <code>PPB_NetAddress</code> resource on success or 0 on failure.
-   */
-  PP_Resource (*GetLocalAddress)(PP_Resource tcp_socket);
-  /**
-   * Gets the remote address of the socket, if it is connected.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   *
-   * @return A <code>PPB_NetAddress</code> resource on success or 0 on failure.
-   */
-  PP_Resource (*GetRemoteAddress)(PP_Resource tcp_socket);
-  /**
-   * Reads data from the socket. The socket must be connected. It may perform a
-   * partial read.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[out] buffer The buffer to store the received data on success. It
-   * must be at least as large as <code>bytes_to_read</code>.
-   * @param[in] bytes_to_read The number of bytes to read.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return A non-negative number on success to indicate how many bytes have
-   * been read, 0 means that end-of-file was reached; otherwise, an error code
-   * from <code>pp_errors.h</code>.
-   */
-  int32_t (*Read)(PP_Resource tcp_socket,
-                  char* buffer,
-                  int32_t bytes_to_read,
-                  struct PP_CompletionCallback callback);
-  /**
-   * Writes data to the socket. The socket must be connected. It may perform a
-   * partial write.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[in] buffer The buffer containing the data to write.
-   * @param[in] bytes_to_write The number of bytes to write.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return A non-negative number on success to indicate how many bytes have
-   * been written; otherwise, an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*Write)(PP_Resource tcp_socket,
-                   const char* buffer,
-                   int32_t bytes_to_write,
-                   struct PP_CompletionCallback callback);
-  /**
-   * Starts listening. The socket must be bound and not connected.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[in] backlog A hint to determine the maximum length to which the
-   * queue of pending connections may grow.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>,
-   * including (but not limited to):
-   * - <code>PP_ERROR_NOACCESS</code>: the caller doesn't have required
-   *   permissions.
-   * - <code>PP_ERROR_ADDRESS_IN_USE</code>: Another socket is already listening
-   *   on the same port.
-   */
-  int32_t (*Listen)(PP_Resource tcp_socket,
-                    int32_t backlog,
-                    struct PP_CompletionCallback callback);
-  /**
-   * Accepts a connection. The socket must be listening.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[out] accepted_tcp_socket Stores the accepted TCP socket on success.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>,
-   * including (but not limited to):
-   * - <code>PP_ERROR_CONNECTION_ABORTED</code>: A connection has been aborted.
-   */
-  int32_t (*Accept)(PP_Resource tcp_socket,
-                    PP_Resource* accepted_tcp_socket,
-                    struct PP_CompletionCallback callback);
-  /**
-   * Cancels all pending operations and closes the socket. Any pending callbacks
-   * will still run, reporting <code>PP_ERROR_ABORTED</code> if pending IO was
-   * interrupted. After a call to this method, no output buffer pointers passed
-   * into previous <code>Read()</code> or <code>Accept()</code> calls will be
-   * accessed. It is not valid to call <code>Connect()</code> or
-   * <code>Listen()</code> again.
-   *
-   * The socket is implicitly closed if it is destroyed, so you are not required
-   * to call this method.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   */
-  void (*Close)(PP_Resource tcp_socket);
-  /**
-   * Sets a socket option on the TCP socket.
-   * Please see the <code>PP_TCPSocket_Option</code> description for option
-   * names, value types and allowed values.
-   *
-   * @param[in] tcp_socket A <code>PP_Resource</code> corresponding to a TCP
-   * socket.
-   * @param[in] name The option to set.
-   * @param[in] value The option value to set.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*SetOption)(PP_Resource tcp_socket,
-                       PP_TCPSocket_Option name,
-                       struct PP_Var value,
-                       struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_TCPSocket_1_2 PPB_TCPSocket;
-
-struct PPB_TCPSocket_1_0 {
-  PP_Resource (*Create)(PP_Instance instance);
-  PP_Bool (*IsTCPSocket)(PP_Resource resource);
-  int32_t (*Connect)(PP_Resource tcp_socket,
-                     PP_Resource addr,
-                     struct PP_CompletionCallback callback);
-  PP_Resource (*GetLocalAddress)(PP_Resource tcp_socket);
-  PP_Resource (*GetRemoteAddress)(PP_Resource tcp_socket);
-  int32_t (*Read)(PP_Resource tcp_socket,
-                  char* buffer,
-                  int32_t bytes_to_read,
-                  struct PP_CompletionCallback callback);
-  int32_t (*Write)(PP_Resource tcp_socket,
-                   const char* buffer,
-                   int32_t bytes_to_write,
-                   struct PP_CompletionCallback callback);
-  void (*Close)(PP_Resource tcp_socket);
-  int32_t (*SetOption)(PP_Resource tcp_socket,
-                       PP_TCPSocket_Option name,
-                       struct PP_Var value,
-                       struct PP_CompletionCallback callback);
-};
-
-struct PPB_TCPSocket_1_1 {
-  PP_Resource (*Create)(PP_Instance instance);
-  PP_Bool (*IsTCPSocket)(PP_Resource resource);
-  int32_t (*Bind)(PP_Resource tcp_socket,
-                  PP_Resource addr,
-                  struct PP_CompletionCallback callback);
-  int32_t (*Connect)(PP_Resource tcp_socket,
-                     PP_Resource addr,
-                     struct PP_CompletionCallback callback);
-  PP_Resource (*GetLocalAddress)(PP_Resource tcp_socket);
-  PP_Resource (*GetRemoteAddress)(PP_Resource tcp_socket);
-  int32_t (*Read)(PP_Resource tcp_socket,
-                  char* buffer,
-                  int32_t bytes_to_read,
-                  struct PP_CompletionCallback callback);
-  int32_t (*Write)(PP_Resource tcp_socket,
-                   const char* buffer,
-                   int32_t bytes_to_write,
-                   struct PP_CompletionCallback callback);
-  int32_t (*Listen)(PP_Resource tcp_socket,
-                    int32_t backlog,
-                    struct PP_CompletionCallback callback);
-  int32_t (*Accept)(PP_Resource tcp_socket,
-                    PP_Resource* accepted_tcp_socket,
-                    struct PP_CompletionCallback callback);
-  void (*Close)(PP_Resource tcp_socket);
-  int32_t (*SetOption)(PP_Resource tcp_socket,
-                       PP_TCPSocket_Option name,
-                       struct PP_Var value,
-                       struct PP_CompletionCallback callback);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_TCP_SOCKET_H_ */
-
diff --git a/c/ppb_text_input_controller.h b/c/ppb_text_input_controller.h
deleted file mode 100644
index ccc5a09..0000000
--- a/c/ppb_text_input_controller.h
+++ /dev/null
@@ -1,126 +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.
- */
-
-/* From ppb_text_input_controller.idl modified Mon Oct 23 15:30:39 2017. */
-
-#ifndef PPAPI_C_PPB_TEXT_INPUT_CONTROLLER_H_
-#define PPAPI_C_PPB_TEXT_INPUT_CONTROLLER_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_TEXTINPUTCONTROLLER_INTERFACE_1_0 "PPB_TextInputController;1.0"
-#define PPB_TEXTINPUTCONTROLLER_INTERFACE PPB_TEXTINPUTCONTROLLER_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_TextInputController</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * PP_TextInput_Type is used to indicate the status of a plugin in regard to
- * text input.
- */
-typedef enum {
-  /**
-   * Input caret is not in an editable mode, no input method shall be used.
-   */
-  PP_TEXTINPUT_TYPE_NONE = 0,
-  /**
-   * Input caret is in a normal editable mode, any input method can be used.
-   */
-  PP_TEXTINPUT_TYPE_TEXT = 1,
-  /**
-   * Input caret is in a password box, an input method may be used only if
-   * it's suitable for password input.
-   */
-  PP_TEXTINPUT_TYPE_PASSWORD = 2,
-  PP_TEXTINPUT_TYPE_SEARCH = 3,
-  PP_TEXTINPUT_TYPE_EMAIL = 4,
-  PP_TEXTINPUT_TYPE_NUMBER = 5,
-  PP_TEXTINPUT_TYPE_TELEPHONE = 6,
-  PP_TEXTINPUT_TYPE_URL = 7,
-  PP_TEXTINPUT_TYPE_LAST = PP_TEXTINPUT_TYPE_URL
-} PP_TextInput_Type;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_TextInput_Type, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * <code>PPB_TextInputController</code> provides a set of functions for giving
- * hints to the browser about the text input status of plugins, and functions
- * for controlling input method editors (IMEs).
- */
-struct PPB_TextInputController_1_0 {
-  /**
-   * Informs the browser about the current text input mode of the plugin.
-   * Typical use of this information in the browser is to properly
-   * display/suppress tools for supporting text inputs (such as virtual
-   * keyboards in touch screen based devices, or input method editors often
-   * used for composing East Asian characters).
-   */
-  void (*SetTextInputType)(PP_Instance instance, PP_TextInput_Type type);
-  /**
-   * Informs the browser about the coordinates of the text input caret area.
-   * Typical use of this information in the browser is to layout IME windows
-   * etc.
-   */
-  void (*UpdateCaretPosition)(PP_Instance instance,
-                              const struct PP_Rect* caret);
-  /**
-   * Cancels the current composition in IME.
-   */
-  void (*CancelCompositionText)(PP_Instance instance);
-  /**
-   * Informs the browser about the current text selection and surrounding
-   * text. <code>text</code> is a UTF-8 string that contains the current range
-   * of text selection in the plugin. <code>caret</code> is the byte-index of
-   * the caret position within <code>text</code>. <code>anchor</code> is the
-   * byte-index of the anchor position (i.e., if a range of text is selected,
-   * it is the other edge of selection different from <code>caret</code>. If
-   * there are no selection, <code>anchor</code> is equal to <code>caret</code>.
-   *
-   * Typical use of this information in the browser is to enable "reconversion"
-   * features of IME that puts back the already committed text into the
-   * pre-commit composition state. Another use is to improve the precision
-   * of suggestion of IME by taking the context into account (e.g., if the caret
-   * looks to be on the beginning of a sentence, suggest capital letters in a
-   * virtual keyboard).
-   *
-   * When the focus is not on text, call this function setting <code>text</code>
-   * to an empty string and <code>caret</code> and <code>anchor</code> to zero.
-   * Also, the plugin should send the empty text when it does not want to reveal
-   * the selection to IME (e.g., when the surrounding text is containing
-   * password text).
-   */
-  void (*UpdateSurroundingText)(PP_Instance instance,
-                                struct PP_Var text,
-                                uint32_t caret,
-                                uint32_t anchor);
-};
-
-typedef struct PPB_TextInputController_1_0 PPB_TextInputController;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_TEXT_INPUT_CONTROLLER_H_ */
-
diff --git a/c/ppb_udp_socket.h b/c/ppb_udp_socket.h
deleted file mode 100644
index 4b75ca0..0000000
--- a/c/ppb_udp_socket.h
+++ /dev/null
@@ -1,326 +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.
- */
-
-/* From ppb_udp_socket.idl modified Tue Mar 17 11:47:56 2015. */
-
-#ifndef PPAPI_C_PPB_UDP_SOCKET_H_
-#define PPAPI_C_PPB_UDP_SOCKET_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_UDPSOCKET_INTERFACE_1_0 "PPB_UDPSocket;1.0"
-#define PPB_UDPSOCKET_INTERFACE_1_1 "PPB_UDPSocket;1.1"
-#define PPB_UDPSOCKET_INTERFACE_1_2 "PPB_UDPSocket;1.2"
-#define PPB_UDPSOCKET_INTERFACE PPB_UDPSOCKET_INTERFACE_1_2
-
-/**
- * @file
- * This file defines the <code>PPB_UDPSocket</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * Option names used by <code>SetOption()</code>.
- */
-typedef enum {
-  /**
-   * Allows the socket to share the local address to which it will be bound with
-   * other processes. Value's type should be <code>PP_VARTYPE_BOOL</code>.
-   * This option can only be set before calling <code>Bind()</code>.
-   */
-  PP_UDPSOCKET_OPTION_ADDRESS_REUSE = 0,
-  /**
-   * Allows sending and receiving packets to and from broadcast addresses.
-   * Value's type should be <code>PP_VARTYPE_BOOL</code>.
-   * On version 1.0, this option can only be set before calling
-   * <code>Bind()</code>. On version 1.1 or later, there is no such limitation.
-   */
-  PP_UDPSOCKET_OPTION_BROADCAST = 1,
-  /**
-   * Specifies the total per-socket buffer space reserved for sends. Value's
-   * type should be <code>PP_VARTYPE_INT32</code>.
-   * On version 1.0, this option can only be set after a successful
-   * <code>Bind()</code> call. On version 1.1 or later, there is no such
-   * limitation.
-   *
-   * Note: This is only treated as a hint for the browser to set the buffer
-   * size. Even if <code>SetOption()</code> succeeds, the browser doesn't
-   * guarantee it will conform to the size.
-   */
-  PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE = 2,
-  /**
-   * Specifies the total per-socket buffer space reserved for receives. Value's
-   * type should be <code>PP_VARTYPE_INT32</code>.
-   * On version 1.0, this option can only be set after a successful
-   * <code>Bind()</code> call. On version 1.1 or later, there is no such
-   * limitation.
-   *
-   * Note: This is only treated as a hint for the browser to set the buffer
-   * size. Even if <code>SetOption()</code> succeeds, the browser doesn't
-   * guarantee it will conform to the size.
-   */
-  PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE = 3,
-  /**
-   * Specifies whether the packets sent from the host to the multicast group
-   * should be looped back to the host or not. Value's type should be
-   * <code>PP_VARTYPE_BOOL</code>.
-   * This option can only be set before calling <code>Bind()</code>.
-   *
-   * This is only supported in version 1.2 of the API (Chrome 43) and later.
-   */
-  PP_UDPSOCKET_OPTION_MULTICAST_LOOP = 4,
-  /**
-   * Specifies the time-to-live for packets sent to the multicast group. The
-   * value should be within 0 to 255 range. The default value is 1 and means
-   * that packets will not be routed beyond the local network. Value's type
-   * should be <code>PP_VARTYPE_INT32</code>.
-   * This option can only be set before calling <code>Bind()</code>.
-   *
-   * This is only supported in version 1.2 of the API (Chrome 43) and later.
-   */
-  PP_UDPSOCKET_OPTION_MULTICAST_TTL = 5
-} PP_UDPSocket_Option;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_UDPSocket_Option, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_UDPSocket</code> interface provides UDP socket operations.
- *
- * Permissions: Apps permission <code>socket</code> with subrule
- * <code>udp-bind</code> is required for <code>Bind()</code>; subrule
- * <code>udp-send-to</code> is required for <code>SendTo()</code>.
- * For more details about network communication permissions, please see:
- * http://developer.chrome.com/apps/app_network.html
- */
-struct PPB_UDPSocket_1_2 {
-  /**
-   * Creates a UDP socket resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance of
-   * a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a UDP socket or 0
-   * on failure.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Determines if a given resource is a UDP socket.
-   *
-   * @param[in] resource A <code>PP_Resource</code> to check.
-   *
-   * @return <code>PP_TRUE</code> if the input is a <code>PPB_UDPSocket</code>
-   * resource; <code>PP_FALSE</code> otherwise.
-   */
-  PP_Bool (*IsUDPSocket)(PP_Resource resource);
-  /**
-   * Binds the socket to the given address.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   * @param[in] addr A <code>PPB_NetAddress</code> resource.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have
-   * required permissions. <code>PP_ERROR_ADDRESS_IN_USE</code> will be returned
-   * if the address is already in use.
-   */
-  int32_t (*Bind)(PP_Resource udp_socket,
-                  PP_Resource addr,
-                  struct PP_CompletionCallback callback);
-  /**
-   * Gets the address that the socket is bound to. The socket must be bound.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   *
-   * @return A <code>PPB_NetAddress</code> resource on success or 0 on failure.
-   */
-  PP_Resource (*GetBoundAddress)(PP_Resource udp_socket);
-  /**
-   * Receives data from the socket and stores the source address. The socket
-   * must be bound.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   * @param[out] buffer The buffer to store the received data on success. It
-   * must be at least as large as <code>num_bytes</code>.
-   * @param[in] num_bytes The number of bytes to receive.
-   * @param[out] addr A <code>PPB_NetAddress</code> resource to store the source
-   * address on success.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return A non-negative number on success to indicate how many bytes have
-   * been received; otherwise, an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*RecvFrom)(PP_Resource udp_socket,
-                      char* buffer,
-                      int32_t num_bytes,
-                      PP_Resource* addr,
-                      struct PP_CompletionCallback callback);
-  /**
-   * Sends data to a specific destination. The socket must be bound.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   * @param[in] buffer The buffer containing the data to send.
-   * @param[in] num_bytes The number of bytes to send.
-   * @param[in] addr A <code>PPB_NetAddress</code> resource holding the
-   * destination address.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return A non-negative number on success to indicate how many bytes have
-   * been sent; otherwise, an error code from <code>pp_errors.h</code>.
-   * <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have
-   * required permissions.
-   * <code>PP_ERROR_INPROGRESS</code> will be returned if the socket is busy
-   * sending. The caller should wait until a pending send completes before
-   * retrying.
-   */
-  int32_t (*SendTo)(PP_Resource udp_socket,
-                    const char* buffer,
-                    int32_t num_bytes,
-                    PP_Resource addr,
-                    struct PP_CompletionCallback callback);
-  /**
-   * Cancels all pending reads and writes, and closes the socket. Any pending
-   * callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> if
-   * pending IO was interrupted. After a call to this method, no output
-   * parameters passed into previous <code>RecvFrom()</code> calls will be
-   * accessed. It is not valid to call <code>Bind()</code> again.
-   *
-   * The socket is implicitly closed if it is destroyed, so you are not
-   * required to call this method.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   */
-  void (*Close)(PP_Resource udp_socket);
-  /**
-   * Sets a socket option on the UDP socket.
-   * Please see the <code>PP_UDPSocket_Option</code> description for option
-   * names, value types and allowed values.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   * @param[in] name The option to set.
-   * @param[in] value The option value to set.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*SetOption)(PP_Resource udp_socket,
-                       PP_UDPSocket_Option name,
-                       struct PP_Var value,
-                       struct PP_CompletionCallback callback);
-  /**
-   * Joins the multicast group with address specified by <code>group</code>
-   * parameter, which is expected to be a <code>PPB_NetAddress</code> object.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   * @param[in] group A <code>PP_Resource</code> corresponding to the network
-   * address of the multicast group.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*JoinGroup)(PP_Resource udp_socket,
-                       PP_Resource group,
-                       struct PP_CompletionCallback callback);
-  /**
-   * Leaves the multicast group with address specified by <code>group</code>
-   * parameter, which is expected to be a <code>PPB_NetAddress</code> object.
-   *
-   * @param[in] udp_socket A <code>PP_Resource</code> corresponding to a UDP
-   * socket.
-   * @param[in] group A <code>PP_Resource</code> corresponding to the network
-   * address of the multicast group.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*LeaveGroup)(PP_Resource udp_socket,
-                        PP_Resource group,
-                        struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_UDPSocket_1_2 PPB_UDPSocket;
-
-struct PPB_UDPSocket_1_0 {
-  PP_Resource (*Create)(PP_Instance instance);
-  PP_Bool (*IsUDPSocket)(PP_Resource resource);
-  int32_t (*Bind)(PP_Resource udp_socket,
-                  PP_Resource addr,
-                  struct PP_CompletionCallback callback);
-  PP_Resource (*GetBoundAddress)(PP_Resource udp_socket);
-  int32_t (*RecvFrom)(PP_Resource udp_socket,
-                      char* buffer,
-                      int32_t num_bytes,
-                      PP_Resource* addr,
-                      struct PP_CompletionCallback callback);
-  int32_t (*SendTo)(PP_Resource udp_socket,
-                    const char* buffer,
-                    int32_t num_bytes,
-                    PP_Resource addr,
-                    struct PP_CompletionCallback callback);
-  void (*Close)(PP_Resource udp_socket);
-  int32_t (*SetOption)(PP_Resource udp_socket,
-                       PP_UDPSocket_Option name,
-                       struct PP_Var value,
-                       struct PP_CompletionCallback callback);
-};
-
-struct PPB_UDPSocket_1_1 {
-  PP_Resource (*Create)(PP_Instance instance);
-  PP_Bool (*IsUDPSocket)(PP_Resource resource);
-  int32_t (*Bind)(PP_Resource udp_socket,
-                  PP_Resource addr,
-                  struct PP_CompletionCallback callback);
-  PP_Resource (*GetBoundAddress)(PP_Resource udp_socket);
-  int32_t (*RecvFrom)(PP_Resource udp_socket,
-                      char* buffer,
-                      int32_t num_bytes,
-                      PP_Resource* addr,
-                      struct PP_CompletionCallback callback);
-  int32_t (*SendTo)(PP_Resource udp_socket,
-                    const char* buffer,
-                    int32_t num_bytes,
-                    PP_Resource addr,
-                    struct PP_CompletionCallback callback);
-  void (*Close)(PP_Resource udp_socket);
-  int32_t (*SetOption)(PP_Resource udp_socket,
-                       PP_UDPSocket_Option name,
-                       struct PP_Var value,
-                       struct PP_CompletionCallback callback);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_UDP_SOCKET_H_ */
-
diff --git a/c/ppb_url_loader.h b/c/ppb_url_loader.h
deleted file mode 100644
index 30f0fd7..0000000
--- a/c/ppb_url_loader.h
+++ /dev/null
@@ -1,226 +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.
- */
-
-/* From ppb_url_loader.idl modified Thu Mar 28 10:07:37 2013. */
-
-#ifndef PPAPI_C_PPB_URL_LOADER_H_
-#define PPAPI_C_PPB_URL_LOADER_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_URLLOADER_INTERFACE_1_0 "PPB_URLLoader;1.0"
-#define PPB_URLLOADER_INTERFACE PPB_URLLOADER_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <strong>PPB_URLLoader</strong> interface for loading
- * URLs.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <strong>PPB_URLLoader</strong> interface contains pointers to functions
- * for loading URLs. The typical steps for loading a URL are:
- *
- * -# Call Create() to create a URLLoader object.
- * -# Create a <code>URLRequestInfo</code> object and set properties on it.
- * Refer to <code>PPB_URLRequestInfo</code> for further information.
- * -# Call Open() with the <code>URLRequestInfo</code> as an argument.
- * -# When Open() completes, call GetResponseInfo() to examine the response
- * headers. Refer to <code>PPB_URLResponseInfo</code> for further information.
- * -# Call ReadResponseBody() to stream the data for the response.
- *
- * Alternatively, if <code>PP_URLREQUESTPROPERTY_STREAMTOFILE</code> was set on
- * the <code>URLRequestInfo</code> in step #2:
- * - Call FinishStreamingToFile(), after examining the response headers
- * (step #4),  to wait for the downloaded file to be complete.
- * - Then, access the downloaded file using the GetBodyAsFileRef() function of
- * the <code>URLResponseInfo</code> returned in step #4.
- */
-struct PPB_URLLoader_1_0 {
-  /**
-   * Create() creates a new <code>URLLoader</code> object. The
-   * <code>URLLoader</code> is associated with a particular instance, so that
-   * any UI dialogs that need to be shown to the user can be positioned
-   * relative to the window containing the instance.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a URLLoader if
-   * successful, 0 if the instance is invalid.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * IsURLLoader() determines if a resource is an <code>URLLoader</code>.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a <code>URLLoader</code>,
-   * <code>PP_FALSE</code> if the resource is invalid or some type other
-   * than <code>URLLoader</code>.
-   */
-  PP_Bool (*IsURLLoader)(PP_Resource resource);
-  /**
-   * Open() begins loading the <code>URLRequestInfo</code>. The operation
-   * completes when response headers are received or when an error occurs.  Use
-   * GetResponseInfo() to access the response headers.
-   *
-   * @param[in] loader A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>URLRequestInfo</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * asynchronous completion of Open(). This callback will run when response
-   * headers for the url are received or error occurred. This callback
-   * will only run if Open() returns <code>PP_OK_COMPLETIONPENDING</code>.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*Open)(PP_Resource loader,
-                  PP_Resource request_info,
-                  struct PP_CompletionCallback callback);
-  /**
-   * FollowRedirect() can be invoked to follow a redirect after Open()
-   * completed on receiving redirect headers.
-   *
-   * @param[in] loader A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * asynchronous completion of FollowRedirect(). This callback will run when
-   * response headers for the redirect url are received or error occurred. This
-   * callback will only run if FollowRedirect() returns
-   * <code>PP_OK_COMPLETIONPENDING</code>.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*FollowRedirect)(PP_Resource loader,
-                            struct PP_CompletionCallback callback);
-  /**
-   * GetUploadProgress() returns the current upload progress (which is
-   * meaningful after Open() has been called). Progress only refers to the
-   * request body and does not include the headers.
-   *
-   * This data is only available if the <code>URLRequestInfo</code> passed
-   * to Open() had the <code>PP_URLREQUESTPROPERTY_REPORTUPLOADPROGRESS</code>
-   * property set to PP_TRUE.
-   *
-   * @param[in] loader A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   * @param[in] bytes_sent The number of bytes sent thus far.
-   * @param[in] total_bytes_to_be_sent The total number of bytes to be sent.
-   *
-   * @return <code>PP_TRUE</code> if the upload progress is available,
-   * <code>PP_FALSE</code> if it is not available.
-   */
-  PP_Bool (*GetUploadProgress)(PP_Resource loader,
-                               int64_t* bytes_sent,
-                               int64_t* total_bytes_to_be_sent);
-  /**
-   * GetDownloadProgress() returns the current download progress, which is
-   * meaningful after Open() has been called. Progress only refers to the
-   * response body and does not include the headers.
-   *
-   * This data is only available if the <code>URLRequestInfo</code> passed to
-   * Open() had the <code>PP_URLREQUESTPROPERTY_REPORTDOWNLOADPROGRESS</code>
-   * property set to <code>PP_TRUE</code>.
-   *
-   * @param[in] loader A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   * @param[in] bytes_received The number of bytes received thus far.
-   * @param[in] total_bytes_to_be_received The total number of bytes to be
-   * received. The total bytes to be received may be unknown, in which case
-   * <code>total_bytes_to_be_received</code> will be set to -1.
-   *
-   * @return <code>PP_TRUE</code> if the download progress is available,
-   * <code>PP_FALSE</code> if it is not available.
-   */
-  PP_Bool (*GetDownloadProgress)(PP_Resource loader,
-                                 int64_t* bytes_received,
-                                 int64_t* total_bytes_to_be_received);
-  /**
-   * GetResponseInfo() returns the current <code>URLResponseInfo</code> object.
-   *
-   * @param[in] instance A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   *
-   * @return A <code>PP_Resource</code> corresponding to the
-   * <code>URLResponseInfo</code> if successful, 0 if the loader is not a valid
-   * resource or if Open() has not been called.
-   */
-  PP_Resource (*GetResponseInfo)(PP_Resource loader);
-  /**
-   * ReadResponseBody() is used to read the response body. The size of the
-   * buffer must be large enough to hold the specified number of bytes to read.
-   * This function might perform a partial read.
-   *
-   * @param[in] loader A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   * @param[in,out] buffer A pointer to the buffer for the response body.
-   * @param[in] bytes_to_read The number of bytes to read.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * asynchronous completion. The callback will run if the bytes (full or
-   * partial) are read or an error occurs asynchronously. This callback will
-   * run only if this function returns <code>PP_OK_COMPLETIONPENDING</code>.
-   *
-   * @return An int32_t containing the number of bytes read or an error code
-   * from <code>pp_errors.h</code>.
-   */
-  int32_t (*ReadResponseBody)(PP_Resource loader,
-                              void* buffer,
-                              int32_t bytes_to_read,
-                              struct PP_CompletionCallback callback);
-  /**
-   * FinishStreamingToFile() is used to wait for the response body to be
-   * completely downloaded to the file provided by the GetBodyAsFileRef()
-   * in the current <code>URLResponseInfo</code>. This function is only used if
-   * <code>PP_URLREQUESTPROPERTY_STREAMTOFILE</code> was set on the
-   * <code>URLRequestInfo</code> passed to Open().
-   *
-   * @param[in] loader A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to run on
-   * asynchronous completion. This callback will run when body is downloaded
-   * or an error occurs after FinishStreamingToFile() returns
-   * <code>PP_OK_COMPLETIONPENDING</code>.
-   *
-   * @return An int32_t containing the number of bytes read or an error code
-   * from <code>pp_errors.h</code>.
-   */
-  int32_t (*FinishStreamingToFile)(PP_Resource loader,
-                                   struct PP_CompletionCallback callback);
-  /**
-   * Close is a pointer to a function used to cancel any pending IO and close
-   * the <code>URLLoader</code> object. Any pending callbacks will still run,
-   * reporting <code>PP_ERROR_ABORTED</code> if pending IO was interrupted.
-   * It is NOT valid to call Open() again after a call to this function.
-   *
-   * <strong>Note:</strong> If the <code>URLLoader</code> object is destroyed
-   * while it is still open, then it will be implicitly closed so you are not
-   * required to call Close().
-   *
-   * @param[in] loader A <code>PP_Resource</code> corresponding to a
-   * <code>URLLoader</code>.
-   */
-  void (*Close)(PP_Resource loader);
-};
-
-typedef struct PPB_URLLoader_1_0 PPB_URLLoader;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_URL_LOADER_H_ */
-
diff --git a/c/ppb_url_request_info.h b/c/ppb_url_request_info.h
deleted file mode 100644
index dfebce9..0000000
--- a/c/ppb_url_request_info.h
+++ /dev/null
@@ -1,267 +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.
- */
-
-/* From ppb_url_request_info.idl modified Thu May 17 11:28:52 2018. */
-
-#ifndef PPAPI_C_PPB_URL_REQUEST_INFO_H_
-#define PPAPI_C_PPB_URL_REQUEST_INFO_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_URLREQUESTINFO_INTERFACE_1_0 "PPB_URLRequestInfo;1.0"
-#define PPB_URLREQUESTINFO_INTERFACE PPB_URLREQUESTINFO_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_URLRequestInfo</code> API for creating and
- * manipulating URL requests.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * This enumeration contains properties that can be set on a URL request.
- */
-typedef enum {
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_URLREQUESTPROPERTY_URL = 0,
-  /**
-   * This corresponds to a string (<code>PP_VARTYPE_STRING</code>); either
-   * POST or GET. Refer to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html">HTTP
-   * Methods</a> documentation for further information.
-   *
-   */
-  PP_URLREQUESTPROPERTY_METHOD = 1,
-  /**
-   * This corresponds to a string (<code>PP_VARTYPE_STRING</code>); \n
-   * delimited. Refer to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html"Header
-   * Field Definitions</a> documentation for further information.
-   */
-  PP_URLREQUESTPROPERTY_HEADERS = 2,
-  /**
-   * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>;
-   * default=<code>PP_FALSE</code>).
-   * This property is no longer supported, so attempting to set it will always
-   * fail.
-   */
-  PP_URLREQUESTPROPERTY_STREAMTOFILE = 3,
-  /**
-   * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>;
-   * default=<code>PP_TRUE</code>).
-   * Set this value to <code>PP_FALSE</code> if you want to use
-   * PPB_URLLoader.FollowRedirects() to follow the redirects only after
-   * examining redirect headers.
-   */
-  PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS = 4,
-  /**
-   * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>;
-   * default=<code>PP_FALSE</code>).
-   * Set this value to <code>PP_TRUE</code> if you want to be able to poll the
-   * download progress using PPB_URLLoader.GetDownloadProgress().
-   */
-  PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS = 5,
-  /**
-   * This corresponds to a <code>PP_Bool</code>
-   * (default=<code>PP_FALSE</code>). Set this value to <code>PP_TRUE</code> if
-   * you want to be able to poll the upload progress using
-   * PPB_URLLoader.GetUploadProgress().
-   */
-  PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS = 6,
-  /**
-   * This corresponds to a string (<code>PP_VARTYPE_STRING)</code> or may be
-   * undefined (<code>PP_VARTYPE_UNDEFINED</code>; default).
-   * Set it to a string to set a custom referrer (if empty, the referrer header
-   * will be omitted), or to undefined to use the default referrer. Only loaders
-   * with universal access (only available on trusted implementations) will
-   * accept <code>URLRequestInfo</code> objects that try to set a custom
-   * referrer; if given to a loader without universal access,
-   * <code>PP_ERROR_NOACCESS</code> will result.
-   */
-  PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL = 7,
-  /**
-   * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>;
-   * default=<code>PP_FALSE</code>). Whether cross-origin requests are allowed.
-   * Cross-origin requests are made using the CORS (Cross-Origin Resource
-   * Sharing) algorithm to check whether the request should be allowed. For the
-   * complete CORS algorithm, refer to
-   * the <a href="http://www.w3.org/TR/access-control">Cross-Origin Resource
-   * Sharing</a> documentation.
-   */
-  PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS = 8,
-  /**
-   * This corresponds to a <code>PP_Bool</code> (<code>PP_VARTYPE_BOOL</code>;
-   * default=<code>PP_FALSE</code>).
-   * Whether HTTP credentials are sent with cross-origin requests. If false,
-   * no credentials are sent with the request and cookies are ignored in the
-   * response. If the request is not cross-origin, this property is ignored.
-   */
-  PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS = 9,
-  /**
-   * This corresponds to a string (<code>PP_VARTYPE_STRING</code>) or may be
-   * undefined (<code>PP_VARTYPE_UNDEFINED</code>; default).
-   * Set it to a string to set a custom content-transfer-encoding header (if
-   * empty, that header will be omitted), or to undefined to use the default
-   * (if any). Only loaders with universal access (only available on trusted
-   * implementations) will accept <code>URLRequestInfo</code> objects that try
-   * to set a custom content transfer encoding; if given to a loader without
-   * universal access, <code>PP_ERROR_NOACCESS</code> will result.
-   */
-  PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING = 10,
-  /**
-   * This corresponds to an integer (<code>PP_VARTYPE_INT32</code>); default
-   * is not defined and is set by the browser, possibly depending on system
-   * capabilities. Set it to an integer to set an upper threshold for the
-   * prefetched buffer of an asynchronous load. When exceeded, the browser will
-   * defer loading until
-   * <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> is hit,
-   * at which time it will begin prefetching again. When setting this property,
-   * <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> must also
-   * be set. Behavior is undefined if the former is <= the latter.
-   */
-  PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD = 11,
-  /**
-   * This corresponds to an integer (<code>PP_VARTYPE_INT32</code>); default is
-   * not defined and is set by the browser to a value appropriate for the
-   * default <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD</code>.
-   * Set it to an integer to set a lower threshold for the prefetched buffer
-   * of an asynchronous load. When reached, the browser will resume loading if
-   * If <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> had
-   * previously been reached.
-   * When setting this property,
-   * <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD</code> must also
-   * be set. Behavior is undefined if the former is >= the latter.
-   */
-  PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERTHRESHOLD = 12,
-  /**
-   * This corresponds to a string (<code>PP_VARTYPE_STRING</code>) or may be
-   * undefined (<code>PP_VARTYPE_UNDEFINED</code>; default). Set it to a string
-   * to set a custom user-agent header (if empty, that header will be omitted),
-   * or to undefined to use the default. Only loaders with universal access
-   * (only available on trusted implementations) will accept
-   * <code>URLRequestInfo</code> objects that try to set a custom user agent; if
-   * given to a loader without universal access, <code>PP_ERROR_NOACCESS</code>
-   * will result.
-   */
-  PP_URLREQUESTPROPERTY_CUSTOMUSERAGENT = 13
-} PP_URLRequestProperty;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_URLRequestProperty, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_URLRequestInfo</code> interface is used to create
- * and handle URL requests. This API is used in conjunction with
- * <code>PPB_URLLoader</code>. Refer to <code>PPB_URLLoader</code> for further
- * information.
- */
-struct PPB_URLRequestInfo_1_0 {
-  /**
-   * Create() creates a new <code>URLRequestInfo</code> object.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   *
-   * @return A <code>PP_Resource</code> identifying the
-   * <code>URLRequestInfo</code> if successful, 0 if the instance is invalid.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * IsURLRequestInfo() determines if a resource is a
-   * <code>URLRequestInfo</code>.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>URLRequestInfo</code>.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a
-   * <code>URLRequestInfo</code>, <code>PP_FALSE</code> if the resource is
-   * invalid or some type other than <code>URLRequestInfo</code>.
-   */
-  PP_Bool (*IsURLRequestInfo)(PP_Resource resource);
-  /**
-   * SetProperty() sets a request property. The value of the property must be
-   * the correct type according to the property being set.
-   *
-   * @param[in] request A <code>PP_Resource</code> corresponding to a
-   * <code>URLRequestInfo</code>.
-   * @param[in] property A <code>PP_URLRequestProperty</code> identifying the
-   * property to set.
-   * @param[in] value A <code>PP_Var</code> containing the property value.
-   *
-   * @return <code>PP_TRUE</code> if successful, <code>PP_FALSE</code> if any
-   * of the parameters are invalid.
-   */
-  PP_Bool (*SetProperty)(PP_Resource request,
-                         PP_URLRequestProperty property,
-                         struct PP_Var value);
-  /**
-   * AppendDataToBody() appends data to the request body. A Content-Length
-   * request header will be automatically generated.
-   *
-   * @param[in] request A <code>PP_Resource</code> corresponding to a
-   * <code>URLRequestInfo</code>.
-   * @param[in] data A pointer to a buffer holding the data.
-   * @param[in] len The length, in bytes, of the data.
-   *
-   * @return <code>PP_TRUE</code> if successful, <code>PP_FALSE</code> if any
-   * of the parameters are invalid.
-   *
-   *
-   */
-  PP_Bool (*AppendDataToBody)(PP_Resource request,
-                              const void* data,
-                              uint32_t len);
-  /**
-   * AppendFileToBody() appends a file, to be uploaded, to the request body.
-   * A content-length request header will be automatically generated.
-   *
-   * @param[in] request A <code>PP_Resource</code> corresponding to a
-   * <code>URLRequestInfo</code>.
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   * @param[in] start_offset An optional starting point offset within the
-   * file.
-   * @param[in] number_of_bytes An optional number of bytes of the file to
-   * be included. If <code>number_of_bytes</code> is -1, then the sub-range
-   * to upload extends to the end of the file.
-   * @param[in] expected_last_modified_time An optional (non-zero) last
-   * modified time stamp used to validate that the file was not modified since
-   * the given time before it was uploaded. The upload will fail with an error
-   * code of <code>PP_ERROR_FILECHANGED</code> if the file has been modified
-   * since the given time. If <code>expected_last_modified_time</code> is 0,
-   * then no validation is performed.
-   *
-   * @return <code>PP_TRUE</code> if successful, <code>PP_FALSE</code> if any
-   * of the parameters are invalid.
-   */
-  PP_Bool (*AppendFileToBody)(PP_Resource request,
-                              PP_Resource file_ref,
-                              int64_t start_offset,
-                              int64_t number_of_bytes,
-                              PP_Time expected_last_modified_time);
-};
-
-typedef struct PPB_URLRequestInfo_1_0 PPB_URLRequestInfo;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_URL_REQUEST_INFO_H_ */
-
diff --git a/c/ppb_url_response_info.h b/c/ppb_url_response_info.h
deleted file mode 100644
index ab20773..0000000
--- a/c/ppb_url_response_info.h
+++ /dev/null
@@ -1,144 +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.
- */
-
-/* From ppb_url_response_info.idl modified Thu May 17 11:28:03 2018. */
-
-#ifndef PPAPI_C_PPB_URL_RESPONSE_INFO_H_
-#define PPAPI_C_PPB_URL_RESPONSE_INFO_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_URLRESPONSEINFO_INTERFACE_1_0 "PPB_URLResponseInfo;1.0"
-#define PPB_URLRESPONSEINFO_INTERFACE PPB_URLRESPONSEINFO_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_URLResponseInfo</code> API for examining URL
- * responses.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * This enumeration contains properties set on a URL response.
- */
-typedef enum {
-  /**
-   * This corresponds to a string (PP_VARTYPE_STRING); an absolute URL formed by
-   * resolving the relative request URL with the absolute document URL. Refer
-   * to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1.2">
-   * HTTP Request URI</a> and
-   * <a href="http://www.w3.org/TR/html4/struct/links.html#h-12.4.1">
-   * HTML Resolving Relative URIs</a> documentation for further information.
-   */
-  PP_URLRESPONSEPROPERTY_URL = 0,
-  /**
-   * This corresponds to a string (PP_VARTYPE_STRING); the absolute URL returned
-   * in the response header's 'Location' field if this is a redirect response,
-   * an empty string otherwise. Refer to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3">
-   * HTTP Status Codes - Redirection</a> documentation for further information.
-   */
-  PP_URLRESPONSEPROPERTY_REDIRECTURL = 1,
-  /**
-   * This corresponds to a string (PP_VARTYPE_STRING); the HTTP method to be
-   * used in a new request if this is a redirect response, an empty string
-   * otherwise. Refer to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3">
-   * HTTP Status Codes - Redirection</a> documentation for further information.
-   */
-  PP_URLRESPONSEPROPERTY_REDIRECTMETHOD = 2,
-  /**
-   * This corresponds to an int32 (PP_VARETYPE_INT32); the status code from the
-   * response, e.g., 200 if the request was successful. Refer to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1.1">
-   * HTTP Status Code and Reason Phrase</a> documentation for further
-   * information.
-   */
-  PP_URLRESPONSEPROPERTY_STATUSCODE = 3,
-  /**
-   * This corresponds to a string (PP_VARTYPE_STRING); the status line
-   * from the response. Refer to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1">
-   * HTTP Response Status Line</a> documentation for further information.
-   */
-  PP_URLRESPONSEPROPERTY_STATUSLINE = 4,
-  /**
-   * This corresponds to a string(PP_VARTYPE_STRING), a \n-delimited list of
-   * header field/value pairs of the form "field: value", returned by the
-   * server. Refer to the
-   * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14">
-   * HTTP Header Field Definitions</a> documentation for further information.
-   */
-  PP_URLRESPONSEPROPERTY_HEADERS = 5
-} PP_URLResponseProperty;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_URLResponseProperty, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The PPB_URLResponseInfo interface contains APIs for
- * examining URL responses. Refer to <code>PPB_URLLoader</code> for further
- * information.
- */
-struct PPB_URLResponseInfo_1_0 {
-  /**
-   * IsURLResponseInfo() determines if a response is a
-   * <code>URLResponseInfo</code>.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>URLResponseInfo</code>.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a
-   * <code>URLResponseInfo</code>, <code>PP_FALSE</code> if the resource is
-   * invalid or some type other than <code>URLResponseInfo</code>.
-   */
-  PP_Bool (*IsURLResponseInfo)(PP_Resource resource);
-  /**
-   * GetProperty() gets a response property.
-   *
-   * @param[in] request A <code>PP_Resource</code> corresponding to a
-   * <code>URLResponseInfo</code>.
-   * @param[in] property A <code>PP_URLResponseProperty</code> identifying
-   * the type of property in the response.
-   *
-   * @return A <code>PP_Var</code> containing the response property value if
-   * successful, <code>PP_VARTYPE_VOID</code> if an input parameter is invalid.
-   */
-  struct PP_Var (*GetProperty)(PP_Resource response,
-                               PP_URLResponseProperty property);
-  /**
-   * GetBodyAsFileRef() always returns 0, because
-   * <code>PP_URLREQUESTPROPERTY_STREAMTOFILE</code> is no longer supported.
-   *
-   * @param[in] request A <code>PP_Resource</code> corresponding to a
-   * <code>URLResponseInfo</code>.
-   *
-   * @return 0, because <code>PP_URLREQUESTPROPERTY_STREAMTOFILE</code> is no
-   * longer supported.
-   */
-  PP_Resource (*GetBodyAsFileRef)(PP_Resource response);
-};
-
-typedef struct PPB_URLResponseInfo_1_0 PPB_URLResponseInfo;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_URL_RESPONSE_INFO_H_ */
-
diff --git a/c/ppb_var.h b/c/ppb_var.h
deleted file mode 100644
index 9dc12a2..0000000
--- a/c/ppb_var.h
+++ /dev/null
@@ -1,148 +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.
- */
-
-/* From ppb_var.idl modified Thu Apr 10 14:54:41 2014. */
-
-#ifndef PPAPI_C_PPB_VAR_H_
-#define PPAPI_C_PPB_VAR_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_module.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_VAR_INTERFACE_1_0 "PPB_Var;1.0"
-#define PPB_VAR_INTERFACE_1_1 "PPB_Var;1.1"
-#define PPB_VAR_INTERFACE_1_2 "PPB_Var;1.2"
-#define PPB_VAR_INTERFACE PPB_VAR_INTERFACE_1_2
-
-/**
- * @file
- * This file defines the <code>PPB_Var</code> struct.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * PPB_Var API
- */
-struct PPB_Var_1_2 {
-  /**
-   * AddRef() adds a reference to the given var. If this is not a refcounted
-   * object, this function will do nothing so you can always call it no matter
-   * what the type.
-   *
-   * @param[in] var A <code>PP_Var</code> that will have a reference added.
-   */
-  void (*AddRef)(struct PP_Var var);
-  /**
-   * Release() removes a reference to given var, deleting it if the internal
-   * reference count becomes 0. If the <code>PP_Var</code> is of type
-   * <code>PP_VARTYPE_RESOURCE</code>,
-   * it will implicitly release a reference count on the
-   * <code>PP_Resource</code> (equivalent to PPB_Core::ReleaseResource()).
-   *
-   * If the given var is not a refcounted object, this function will do nothing
-   * so you can always call it no matter what the type.
-   *
-   * @param[in] var A <code>PP_Var</code> that will have a reference removed.
-   */
-  void (*Release)(struct PP_Var var);
-  /**
-   * VarFromUtf8() creates a string var from a string. The string must be
-   * encoded in valid UTF-8 and is NOT NULL-terminated, the length must be
-   * specified in <code>len</code>. It is an error if the string is not
-   * valid UTF-8.
-   *
-   * If the length is 0, the <code>*data</code> pointer will not be dereferenced
-   * and may be <code>NULL</code>. Note, however if length is 0, the
-   * "NULL-ness" will not be preserved, as VarToUtf8() will never return
-   * <code>NULL</code> on success, even for empty strings.
-   *
-   * The resulting object will be a refcounted string object. It will be
-   * AddRef'ed for the caller. When the caller is done with it, it should be
-   * Released.
-   *
-   * On error (basically out of memory to allocate the string, or input that
-   * is not valid UTF-8), this function will return a Null var.
-   *
-   * @param[in] data A string
-   * @param[in] len The length of the string.
-   *
-   * @return A <code>PP_Var</code> structure containing a reference counted
-   * string object.
-   */
-  struct PP_Var (*VarFromUtf8)(const char* data, uint32_t len);
-  /**
-   * VarToUtf8() converts a string-type var to a char* encoded in UTF-8. This
-   * string is NOT NULL-terminated. The length will be placed in
-   * <code>*len</code>. If the string is valid but empty the return value will
-   * be non-NULL, but <code>*len</code> will still be 0.
-   *
-   * If the var is not a string, this function will return NULL and
-   * <code>*len</code> will be 0.
-   *
-   * The returned buffer will be valid as long as the underlying var is alive.
-   * If the instance frees its reference, the string will be freed and the
-   * pointer will be to arbitrary memory.
-   *
-   * @param[in] var A PP_Var struct containing a string-type var.
-   * @param[in,out] len A pointer to the length of the string-type var.
-   *
-   * @return A char* encoded in UTF-8.
-   */
-  const char* (*VarToUtf8)(struct PP_Var var, uint32_t* len);
-  /**
-   * Converts a resource-type var to a <code>PP_Resource</code>.
-   *
-   * @param[in] var A <code>PP_Var</code> struct containing a resource-type var.
-   *
-   * @return A <code>PP_Resource</code> retrieved from the var, or 0 if the var
-   * is not a resource. The reference count of the resource is incremented on
-   * behalf of the caller.
-   */
-  PP_Resource (*VarToResource)(struct PP_Var var);
-  /**
-   * Creates a new <code>PP_Var</code> from a given resource. Implicitly adds a
-   * reference count on the <code>PP_Resource</code> (equivalent to
-   * PPB_Core::AddRefResource(resource)).
-   *
-   * @param[in] resource A <code>PP_Resource</code> to be wrapped in a var.
-   *
-   * @return A <code>PP_Var</code> created for this resource, with type
-   * <code>PP_VARTYPE_RESOURCE</code>. The reference count of the var is set to
-   * 1 on behalf of the caller.
-   */
-  struct PP_Var (*VarFromResource)(PP_Resource resource);
-};
-
-typedef struct PPB_Var_1_2 PPB_Var;
-
-struct PPB_Var_1_0 {
-  void (*AddRef)(struct PP_Var var);
-  void (*Release)(struct PP_Var var);
-  struct PP_Var (*VarFromUtf8)(PP_Module module,
-                               const char* data,
-                               uint32_t len);
-  const char* (*VarToUtf8)(struct PP_Var var, uint32_t* len);
-};
-
-struct PPB_Var_1_1 {
-  void (*AddRef)(struct PP_Var var);
-  void (*Release)(struct PP_Var var);
-  struct PP_Var (*VarFromUtf8)(const char* data, uint32_t len);
-  const char* (*VarToUtf8)(struct PP_Var var, uint32_t* len);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_VAR_H_ */
-
diff --git a/c/ppb_var_array.h b/c/ppb_var_array.h
deleted file mode 100644
index 70115c4..0000000
--- a/c/ppb_var_array.h
+++ /dev/null
@@ -1,95 +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.
- */
-
-/* From ppb_var_array.idl modified Sun Jun 16 15:37:27 2013. */
-
-#ifndef PPAPI_C_PPB_VAR_ARRAY_H_
-#define PPAPI_C_PPB_VAR_ARRAY_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_VAR_ARRAY_INTERFACE_1_0 "PPB_VarArray;1.0"
-#define PPB_VAR_ARRAY_INTERFACE PPB_VAR_ARRAY_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_VarArray</code> struct providing
- * a way to interact with array vars.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_VarArray_1_0 {
-  /**
-   * Creates an array var, i.e., a <code>PP_Var</code> with type set to
-   * <code>PP_VARTYPE_ARRAY</code>. The array length is set to 0.
-   *
-   * @return An empty array var, whose reference count is set to 1 on behalf of
-   * the caller.
-   */
-  struct PP_Var (*Create)(void);
-  /**
-   * Gets an element from the array.
-   *
-   * @param[in] array An array var.
-   * @param[in] index An index indicating which element to return.
-   *
-   * @return The element at the specified position. The reference count of the
-   * element returned is incremented on behalf of the caller. If
-   * <code>index</code> is larger than or equal to the array length, an
-   * undefined var is returned.
-   */
-  struct PP_Var (*Get)(struct PP_Var array, uint32_t index);
-  /**
-   * Sets the value of an element in the array.
-   *
-   * @param[in] array An array var.
-   * @param[in] index An index indicating which element to modify. If
-   * <code>index</code> is larger than or equal to the array length, the length
-   * is updated to be <code>index</code> + 1. Any position in the array that
-   * hasn't been set before is set to undefined, i.e., <code>PP_Var</code> of
-   * type <code>PP_VARTYPE_UNDEFINED</code>.
-   * @param[in] value The value to set. The array holds a reference to it on
-   * success.
-   *
-   * @return A <code>PP_Bool</code> indicating whether the operation succeeds.
-   */
-  PP_Bool (*Set)(struct PP_Var array, uint32_t index, struct PP_Var value);
-  /**
-   * Gets the array length.
-   *
-   * @param[in] array An array var.
-   *
-   * @return The array length.
-   */
-  uint32_t (*GetLength)(struct PP_Var array);
-  /**
-   * Sets the array length.
-   *
-   * @param[in] array An array var.
-   * @param[in] length The new array length. If <code>length</code> is smaller
-   * than its current value, the array is truncated to the new length; any
-   * elements that no longer fit are removed and the references to them will be
-   * released. If <code>length</code> is larger than its current value,
-   * undefined vars are appended to increase the array to the specified length.
-   *
-   * @return A <code>PP_Bool</code> indicating whether the operation succeeds.
-   */
-  PP_Bool (*SetLength)(struct PP_Var array, uint32_t length);
-};
-
-typedef struct PPB_VarArray_1_0 PPB_VarArray;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_VAR_ARRAY_H_ */
-
diff --git a/c/ppb_var_array_buffer.h b/c/ppb_var_array_buffer.h
deleted file mode 100644
index 1fe81e3..0000000
--- a/c/ppb_var_array_buffer.h
+++ /dev/null
@@ -1,119 +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.
- */
-
-/* From ppb_var_array_buffer.idl modified Thu Feb 28 09:24:06 2013. */
-
-#ifndef PPAPI_C_PPB_VAR_ARRAY_BUFFER_H_
-#define PPAPI_C_PPB_VAR_ARRAY_BUFFER_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0 "PPB_VarArrayBuffer;1.0"
-#define PPB_VAR_ARRAY_BUFFER_INTERFACE PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_VarArrayBuffer</code> struct providing
- * a way to interact with JavaScript ArrayBuffers.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_VarArrayBuffer</code> interface provides a way to interact
- * with JavaScript ArrayBuffers, which represent a contiguous sequence of
- * bytes. Use <code>PPB_Var</code> to manage the reference count for a
- * <code>VarArrayBuffer</code>. Note that these Vars are not part of the
- * embedding page's DOM, and can only be shared with JavaScript using the
- * <code>PostMessage</code> and <code>HandleMessage</code> functions of
- * <code>pp::Instance</code>.
- */
-struct PPB_VarArrayBuffer_1_0 {
-  /**
-   * Create() creates a zero-initialized <code>VarArrayBuffer</code>.
-   *
-   * @param[in] size_in_bytes The size of the <code>ArrayBuffer</code> to
-   * be created.
-   *
-   * @return A <code>PP_Var</code> representing a <code>VarArrayBuffer</code>
-   * of the requested size and with a reference count of 1.
-   */
-  struct PP_Var (*Create)(uint32_t size_in_bytes);
-  /**
-   * ByteLength() retrieves the length of the <code>VarArrayBuffer</code> in
-   * bytes. On success, <code>byte_length</code> is set to the length of the
-   * given <code>ArrayBuffer</code> var. On failure, <code>byte_length</code>
-   * is unchanged (this could happen, for instance, if the given
-   * <code>PP_Var</code> is not of type <code>PP_VARTYPE_ARRAY_BUFFER</code>).
-   * Note that ByteLength() will successfully retrieve the size of an
-   * <code>ArrayBuffer</code> even if the <code>ArrayBuffer</code> is not
-   * currently mapped.
-   *
-   * @param[in] array The <code>ArrayBuffer</code> whose length should be
-   * returned.
-   *
-   * @param[out] byte_length A variable which is set to the length of the given
-   * <code>ArrayBuffer</code> on success.
-   *
-   * @return <code>PP_TRUE</code> on success, <code>PP_FALSE</code> on failure.
-   */
-  PP_Bool (*ByteLength)(struct PP_Var array, uint32_t* byte_length);
-  /**
-   * Map() maps the <code>ArrayBuffer</code> in to the module's address space
-   * and returns a pointer to the beginning of the buffer for the given
-   * <code>ArrayBuffer PP_Var</code>. ArrayBuffers are copied when transmitted,
-   * so changes to the underlying memory are not automatically available to
-   * the embedding page.
-   *
-   * Note that calling Map() can be a relatively expensive operation. Use care
-   * when calling it in performance-critical code. For example, you should call
-   * it only once when looping over an <code>ArrayBuffer</code>.
-   *
-   * <strong>Example:</strong>
-   *
-   * @code
-   * char* data = (char*)(array_buffer_if.Map(array_buffer_var));
-   * uint32_t byte_length = 0;
-   * PP_Bool ok = array_buffer_if.ByteLength(array_buffer_var, &byte_length);
-   * if (!ok)
-   *   return DoSomethingBecauseMyVarIsNotAnArrayBuffer();
-   * for (uint32_t i = 0; i < byte_length; ++i)
-   *   data[i] = 'A';
-   * @endcode
-   *
-   * @param[in] array The <code>ArrayBuffer</code> whose internal buffer should
-   * be returned.
-   *
-   * @return A pointer to the internal buffer for this
-   * <code>ArrayBuffer</code>. Returns <code>NULL</code>
-   * if the given <code>PP_Var</code> is not of type
-   * <code>PP_VARTYPE_ARRAY_BUFFER</code>.
-   */
-  void* (*Map)(struct PP_Var array);
-  /**
-   * Unmap() unmaps the given <code>ArrayBuffer</code> var from the module
-   * address space. Use this if you want to save memory but might want to call
-   * Map() to map the buffer again later. The <code>PP_Var</code> remains valid
-   * and should still be released using <code>PPB_Var</code> when you are done
-   * with the <code>ArrayBuffer</code>.
-   *
-   * @param[in] array The <code>ArrayBuffer</code> to be released.
-   */
-  void (*Unmap)(struct PP_Var array);
-};
-
-typedef struct PPB_VarArrayBuffer_1_0 PPB_VarArrayBuffer;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_VAR_ARRAY_BUFFER_H_ */
-
diff --git a/c/ppb_var_dictionary.h b/c/ppb_var_dictionary.h
deleted file mode 100644
index 9dcccac..0000000
--- a/c/ppb_var_dictionary.h
+++ /dev/null
@@ -1,107 +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.
- */
-
-/* From ppb_var_dictionary.idl modified Sat Jun  8 23:03:54 2013. */
-
-#ifndef PPAPI_C_PPB_VAR_DICTIONARY_H_
-#define PPAPI_C_PPB_VAR_DICTIONARY_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_VAR_DICTIONARY_INTERFACE_1_0 "PPB_VarDictionary;1.0"
-#define PPB_VAR_DICTIONARY_INTERFACE PPB_VAR_DICTIONARY_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_VarDictionary</code> struct providing
- * a way to interact with dictionary vars.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * A dictionary var contains key-value pairs with unique keys. The keys are
- * strings while the values can be arbitrary vars. Key comparison is always
- * done by value instead of by reference.
- */
-struct PPB_VarDictionary_1_0 {
-  /**
-   * Creates a dictionary var, i.e., a <code>PP_Var</code> with type set to
-   * <code>PP_VARTYPE_DICTIONARY</code>.
-   *
-   * @return An empty dictionary var, whose reference count is set to 1 on
-   * behalf of the caller.
-   */
-  struct PP_Var (*Create)(void);
-  /**
-   * Gets the value associated with the specified key.
-   *
-   * @param[in] dict A dictionary var.
-   * @param[in] key A string var.
-   *
-   * @return The value that is associated with <code>key</code>. The reference
-   * count of the element returned is incremented on behalf of the caller. If
-   * <code>key</code> is not a string var, or it doesn't exist in
-   * <code>dict</code>, an undefined var is returned.
-   */
-  struct PP_Var (*Get)(struct PP_Var dict, struct PP_Var key);
-  /**
-   * Sets the value associated with the specified key.
-   *
-   * @param[in] dict A dictionary var.
-   * @param[in] key A string var. If this key hasn't existed in
-   * <code>dict</code>, it is added and associated with <code>value</code>;
-   * otherwise, the previous value is replaced with <code>value</code>.
-   * @param[in] value The value to set. The dictionary holds a reference to it
-   * on success.
-   *
-   * @return A <code>PP_Bool</code> indicating whether the operation succeeds.
-   */
-  PP_Bool (*Set)(struct PP_Var dict, struct PP_Var key, struct PP_Var value);
-  /**
-   * Deletes the specified key and its associated value, if the key exists. The
-   * reference to the element will be released.
-   *
-   * @param[in] dict A dictionary var.
-   * @param[in] key A string var.
-   */
-  void (*Delete)(struct PP_Var dict, struct PP_Var key);
-  /**
-   * Checks whether a key exists.
-   *
-   * @param[in] dict A dictionary var.
-   * @param[in] key A string var.
-   *
-   * @return A <code>PP_Bool</code> indicating whether the key exists.
-   */
-  PP_Bool (*HasKey)(struct PP_Var dict, struct PP_Var key);
-  /**
-   * Gets all the keys in a dictionary. Please note that for each key that you
-   * set into the dictionary, a string var with the same contents is returned;
-   * but it may not be the same string var (i.e., <code>value.as_id</code> may
-   * be different).
-   *
-   * @param[in] dict A dictionary var.
-   *
-   * @return An array var which contains all the keys of <code>dict</code>. Its
-   * reference count is incremented on behalf of the caller. The elements are
-   * string vars. Returns a null var if failed.
-   */
-  struct PP_Var (*GetKeys)(struct PP_Var dict);
-};
-
-typedef struct PPB_VarDictionary_1_0 PPB_VarDictionary;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_VAR_DICTIONARY_H_ */
-
diff --git a/c/ppb_video_decoder.h b/c/ppb_video_decoder.h
deleted file mode 100644
index 9046d6b..0000000
--- a/c/ppb_video_decoder.h
+++ /dev/null
@@ -1,311 +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.
- */
-
-/* From ppb_video_decoder.idl modified Mon Sep 28 15:23:30 2015. */
-
-#ifndef PPAPI_C_PPB_VIDEO_DECODER_H_
-#define PPAPI_C_PPB_VIDEO_DECODER_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_codecs.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_VIDEODECODER_INTERFACE_0_1 "PPB_VideoDecoder;0.1"
-#define PPB_VIDEODECODER_INTERFACE_0_2 "PPB_VideoDecoder;0.2"
-#define PPB_VIDEODECODER_INTERFACE_1_0 "PPB_VideoDecoder;1.0"
-#define PPB_VIDEODECODER_INTERFACE_1_1 "PPB_VideoDecoder;1.1"
-#define PPB_VIDEODECODER_INTERFACE PPB_VIDEODECODER_INTERFACE_1_1
-
-/**
- * @file
- * This file defines the <code>PPB_VideoDecoder</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * Video decoder interface.
- *
- * Typical usage:
- * - Call Create() to create a new video decoder resource.
- * - Call Initialize() to initialize it with a 3d graphics context and the
- *   desired codec profile.
- * - Call Decode() continuously (waiting for each previous call to complete) to
- *   push bitstream buffers to the decoder.
- * - Call GetPicture() continuously (waiting for each previous call to complete)
- *   to pull decoded pictures from the decoder.
- * - Call Flush() to signal end of stream to the decoder and perform shutdown
- *   when it completes.
- * - Call Reset() to quickly stop the decoder (e.g. to implement Seek) and wait
- *   for the callback before restarting decoding at another point.
- * - To destroy the decoder, the plugin should release all of its references to
- *   it. Any pending callbacks will abort before the decoder is destroyed.
- *
- * Available video codecs vary by platform.
- * All: theora, vorbis, vp8.
- * Chrome and ChromeOS: aac, h264.
- * ChromeOS: mpeg4.
- */
-struct PPB_VideoDecoder_1_1 {
-  /**
-   * Creates a new video decoder resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * with the video decoder.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a video decoder if
-   * successful or 0 otherwise.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Determines if the given resource is a video decoder.
-   *
-   * @param[in] resource A <code>PP_Resource</code> identifying a resource.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a
-   * <code>PPB_VideoDecoder</code>, <code>PP_FALSE</code> if the resource is
-   * invalid or some other type.
-   */
-  PP_Bool (*IsVideoDecoder)(PP_Resource resource);
-  /**
-   * Initializes a video decoder resource. This should be called after Create()
-   * and before any other functions.
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[in] graphics3d_context A <code>PPB_Graphics3D</code> resource to use
-   * during decoding.
-   * @param[in] profile A <code>PP_VideoProfile</code> specifying the video
-   * codec profile.
-   * @param[in] acceleration A <code>PP_HardwareAcceleration</code> specifying
-   * whether to use a hardware accelerated or a software implementation.
-   * @param[in] min_picture_count A count of pictures the plugin would like to
-   * have in flight. This is effectively the number of times the plugin can
-   * call GetPicture() and get a decoded frame without calling
-   * RecyclePicture(). The decoder has its own internal minimum count, and will
-   * take the larger of its internal and this value. A client that doesn't care
-   * can therefore just pass in zero for this argument.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the
-   * requested profile is not supported. In this case, the client may call
-   * Initialize() again with different parameters to find a good configuration.
-   * Returns PP_ERROR_BADARGUMENT if the requested minimum picture count is
-   * unreasonably large.
-   */
-  int32_t (*Initialize)(PP_Resource video_decoder,
-                        PP_Resource graphics3d_context,
-                        PP_VideoProfile profile,
-                        PP_HardwareAcceleration acceleration,
-                        uint32_t min_picture_count,
-                        struct PP_CompletionCallback callback);
-  /**
-   * Decodes a bitstream buffer. Copies |size| bytes of data from the plugin's
-   * |buffer|. The plugin should wait until the decoder signals completion by
-   * returning PP_OK or by running |callback| before calling Decode() again.
-   *
-   * In general, each bitstream buffer should contain a demuxed bitstream frame
-   * for the selected video codec. For example, H264 decoders expect to receive
-   * one AnnexB NAL unit, including the 4 byte start code prefix, while VP8
-   * decoders expect to receive a bitstream frame without the IVF frame header.
-   *
-   * If the call to Decode() eventually results in a picture, the |decode_id|
-   * parameter is copied into the returned picture. The plugin can use this to
-   * associate decoded pictures with Decode() calls (e.g. to assign timestamps
-   * or frame numbers to pictures.) This value is opaque to the API so the
-   * plugin is free to pass any value.
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[in] decode_id An optional value, chosen by the plugin, that can be
-   * used to associate calls to Decode() with decoded pictures returned by
-   * GetPicture().
-   * @param[in] size Buffer size in bytes.
-   * @param[in] buffer Starting address of buffer.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Flush()
-   * or Reset() call is pending.
-   * Returns PP_ERROR_INPROGRESS if there is another Decode() call pending.
-   * Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created.
-   * Returns PP_ERROR_ABORTED when Reset() is called while Decode() is pending.
-   */
-  int32_t (*Decode)(PP_Resource video_decoder,
-                    uint32_t decode_id,
-                    uint32_t size,
-                    const void* buffer,
-                    struct PP_CompletionCallback callback);
-  /**
-   * Gets the next picture from the decoder. The picture is valid after the
-   * decoder signals completion by returning PP_OK or running |callback|. The
-   * plugin can call GetPicture() again after the decoder signals completion.
-   * When the plugin is finished using the picture, it should return it to the
-   * system by calling RecyclePicture().
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[out] picture A <code>PP_VideoPicture</code> to hold the decoded
-   * picture.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Reset()
-   * call is pending.
-   * Returns PP_ERROR_INPROGRESS if there is another GetPicture() call pending.
-   * Returns PP_ERROR_ABORTED when Reset() is called, or if a call to Flush()
-   * completes while GetPicture() is pending.
-   */
-  int32_t (*GetPicture)(PP_Resource video_decoder,
-                        struct PP_VideoPicture* picture,
-                        struct PP_CompletionCallback callback);
-  /**
-   * Recycles a picture that the plugin has received from the decoder.
-   * The plugin should call this as soon as it has finished using the texture so
-   * the decoder can decode more pictures.
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[in] picture A <code>PP_VideoPicture</code> to return to
-   * the decoder.
-   */
-  void (*RecyclePicture)(PP_Resource video_decoder,
-                         const struct PP_VideoPicture* picture);
-  /**
-   * Flushes the decoder. The plugin should call Flush() when it reaches the
-   * end of its video stream in order to stop cleanly. The decoder will run any
-   * pending Decode() call to completion. The plugin should make no further
-   * calls to the decoder other than GetPicture() and RecyclePicture() until
-   * the decoder signals completion by running |callback|. Just before
-   * completion, any pending GetPicture() call will complete by running its
-   * callback with result PP_ERROR_ABORTED to signal that no more pictures are
-   * available. Any pictures held by the plugin remain valid during and after
-   * the flush and should be recycled back to the decoder.
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if the decoder isn't initialized.
-   */
-  int32_t (*Flush)(PP_Resource video_decoder,
-                   struct PP_CompletionCallback callback);
-  /**
-   * Resets the decoder as quickly as possible. The plugin can call Reset() to
-   * skip to another position in the video stream. After Reset() returns, any
-   * pending calls to Decode() and GetPicture()) abort, causing their callbacks
-   * to run with PP_ERROR_ABORTED. The plugin should not make further calls to
-   * the decoder other than RecyclePicture() until the decoder signals
-   * completion by running |callback|. Any pictures held by the plugin remain
-   * valid during and after the reset and should be recycled back to the
-   * decoder.
-   *
-   * @param[in] video_decoder A <code>PP_Resource</code> identifying the video
-   * decoder.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if the decoder isn't initialized.
-   */
-  int32_t (*Reset)(PP_Resource video_decoder,
-                   struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_VideoDecoder_1_1 PPB_VideoDecoder;
-
-struct PPB_VideoDecoder_0_1 {
-  PP_Resource (*Create)(PP_Instance instance);
-  PP_Bool (*IsVideoDecoder)(PP_Resource resource);
-  int32_t (*Initialize)(PP_Resource video_decoder,
-                        PP_Resource graphics3d_context,
-                        PP_VideoProfile profile,
-                        PP_Bool allow_software_fallback,
-                        struct PP_CompletionCallback callback);
-  int32_t (*Decode)(PP_Resource video_decoder,
-                    uint32_t decode_id,
-                    uint32_t size,
-                    const void* buffer,
-                    struct PP_CompletionCallback callback);
-  int32_t (*GetPicture)(PP_Resource video_decoder,
-                        struct PP_VideoPicture_0_1* picture,
-                        struct PP_CompletionCallback callback);
-  void (*RecyclePicture)(PP_Resource video_decoder,
-                         const struct PP_VideoPicture* picture);
-  int32_t (*Flush)(PP_Resource video_decoder,
-                   struct PP_CompletionCallback callback);
-  int32_t (*Reset)(PP_Resource video_decoder,
-                   struct PP_CompletionCallback callback);
-};
-
-struct PPB_VideoDecoder_0_2 {
-  PP_Resource (*Create)(PP_Instance instance);
-  PP_Bool (*IsVideoDecoder)(PP_Resource resource);
-  int32_t (*Initialize)(PP_Resource video_decoder,
-                        PP_Resource graphics3d_context,
-                        PP_VideoProfile profile,
-                        PP_HardwareAcceleration acceleration,
-                        struct PP_CompletionCallback callback);
-  int32_t (*Decode)(PP_Resource video_decoder,
-                    uint32_t decode_id,
-                    uint32_t size,
-                    const void* buffer,
-                    struct PP_CompletionCallback callback);
-  int32_t (*GetPicture)(PP_Resource video_decoder,
-                        struct PP_VideoPicture_0_1* picture,
-                        struct PP_CompletionCallback callback);
-  void (*RecyclePicture)(PP_Resource video_decoder,
-                         const struct PP_VideoPicture* picture);
-  int32_t (*Flush)(PP_Resource video_decoder,
-                   struct PP_CompletionCallback callback);
-  int32_t (*Reset)(PP_Resource video_decoder,
-                   struct PP_CompletionCallback callback);
-};
-
-struct PPB_VideoDecoder_1_0 {
-  PP_Resource (*Create)(PP_Instance instance);
-  PP_Bool (*IsVideoDecoder)(PP_Resource resource);
-  int32_t (*Initialize)(PP_Resource video_decoder,
-                        PP_Resource graphics3d_context,
-                        PP_VideoProfile profile,
-                        PP_HardwareAcceleration acceleration,
-                        struct PP_CompletionCallback callback);
-  int32_t (*Decode)(PP_Resource video_decoder,
-                    uint32_t decode_id,
-                    uint32_t size,
-                    const void* buffer,
-                    struct PP_CompletionCallback callback);
-  int32_t (*GetPicture)(PP_Resource video_decoder,
-                        struct PP_VideoPicture* picture,
-                        struct PP_CompletionCallback callback);
-  void (*RecyclePicture)(PP_Resource video_decoder,
-                         const struct PP_VideoPicture* picture);
-  int32_t (*Flush)(PP_Resource video_decoder,
-                   struct PP_CompletionCallback callback);
-  int32_t (*Reset)(PP_Resource video_decoder,
-                   struct PP_CompletionCallback callback);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_VIDEO_DECODER_H_ */
-
diff --git a/c/ppb_video_encoder.h b/c/ppb_video_encoder.h
deleted file mode 100644
index 0b1b31f..0000000
--- a/c/ppb_video_encoder.h
+++ /dev/null
@@ -1,282 +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.
- */
-
-/* From ppb_video_encoder.idl modified Wed Jul 15 11:34:20 2015. */
-
-#ifndef PPAPI_C_PPB_VIDEO_ENCODER_H_
-#define PPAPI_C_PPB_VIDEO_ENCODER_H_
-
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_codecs.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/ppb_video_frame.h"
-
-#define PPB_VIDEOENCODER_INTERFACE_0_1 "PPB_VideoEncoder;0.1" /* dev */
-#define PPB_VIDEOENCODER_INTERFACE_0_2 "PPB_VideoEncoder;0.2"
-#define PPB_VIDEOENCODER_INTERFACE PPB_VIDEOENCODER_INTERFACE_0_2
-
-/**
- * @file
- * This file defines the <code>PPB_VideoEncoder</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * Video encoder interface.
- *
- * Typical usage:
- * - Call Create() to create a new video encoder resource.
- * - Call GetSupportedFormats() to determine which codecs and profiles are
- *   available.
- * - Call Initialize() to initialize the encoder for a supported profile.
- * - Call GetVideoFrame() to get a blank frame and fill it in, or get a video
- *   frame from another resource, e.g. <code>PPB_MediaStreamVideoTrack</code>.
- * - Call Encode() to push the video frame to the encoder. If an external frame
- *   is pushed, wait for completion to recycle the frame.
- * - Call GetBitstreamBuffer() continuously (waiting for each previous call to
- *   complete) to pull encoded pictures from the encoder.
- * - Call RecycleBitstreamBuffer() after consuming the data in the bitstream
- *   buffer.
- * - To destroy the encoder, the plugin should release all of its references to
- *   it. Any pending callbacks will abort before the encoder is destroyed.
- *
- * Available video codecs vary by platform.
- * All: vp8 (software).
- * ChromeOS, depending on your device: h264 (hardware), vp8 (hardware)
- */
-struct PPB_VideoEncoder_0_2 {
-  /**
-   * Creates a new video encoder resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * with the video encoder.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a video encoder if
-   * successful or 0 otherwise.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Determines if the given resource is a video encoder.
-   *
-   * @param[in] resource A <code>PP_Resource</code> identifying a resource.
-   *
-   * @return <code>PP_TRUE</code> if the resource is a
-   * <code>PPB_VideoEncoder</code>, <code>PP_FALSE</code> if the resource is
-   * invalid or some other type.
-   */
-  PP_Bool (*IsVideoEncoder)(PP_Resource resource);
-  /**
-   * Gets an array of supported video encoder profiles.
-   * These can be used to choose a profile before calling Initialize().
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[in] output A <code>PP_ArrayOutput</code> to receive the supported
-   * <code>PP_VideoProfileDescription</code> structs.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return If >= 0, the number of supported profiles returned, otherwise an
-   * error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*GetSupportedProfiles)(PP_Resource video_encoder,
-                                  struct PP_ArrayOutput output,
-                                  struct PP_CompletionCallback callback);
-  /**
-   * Initializes a video encoder resource. The plugin should call Initialize()
-   * successfully before calling any of the functions below.
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[in] input_format The <code>PP_VideoFrame_Format</code> of the
-   * frames which will be encoded.
-   * @param[in] input_visible_size A <code>PP_Size</code> specifying the
-   * dimensions of the visible part of the input frames.
-   * @param[in] output_profile A <code>PP_VideoProfile</code> specifying the
-   * codec profile of the encoded output stream.
-   * @param[in] acceleration A <code>PP_HardwareAcceleration</code> specifying
-   * whether to use a hardware accelerated or a software implementation.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_NOTSUPPORTED if video encoding is not available, or the
-   * requested codec profile is not supported.
-   */
-  int32_t (*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);
-  /**
-   * Gets the number of input video frames that the encoder may hold while
-   * encoding. If the plugin is providing the video frames, it should have at
-   * least this many available.
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @return An int32_t containing the number of frames required, or an error
-   * code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if Initialize() has not successfully completed.
-   */
-  int32_t (*GetFramesRequired)(PP_Resource video_encoder);
-  /**
-   * Gets the coded size of the video frames required by the encoder. Coded
-   * size is the logical size of the input frames, in pixels.  The encoder may
-   * have hardware alignment requirements that make this different from
-   * |input_visible_size|, as requested in the call to Initialize().
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[in] coded_size A <code>PP_Size</code> to hold the coded size.
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if Initialize() has not successfully completed.
-   */
-  int32_t (*GetFrameCodedSize)(PP_Resource video_encoder,
-                               struct PP_Size* coded_size);
-  /**
-   * Gets a blank video frame which can be filled with video data and passed
-   * to the encoder.
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[out] video_frame A blank <code>PPB_VideoFrame</code> resource.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if Initialize() has not successfully completed.
-   */
-  int32_t (*GetVideoFrame)(PP_Resource video_encoder,
-                           PP_Resource* video_frame,
-                           struct PP_CompletionCallback callback);
-  /**
-   * Encodes a video frame.
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[in] video_frame The <code>PPB_VideoFrame</code> to be encoded.
-   * @param[in] force_keyframe A <code>PP_Bool> specifying whether the encoder
-   * should emit a key frame for this video frame.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion. Plugins that pass <code>PPB_VideoFrame</code> resources owned
-   * by other resources should wait for completion before reusing them.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if Initialize() has not successfully completed.
-   */
-  int32_t (*Encode)(PP_Resource video_encoder,
-                    PP_Resource video_frame,
-                    PP_Bool force_keyframe,
-                    struct PP_CompletionCallback callback);
-  /**
-   * Gets the next encoded bitstream buffer from the encoder.
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[out] bitstream_buffer A <code>PP_BitstreamBuffer</code> containing
-   * encoded video data.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion. The plugin can call GetBitstreamBuffer from the callback in
-   * order to continuously "pull" bitstream buffers from the encoder.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns PP_ERROR_FAILED if Initialize() has not successfully completed.
-   * Returns PP_ERROR_INPROGRESS if a prior call to GetBitstreamBuffer() has
-   * not completed.
-   */
-  int32_t (*GetBitstreamBuffer)(PP_Resource video_encoder,
-                                struct PP_BitstreamBuffer* bitstream_buffer,
-                                struct PP_CompletionCallback callback);
-  /**
-   * Recycles a bitstream buffer back to the encoder.
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[in] bitstream_buffer A <code>PP_BitstreamBuffer</code> that is no
-   * longer needed by the plugin.
-   */
-  void (*RecycleBitstreamBuffer)(
-      PP_Resource video_encoder,
-      const struct PP_BitstreamBuffer* bitstream_buffer);
-  /**
-   * Requests a change to encoding parameters. This is only a request,
-   * fulfilled on a best-effort basis.
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   * @param[in] bitrate The requested new bitrate, in bits per second.
-   * @param[in] framerate The requested new framerate, in frames per second.
-   */
-  void (*RequestEncodingParametersChange)(PP_Resource video_encoder,
-                                          uint32_t bitrate,
-                                          uint32_t framerate);
-  /**
-   * Closes the video encoder, and cancels any pending encodes. Any pending
-   * callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is
-   * not valid to call any encoder functions after a call to this method.
-   * <strong>Note:</strong> Destroying the video encoder closes it implicitly,
-   * so you are not required to call Close().
-   *
-   * @param[in] video_encoder A <code>PP_Resource</code> identifying the video
-   * encoder.
-   */
-  void (*Close)(PP_Resource video_encoder);
-};
-
-typedef struct PPB_VideoEncoder_0_2 PPB_VideoEncoder;
-
-struct PPB_VideoEncoder_0_1 { /* dev */
-  PP_Resource (*Create)(PP_Instance instance);
-  PP_Bool (*IsVideoEncoder)(PP_Resource resource);
-  int32_t (*GetSupportedProfiles)(PP_Resource video_encoder,
-                                  struct PP_ArrayOutput output,
-                                  struct PP_CompletionCallback callback);
-  int32_t (*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);
-  int32_t (*GetFramesRequired)(PP_Resource video_encoder);
-  int32_t (*GetFrameCodedSize)(PP_Resource video_encoder,
-                               struct PP_Size* coded_size);
-  int32_t (*GetVideoFrame)(PP_Resource video_encoder,
-                           PP_Resource* video_frame,
-                           struct PP_CompletionCallback callback);
-  int32_t (*Encode)(PP_Resource video_encoder,
-                    PP_Resource video_frame,
-                    PP_Bool force_keyframe,
-                    struct PP_CompletionCallback callback);
-  int32_t (*GetBitstreamBuffer)(PP_Resource video_encoder,
-                                struct PP_BitstreamBuffer* bitstream_buffer,
-                                struct PP_CompletionCallback callback);
-  void (*RecycleBitstreamBuffer)(
-      PP_Resource video_encoder,
-      const struct PP_BitstreamBuffer* bitstream_buffer);
-  void (*RequestEncodingParametersChange)(PP_Resource video_encoder,
-                                          uint32_t bitrate,
-                                          uint32_t framerate);
-  void (*Close)(PP_Resource video_encoder);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_VIDEO_ENCODER_H_ */
-
diff --git a/c/ppb_video_frame.h b/c/ppb_video_frame.h
deleted file mode 100644
index 3605aba..0000000
--- a/c/ppb_video_frame.h
+++ /dev/null
@@ -1,139 +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.
- */
-
-/* From ppb_video_frame.idl modified Tue Mar 25 18:28:57 2014. */
-
-#ifndef PPAPI_C_PPB_VIDEO_FRAME_H_
-#define PPAPI_C_PPB_VIDEO_FRAME_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-
-#define PPB_VIDEOFRAME_INTERFACE_0_1 "PPB_VideoFrame;0.1"
-#define PPB_VIDEOFRAME_INTERFACE PPB_VIDEOFRAME_INTERFACE_0_1
-
-/**
- * @file
- * Defines the <code>PPB_VideoFrame</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-typedef enum {
-  /**
-   * Unknown format value.
-   */
-  PP_VIDEOFRAME_FORMAT_UNKNOWN = 0,
-  /**
-   * 12bpp YVU planar 1x1 Y, 2x2 VU samples.
-   */
-  PP_VIDEOFRAME_FORMAT_YV12 = 1,
-  /**
-   * 12bpp YUV planar 1x1 Y, 2x2 UV samples.
-   */
-  PP_VIDEOFRAME_FORMAT_I420 = 2,
-  /**
-   * 32bpp BGRA.
-   */
-  PP_VIDEOFRAME_FORMAT_BGRA = 3,
-  /**
-   * The last format.
-   */
-  PP_VIDEOFRAME_FORMAT_LAST = PP_VIDEOFRAME_FORMAT_BGRA
-} PP_VideoFrame_Format;
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_VideoFrame_0_1 {
-  /**
-   * Determines if a resource is a VideoFrame resource.
-   *
-   * @param[in] resource The <code>PP_Resource</code> to test.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * resource is a VideoFrame resource or <code>PP_FALSE</code> otherwise.
-   */
-  PP_Bool (*IsVideoFrame)(PP_Resource resource);
-  /**
-   * Gets the timestamp of the video frame.
-   *
-   * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
-   * resource.
-   *
-   * @return A <code>PP_TimeDelta</code> containing the timestamp of the video
-   * frame. Given in seconds since the start of the containing video stream.
-   */
-  PP_TimeDelta (*GetTimestamp)(PP_Resource frame);
-  /**
-   * Sets the timestamp of the video frame. Given in seconds since the
-   * start of the containing video stream.
-   *
-   * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
-   * resource.
-   * @param[in] timestamp A <code>PP_TimeDelta</code> containing the timestamp
-   * of the video frame. Given in seconds since the start of the containing
-   * video stream.
-   */
-  void (*SetTimestamp)(PP_Resource frame, PP_TimeDelta timestamp);
-  /**
-   * Gets the format of the video frame.
-   *
-   * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
-   * resource.
-   *
-   * @return A <code>PP_VideoFrame_Format</code> containing the format of the
-   * video frame.
-   */
-  PP_VideoFrame_Format (*GetFormat)(PP_Resource frame);
-  /**
-   * Gets the size of the video frame.
-   *
-   * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
-   * resource.
-   * @param[out] size A <code>PP_Size</code>.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> on success or
-   * <code>PP_FALSE</code> on failure.
-   */
-  PP_Bool (*GetSize)(PP_Resource frame, struct PP_Size* size);
-  /**
-   * Gets the data buffer for video frame pixels.
-   *
-   * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
-   * resource.
-   *
-   * @return A pointer to the beginning of the data buffer.
-   */
-  void* (*GetDataBuffer)(PP_Resource frame);
-  /**
-   * Gets the size of data buffer.
-   *
-   * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
-   * resource.
-   *
-   * @return The size of the data buffer.
-   */
-  uint32_t (*GetDataBufferSize)(PP_Resource frame);
-};
-
-typedef struct PPB_VideoFrame_0_1 PPB_VideoFrame;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_VIDEO_FRAME_H_ */
-
diff --git a/c/ppb_view.h b/c/ppb_view.h
deleted file mode 100644
index 27a7019..0000000
--- a/c/ppb_view.h
+++ /dev/null
@@ -1,243 +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.
- */
-
-/* From ppb_view.idl modified Fri Sep  5 11:32:22 2014. */
-
-#ifndef PPAPI_C_PPB_VIEW_H_
-#define PPAPI_C_PPB_VIEW_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_VIEW_INTERFACE_1_0 "PPB_View;1.0"
-#define PPB_VIEW_INTERFACE_1_1 "PPB_View;1.1"
-#define PPB_VIEW_INTERFACE_1_2 "PPB_View;1.2"
-#define PPB_VIEW_INTERFACE PPB_VIEW_INTERFACE_1_2
-
-/**
- * @file
- * This file defines the <code>PPB_View</code> struct representing the state
- * of the view of an instance.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * <code>PPB_View</code> represents the state of the view of an instance.
- * You will receive new view information using
- * <code>PPP_Instance.DidChangeView</code>.
- */
-struct PPB_View_1_2 {
-  /**
-   * IsView() determines if the given resource is a valid
-   * <code>PPB_View</code> resource. Note that <code>PPB_ViewChanged</code>
-   * resources derive from <code>PPB_View</code> and will return true here
-   * as well.
-   *
-   * @param resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return <code>PP_TRUE</code> if the given resource supports
-   * <code>PPB_View</code> or <code>PP_FALSE</code> if it is an invalid
-   * resource or is a resource of another type.
-   */
-  PP_Bool (*IsView)(PP_Resource resource);
-  /**
-   * GetRect() retrieves the rectangle of the module instance associated
-   * with a view changed notification relative to the upper-left of the browser
-   * viewport. This position changes when the page is scrolled.
-   *
-   * The returned rectangle may not be inside the visible portion of the
-   * viewport if the module instance is scrolled off the page. Therefore, the
-   * position may be negative or larger than the size of the page. The size will
-   * always reflect the size of the module were it to be scrolled entirely into
-   * view.
-   *
-   * In general, most modules will not need to worry about the position of the
-   * module instance in the viewport, and only need to use the size.
-   *
-   * @param resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @param rect A <code>PP_Rect</code> receiving the rectangle on success.
-   *
-   * @return Returns <code>PP_TRUE</code> if the resource was valid and the
-   * viewport rectangle was filled in, <code>PP_FALSE</code> if not.
-   */
-  PP_Bool (*GetRect)(PP_Resource resource, struct PP_Rect* rect);
-  /**
-   * IsFullscreen() returns whether the instance is currently
-   * displaying in fullscreen mode.
-   *
-   * @param resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return <code>PP_TRUE</code> if the instance is in full screen mode,
-   * or <code>PP_FALSE</code> if it's not or the resource is invalid.
-   */
-  PP_Bool (*IsFullscreen)(PP_Resource resource);
-  /**
-   * IsVisible() determines whether the module instance might be visible to
-   * the user. For example, the Chrome window could be minimized or another
-   * window could be over it. In both of these cases, the module instance
-   * would not be visible to the user, but IsVisible() will return true.
-   *
-   * Use the result to speed up or stop updates for invisible module
-   * instances.
-   *
-   * This function performs the duties of GetRect() (determining whether the
-   * module instance is scrolled into view and the clip rectangle is nonempty)
-   * and IsPageVisible() (whether the page is visible to the user).
-   *
-   * @param resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return <code>PP_TRUE</code> if the instance might be visible to the
-   * user, <code>PP_FALSE</code> if it is definitely not visible.
-   */
-  PP_Bool (*IsVisible)(PP_Resource resource);
-  /**
-   * IsPageVisible() determines if the page that contains the module instance
-   * is visible. The most common cause of invisible pages is that
-   * the page is in a background tab in the browser.
-   *
-   * Most applications should use IsVisible() instead of this function since
-   * the module instance could be scrolled off of a visible page, and this
-   * function will still return true. However, depending on how your module
-   * interacts with the page, there may be certain updates that you may want to
-   * perform when the page is visible even if your specific module instance is
-   * not visible.
-   *
-   * @param resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return <code>PP_TRUE</code> if the instance is plausibly visible to the
-   * user, <code>PP_FALSE</code> if it is definitely not visible.
-   */
-  PP_Bool (*IsPageVisible)(PP_Resource resource);
-  /**
-   * GetClipRect() returns the clip rectangle relative to the upper-left corner
-   * of the module instance. This rectangle indicates the portions of the module
-   * instance that are scrolled into view.
-   *
-   * If the module instance is scrolled off the view, the return value will be
-   * (0, 0, 0, 0). This clip rectangle does <i>not</i> take into account page
-   * visibility. Therefore, if the module instance is scrolled into view, but
-   * the page itself is on a tab that is not visible, the return rectangle will
-   * contain the visible rectangle as though the page were visible. Refer to
-   * IsPageVisible() and IsVisible() if you want to account for page
-   * visibility.
-   *
-   * Most applications will not need to worry about the clip rectangle. The
-   * recommended behavior is to do full updates if the module instance is
-   * visible, as determined by IsVisible(), and do no updates if it is not
-   * visible.
-   *
-   * However, if the cost for computing pixels is very high for your
-   * application, or the pages you're targeting frequently have very large
-   * module instances with small visible portions, you may wish to optimize
-   * further. In this case, the clip rectangle will tell you which parts of
-   * the module to update.
-   *
-   * Note that painting of the page and sending of view changed updates
-   * happens asynchronously. This means when the user scrolls, for example,
-   * it is likely that the previous backing store of the module instance will
-   * be used for the first paint, and will be updated later when your
-   * application generates new content with the new clip. This may cause
-   * flickering at the boundaries when scrolling. If you do choose to do
-   * partial updates, you may want to think about what color the invisible
-   * portions of your backing store contain (be it transparent or some
-   * background color) or to paint a certain region outside the clip to reduce
-   * the visual distraction when this happens.
-   *
-   * @param resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @param clip Output argument receiving the clip rect on success.
-   *
-   * @return Returns <code>PP_TRUE</code> if the resource was valid and the
-   * clip rect was filled in, <code>PP_FALSE</code> if not.
-   */
-  PP_Bool (*GetClipRect)(PP_Resource resource, struct PP_Rect* clip);
-  /**
-   * GetDeviceScale returns the scale factor between device pixels and Density
-   * Independent Pixels (DIPs, also known as logical pixels or UI pixels on
-   * some platforms). This allows the developer to render their contents at
-   * device resolution, even as coordinates / sizes are given in DIPs through
-   * the API.
-   *
-   * Note that the coordinate system for Pepper APIs is DIPs. Also note that
-   * one DIP might not equal one CSS pixel - when page scale/zoom is in effect.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return A <code>float</code> value representing the number of device pixels
-   * per DIP. If the resource is invalid, the value will be 0.0.
-   */
-  float (*GetDeviceScale)(PP_Resource resource);
-  /**
-   * GetCSSScale returns the scale factor between DIPs and CSS pixels. This
-   * allows proper scaling between DIPs - as sent via the Pepper API - and CSS
-   * pixel coordinates used for Web content.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @return css_scale A <code>float</code> value representing the number of
-   * DIPs per CSS pixel. If the resource is invalid, the value will be 0.0.
-   */
-  float (*GetCSSScale)(PP_Resource resource);
-  /**
-   * GetScrollOffset returns the scroll offset of the window containing the
-   * plugin.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * <code>PPB_View</code> resource.
-   *
-   * @param[out] offset A <code>PP_Point</code> which will be set to the value
-   * of the scroll offset in CSS pixels.
-   *
-   * @return Returns <code>PP_TRUE</code> if the resource was valid and the
-   * offset was filled in, <code>PP_FALSE</code> if not.
-   */
-  PP_Bool (*GetScrollOffset)(PP_Resource resource, struct PP_Point* offset);
-};
-
-typedef struct PPB_View_1_2 PPB_View;
-
-struct PPB_View_1_0 {
-  PP_Bool (*IsView)(PP_Resource resource);
-  PP_Bool (*GetRect)(PP_Resource resource, struct PP_Rect* rect);
-  PP_Bool (*IsFullscreen)(PP_Resource resource);
-  PP_Bool (*IsVisible)(PP_Resource resource);
-  PP_Bool (*IsPageVisible)(PP_Resource resource);
-  PP_Bool (*GetClipRect)(PP_Resource resource, struct PP_Rect* clip);
-};
-
-struct PPB_View_1_1 {
-  PP_Bool (*IsView)(PP_Resource resource);
-  PP_Bool (*GetRect)(PP_Resource resource, struct PP_Rect* rect);
-  PP_Bool (*IsFullscreen)(PP_Resource resource);
-  PP_Bool (*IsVisible)(PP_Resource resource);
-  PP_Bool (*IsPageVisible)(PP_Resource resource);
-  PP_Bool (*GetClipRect)(PP_Resource resource, struct PP_Rect* clip);
-  float (*GetDeviceScale)(PP_Resource resource);
-  float (*GetCSSScale)(PP_Resource resource);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_VIEW_H_ */
-
diff --git a/c/ppb_vpn_provider.h b/c/ppb_vpn_provider.h
deleted file mode 100644
index 58b5f4d..0000000
--- a/c/ppb_vpn_provider.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/* Copyright 2016 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-/* From ppb_vpn_provider.idl modified Fri May  6 20:42:01 2016. */
-
-#ifndef PPAPI_C_PPB_VPN_PROVIDER_H_
-#define PPAPI_C_PPB_VPN_PROVIDER_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_VPNPROVIDER_INTERFACE_0_1 "PPB_VpnProvider;0.1" /* dev */
-/**
- * @file
- * This file defines the <code>PPB_VpnProvider</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * Use the <code>PPB_VpnProvider</code> interface to implement a VPN client.
- * Important: This API is available only on Chrome OS.
- *
- * This interface enhances the <code>chrome.vpnProvider</code> JavaScript API by
- * providing a high performance path for packet handling.
- *
- * Permissions: Apps permission <code>vpnProvider</code> is required for
- * <code>PPB_VpnProvider.Bind()</code>.
- *
- * Typical usage:
- * - Create a <code>PPB_VpnProvider</code> instance.
- * - Register the callback for <code>PPB_VpnProvider.ReceivePacket()</code>.
- * - In the extension follow the usual workflow for configuring a VPN connection
- *   via the <code>chrome.vpnProvider</code> API until the step for notifying
- *   the connection state as "connected".
- * - Bind to the previously created connection using
- *   <code>PPB_VpnProvider.Bind()</code>.
- * - Notify the connection state as "connected" from JavaScript using
- *   <code>chrome.vpnProvider.notifyConnectionStateChanged</code>.
- * - When the steps above are completed without errors, a virtual tunnel is
- *   created to the network stack of Chrome OS. IP packets can be sent through
- *   the tunnel using <code>PPB_VpnProvider.SendPacket()</code> and any packets
- *   originating on the Chrome OS device will be received using the callback
- *   registered for <code>PPB_VpnProvider.ReceivePacket()</code>.
- * - When the user disconnects from the VPN configuration or there is an error
- *   the extension will be notfied via
- *   <code>chrome.vpnProvider.onPlatformMessage</code>.
- */
-struct PPB_VpnProvider_0_1 { /* dev */
-  /**
-   * Create() creates a VpnProvider instance.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * with the VpnProvider.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a VpnProvider if
-   * successful.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * IsVpnProvider() determines if the provided <code>resource</code> is a
-   * VpnProvider instance.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * VpnProvider.
-   *
-   * @return Returns <code>PP_TRUE</code> if <code>resource</code> is a
-   * <code>PPB_VpnProvider</code>, <code>PP_FALSE</code> if the
-   * <code>resource</code> is invalid or some type other than
-   * <code>PPB_VpnProvider</code>.
-   */
-  PP_Bool (*IsVpnProvider)(PP_Resource resource);
-  /**
-   * Bind() binds to an existing configuration created from JavaScript by
-   * <code>chrome.vpnProvider.createConfig</code>. All packets will be routed
-   * via <code>SendPacket</code> and <code>ReceivePacket</code>. The user should
-   * register the callback for <code>ReceivePacket</code> before calling
-   * <code>Bind()</code>.
-   *
-   * @param[in] vpn_provider A <code>PP_Resource</code> corresponding to a
-   * VpnProvider.
-   *
-   * @param[in] configuration_id A <code>PP_VARTYPE_STRING</code> representing
-   * the configuration id from the callback of
-   * <code>chrome.vpnProvider.createConfig</code>.
-   *
-   * @param[in] configuration_name A <code>PP_VARTYPE_STRING</code> representing
-   * the configuration name as defined by the user when calling
-   * <code>chrome.vpnProvider.createConfig</code>.
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns <code>PP_ERROR_INPROGRESS</code> if a previous call to
-   * <code>Bind()</code> has not completed.
-   * Returns <code>PP_ERROR_BADARGUMENT</code> if either
-   * <code>configuration_id</code> or <code>configuration_name</code> are not of
-   * type <code>PP_VARTYPE_STRING</code>.
-   * Returns <code>PP_ERROR_NOACCESS</code> if the caller does the have the
-   * required "vpnProvider" permission.
-   * Returns <code>PP_ERROR_FAILED</code> if <code>connection_id</code> and
-   * <code>connection_name</code> could not be matched with the existing
-   * connection, or if the plugin originates from a different extension than the
-   * one that created the connection.
-   */
-  int32_t (*Bind)(PP_Resource vpn_provider,
-                  struct PP_Var configuration_id,
-                  struct PP_Var configuration_name,
-                  struct PP_CompletionCallback callback);
-  /**
-   * SendPacket() sends an IP packet through the tunnel created for the VPN
-   * session. This will succeed only when the VPN session is owned by the
-   * module and the connection is bound.
-   *
-   * @param[in] vpn_provider A <code>PP_Resource</code> corresponding to a
-   * VpnProvider.
-   *
-   * @param[in] packet A <code>PP_VARTYPE_ARRAY_BUFFER</code> corresponding to
-   * an IP packet to be sent to the platform.
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns <code>PP_ERROR_FAILED</code> if the connection is not bound.
-   * Returns <code>PP_ERROR_INPROGRESS</code> if a previous call to
-   * <code>SendPacket()</code> has not completed.
-   * Returns <code>PP_ERROR_BADARGUMENT</code> if <code>packet</code> is not of
-   * type <code>PP_VARTYPE_ARRAY_BUFFER</code>.
-   */
-  int32_t (*SendPacket)(PP_Resource vpn_provider,
-                        struct PP_Var packet,
-                        struct PP_CompletionCallback callback);
-  /**
-   * ReceivePacket() receives an IP packet from the tunnel for the VPN session.
-   * This function only returns a single packet. This function must be called at
-   * least N times to receive N packets, no matter the size of each packet. The
-   * callback should be registered before calling <code>Bind()</code>.
-   *
-   * @param[in] vpn_provider A <code>PP_Resource</code> corresponding to a
-   * VpnProvider.
-   *
-   * @param[out] packet The received packet is copied to provided
-   * <code>packet</code>. The <code>packet</code> must remain valid until
-   * ReceivePacket() completes. Its received <code>PP_VarType</code> will be
-   * <code>PP_VARTYPE_ARRAY_BUFFER</code>.
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> called on
-   * completion.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns <code>PP_ERROR_INPROGRESS</code> if a previous call to
-   * <code>ReceivePacket()</code> has not completed.
-   */
-  int32_t (*ReceivePacket)(PP_Resource vpn_provider,
-                           struct PP_Var* packet,
-                           struct PP_CompletionCallback callback);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_VPN_PROVIDER_H_ */
-
diff --git a/c/ppb_websocket.h b/c/ppb_websocket.h
deleted file mode 100644
index 95817a5..0000000
--- a/c/ppb_websocket.h
+++ /dev/null
@@ -1,443 +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.
- */
-
-/* From ppb_websocket.idl modified Thu May 31 15:47:38 2012. */
-
-#ifndef PPAPI_C_PPB_WEBSOCKET_H_
-#define PPAPI_C_PPB_WEBSOCKET_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_WEBSOCKET_INTERFACE_1_0 "PPB_WebSocket;1.0"
-#define PPB_WEBSOCKET_INTERFACE PPB_WEBSOCKET_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_WebSocket</code> interface providing
- * bi-directional, full-duplex, communications over a single TCP socket.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * This enumeration contains the types representing the WebSocket ready state
- * and these states are based on the JavaScript WebSocket API specification.
- * GetReadyState() returns one of these states.
- */
-typedef enum {
-  /**
-   * Ready state is queried on an invalid resource.
-   */
-  PP_WEBSOCKETREADYSTATE_INVALID = -1,
-  /**
-   * Ready state that the connection has not yet been established.
-   */
-  PP_WEBSOCKETREADYSTATE_CONNECTING = 0,
-  /**
-   * Ready state that the WebSocket connection is established and communication
-   * is possible.
-   */
-  PP_WEBSOCKETREADYSTATE_OPEN = 1,
-  /**
-   * Ready state that the connection is going through the closing handshake.
-   */
-  PP_WEBSOCKETREADYSTATE_CLOSING = 2,
-  /**
-   * Ready state that the connection has been closed or could not be opened.
-   */
-  PP_WEBSOCKETREADYSTATE_CLOSED = 3
-} PP_WebSocketReadyState;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_WebSocketReadyState, 4);
-
-/**
- * This enumeration contains status codes. These codes are used in Close() and
- * GetCloseCode(). Refer to RFC 6455, The WebSocket Protocol, for further
- * information.
- * <code>PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE</code> and codes in the range
- * <code>PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MIN</code> to
- * <code>PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MAX</code>, and
- * <code>PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MIN</code> to
- * <code>PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MAX</code> are valid for Close().
- */
-typedef enum {
-  /**
-   * Indicates to request closing connection without status code and reason.
-   *
-   * (Note that the code 1005 is forbidden to send in actual close frames by
-   * the RFC. PP_WebSocket reuses this code internally and the code will never
-   * appear in the actual close frames.)
-   */
-  PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED = 1005,
-  /**
-   * Status codes in the range 0-999 are not used.
-   */
-  /**
-   * Indicates a normal closure.
-   */
-  PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE = 1000,
-  /**
-   * Indicates that an endpoint is "going away", such as a server going down.
-   */
-  PP_WEBSOCKETSTATUSCODE_GOING_AWAY = 1001,
-  /**
-   * Indicates that an endpoint is terminating the connection due to a protocol
-   * error.
-   */
-  PP_WEBSOCKETSTATUSCODE_PROTOCOL_ERROR = 1002,
-  /**
-   * Indicates that an endpoint is terminating the connection because it has
-   * received a type of data it cannot accept.
-   */
-  PP_WEBSOCKETSTATUSCODE_UNSUPPORTED_DATA = 1003,
-  /**
-   * Status code 1004 is reserved.
-   */
-  /**
-   * Pseudo code to indicate that receiving close frame doesn't contain any
-   * status code.
-   */
-  PP_WEBSOCKETSTATUSCODE_NO_STATUS_RECEIVED = 1005,
-  /**
-   * Pseudo code to indicate that connection was closed abnormally, e.g.,
-   * without closing handshake.
-   */
-  PP_WEBSOCKETSTATUSCODE_ABNORMAL_CLOSURE = 1006,
-  /**
-   * Indicates that an endpoint is terminating the connection because it has
-   * received data within a message that was not consistent with the type of
-   * the message (e.g., non-UTF-8 data within a text message).
-   */
-  PP_WEBSOCKETSTATUSCODE_INVALID_FRAME_PAYLOAD_DATA = 1007,
-  /**
-   * Indicates that an endpoint is terminating the connection because it has
-   * received a message that violates its policy.
-   */
-  PP_WEBSOCKETSTATUSCODE_POLICY_VIOLATION = 1008,
-  /**
-   * Indicates that an endpoint is terminating the connection because it has
-   * received a message that is too big for it to process.
-   */
-  PP_WEBSOCKETSTATUSCODE_MESSAGE_TOO_BIG = 1009,
-  /**
-   * Indicates that an endpoint (client) is terminating the connection because
-   * it has expected the server to negotiate one or more extension, but the
-   * server didn't return them in the response message of the WebSocket
-   * handshake.
-   */
-  PP_WEBSOCKETSTATUSCODE_MANDATORY_EXTENSION = 1010,
-  /**
-   * Indicates that a server is terminating the connection because it
-   * encountered an unexpected condition.
-   */
-  PP_WEBSOCKETSTATUSCODE_INTERNAL_SERVER_ERROR = 1011,
-  /**
-   * Status codes in the range 1012-1014 are reserved.
-   */
-  /**
-   * Pseudo code to indicate that the connection was closed due to a failure to
-   * perform a TLS handshake.
-   */
-  PP_WEBSOCKETSTATUSCODE_TLS_HANDSHAKE = 1015,
-  /**
-   * Status codes in the range 1016-2999 are reserved.
-   */
-  /**
-   * Status codes in the range 3000-3999 are reserved for use by libraries,
-   * frameworks, and applications. These codes are registered directly with
-   * IANA.
-   */
-  PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MIN = 3000,
-  PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MAX = 3999,
-  /**
-   * Status codes in the range 4000-4999 are reserved for private use.
-   * Application can use these codes for application specific purposes freely.
-   */
-  PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MIN = 4000,
-  PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MAX = 4999
-} PP_WebSocketCloseCode;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_WebSocketCloseCode, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_WebSocket</code> interface provides bi-directional,
- * full-duplex, communications over a single TCP socket.
- */
-struct PPB_WebSocket_1_0 {
-  /**
-   * Create() creates a WebSocket instance.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * with the WebSocket.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a WebSocket if
-   * successful.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * IsWebSocket() determines if the provided <code>resource</code> is a
-   * WebSocket instance.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns <code>PP_TRUE</code> if <code>resource</code> is a
-   * <code>PPB_WebSocket</code>, <code>PP_FALSE</code> if the
-   * <code>resource</code> is invalid or some type other than
-   * <code>PPB_WebSocket</code>.
-   */
-  PP_Bool (*IsWebSocket)(PP_Resource resource);
-  /**
-   * Connect() connects to the specified WebSocket server. You can call this
-   * function once for a <code>web_socket</code>.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @param[in] url A <code>PP_Var</code> representing a WebSocket server URL.
-   * The <code>PP_VarType</code> must be <code>PP_VARTYPE_STRING</code>.
-   *
-   * @param[in] protocols A pointer to an array of <code>PP_Var</code>
-   * specifying sub-protocols. Each <code>PP_Var</code> represents one
-   * sub-protocol and its <code>PP_VarType</code> must be
-   * <code>PP_VARTYPE_STRING</code>. This argument can be null only if
-   * <code>protocol_count</code> is 0.
-   *
-   * @param[in] protocol_count The number of sub-protocols in
-   * <code>protocols</code>.
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> called
-   * when a connection is established or an error occurs in establishing
-   * connection.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns <code>PP_ERROR_BADARGUMENT</code> if the specified
-   * <code>url</code>, or <code>protocols</code> contain an invalid string as
-   * defined in the WebSocket API specification.
-   * <code>PP_ERROR_BADARGUMENT</code> corresponds to a SyntaxError in the
-   * WebSocket API specification.
-   * Returns <code>PP_ERROR_NOACCESS</code> if the protocol specified in the
-   * <code>url</code> is not a secure protocol, but the origin of the caller
-   * has a secure scheme. Also returns <code>PP_ERROR_NOACCESS</code> if the
-   * port specified in the <code>url</code> is a port that the user agent
-   * is configured to block access to because it is a well-known port like
-   * SMTP. <code>PP_ERROR_NOACCESS</code> corresponds to a SecurityError of the
-   * specification.
-   * Returns <code>PP_ERROR_INPROGRESS</code> if this is not the first call to
-   * Connect().
-   */
-  int32_t (*Connect)(PP_Resource web_socket,
-                     struct PP_Var url,
-                     const struct PP_Var protocols[],
-                     uint32_t protocol_count,
-                     struct PP_CompletionCallback callback);
-  /**
-   * Close() closes the specified WebSocket connection by specifying
-   * <code>code</code> and <code>reason</code>.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @param[in] code The WebSocket close code. This is ignored if it is
-   * <code>PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED</code>.
-   * <code>PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE</code> must be used for the
-   * usual case. To indicate some specific error cases, codes in the range
-   * <code>PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MIN</code> to
-   * <code>PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MAX</code>, and in the range
-   * <code>PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MIN</code> to
-   * <code>PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MAX</code> are available.
-   *
-   * @param[in] reason A <code>PP_Var</code> representing the WebSocket
-   * close reason. This is ignored if it is <code>PP_VARTYPE_UNDEFINED</code>.
-   * Otherwise, its <code>PP_VarType</code> must be
-   * <code>PP_VARTYPE_STRING</code>.
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> called
-   * when the connection is closed or an error occurs in closing the
-   * connection.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns <code>PP_ERROR_BADARGUMENT</code> if <code>reason</code> contains
-   * an invalid character as a UTF-8 string, or is longer than 123 bytes.
-   * <code>PP_ERROR_BADARGUMENT</code> corresponds to a JavaScript SyntaxError
-   * in the WebSocket API specification.
-   * Returns <code>PP_ERROR_NOACCESS</code> if the code is not an integer
-   * equal to 1000 or in the range 3000 to 4999. <code>PP_ERROR_NOACCESS</code>
-   * corresponds to an InvalidAccessError in the WebSocket API specification.
-   * Returns <code>PP_ERROR_INPROGRESS</code> if a previous call to Close() is
-   * not finished.
-   */
-  int32_t (*Close)(PP_Resource web_socket,
-                   uint16_t code,
-                   struct PP_Var reason,
-                   struct PP_CompletionCallback callback);
-  /**
-   * ReceiveMessage() receives a message from the WebSocket server.
-   * This interface only returns a single message. That is, this interface must
-   * be called at least N times to receive N messages, no matter the size of
-   * each message.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @param[out] message The received message is copied to provided
-   * <code>message</code>. The <code>message</code> must remain valid until
-   * ReceiveMessage() completes. Its received <code>PP_VarType</code> will be
-   * <code>PP_VARTYPE_STRING</code> or <code>PP_VARTYPE_ARRAY_BUFFER</code>.
-   *
-   * @param[in] callback A <code>PP_CompletionCallback</code> called
-   * when ReceiveMessage() completes. This callback is ignored if
-   * ReceiveMessage() completes synchronously and returns <code>PP_OK</code>.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * If an error is detected or connection is closed, ReceiveMessage() returns
-   * <code>PP_ERROR_FAILED</code> after all buffered messages are received.
-   * Until buffered message become empty, ReceiveMessage() continues to return
-   * <code>PP_OK</code> as if connection is still established without errors.
-   */
-  int32_t (*ReceiveMessage)(PP_Resource web_socket,
-                            struct PP_Var* message,
-                            struct PP_CompletionCallback callback);
-  /**
-   * SendMessage() sends a message to the WebSocket server.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @param[in] message A message to send. The message is copied to an internal
-   * buffer, so the caller can free <code>message</code> safely after returning
-   * from the function. Its sent <code>PP_VarType</code> must be
-   * <code>PP_VARTYPE_STRING</code> or <code>PP_VARTYPE_ARRAY_BUFFER</code>.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   * Returns <code>PP_ERROR_FAILED</code> if the ReadyState is
-   * <code>PP_WEBSOCKETREADYSTATE_CONNECTING</code>.
-   * <code>PP_ERROR_FAILED</code> corresponds to a JavaScript
-   * InvalidStateError in the WebSocket API specification.
-   * Returns <code>PP_ERROR_BADARGUMENT</code> if the provided
-   * <code>message</code> contains an invalid character as a UTF-8 string.
-   * <code>PP_ERROR_BADARGUMENT</code> corresponds to a JavaScript
-   * SyntaxError in the WebSocket API specification.
-   * Otherwise, returns <code>PP_OK</code>, which doesn't necessarily mean
-   * that the server received the message.
-   */
-  int32_t (*SendMessage)(PP_Resource web_socket, struct PP_Var message);
-  /**
-   * GetBufferedAmount() returns the number of bytes of text and binary
-   * messages that have been queued for the WebSocket connection to send, but
-   * have not been transmitted to the network yet.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns the number of bytes.
-   */
-  uint64_t (*GetBufferedAmount)(PP_Resource web_socket);
-  /**
-   * GetCloseCode() returns the connection close code for the WebSocket
-   * connection.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns 0 if called before the close code is set.
-   */
-  uint16_t (*GetCloseCode)(PP_Resource web_socket);
-  /**
-   * GetCloseReason() returns the connection close reason for the WebSocket
-   * connection.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns a <code>PP_VARTYPE_STRING</code> var. If called before the
-   * close reason is set, the return value contains an empty string. Returns a
-   * <code>PP_VARTYPE_UNDEFINED</code> if called on an invalid resource.
-   */
-  struct PP_Var (*GetCloseReason)(PP_Resource web_socket);
-  /**
-   * GetCloseWasClean() returns if the connection was closed cleanly for the
-   * specified WebSocket connection.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns <code>PP_FALSE</code> if called before the connection is
-   * closed, called on an invalid resource, or closed for abnormal reasons.
-   * Otherwise, returns <code>PP_TRUE</code> if the connection was closed
-   * cleanly.
-   */
-  PP_Bool (*GetCloseWasClean)(PP_Resource web_socket);
-  /**
-   * GetExtensions() returns the extensions selected by the server for the
-   * specified WebSocket connection.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns a <code>PP_VARTYPE_STRING</code> var. If called before the
-   * connection is established, the var's data is an empty string. Returns a
-   * <code>PP_VARTYPE_UNDEFINED</code> if called on an invalid resource.
-   */
-  struct PP_Var (*GetExtensions)(PP_Resource web_socket);
-  /**
-   * GetProtocol() returns the sub-protocol chosen by the server for the
-   * specified WebSocket connection.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns a <code>PP_VARTYPE_STRING</code> var. If called before the
-   * connection is established, the var contains the empty string. Returns a
-   * <code>PP_VARTYPE_UNDEFINED</code> if called on an invalid resource.
-   */
-  struct PP_Var (*GetProtocol)(PP_Resource web_socket);
-  /**
-   * GetReadyState() returns the ready state of the specified WebSocket
-   * connection.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns <code>PP_WEBSOCKETREADYSTATE_INVALID</code> if called
-   * before Connect() is called, or if this function is called on an
-   * invalid resource.
-   */
-  PP_WebSocketReadyState (*GetReadyState)(PP_Resource web_socket);
-  /**
-   * GetURL() returns the URL associated with specified WebSocket connection.
-   *
-   * @param[in] web_socket A <code>PP_Resource</code> corresponding to a
-   * WebSocket.
-   *
-   * @return Returns a <code>PP_VARTYPE_STRING</code> var. If called before the
-   * connection is established, the var contains the empty string. Returns a
-   * <code>PP_VARTYPE_UNDEFINED</code> if this function is called on an
-   * invalid resource.
-   */
-  struct PP_Var (*GetURL)(PP_Resource web_socket);
-};
-
-typedef struct PPB_WebSocket_1_0 PPB_WebSocket;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPB_WEBSOCKET_H_ */
-
diff --git a/c/ppp.h b/c/ppp.h
deleted file mode 100644
index a1e8691..0000000
--- a/c/ppp.h
+++ /dev/null
@@ -1,159 +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.
- */
-
-/* From ppp.idl modified Mon Feb 11 15:48:41 2013. */
-
-#ifndef PPAPI_C_PPP_H_
-#define PPAPI_C_PPP_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_module.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/ppb.h"
-
-/**
- * @file
- * This file defines three functions that your module must
- * implement to interact with the browser.
- */
-
-
-
-#include "ppapi/c/pp_module.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/ppb.h"
-
-#if __GNUC__ >= 4
-#define PP_EXPORT __attribute__ ((visibility("default")))
-#elif defined(_MSC_VER)
-#define PP_EXPORT __declspec(dllexport)
-#endif
-
-/* {PENDING: undefine PP_EXPORT?} */
-
-/* We don't want name mangling for these external functions.  We only need
- * 'extern "C"' if we're compiling with a C++ compiler.
- */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PPP_InitializeModule() is the entry point for a module and is called by the
- * browser when your module loads. Your code must implement this function.
- *
- * Failure indicates to the browser that this module can not be used. In this
- * case, the module will be unloaded and ShutdownModule will NOT be called.
- *
- * @param[in] module A handle to your module. Generally you should store this
- * value since it will be required for other API calls.
- * @param[in] get_browser_interface A pointer to the function that you can
- * use to query for browser interfaces. Generally you should store this value
- * for future use.
- *
- * @return <code>PP_OK</code> on success. Any other value on failure.
- */
-PP_EXPORT int32_t PPP_InitializeModule(PP_Module module,
-                                       PPB_GetInterface get_browser_interface);
-/**
- * @}
- */
-
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PPP_ShutdownModule() is <strong>sometimes</strong> called before the module
- * is unloaded. It is not recommended that you implement this function.
- *
- * There is no practical use of this function for third party modules. Its
- * existence is because of some internal use cases inside Chrome.
- *
- * Since your module runs in a separate process, there's no need to free
- * allocated memory. There is also no need to free any resources since all of
- * resources associated with an instance will be force-freed when that instance
- * is deleted.
- *
- * <strong>Note:</strong> This function will always be skipped on untrusted
- * (Native Client) implementations. This function may be skipped on trusted
- * implementations in certain circumstances when Chrome does "fast shutdown"
- * of a web page.
- */
-PP_EXPORT void PPP_ShutdownModule(void);
-/**
- * @}
- */
-
-/**
- * @addtogroup Functions
- * @{
- */
-
-/**
- * PPP_GetInterface() is called by the browser to query the module for
- * interfaces it supports.
- *
- * Your module must implement the <code>PPP_Instance</code> interface or it
- * will be unloaded. Other interfaces are optional.
- *
- * This function is called from within browser code whenever an interface is
- * needed. This means your plugin could be reentered via this function if you
- * make a browser call and it needs an interface. Furthermore, you should not
- * make any other browser calls from within your implementation to avoid
- * reentering the browser.
- *
- * As a result, your implementation of this should merely provide a lookup
- * from the requested name to an interface pointer, via something like a big
- * if/else block or a map, and not do any other work.
- *
- * @param[in] interface_name A pointer to a "PPP" (plugin) interface name.
- * Interface names are null-terminated ASCII strings.
- *
- * @return A pointer for the interface or <code>NULL</code> if the interface is
- * not supported.
- */
-PP_EXPORT const void* PPP_GetInterface(const char* interface_name);
-/**
- * @}
- */
-
-#ifdef __cplusplus
-}  /* extern "C" */
-#endif
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * Defines the type of the <code>PPP_InitializeModule</code> function.
- */
-typedef int32_t (*PP_InitializeModule_Func)(
-    PP_Module module,
-    PPB_GetInterface get_browser_interface);
-
-/**
- * Defines the type of the <code>PPP_ShutdownModule</code> function.
- */
-typedef void (*PP_ShutdownModule_Func)(void);
-
-/**
- * Defines the type of the <code>PPP_ShutdownModule</code> function.
- */
-typedef const void* (*PP_GetInterface_Func)(const char* interface_name);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPP_H_ */
-
diff --git a/c/ppp_graphics_3d.h b/c/ppp_graphics_3d.h
deleted file mode 100644
index 03b901b..0000000
--- a/c/ppp_graphics_3d.h
+++ /dev/null
@@ -1,46 +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.
- */
-
-/* From ppp_graphics_3d.idl modified Wed Mar 21 17:35:39 2012. */
-
-#ifndef PPAPI_C_PPP_GRAPHICS_3D_H_
-#define PPAPI_C_PPP_GRAPHICS_3D_H_
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPP_GRAPHICS_3D_INTERFACE_1_0 "PPP_Graphics_3D;1.0"
-#define PPP_GRAPHICS_3D_INTERFACE PPP_GRAPHICS_3D_INTERFACE_1_0
-
-/**
- * @file
- * Defines the <code>PPP_Graphics3D</code> struct representing a 3D graphics
- * context within the browser.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * <code>PPP_Graphics3D</code> defines the notification interface for a 3D
- * graphics context.
- */
-struct PPP_Graphics3D_1_0 {
-  /**
-   * Called when the OpenGL ES window is invalidated and needs to be repainted.
-   */
-  void (*Graphics3DContextLost)(PP_Instance instance);
-};
-
-typedef struct PPP_Graphics3D_1_0 PPP_Graphics3D;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPP_GRAPHICS_3D_H_ */
-
diff --git a/c/ppp_input_event.h b/c/ppp_input_event.h
deleted file mode 100644
index 98a886a..0000000
--- a/c/ppp_input_event.h
+++ /dev/null
@@ -1,84 +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.
- */
-
-/* From ppp_input_event.idl modified Tue Apr  8 15:19:45 2014. */
-
-#ifndef PPAPI_C_PPP_INPUT_EVENT_H_
-#define PPAPI_C_PPP_INPUT_EVENT_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPP_INPUT_EVENT_INTERFACE_0_1 "PPP_InputEvent;0.1"
-#define PPP_INPUT_EVENT_INTERFACE PPP_INPUT_EVENT_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the API for receiving input events from the browser.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPP_InputEvent_0_1 {
-  /**
-   * Function for receiving input events from the browser.
-   *
-   * In order to receive input events, you must register for them by calling
-   * PPB_InputEvent.RequestInputEvents() or RequestFilteringInputEvents(). By
-   * default, no events are delivered.
-   *
-   * If the event was handled, it will not be forwarded to the default handlers
-   * in the web page.  If it was not handled, it may be dispatched to a default
-   * handler. So it is important that an instance respond accurately with
-   * whether event propagation should continue.
-   *
-   * Event propagation also controls focus. If you handle an event like a mouse
-   * event, typically the instance will be given focus. Returning false from
-   * a filtered event handler or not registering for an event type means that
-   * the click will be given to a lower part of the page and your instance will
-   * not receive focus. This allows an instance to be partially transparent,
-   * where clicks on the transparent areas will behave like clicks to the
-   * underlying page.
-   *
-   * In general, you should try to keep input event handling short. Especially
-   * for filtered input events, the browser or page may be blocked waiting for
-   * you to respond.
-   *
-   * The caller of this function will maintain a reference to the input event
-   * resource during this call. Unless you take a reference to the resource
-   * to hold it for later, you don't need to release it.
-   *
-   * <strong>Note:</strong> If you're not receiving input events, make sure you
-   * register for the event classes you want by calling RequestInputEvents or
-   * RequestFilteringInputEvents. If you're still not receiving keyboard input
-   * events, make sure you're returning true (or using a non-filtered event
-   * handler) for mouse events. Otherwise, the instance will not receive focus
-   * and keyboard events will not be sent.
-   *
-   * \see PPB_InputEvent.RequestInputEvents and
-   * PPB_InputEvent.RequestFilteringInputEvents
-   *
-   * @return PP_TRUE if the event was handled, PP_FALSE if not. If you have
-   * registered to filter this class of events by calling
-   * RequestFilteringInputEvents, and you return PP_FALSE, the event will
-   * be forwarded to the page (and eventually the browser) for the default
-   * handling. For non-filtered events, the return value will be ignored.
-   */
-  PP_Bool (*HandleInputEvent)(PP_Instance instance, PP_Resource input_event);
-};
-
-typedef struct PPP_InputEvent_0_1 PPP_InputEvent;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPP_INPUT_EVENT_H_ */
-
diff --git a/c/ppp_instance.h b/c/ppp_instance.h
deleted file mode 100644
index 794d121..0000000
--- a/c/ppp_instance.h
+++ /dev/null
@@ -1,197 +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.
- */
-
-/* From ppp_instance.idl modified Thu Apr 25 13:07:47 2013. */
-
-#ifndef PPAPI_C_PPP_INSTANCE_H_
-#define PPAPI_C_PPP_INSTANCE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPP_INSTANCE_INTERFACE_1_0 "PPP_Instance;1.0"
-#define PPP_INSTANCE_INTERFACE_1_1 "PPP_Instance;1.1"
-#define PPP_INSTANCE_INTERFACE PPP_INSTANCE_INTERFACE_1_1
-
-/**
- * @file
- * This file defines the <code>PPP_Instance</code> structure - a series of
- * pointers to methods that you must implement in your module.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPP_Instance</code> interface contains pointers to a series of
- * functions that you must implement in your module. These functions can be
- * trivial (simply return the default return value) unless you want your module
- * to handle events such as change of focus or input events (keyboard/mouse)
- * events.
- */
-struct PPP_Instance_1_1 {
-  /**
-   * DidCreate() is a creation handler that is called when a new instance is
-   * created. This function is called for each instantiation on the page,
-   * corresponding to one \<embed\> tag on the page.
-   *
-   * Generally you would handle this call by initializing the information
-   * your module associates with an instance and creating a mapping from the
-   * given <code>PP_Instance</code> handle to this data. The
-   * <code>PP_Instance</code> handle will be used in subsequent calls to
-   * identify which instance the call pertains to.
-   *
-   * It's possible for more than one instance to be created in a single module.
-   * This means that you may get more than one <code>OnCreate</code> without an
-   * <code>OnDestroy</code> in between, and should be prepared to maintain
-   * multiple states associated with each instance.
-   *
-   * If this function reports a failure (by returning <code>PP_FALSE</code>),
-   * the instance will be deleted.
-   *
-   * @param[in] instance A new <code>PP_Instance</code> identifying one
-   * instance of a module. This is an opaque handle.
-   *
-   * @param[in] argc The number of arguments contained in <code>argn</code>
-   * and <code>argv</code>.
-   *
-   * @param[in] argn An array of argument names.  These argument names are
-   * supplied in the \<embed\> tag, for example:
-   * <code>\<embed id="nacl_module" dimensions="2"\></code> will produce two
-   * argument names: "id" and "dimensions."
-   *
-   * @param[in] argv An array of argument values.  These are the values of the
-   * arguments listed in the \<embed\> tag, for example
-   * <code>\<embed id="nacl_module" dimensions="2"\></code> will produce two
-   * argument values: "nacl_module" and "2".  The indices of these values match
-   * the indices of the corresponding names in <code>argn</code>.
-   *
-   * @return <code>PP_TRUE</code> on success or <code>PP_FALSE</code> on
-   * failure.
-   */
-  PP_Bool (*DidCreate)(PP_Instance instance,
-                       uint32_t argc,
-                       const char* argn[],
-                       const char* argv[]);
-  /**
-   * DidDestroy() is an instance destruction handler. This function is called
-   * in many cases (see below) when a module instance is destroyed. It will be
-   * called even if DidCreate() returned failure.
-   *
-   * Generally you will handle this call by deallocating the tracking
-   * information and the <code>PP_Instance</code> mapping you created in the
-   * DidCreate() call. You can also free resources associated with this
-   * instance but this isn't required; all resources associated with the deleted
-   * instance will be automatically freed when this function returns.
-   *
-   * The instance identifier will still be valid during this call, so the module
-   * can perform cleanup-related tasks. Once this function returns, the
-   * <code>PP_Instance</code> handle will be invalid. This means that you can't
-   * do any asynchronous operations like network requests, file writes or
-   * messaging from this function since they will be immediately canceled.
-   *
-   * <strong>Note:</strong> This function will always be skipped on untrusted
-   * (Native Client) implementations. This function may be skipped on trusted
-   * implementations in certain circumstances when Chrome does "fast shutdown"
-   * of a web page. Fast shutdown will happen in some cases when all module
-   * instances are being deleted, and no cleanup functions will be called.
-   * The module will just be unloaded and the process terminated.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   */
-  void (*DidDestroy)(PP_Instance instance);
-  /**
-   * <code>DidChangeView() is called when the position, size, or other view
-   * attributes of the instance has changed.
-   */
-  void (*DidChangeView)(PP_Instance instance, PP_Resource view);
-  /**
-   * DidChangeFocus() is called when an instance has gained or lost focus.
-   * Having focus means that keyboard events will be sent to the instance.
-   * An instance's default condition is that it will not have focus.
-   *
-   * The focus flag takes into account both browser tab and window focus as
-   * well as focus of the plugin element on the page. In order to be deemed
-   * to have focus, the browser window must be topmost, the tab must be
-   * selected in the window, and the instance must be the focused element on
-   * the page.
-   *
-   * <strong>Note:</strong>Clicks on instances will give focus only if you
-   * handle the click event. Return <code>true</code> from
-   * <code>HandleInputEvent</code> in <code>PPP_InputEvent</code> (or use
-   * unfiltered events) to signal that the click event was handled. Otherwise,
-   * the browser will bubble the event and give focus to the element on the page
-   * that actually did end up consuming it. If you're not getting focus, check
-   * to make sure you're either requesting them via
-   * <code>RequestInputEvents()<code> (which implicitly marks all input events
-   * as consumed) or via <code>RequestFilteringInputEvents()</code> and
-   * returning true from your event handler.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * receiving the input event.
-   *
-   * @param[in] has_focus Indicates the new focused state of the instance.
-   */
-  void (*DidChangeFocus)(PP_Instance instance, PP_Bool has_focus);
-  /**
-   * HandleDocumentLoad() is called after initialize for a full-frame
-   * instance that was instantiated based on the MIME type of a DOMWindow
-   * navigation. This situation only applies to modules that are pre-registered
-   * to handle certain MIME types. If you haven't specifically registered to
-   * handle a MIME type or aren't positive this applies to you, your
-   * implementation of this function can just return <code>PP_FALSE</code>.
-   *
-   * The given <code>url_loader</code> corresponds to a
-   * <code>PPB_URLLoader</code> instance that is already opened. Its response
-   * headers may be queried using <code>PPB_URLLoader::GetResponseInfo</code>.
-   * The reference count for the URL loader is not incremented automatically on
-   * behalf of the module. You need to increment the reference count yourself
-   * if you are going to keep a reference to it.
-   *
-   * This method returns <code>PP_FALSE</code> if the module cannot handle the
-   * data. In response to this method, the module should call
-   * ReadResponseBody() to read the incoming data.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * that should do the load.
-   *
-   * @param[in] url_loader An open <code>PPB_URLLoader</code> instance.
-   *
-   * @return <code>PP_TRUE</code> if the data was handled,
-   * <code>PP_FALSE</code> otherwise.  If you return false, the load will be
-   * canceled for you.
-   */
-  PP_Bool (*HandleDocumentLoad)(PP_Instance instance, PP_Resource url_loader);
-};
-
-typedef struct PPP_Instance_1_1 PPP_Instance;
-
-struct PPP_Instance_1_0 {
-  PP_Bool (*DidCreate)(PP_Instance instance,
-                       uint32_t argc,
-                       const char* argn[],
-                       const char* argv[]);
-  void (*DidDestroy)(PP_Instance instance);
-  void (*DidChangeView)(PP_Instance instance,
-                        const struct PP_Rect* position,
-                        const struct PP_Rect* clip);
-  void (*DidChangeFocus)(PP_Instance instance, PP_Bool has_focus);
-  PP_Bool (*HandleDocumentLoad)(PP_Instance instance, PP_Resource url_loader);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPP_INSTANCE_H_ */
-
diff --git a/c/ppp_message_handler.h b/c/ppp_message_handler.h
deleted file mode 100644
index f8cd099..0000000
--- a/c/ppp_message_handler.h
+++ /dev/null
@@ -1,96 +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.
- */
-
-/* From ppp_message_handler.idl modified Wed Sep 24 10:48:49 2014. */
-
-#ifndef PPAPI_C_PPP_MESSAGE_HANDLER_H_
-#define PPAPI_C_PPP_MESSAGE_HANDLER_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-/**
- * @file
- * This file defines the <code>PPP_MessageHandler</code> interface that plugins
- * can implement and register using PPB_Messaging::RegisterMessageHandler in
- * order to handle messages sent from JavaScript via postMessage() or
- * postMessageAndAwaitResponse().
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPP_MessageHandler</code> interface is implemented by the plugin
- * if the plugin wants to receive messages from a thread other than the main
- * Pepper thread, or if the plugin wants to handle blocking messages which
- * JavaScript may send via postMessageAndAwaitResponse().
- *
- * This interface struct should not be returned by PPP_GetInterface; instead it
- * must be passed as a parameter to PPB_Messaging::RegisterMessageHandler.
- */
-struct PPP_MessageHandler_0_2 {
-  /**
-   * Invoked as a result of JavaScript invoking postMessage() on the plugin's
-   * DOM element.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] user_data is the same pointer which was provided by a call to
-   * RegisterMessageHandler().
-   * @param[in] message A copy of the parameter that JavaScript provided to
-   * postMessage().
-   */
-  void (*HandleMessage)(PP_Instance instance,
-                        void* user_data,
-                        const struct PP_Var* message);
-  /**
-   * Invoked as a result of JavaScript invoking postMessageAndAwaitResponse()
-   * on the plugin's DOM element.
-   *
-   * NOTE: JavaScript execution is blocked during the duration of this call.
-   * Hence, the plugin should respond as quickly as possible. For this reason,
-   * blocking completion callbacks are disallowed while handling a blocking
-   * message.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] user_data is the same pointer which was provided by a call to
-   * RegisterMessageHandler().
-   * @param[in] message is a copy of the parameter that JavaScript provided
-   * to postMessageAndAwaitResponse().
-   * @param[out] response will be copied to a JavaScript object which is
-   * returned as the result of postMessageAndAwaitResponse() to the invoking
-   *
-   */
-  void (*HandleBlockingMessage)(PP_Instance instance,
-                                void* user_data,
-                                const struct PP_Var* message,
-                                struct PP_Var* response);
-  /**
-   * Invoked when the handler object is no longer needed. After this, no more
-   * calls will be made which pass this same value for <code>instance</code>
-   * and <code>user_data</code>.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] user_data is the same pointer which was provided by a call to
-   * RegisterMessageHandler.
-   */
-  void (*Destroy)(PP_Instance instance, void* user_data);
-};
-
-typedef struct PPP_MessageHandler_0_2 PPP_MessageHandler;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPP_MESSAGE_HANDLER_H_ */
-
diff --git a/c/ppp_messaging.h b/c/ppp_messaging.h
deleted file mode 100644
index 736f2dd..0000000
--- a/c/ppp_messaging.h
+++ /dev/null
@@ -1,87 +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.
- */
-
-/* From ppp_messaging.idl modified Wed Jun  5 10:32:43 2013. */
-
-#ifndef PPAPI_C_PPP_MESSAGING_H_
-#define PPAPI_C_PPP_MESSAGING_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPP_MESSAGING_INTERFACE_1_0 "PPP_Messaging;1.0"
-#define PPP_MESSAGING_INTERFACE PPP_MESSAGING_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the PPP_Messaging interface containing pointers to
- * functions that you must implement to handle postMessage messages
- * on the associated DOM element.
- *
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPP_Messaging</code> interface contains pointers to functions
- * that you must implement to handle postMessage events on the associated
- * DOM element.
- */
-struct PPP_Messaging_1_0 {
-  /**
-   * HandleMessage() is a function that the browser calls when PostMessage()
-   * is invoked on the DOM element for the module instance in JavaScript. Note
-   * that PostMessage() in the JavaScript interface is asynchronous, meaning
-   * JavaScript execution will not be blocked while HandleMessage() is
-   * processing the message.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   * @param[in] message A <code>PP_Var</code> which has been converted from a
-   * JavaScript value. JavaScript array/object types are supported from Chrome
-   * M29 onward. All JavaScript values are copied when passing them to the
-   * plugin.
-   *
-   * When converting JavaScript arrays, any object properties whose name
-   * is not an array index are ignored. When passing arrays and objects, the
-   * entire reference graph will be converted and transferred. If the reference
-   * graph has cycles, the message will not be sent and an error will be logged
-   * to the console.
-   *
-   * The following JavaScript code invokes <code>HandleMessage</code>, passing
-   * the module instance on which it was invoked, with <code>message</code>
-   * being a string <code>PP_Var</code> containing "Hello world!"
-   *
-   * <strong>Example:</strong>
-   *
-   * @code
-   *
-   * <body>
-   *   <object id="plugin"
-   *           type="application/x-ppapi-postMessage-example"/>
-   *   <script type="text/javascript">
-   *     document.getElementById('plugin').postMessage("Hello world!");
-   *   </script>
-   * </body>
-   *
-   * @endcode
-   *
-   */
-  void (*HandleMessage)(PP_Instance instance, struct PP_Var message);
-};
-
-typedef struct PPP_Messaging_1_0 PPP_Messaging;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPP_MESSAGING_H_ */
-
diff --git a/c/ppp_mouse_lock.h b/c/ppp_mouse_lock.h
deleted file mode 100644
index 81bf079..0000000
--- a/c/ppp_mouse_lock.h
+++ /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.
- */
-
-/* From ppp_mouse_lock.idl modified Wed Dec 21 19:08:34 2011. */
-
-#ifndef PPAPI_C_PPP_MOUSE_LOCK_H_
-#define PPAPI_C_PPP_MOUSE_LOCK_H_
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPP_MOUSELOCK_INTERFACE_1_0 "PPP_MouseLock;1.0"
-#define PPP_MOUSELOCK_INTERFACE PPP_MOUSELOCK_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPP_MouseLock</code> interface containing a
- * function that you must implement to receive mouse lock events from the
- * browser.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPP_MouseLock</code> interface contains a function that you must
- * implement to receive mouse lock events from the browser.
- */
-struct PPP_MouseLock_1_0 {
-  /**
-   * MouseLockLost() is called when the instance loses the mouse lock, such as
-   * when the user presses the ESC key.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   */
-  void (*MouseLockLost)(PP_Instance instance);
-};
-
-typedef struct PPP_MouseLock_1_0 PPP_MouseLock;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PPP_MOUSE_LOCK_H_ */
-
diff --git a/c/private/pp_file_handle.h b/c/private/pp_file_handle.h
deleted file mode 100644
index 6c15d9c..0000000
--- a/c/private/pp_file_handle.h
+++ /dev/null
@@ -1,31 +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.
- */
-
-/* From private/pp_file_handle.idl modified Fri Jul 27 17:01:41 2012. */
-
-#ifndef PPAPI_C_PRIVATE_PP_FILE_HANDLE_H_
-#define PPAPI_C_PRIVATE_PP_FILE_HANDLE_H_
-
-#include "ppapi/c/pp_macros.h"
-
-/**
- * @file
- * This file provides support for native OS file handles.
- */
-
-
-
-#ifdef _WIN32
-#include<windows.h>
-typedef HANDLE PP_FileHandle;
-static const PP_FileHandle PP_kInvalidFileHandle = NULL;
-
-#else
-typedef int PP_FileHandle;
-static const PP_FileHandle PP_kInvalidFileHandle = -1;
-#endif
-
-#endif  /* PPAPI_C_PRIVATE_PP_FILE_HANDLE_H_ */
-
diff --git a/c/private/pp_private_font_charset.h b/c/private/pp_private_font_charset.h
deleted file mode 100644
index ea594c5..0000000
--- a/c/private/pp_private_font_charset.h
+++ /dev/null
@@ -1,52 +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.
- */
-
-/* From private/pp_private_font_charset.idl,
- *   modified Fri Sep 07 12:50:35 2012.
- */
-
-#ifndef PPAPI_C_PRIVATE_PP_PRIVATE_FONT_CHARSET_H_
-#define PPAPI_C_PRIVATE_PP_PRIVATE_FONT_CHARSET_H_
-
-#include "ppapi/c/pp_macros.h"
-
-/**
- * @file
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-typedef enum {
-  PP_PRIVATEFONTCHARSET_ANSI = 0,
-  PP_PRIVATEFONTCHARSET_DEFAULT = 1,
-  PP_PRIVATEFONTCHARSET_SYMBOL = 2,
-  PP_PRIVATEFONTCHARSET_MAC = 77,
-  PP_PRIVATEFONTCHARSET_SHIFTJIS = 128,
-  PP_PRIVATEFONTCHARSET_HANGUL = 129,
-  PP_PRIVATEFONTCHARSET_JOHAB = 130,
-  PP_PRIVATEFONTCHARSET_GB2312 = 134,
-  PP_PRIVATEFONTCHARSET_CHINESEBIG5 = 136,
-  PP_PRIVATEFONTCHARSET_GREEK = 161,
-  PP_PRIVATEFONTCHARSET_TURKISH = 162,
-  PP_PRIVATEFONTCHARSET_VIETNAMESE = 163,
-  PP_PRIVATEFONTCHARSET_HEBREW = 177,
-  PP_PRIVATEFONTCHARSET_ARABIC = 178,
-  PP_PRIVATEFONTCHARSET_BALTIC = 186,
-  PP_PRIVATEFONTCHARSET_RUSSIAN = 204,
-  PP_PRIVATEFONTCHARSET_THAI = 222,
-  PP_PRIVATEFONTCHARSET_EASTEUROPE = 238,
-  PP_PRIVATEFONTCHARSET_OEM = 255,
-  PP_PRIVATEFONTCHARSET_LAST = PP_PRIVATEFONTCHARSET_OEM
-} PP_PrivateFontCharset;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_PrivateFontCharset, 4);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PP_PRIVATE_FONT_CHARSET_H_ */
-
diff --git a/c/private/pp_video_capture_format.h b/c/private/pp_video_capture_format.h
deleted file mode 100644
index afaeabd..0000000
--- a/c/private/pp_video_capture_format.h
+++ /dev/null
@@ -1,47 +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.
- */
-
-/* From private/pp_video_capture_format.idl,
- *   modified Wed Feb 18 01:41:26 2015.
- */
-
-#ifndef PPAPI_C_PRIVATE_PP_VIDEO_CAPTURE_FORMAT_H_
-#define PPAPI_C_PRIVATE_PP_VIDEO_CAPTURE_FORMAT_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-
-/**
- * @file
- * This file defines the struct used to hold a video capture format.
- */
-
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * The <code>PP_VideoCaptureFormat</code> struct represents a video capture
- * format.
- */
-struct PP_VideoCaptureFormat {
-  /**
-   * Frame size in pixels.
-   */
-  struct PP_Size frame_size;
-  /**
-   * Frame rate in frames per second.
-   */
-  float frame_rate;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_VideoCaptureFormat, 12);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PP_VIDEO_CAPTURE_FORMAT_H_ */
-
diff --git a/c/private/pp_video_frame_private.h b/c/private/pp_video_frame_private.h
deleted file mode 100644
index 91b7935..0000000
--- a/c/private/pp_video_frame_private.h
+++ /dev/null
@@ -1,55 +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.
- */
-
-/* From private/pp_video_frame_private.idl modified Wed Apr 24 11:49:01 2013. */
-
-#ifndef PPAPI_C_PRIVATE_PP_VIDEO_FRAME_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PP_VIDEO_FRAME_PRIVATE_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-
-/**
- * @file
- * This file defines the struct used to hold a video frame.
- */
-
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * The <code>PP_VideoFrame_Private</code> struct represents a video frame.
- * Video sources and destinations use frames to transfer video to and from
- * the browser.
- */
-struct PP_VideoFrame_Private {
-  /**
-   * A timestamp placing the frame in a video stream.
-   */
-  PP_TimeTicks timestamp;
-  /**
-   * An image data resource to hold the video frame.
-   */
-  PP_Resource image_data;
-  /**
-   * Ensure that this struct is 16-bytes wide by padding the end.  In some
-   * compilers, PP_TimeTicks is 8-byte aligned, so those compilers align this
-   * struct on 8-byte boundaries as well and pad it to 8 bytes even without this
-   * padding attribute.  This padding makes its size consistent across
-   * compilers.
-   */
-  int32_t padding;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_VideoFrame_Private, 16);
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PP_VIDEO_FRAME_PRIVATE_H_ */
-
diff --git a/c/private/ppb_camera_capabilities_private.h b/c/private/ppb_camera_capabilities_private.h
deleted file mode 100644
index 0deae85..0000000
--- a/c/private/ppb_camera_capabilities_private.h
+++ /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.
- */
-
-/* From private/ppb_camera_capabilities_private.idl,
- *   modified Thu Feb 19 09:06:18 2015.
- */
-
-#ifndef PPAPI_C_PRIVATE_PPB_CAMERA_CAPABILITIES_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_CAMERA_CAPABILITIES_PRIVATE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/private/pp_video_capture_format.h"
-
-#define PPB_CAMERACAPABILITIES_PRIVATE_INTERFACE_0_1 \
-    "PPB_CameraCapabilities_Private;0.1"
-#define PPB_CAMERACAPABILITIES_PRIVATE_INTERFACE \
-    PPB_CAMERACAPABILITIES_PRIVATE_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the PPB_CameraCapabilities_Private interface for
- * establishing an image capture configuration resource within the browser.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_CameraCapabilities_Private</code> interface contains pointers
- * to several functions for getting the image capture capabilities within the
- * browser.
- */
-struct PPB_CameraCapabilities_Private_0_1 {
-  /**
-   * IsCameraCapabilities() determines if the given resource is a
-   * <code>PPB_CameraCapabilities_Private</code>.
-   *
-   * @param[in] resource A <code>PP_Resource</code> corresponding to an image
-   * capture capabilities resource.
-   *
-   * @return A <code>PP_Bool</code> containing <code>PP_TRUE</code> if the given
-   * resource is an <code>PP_CameraCapabilities_Private</code> resource,
-   * otherwise <code>PP_FALSE</code>.
-   */
-  PP_Bool (*IsCameraCapabilities)(PP_Resource resource);
-  /**
-   * GetSupportedVideoCaptureFormats() returns the supported video capture
-   * formats for the given <code>PPB_CameraCapabilities_Private</code>.
-   *
-   * @param[in] capabilities A <code>PP_Resource</code> corresponding to an
-   * image capture capabilities resource.
-   * @param[out] array_size The size of preview size array.
-   * @param[out] formats An array of <code>PP_VideoCaptureFormat</code>
-   * corresponding to the supported video capture formats. The ownership of the
-   * array belongs to <code>PPB_CameraCapabilities_Private</code> and the caller
-   * should not free it. When a PPB_CameraCapabilities_Private is deleted, the
-   * array returning from this is no longer valid.
-   */
-  void (*GetSupportedVideoCaptureFormats)(
-      PP_Resource capabilities,
-      uint32_t* array_size,
-      struct PP_VideoCaptureFormat** formats);
-};
-
-typedef struct PPB_CameraCapabilities_Private_0_1
-    PPB_CameraCapabilities_Private;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_CAMERA_CAPABILITIES_PRIVATE_H_ */
-
diff --git a/c/private/ppb_camera_device_private.h b/c/private/ppb_camera_device_private.h
deleted file mode 100644
index ccf9213..0000000
--- a/c/private/ppb_camera_device_private.h
+++ /dev/null
@@ -1,118 +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.
- */
-
-/* From private/ppb_camera_device_private.idl,
- *   modified Wed Nov  2 15:54:24 2016.
- */
-
-#ifndef PPAPI_C_PRIVATE_PPB_CAMERA_DEVICE_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_CAMERA_DEVICE_PRIVATE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_CAMERADEVICE_PRIVATE_INTERFACE_0_1 "PPB_CameraDevice_Private;0.1"
-#define PPB_CAMERADEVICE_PRIVATE_INTERFACE \
-    PPB_CAMERADEVICE_PRIVATE_INTERFACE_0_1
-
-/**
- * @file
- * Defines the <code>PPB_CameraDevice_Private</code> interface. Used for
- * manipulating a camera device.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * To query camera capabilities:
- * 1. Get a PPB_CameraDevice_Private object by Create().
- * 2. Open() camera device with track id of MediaStream video track.
- * 3. Call GetCameraCapabilities() to get a
- *    <code>PPB_CameraCapabilities_Private</code> object, which can be used to
- *    query camera capabilities.
- */
-struct PPB_CameraDevice_Private_0_1 {
-  /**
-   * Creates a PPB_CameraDevice_Private resource.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying one instance
-   * of a module.
-   *
-   * @return A <code>PP_Resource</code> corresponding to a
-   * PPB_CameraDevice_Private resource if successful, 0 if failed.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Determines if a resource is a camera device resource.
-   *
-   * @param[in] resource The <code>PP_Resource</code> to test.
-   *
-   * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
-   * resource is a camera device resource or <code>PP_FALSE</code>
-   * otherwise.
-   */
-  PP_Bool (*IsCameraDevice)(PP_Resource resource);
-  /**
-   * Opens a camera device.
-   *
-   * @param[in] camera_device A <code>PP_Resource</code> corresponding to a
-   * camera device resource.
-   * @param[in] device_id A <code>PP_Var</code> identifying a camera device. The
-   * type is string. The ID can be obtained from
-   * navigator.mediaDevices.enumerateDevices() or MediaStreamVideoTrack.id.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of <code>Open()</code>.
-   *
-   * @return An error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*Open)(PP_Resource camera_device,
-                  struct PP_Var device_id,
-                  struct PP_CompletionCallback callback);
-  /**
-   * Disconnects from the camera and cancels all pending requests.
-   * After this returns, no callbacks will be called. If <code>
-   * PPB_CameraDevice_Private</code> is destroyed and is not closed yet, this
-   * function will be automatically called. Calling this more than once has no
-   * effect.
-   *
-   * @param[in] camera_device A <code>PP_Resource</code> corresponding to a
-   * camera device resource.
-   */
-  void (*Close)(PP_Resource camera_device);
-  /**
-   * Gets the camera capabilities.
-   *
-   * The camera capabilities do not change for a given camera source.
-   *
-   * @param[in] camera_device A <code>PP_Resource</code> corresponding to a
-   * camera device resource.
-   * @param[out] capabilities A <code>PPB_CameraCapabilities_Private</code> for
-   * storing the camera capabilities on success. Otherwise, the value will not
-   * be changed.
-   * @param[in] callback <code>PP_CompletionCallback</code> to be called upon
-   * completion of <code>GetCameraCapabilities()</code>.
-   *
-   * @return An int32_t containing a result code from <code>pp_errors.h</code>.
-   */
-  int32_t (*GetCameraCapabilities)(PP_Resource camera_device,
-                                   PP_Resource* capabilities,
-                                   struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_CameraDevice_Private_0_1 PPB_CameraDevice_Private;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_CAMERA_DEVICE_PRIVATE_H_ */
-
diff --git a/c/private/ppb_display_color_profile_private.h b/c/private/ppb_display_color_profile_private.h
deleted file mode 100644
index b10e8c9..0000000
--- a/c/private/ppb_display_color_profile_private.h
+++ /dev/null
@@ -1,123 +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.
- */
-
-/* From private/ppb_display_color_profile_private.idl,
- *   modified Mon Dec 16 20:53:23 2013.
- */
-
-#ifndef PPAPI_C_PRIVATE_PPB_DISPLAY_COLOR_PROFILE_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_DISPLAY_COLOR_PROFILE_PRIVATE_H_
-
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_DISPLAYCOLORPROFILE_PRIVATE_INTERFACE_0_1 \
-    "PPB_DisplayColorProfile_Private;0.1"
-#define PPB_DISPLAYCOLORPROFILE_PRIVATE_INTERFACE \
-    PPB_DISPLAYCOLORPROFILE_PRIVATE_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the <code>PPB_DisplayColorProfile</code> struct used for
- * getting the color profile of the display.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * <code>PPB_DisplayColorProfile_Private</code> defines the methods for getting
- * the display color profile and monitoring its changes.
- *
- * <strong>Setup:<strong>
- * @code
- * PP_ArrayOutput output = { MyAllocatorFunction, color_profile_data };
- * PP_Resource display_cp = display_cp_interface->Create(instance);
- * display_cp_interface->GetColorProfile(display_cp,
- *                                       output,
- *                                       completion_callback);
- * @endcode
- */
-struct PPB_DisplayColorProfile_Private_0_1 {
-  /**
-   * Create() creates a display color profile resource.
-   *
-   * @param[in] instance The module instance.
-   * @return A <code>PP_Resource</code> containing a display color profile
-   * resource.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * IsDisplayColorProfile() determines if the given resource is a valid
-   * <code>DisplayColorProfile</code> resource.
-   *
-   * @param[in] resource A <code>DisplayColorProfile</code> context resource.
-   * @return Returns:
-   * - <code>PP_TRUE</code> if the given resource is a valid
-   *   <code>DisplayColorProfile</code>
-   * - <code>PP_FALSE</code> if it is an invalid resource or is a resource
-   *   of another type.
-   */
-  PP_Bool (*IsDisplayColorProfile)(PP_Resource resource);
-  /**
-   * GetColorProfile() enqueues a request for the current display color profile.
-   *
-   * This method is intended for getting the color profile data of the display
-   * on which the browser window resides. [However currently Chrome only
-   * considers the system's primary display color profile when doing its color
-   * management. For consistency this method will also return the color profile
-   * that Chrome uses for its browser window.]
-   *
-   * @param[in] display_color_profile_res The display color profile resource.
-   * @param[in] color_profile A <code>PP_OutputArray</code> which on success
-   * will receive a byte array containing the ICC color profile data (see
-   * www.color.org for a reference to the ICC color profile specification
-   * and versions). The returned color profile version is the one supported by
-   * the host system.
-   * @param[in] callback The completion callback to be called once the display
-   * color profile data is available.
-   *
-   * @return Returns an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*GetColorProfile)(PP_Resource display_color_profile_res,
-                             struct PP_ArrayOutput color_profile,
-                             struct PP_CompletionCallback callback);
-  /**
-   * RegisterColorProfileChangeCallback() registers a callback to be called next
-   * time the color profile for the browser window in which the plugin resides
-   * changes. In order to get notifications for all color profile changes a call
-   * to RegisterColorProfileChangeCallback() function should be done when the
-   * previous notification was fired.
-   *
-   * There might be 2 scenarios in which the color profile for a window changes:
-   * a) The window is moved from one display to another;
-   * b) The user changes the display color space from the system settings.
-   *
-   * @param[in] display_color_profile_res The display color profile resource.
-   * @param[in] callback The callback to be invoked next time the display
-   * color profile changes.
-   *
-   * @return Returns an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*RegisterColorProfileChangeCallback)(
-      PP_Resource display_color_profile_res,
-      struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_DisplayColorProfile_Private_0_1
-    PPB_DisplayColorProfile_Private;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_DISPLAY_COLOR_PROFILE_PRIVATE_H_ */
-
diff --git a/c/private/ppb_ext_crx_file_system_private.h b/c/private/ppb_ext_crx_file_system_private.h
deleted file mode 100644
index 298435e..0000000
--- a/c/private/ppb_ext_crx_file_system_private.h
+++ /dev/null
@@ -1,60 +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.
- */
-
-/* From private/ppb_ext_crx_file_system_private.idl,
- *   modified Fri Nov  1 12:23:59 2013.
- */
-
-#ifndef PPAPI_C_PRIVATE_PPB_EXT_CRX_FILE_SYSTEM_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_EXT_CRX_FILE_SYSTEM_PRIVATE_H_
-
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_EXT_CRXFILESYSTEM_PRIVATE_INTERFACE_0_1 \
-    "PPB_Ext_CrxFileSystem_Private;0.1"
-#define PPB_EXT_CRXFILESYSTEM_PRIVATE_INTERFACE \
-    PPB_EXT_CRXFILESYSTEM_PRIVATE_INTERFACE_0_1
-
-/**
- * @file
- * This file contains the <code>PPB_Ext_CrxFileSystem_Private</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/* <code>PPB_Ext_CrxFileSystem_Private</code> interface */
-struct PPB_Ext_CrxFileSystem_Private_0_1 {
-  /**
-   * Open() opens the CRX file system for the current extension.  It will fail
-   * when called from non-extension context.
-   *
-   * @param[in] crxfs A <code>PP_Resource</code> corresponding to a
-   * CrxFileSystem.
-   * @param[out] file_system An output <code>PP_Resource</code> corresponding
-   * to a PPB_FileSystem.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Open.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*Open)(PP_Instance instance,
-                  PP_Resource* file_system,
-                  struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_Ext_CrxFileSystem_Private_0_1 PPB_Ext_CrxFileSystem_Private;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_EXT_CRX_FILE_SYSTEM_PRIVATE_H_ */
-
diff --git a/c/private/ppb_file_io_private.h b/c/private/ppb_file_io_private.h
deleted file mode 100644
index dabcd40..0000000
--- a/c/private/ppb_file_io_private.h
+++ /dev/null
@@ -1,49 +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.
- */
-
-/* From private/ppb_file_io_private.idl modified Wed Mar 27 14:43:25 2013. */
-
-#ifndef PPAPI_C_PRIVATE_PPB_FILE_IO_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_FILE_IO_PRIVATE_H_
-
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_FILEIO_PRIVATE_INTERFACE_0_1 "PPB_FileIO_Private;0.1"
-#define PPB_FILEIO_PRIVATE_INTERFACE PPB_FILEIO_PRIVATE_INTERFACE_0_1
-
-/**
- * @file
- */
-
-
-#include "ppapi/c/private/pp_file_handle.h"
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/* PPB_FileIO_Private interface */
-struct PPB_FileIO_Private_0_1 {
-  /**
-   * Returns a file handle corresponding to the given FileIO
-   * object.  The FileIO object must have been opened with a
-   * successful call to FileIO::Open.  The caller gets the ownership
-   * of the returned file handle and must close it.
-   */
-  int32_t (*RequestOSFileHandle)(PP_Resource file_io,
-                                 PP_FileHandle* handle,
-                                 struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_FileIO_Private_0_1 PPB_FileIO_Private;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_FILE_IO_PRIVATE_H_ */
-
diff --git a/c/private/ppb_file_ref_private.h b/c/private/ppb_file_ref_private.h
deleted file mode 100644
index b426b44..0000000
--- a/c/private/ppb_file_ref_private.h
+++ /dev/null
@@ -1,48 +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.
- */
-
-/* From private/ppb_file_ref_private.idl modified Fri Dec 16 17:34:59 2011. */
-
-#ifndef PPAPI_C_PRIVATE_PPB_FILE_REF_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_FILE_REF_PRIVATE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_FILEREFPRIVATE_INTERFACE_0_1 "PPB_FileRefPrivate;0.1"
-#define PPB_FILEREFPRIVATE_INTERFACE PPB_FILEREFPRIVATE_INTERFACE_0_1
-
-/**
- * @file
- * This file contains the <code>PPB_FileRefPrivate</code> interface. */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/* PPB_FileRefPrivate interface */
-struct PPB_FileRefPrivate_0_1 {
-  /**
-   * GetAbsolutePath() returns the absolute path of the file.
-   *
-   * @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-   * reference.
-   *
-   * @return A <code>PP_Var</code> containing the absolute path of the file.
-   */
-  struct PP_Var (*GetAbsolutePath)(PP_Resource file_ref);
-};
-
-typedef struct PPB_FileRefPrivate_0_1 PPB_FileRefPrivate;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_FILE_REF_PRIVATE_H_ */
-
diff --git a/c/private/ppb_host_resolver_private.h b/c/private/ppb_host_resolver_private.h
deleted file mode 100644
index 0ec9dc2..0000000
--- a/c/private/ppb_host_resolver_private.h
+++ /dev/null
@@ -1,118 +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.
- */
-
-/* From private/ppb_host_resolver_private.idl,
- *   modified Mon Jun 24 09:49:40 2013.
- */
-
-#ifndef PPAPI_C_PRIVATE_PPB_HOST_RESOLVER_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_HOST_RESOLVER_PRIVATE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-
-#define PPB_HOSTRESOLVER_PRIVATE_INTERFACE_0_1 "PPB_HostResolver_Private;0.1"
-#define PPB_HOSTRESOLVER_PRIVATE_INTERFACE \
-    PPB_HOSTRESOLVER_PRIVATE_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the <code>PPB_HostResolver_Private</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * The <code>PP_HostResolver_Flags</code> is an enumeration of the
- * different types of flags, that can be OR-ed and passed to host
- * resolver.
- */
-typedef enum {
-  /**
-   * AI_CANONNAME
-   */
-  PP_HOST_RESOLVER_PRIVATE_FLAGS_CANONNAME = 1 << 0,
-  /**
-   * Hint to the resolver that only loopback addresses are configured.
-   */
-  PP_HOST_RESOLVER_PRIVATE_FLAGS_LOOPBACK_ONLY = 1 << 1
-} PP_HostResolver_Private_Flags;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_HostResolver_Private_Flags, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Structs
- * @{
- */
-struct PP_HostResolver_Private_Hint {
-  PP_NetAddressFamily_Private family;
-  int32_t flags;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_HostResolver_Private_Hint, 8);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_HostResolver_Private_0_1 {
-  /**
-   * Allocates a Host Resolver resource.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Determines if a given resource is a Host Resolver.
-   */
-  PP_Bool (*IsHostResolver)(PP_Resource resource);
-  /**
-   * Creates a new request to Host Resolver. |callback| is invoked
-   * when request is processed and a list of network addresses is
-   * obtained. These addresses can be be used in Connect, Bind or
-   * Listen calls to connect to a given |host| and |port|.
-   */
-  int32_t (*Resolve)(PP_Resource host_resolver,
-                     const char* host,
-                     uint16_t port,
-                     const struct PP_HostResolver_Private_Hint* hint,
-                     struct PP_CompletionCallback callback);
-  /**
-   * Returns canonical name of host.
-   */
-  struct PP_Var (*GetCanonicalName)(PP_Resource host_resolver);
-  /**
-   * Returns number of network addresses obtained after Resolve call.
-   */
-  uint32_t (*GetSize)(PP_Resource host_resolver);
-  /**
-   * Stores in the |addr| |index|-th network address. |addr| can't be
-   * NULL. Returns PP_TRUE if success or PP_FALSE if the given
-   * resource is not a Host Resolver or |index| exceeds number of
-   * available addresses.
-   */
-  PP_Bool (*GetNetAddress)(PP_Resource host_resolver,
-                           uint32_t index,
-                           struct PP_NetAddress_Private* addr);
-};
-
-typedef struct PPB_HostResolver_Private_0_1 PPB_HostResolver_Private;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_HOST_RESOLVER_PRIVATE_H_ */
-
diff --git a/c/private/ppb_instance_private.h b/c/private/ppb_instance_private.h
deleted file mode 100644
index 12948d4..0000000
--- a/c/private/ppb_instance_private.h
+++ /dev/null
@@ -1,106 +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.
- */
-
-/* From private/ppb_instance_private.idl modified Tue Jul 23 13:19:04 2013. */
-
-#ifndef PPAPI_C_PRIVATE_PPB_INSTANCE_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_INSTANCE_PRIVATE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_INSTANCE_PRIVATE_INTERFACE_0_1 "PPB_Instance_Private;0.1"
-#define PPB_INSTANCE_PRIVATE_INTERFACE PPB_INSTANCE_PRIVATE_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the PPB_Instance_Private interface implemented by the
- * browser and containing pointers to functions available only to trusted plugin
- * instances.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * The <code>PP_ExternalPluginResult </code> enum contains result codes from
- * launching an external plugin.
- */
-typedef enum {
-  /** Successful external plugin call */
-  PP_EXTERNAL_PLUGIN_OK = 0,
-  /** Unspecified external plugin error */
-  PP_EXTERNAL_PLUGIN_FAILED = 1,
-  /** Error creating the module */
-  PP_EXTERNAL_PLUGIN_ERROR_MODULE = 2,
-  /** Error creating and initializing the instance */
-  PP_EXTERNAL_PLUGIN_ERROR_INSTANCE = 3
-} PP_ExternalPluginResult;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_ExternalPluginResult, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The PPB_Instance_Private interface contains functions available only to
- * trusted plugin instances.
- *
- */
-struct PPB_Instance_Private_0_1 {
-  /**
-   * GetWindowObject is a pointer to a function that determines
-   * the DOM window containing this module instance.
-   *
-   * @param[in] instance A PP_Instance whose WindowObject should be retrieved.
-   * @return A PP_Var containing window object on success.
-   */
-  struct PP_Var (*GetWindowObject)(PP_Instance instance);
-  /**
-   * GetOwnerElementObject is a pointer to a function that determines
-   * the DOM element containing this module instance.
-   *
-   * @param[in] instance A PP_Instance whose WindowObject should be retrieved.
-   * @return A PP_Var containing DOM element on success.
-   */
-  struct PP_Var (*GetOwnerElementObject)(PP_Instance instance);
-  /**
-   * ExecuteScript is a pointer to a function that executes the given
-   * script in the context of the frame containing the module.
-   *
-   * The exception, if any, will be returned in *exception. As with the PPB_Var
-   * interface, the exception parameter, if non-NULL, must be initialized
-   * to a "void" var or the function will immediately return. On success,
-   * the exception parameter will be set to a "void" var. On failure, the
-   * return value will be a "void" var.
-   *
-   * @param[in] script A string containing the JavaScript to execute.
-   * @param[in/out] exception PP_Var containing the exception. Initialize
-   * this to NULL if you don't want exception info; initialize this to a void
-   * exception if want exception info.
-   *
-   * @return The result of the script execution, or a "void" var
-   * if execution failed.
-   */
-  struct PP_Var (*ExecuteScript)(PP_Instance instance,
-                                 struct PP_Var script,
-                                 struct PP_Var* exception);
-};
-
-typedef struct PPB_Instance_Private_0_1 PPB_Instance_Private;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_INSTANCE_PRIVATE_H_ */
-
diff --git a/c/private/ppb_isolated_file_system_private.h b/c/private/ppb_isolated_file_system_private.h
deleted file mode 100644
index 65f23c5..0000000
--- a/c/private/ppb_isolated_file_system_private.h
+++ /dev/null
@@ -1,84 +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.
- */
-
-/* From private/ppb_isolated_file_system_private.idl,
- *   modified Fri Nov  8 02:21:15 2013.
- */
-
-#ifndef PPAPI_C_PRIVATE_PPB_ISOLATED_FILE_SYSTEM_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_ISOLATED_FILE_SYSTEM_PRIVATE_H_
-
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE_0_2 \
-    "PPB_IsolatedFileSystem_Private;0.2"
-#define PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE \
-    PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE_0_2
-
-/**
- * @file
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * The <code>PP_IsolatedFileSystemType_Private</code> values indicate the type
- * of isolated file systems.
- */
-typedef enum {
-  /** Type for invalid file systems */
-  PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_INVALID = 0,
-  /** Type for CRX file systems */
-  PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_CRX = 1
-} PP_IsolatedFileSystemType_Private;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_IsolatedFileSystemType_Private, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/* <code>PPB_IsolatedFileSystem_Private</code> interface */
-struct PPB_IsolatedFileSystem_Private_0_2 {
-  /**
-   * Open() opens a file system corresponding the given file system type.
-   *
-   * When opening the CRX file system, this should be called from an extension
-   * context, otherwise it will fail.
-   *
-   * @param[in] instance A <code>PP_Instance</code> identifying the instance
-   * with the file system.
-   * @param[in] type A file system type as defined by
-   * <code>PP_IsolatedFileSystemType_Private</code> enum.
-   * @param[out] file_system An output <code>PP_Resource</code> corresponding
-   * to a PPB_FileSystem.
-   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-   * completion of Open.
-   *
-   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
-   */
-  int32_t (*Open)(PP_Instance instance,
-                  PP_IsolatedFileSystemType_Private type,
-                  PP_Resource* file_system,
-                  struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_IsolatedFileSystem_Private_0_2
-    PPB_IsolatedFileSystem_Private;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_ISOLATED_FILE_SYSTEM_PRIVATE_H_ */
-
diff --git a/c/private/ppb_net_address_private.h b/c/private/ppb_net_address_private.h
deleted file mode 100644
index 4b9b728..0000000
--- a/c/private/ppb_net_address_private.h
+++ /dev/null
@@ -1,187 +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.
- */
-
-/* From private/ppb_net_address_private.idl,
- *   modified Mon Jun 24 09:52:39 2013.
- */
-
-#ifndef PPAPI_C_PRIVATE_PPB_NET_ADDRESS_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_NET_ADDRESS_PRIVATE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_module.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_NETADDRESS_PRIVATE_INTERFACE_0_1 "PPB_NetAddress_Private;0.1"
-#define PPB_NETADDRESS_PRIVATE_INTERFACE_1_0 "PPB_NetAddress_Private;1.0"
-#define PPB_NETADDRESS_PRIVATE_INTERFACE_1_1 "PPB_NetAddress_Private;1.1"
-#define PPB_NETADDRESS_PRIVATE_INTERFACE PPB_NETADDRESS_PRIVATE_INTERFACE_1_1
-
-/**
- * @file
- * This file defines the <code>PPB_NetAddress_Private</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-typedef enum {
-  /**
-   * The address family is unspecified.
-   */
-  PP_NETADDRESSFAMILY_PRIVATE_UNSPECIFIED = 0,
-  /**
-   * The Internet Protocol version 4 (IPv4) address family.
-   */
-  PP_NETADDRESSFAMILY_PRIVATE_IPV4 = 1,
-  /**
-   * The Internet Protocol version 6 (IPv6) address family.
-   */
-  PP_NETADDRESSFAMILY_PRIVATE_IPV6 = 2
-} PP_NetAddressFamily_Private;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_NetAddressFamily_Private, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Structs
- * @{
- */
-/**
- * This is an opaque type holding a network address. Plugins must
- * never access members of this struct directly.
- */
-struct PP_NetAddress_Private {
-  uint32_t size;
-  int8_t data[128];
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_NetAddress_Private, 132);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_NetAddress_Private</code> interface provides operations on
- * network addresses.
- */
-struct PPB_NetAddress_Private_1_1 {
-  /**
-   * Returns PP_TRUE if the two addresses are equal (host and port).
-   */
-  PP_Bool (*AreEqual)(const struct PP_NetAddress_Private* addr1,
-                      const struct PP_NetAddress_Private* addr2);
-  /**
-   * Returns PP_TRUE if the two addresses refer to the same host.
-   */
-  PP_Bool (*AreHostsEqual)(const struct PP_NetAddress_Private* addr1,
-                           const struct PP_NetAddress_Private* addr2);
-  /**
-   * Returns a human-readable description of the network address, optionally
-   * including the port (e.g., "192.168.0.1", "192.168.0.1:99", or "[::1]:80"),
-   * or an undefined var on failure.
-   */
-  struct PP_Var (*Describe)(PP_Module module,
-                            const struct PP_NetAddress_Private* addr,
-                            PP_Bool include_port);
-  /**
-   * Replaces the port in the given source address. Returns PP_TRUE on success.
-   */
-  PP_Bool (*ReplacePort)(const struct PP_NetAddress_Private* src_addr,
-                         uint16_t port,
-                         struct PP_NetAddress_Private* addr_out);
-  /**
-   * Gets the "any" address (for IPv4 or IPv6); for use with UDP Bind.
-   */
-  void (*GetAnyAddress)(PP_Bool is_ipv6, struct PP_NetAddress_Private* addr);
-  /**
-   * Gets the address family.
-   */
-  PP_NetAddressFamily_Private (*GetFamily)(
-      const struct PP_NetAddress_Private* addr);
-  /**
-   * Gets the port. The port is returned in host byte order.
-   */
-  uint16_t (*GetPort)(const struct PP_NetAddress_Private* addr);
-  /**
-   * Gets the address. The output, address, must be large enough for the
-   * current socket family. The output will be the binary representation of an
-   * address for the current socket family. For IPv4 and IPv6 the address is in
-   * network byte order. PP_TRUE is returned if the address was successfully
-   * retrieved.
-   */
-  PP_Bool (*GetAddress)(const struct PP_NetAddress_Private* addr,
-                        void* address,
-                        uint16_t address_size);
-  /**
-   * Returns ScopeID for IPv6 addresses or 0 for IPv4.
-   */
-  uint32_t (*GetScopeID)(const struct PP_NetAddress_Private* addr);
-  /**
-   * Creates NetAddress with the specified IPv4 address and port
-   * number.
-   */
-  void (*CreateFromIPv4Address)(const uint8_t ip[4],
-                                uint16_t port,
-                                struct PP_NetAddress_Private* addr_out);
-  /**
-   * Creates NetAddress with the specified IPv6 address, scope_id and
-   * port number.
-   */
-  void (*CreateFromIPv6Address)(const uint8_t ip[16],
-                                uint32_t scope_id,
-                                uint16_t port,
-                                struct PP_NetAddress_Private* addr_out);
-};
-
-typedef struct PPB_NetAddress_Private_1_1 PPB_NetAddress_Private;
-
-struct PPB_NetAddress_Private_0_1 {
-  PP_Bool (*AreEqual)(const struct PP_NetAddress_Private* addr1,
-                      const struct PP_NetAddress_Private* addr2);
-  PP_Bool (*AreHostsEqual)(const struct PP_NetAddress_Private* addr1,
-                           const struct PP_NetAddress_Private* addr2);
-  struct PP_Var (*Describe)(PP_Module module,
-                            const struct PP_NetAddress_Private* addr,
-                            PP_Bool include_port);
-  PP_Bool (*ReplacePort)(const struct PP_NetAddress_Private* src_addr,
-                         uint16_t port,
-                         struct PP_NetAddress_Private* addr_out);
-  void (*GetAnyAddress)(PP_Bool is_ipv6, struct PP_NetAddress_Private* addr);
-};
-
-struct PPB_NetAddress_Private_1_0 {
-  PP_Bool (*AreEqual)(const struct PP_NetAddress_Private* addr1,
-                      const struct PP_NetAddress_Private* addr2);
-  PP_Bool (*AreHostsEqual)(const struct PP_NetAddress_Private* addr1,
-                           const struct PP_NetAddress_Private* addr2);
-  struct PP_Var (*Describe)(PP_Module module,
-                            const struct PP_NetAddress_Private* addr,
-                            PP_Bool include_port);
-  PP_Bool (*ReplacePort)(const struct PP_NetAddress_Private* src_addr,
-                         uint16_t port,
-                         struct PP_NetAddress_Private* addr_out);
-  void (*GetAnyAddress)(PP_Bool is_ipv6, struct PP_NetAddress_Private* addr);
-  PP_NetAddressFamily_Private (*GetFamily)(
-      const struct PP_NetAddress_Private* addr);
-  uint16_t (*GetPort)(const struct PP_NetAddress_Private* addr);
-  PP_Bool (*GetAddress)(const struct PP_NetAddress_Private* addr,
-                        void* address,
-                        uint16_t address_size);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_NET_ADDRESS_PRIVATE_H_ */
-
diff --git a/c/private/ppb_proxy_private.h b/c/private/ppb_proxy_private.h
deleted file mode 100644
index a631008..0000000
--- a/c/private/ppb_proxy_private.h
+++ /dev/null
@@ -1,47 +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_C_PRIVATE_PPB_PROXY_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_PROXY_PRIVATE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_module.h"
-#include "ppapi/c/pp_resource.h"
-
-#define PPB_PROXY_PRIVATE_INTERFACE "PPB_Proxy_Private;6"
-
-// Exposes functions needed by the out-of-process proxy to call into the
-// renderer PPAPI implementation.
-struct PPB_Proxy_Private {
-  // Called when the given plugin process has crashed.
-  void (*PluginCrashed)(PP_Module module);
-
-  // Returns the instance for the given resource, or 0 on failure.
-  PP_Instance (*GetInstanceForResource)(PP_Resource resource);
-
-  // Sets a callback that will be used to make sure that PP_Instance IDs
-  // are unique in the plugin.
-  //
-  // Since the plugin may be shared between several browser processes, we need
-  // to do extra work to make sure that an instance ID is globally unqiue. The
-  // given function will be called and will return true if the given
-  // PP_Instance is OK to use in the plugin. It will then be marked as "in use"
-  // On failure (returns false), the host implementation will generate a new
-  // instance ID and try again.
-  void (*SetReserveInstanceIDCallback)(
-      PP_Module module,
-      PP_Bool (*is_seen)(PP_Module, PP_Instance));
-
-  // Allows adding additional refcounts to the PluginModule that owns the
-  // proxy dispatcher (and all interface proxies). For every AddRef call
-  // there must be a corresponding release call.
-  void (*AddRefModule)(PP_Module module);
-  void (*ReleaseModule)(PP_Module module);
-
-  // Allows asserts to be written for some bad conditions while cleaning up.
-  PP_Bool (*IsInModuleDestructor)(PP_Module module);
-};
-
-#endif  // PPAPI_C_PRIVATE_PPB_PROXY_PRIVATE_H_
diff --git a/c/private/ppb_tcp_server_socket_private.h b/c/private/ppb_tcp_server_socket_private.h
deleted file mode 100644
index fd81863..0000000
--- a/c/private/ppb_tcp_server_socket_private.h
+++ /dev/null
@@ -1,109 +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.
- */
-
-/* From private/ppb_tcp_server_socket_private.idl,
- *   modified Mon May 20 12:45:38 2013.
- */
-
-#ifndef PPAPI_C_PRIVATE_PPB_TCP_SERVER_SOCKET_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_TCP_SERVER_SOCKET_PRIVATE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-
-#define PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_1 \
-    "PPB_TCPServerSocket_Private;0.1"
-#define PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_2 \
-    "PPB_TCPServerSocket_Private;0.2"
-#define PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE \
-    PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_2
-
-/**
- * @file
- * This file defines the <code>PPB_TCPServerSocket_Private</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_TCPServerSocket_Private</code> interface provides TCP
- * server socket operations.
- */
-struct PPB_TCPServerSocket_Private_0_2 {
-  /**
-   * Allocates a TCP server socket resource.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Determines if a given resource is TCP server socket.
-   */
-  PP_Bool (*IsTCPServerSocket)(PP_Resource resource);
-  /**
-   * Binds |tcp_server_socket| to the address given by |addr| and
-   * starts listening.  The |backlog| argument defines the maximum
-   * length to which the queue of pending connections may
-   * grow. |callback| is invoked when |tcp_server_socket| is ready to
-   * accept incoming connections or in the case of failure. Returns
-   * PP_ERROR_NOSPACE if socket can't be initialized, or
-   * PP_ERROR_FAILED in the case of Listen failure. Otherwise, returns
-   * PP_OK.
-   */
-  int32_t (*Listen)(PP_Resource tcp_server_socket,
-                    const struct PP_NetAddress_Private* addr,
-                    int32_t backlog,
-                    struct PP_CompletionCallback callback);
-  /**
-   * Accepts single connection, creates instance of
-   * PPB_TCPSocket_Private and stores reference to it in
-   * |tcp_socket|. |callback| is invoked when connection is accepted
-   * or in the case of failure. This method can be called only after
-   * successful Listen call on |tcp_server_socket|.
-   */
-  int32_t (*Accept)(PP_Resource tcp_server_socket,
-                    PP_Resource* tcp_socket,
-                    struct PP_CompletionCallback callback);
-  /**
-   * Returns the current address to which the socket is bound, in the
-   * buffer pointed to by |addr|. This method can be called only after
-   * successful Listen() call and before StopListening() call.
-   */
-  int32_t (*GetLocalAddress)(PP_Resource tcp_server_socket,
-                             struct PP_NetAddress_Private* addr);
-  /**
-   * Cancels all pending callbacks reporting PP_ERROR_ABORTED and
-   * closes the socket. Note: this method is implicitly called when
-   * server socket is destroyed.
-   */
-  void (*StopListening)(PP_Resource tcp_server_socket);
-};
-
-typedef struct PPB_TCPServerSocket_Private_0_2 PPB_TCPServerSocket_Private;
-
-struct PPB_TCPServerSocket_Private_0_1 {
-  PP_Resource (*Create)(PP_Instance instance);
-  PP_Bool (*IsTCPServerSocket)(PP_Resource resource);
-  int32_t (*Listen)(PP_Resource tcp_server_socket,
-                    const struct PP_NetAddress_Private* addr,
-                    int32_t backlog,
-                    struct PP_CompletionCallback callback);
-  int32_t (*Accept)(PP_Resource tcp_server_socket,
-                    PP_Resource* tcp_socket,
-                    struct PP_CompletionCallback callback);
-  void (*StopListening)(PP_Resource tcp_server_socket);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_TCP_SERVER_SOCKET_PRIVATE_H_ */
-
diff --git a/c/private/ppb_tcp_socket_private.h b/c/private/ppb_tcp_socket_private.h
deleted file mode 100644
index a920d52..0000000
--- a/c/private/ppb_tcp_socket_private.h
+++ /dev/null
@@ -1,241 +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.
- */
-
-/* From private/ppb_tcp_socket_private.idl modified Mon Jun 24 09:53:12 2013. */
-
-#ifndef PPAPI_C_PRIVATE_PPB_TCP_SOCKET_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_TCP_SOCKET_PRIVATE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-
-#define PPB_TCPSOCKET_PRIVATE_INTERFACE_0_3 "PPB_TCPSocket_Private;0.3"
-#define PPB_TCPSOCKET_PRIVATE_INTERFACE_0_4 "PPB_TCPSocket_Private;0.4"
-#define PPB_TCPSOCKET_PRIVATE_INTERFACE_0_5 "PPB_TCPSocket_Private;0.5"
-#define PPB_TCPSOCKET_PRIVATE_INTERFACE PPB_TCPSOCKET_PRIVATE_INTERFACE_0_5
-
-/**
- * @file
- * This file defines the <code>PPB_TCPSocket_Private</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-typedef enum {
-  /* Special value used for testing. Guaranteed to fail SetOption(). */
-  PP_TCPSOCKETOPTION_PRIVATE_INVALID = 0,
-  /* Disable coalescing of small writes to make TCP segments, and instead
-   * deliver data immediately. For SSL sockets, this option must be set before
-   * SSLHandshake() is called. Value type is PP_VARTYPE_BOOL. */
-  PP_TCPSOCKETOPTION_PRIVATE_NO_DELAY = 1
-} PP_TCPSocketOption_Private;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_TCPSocketOption_Private, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_TCPSocket_Private</code> interface provides TCP socket
- * operations.
- */
-struct PPB_TCPSocket_Private_0_5 {
-  /**
-   * Allocates a TCP socket resource.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Determines if a given resource is TCP socket.
-   */
-  PP_Bool (*IsTCPSocket)(PP_Resource resource);
-  /**
-   * Connects to a TCP port given as a host-port pair.
-   * When a proxy server is used, |host| and |port| refer to the proxy server
-   * instead of the destination server.
-   */
-  int32_t (*Connect)(PP_Resource tcp_socket,
-                     const char* host,
-                     uint16_t port,
-                     struct PP_CompletionCallback callback);
-  /**
-   * Same as Connect(), but connecting to the address given by |addr|. A typical
-   * use-case would be for reconnections.
-   */
-  int32_t (*ConnectWithNetAddress)(PP_Resource tcp_socket,
-                                   const struct PP_NetAddress_Private* addr,
-                                   struct PP_CompletionCallback callback);
-  /**
-   * Gets the local address of the socket, if it has been connected.
-   * Returns PP_TRUE on success.
-   */
-  PP_Bool (*GetLocalAddress)(PP_Resource tcp_socket,
-                             struct PP_NetAddress_Private* local_addr);
-  /**
-   * Gets the remote address of the socket, if it has been connected.
-   * Returns PP_TRUE on success.
-   */
-  PP_Bool (*GetRemoteAddress)(PP_Resource tcp_socket,
-                              struct PP_NetAddress_Private* remote_addr);
-  /**
-   * Does SSL handshake and moves to sending and receiving encrypted data. The
-   * socket must have been successfully connected. |server_name| will be
-   * compared with the name(s) in the server's certificate during the SSL
-   * handshake. |server_port| is only used to identify an SSL server in the SSL
-   * session cache.
-   * When a proxy server is used, |server_name| and |server_port| refer to the
-   * destination server.
-   * If the socket is not connected, or there are pending read/write requests,
-   * SSLHandshake() will fail without starting a handshake. Otherwise, any
-   * failure during the handshake process will cause the socket to be
-   * disconnected.
-   */
-  int32_t (*SSLHandshake)(PP_Resource tcp_socket,
-                          const char* server_name,
-                          uint16_t server_port,
-                          struct PP_CompletionCallback callback);
-  /**
-   * Returns the server's <code>PPB_X509Certificate_Private</code> for a socket
-   * connection if an SSL connection has been established using
-   * <code>SSLHandshake</code>. If no SSL connection has been established, a
-   * null resource is returned.
-   */
-  PP_Resource (*GetServerCertificate)(PP_Resource tcp_socket);
-  /**
-   * NOTE: This function is not implemented and will return
-   * <code>PP_FALSE</code>.
-   * Adds a trusted/untrusted chain building certificate to be used for this
-   * connection. The <code>certificate</code> must be a
-   * <code>PPB_X509Certificate_Private<code>. <code>PP_TRUE</code> is returned
-   * upon success.
-   */
-  PP_Bool (*AddChainBuildingCertificate)(PP_Resource tcp_socket,
-                                         PP_Resource certificate,
-                                         PP_Bool is_trusted);
-  /**
-   * Reads data from the socket. The size of |buffer| must be at least as large
-   * as |bytes_to_read|. May perform a partial read. Returns the number of bytes
-   * read or an error code. If the return value is 0, then it indicates that
-   * end-of-file was reached.
-   * This method won't return more than 1 megabyte, so if |bytes_to_read|
-   * exceeds 1 megabyte, it will always perform a partial read.
-   * Multiple outstanding read requests are not supported.
-   */
-  int32_t (*Read)(PP_Resource tcp_socket,
-                  char* buffer,
-                  int32_t bytes_to_read,
-                  struct PP_CompletionCallback callback);
-  /**
-   * Writes data to the socket. May perform a partial write. Returns the number
-   * of bytes written or an error code.
-   * This method won't write more than 1 megabyte, so if |bytes_to_write|
-   * exceeds 1 megabyte, it will always perform a partial write.
-   * Multiple outstanding write requests are not supported.
-   */
-  int32_t (*Write)(PP_Resource tcp_socket,
-                   const char* buffer,
-                   int32_t bytes_to_write,
-                   struct PP_CompletionCallback callback);
-  /**
-   * Cancels any IO that may be pending, and disconnects the socket. Any pending
-   * callbacks will still run, reporting PP_Error_Aborted if pending IO was
-   * interrupted. It is NOT valid to call Connect() again after a call to this
-   * method. Note: If the socket is destroyed when it is still connected, then
-   * it will be implicitly disconnected, so you are not required to call this
-   * method.
-   */
-  void (*Disconnect)(PP_Resource tcp_socket);
-  /**
-   * Sets an option on |tcp_socket|.  Supported |name| and |value| parameters
-   * are as described for PP_TCPSocketOption_Private.  |callback| will be
-   * invoked with PP_OK if setting the option succeeds, or an error code
-   * otherwise. The socket must be connection before SetOption is called.
-   */
-  int32_t (*SetOption)(PP_Resource tcp_socket,
-                       PP_TCPSocketOption_Private name,
-                       struct PP_Var value,
-                       struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_TCPSocket_Private_0_5 PPB_TCPSocket_Private;
-
-struct PPB_TCPSocket_Private_0_3 {
-  PP_Resource (*Create)(PP_Instance instance);
-  PP_Bool (*IsTCPSocket)(PP_Resource resource);
-  int32_t (*Connect)(PP_Resource tcp_socket,
-                     const char* host,
-                     uint16_t port,
-                     struct PP_CompletionCallback callback);
-  int32_t (*ConnectWithNetAddress)(PP_Resource tcp_socket,
-                                   const struct PP_NetAddress_Private* addr,
-                                   struct PP_CompletionCallback callback);
-  PP_Bool (*GetLocalAddress)(PP_Resource tcp_socket,
-                             struct PP_NetAddress_Private* local_addr);
-  PP_Bool (*GetRemoteAddress)(PP_Resource tcp_socket,
-                              struct PP_NetAddress_Private* remote_addr);
-  int32_t (*SSLHandshake)(PP_Resource tcp_socket,
-                          const char* server_name,
-                          uint16_t server_port,
-                          struct PP_CompletionCallback callback);
-  int32_t (*Read)(PP_Resource tcp_socket,
-                  char* buffer,
-                  int32_t bytes_to_read,
-                  struct PP_CompletionCallback callback);
-  int32_t (*Write)(PP_Resource tcp_socket,
-                   const char* buffer,
-                   int32_t bytes_to_write,
-                   struct PP_CompletionCallback callback);
-  void (*Disconnect)(PP_Resource tcp_socket);
-};
-
-struct PPB_TCPSocket_Private_0_4 {
-  PP_Resource (*Create)(PP_Instance instance);
-  PP_Bool (*IsTCPSocket)(PP_Resource resource);
-  int32_t (*Connect)(PP_Resource tcp_socket,
-                     const char* host,
-                     uint16_t port,
-                     struct PP_CompletionCallback callback);
-  int32_t (*ConnectWithNetAddress)(PP_Resource tcp_socket,
-                                   const struct PP_NetAddress_Private* addr,
-                                   struct PP_CompletionCallback callback);
-  PP_Bool (*GetLocalAddress)(PP_Resource tcp_socket,
-                             struct PP_NetAddress_Private* local_addr);
-  PP_Bool (*GetRemoteAddress)(PP_Resource tcp_socket,
-                              struct PP_NetAddress_Private* remote_addr);
-  int32_t (*SSLHandshake)(PP_Resource tcp_socket,
-                          const char* server_name,
-                          uint16_t server_port,
-                          struct PP_CompletionCallback callback);
-  PP_Resource (*GetServerCertificate)(PP_Resource tcp_socket);
-  PP_Bool (*AddChainBuildingCertificate)(PP_Resource tcp_socket,
-                                         PP_Resource certificate,
-                                         PP_Bool is_trusted);
-  int32_t (*Read)(PP_Resource tcp_socket,
-                  char* buffer,
-                  int32_t bytes_to_read,
-                  struct PP_CompletionCallback callback);
-  int32_t (*Write)(PP_Resource tcp_socket,
-                   const char* buffer,
-                   int32_t bytes_to_write,
-                   struct PP_CompletionCallback callback);
-  void (*Disconnect)(PP_Resource tcp_socket);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_TCP_SOCKET_PRIVATE_H_ */
-
diff --git a/c/private/ppb_testing_private.h b/c/private/ppb_testing_private.h
deleted file mode 100644
index 4f88a22..0000000
--- a/c/private/ppb_testing_private.h
+++ /dev/null
@@ -1,155 +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.
- */
-
-/* From private/ppb_testing_private.idl modified Fri May  1 13:14:52 2015. */
-
-#ifndef PPAPI_C_PRIVATE_PPB_TESTING_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_TESTING_PRIVATE_H_
-
-#include "ppapi/c/dev/ppb_url_util_dev.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_TESTING_PRIVATE_INTERFACE_1_0 "PPB_Testing_Private;1.0"
-#define PPB_TESTING_PRIVATE_INTERFACE PPB_TESTING_PRIVATE_INTERFACE_1_0
-
-/**
- * @file
- * This file contains interface functions used for unit testing. Do not use in
- * production code. They are not guaranteed to be available in normal plugin
- * environments so you should not depend on them.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_Testing_Private_1_0 {
-  /**
-   * Reads the bitmap data out of the backing store for the given
-   * DeviceContext2D and into the given image. If the data was successfully
-   * read, it will return PP_TRUE.
-   *
-   * This function should not generally be necessary for normal plugin
-   * operation. If you want to update portions of a device, the expectation is
-   * that you will either regenerate the data, or maintain a backing store
-   * pushing updates to the device from your backing store via PaintImageData.
-   * Using this function will introduce an extra copy which will make your
-   * plugin slower. In some cases, this may be a very expensive operation (it
-   * may require slow cross-process transitions or graphics card readbacks).
-   *
-   * Data will be read into the image starting at |top_left| in the device
-   * context, and proceeding down and to the right for as many pixels as the
-   * image is large. If any part of the image bound would fall outside of the
-   * backing store of the device if positioned at |top_left|, this function
-   * will fail and return PP_FALSE.
-   *
-   * The image format must be of the format
-   * PPB_ImageData.GetNativeImageDataFormat() or this function will fail and
-   * return PP_FALSE.
-   *
-   * The returned image data will represent the current status of the backing
-   * store. This will not include any paint, scroll, or replace operations
-   * that have not yet been flushed; these operations are only reflected in
-   * the backing store (and hence ReadImageData) until after a Flush()
-   * operation has completed.
-   */
-  PP_Bool (*ReadImageData)(PP_Resource device_context_2d,
-                           PP_Resource image,
-                           const struct PP_Point* top_left);
-  /**
-   * Runs a nested run loop. The plugin will be reentered from this call.
-   * This function is used for unit testing the API. The normal pattern is to
-   * issue some asynchronous call that has a callback. Then you call
-   * RunMessageLoop which will suspend the plugin and go back to processing
-   * messages, giving the asynchronous operation time to complete. In your
-   * callback, you save the data and call QuitMessageLoop, which will then
-   * pop back up and continue with the test. This avoids having to write a
-   * complicated state machine for simple tests for asynchronous APIs.
-   */
-  void (*RunMessageLoop)(PP_Instance instance);
-  /**
-   * Posts a quit message for the outermost nested run loop. Use this to
-   * exit and return back to the caller after you call RunMessageLoop.
-   */
-  void (*QuitMessageLoop)(PP_Instance instance);
-  /**
-   * Returns the number of live objects (resources + strings + objects)
-   * associated with this plugin instance. Used for detecting leaks. Returns
-   * (uint32_t)-1 on failure.
-   */
-  uint32_t (*GetLiveObjectsForInstance)(PP_Instance instance);
-  /**
-   * Returns PP_TRUE if the plugin is running out-of-process, PP_FALSE
-   * otherwise.
-   */
-  PP_Bool (*IsOutOfProcess)(void);
-  /**
-   * Passes the input event to the browser, which sends it back to the
-   * plugin. The plugin should implement PPP_InputEvent and register for
-   * the input event type.
-   *
-   * This method sends an input event through the browser just as if it had
-   * come from the user. If the browser determines that it is an event for the
-   * plugin, it will be sent to be handled by the plugin's PPP_InputEvent
-   * interface. When generating mouse events, make sure the position is within
-   * the plugin's area on the page. When generating a keyboard event, make sure
-   * the plugin is focused.
-   *
-   * Note that the browser may generate extra input events in order to
-   * maintain certain invariants, such as always having a "mouse enter" event
-   * before any other mouse event. Furthermore, the event the plugin receives
-   * after sending a simulated event will be slightly different from the
-   * original event. The browser may change the timestamp, add modifiers, and
-   * slightly alter the mouse position, due to coordinate transforms it
-   * performs.
-   */
-  void (*SimulateInputEvent)(PP_Instance instance, PP_Resource input_event);
-  /**
-   * Returns the URL for the document. This is a safe way to retrieve
-   * window.location.href.
-   * If the canonicalized URL is valid, the method will parse the URL
-   * and fill in the components structure. This pointer may be NULL
-   * to specify that no component information is necessary.
-   */
-  struct PP_Var (*GetDocumentURL)(PP_Instance instance,
-                                  struct PP_URLComponents_Dev* components);
-  /**
-   * Fetches up to |array_size| active PP_Vars in the tracker. Returns the
-   * number of vars in the tracker. The active vars are written to |live_vars|
-   * contiguously starting at index 0. The vars are not in any particular order.
-   * If the number of live vars is greater than |array_size|, then an arbitrary
-   * subset of |array_size| vars is written to |live_vars|. The reference count
-   * of the returned PP_Vars will *not* be affected by this call.
-   */
-  uint32_t (*GetLiveVars)(struct PP_Var live_vars[], uint32_t array_size);
-  /**
-   * Sets the threshold size at which point we switch from transmitting
-   * array buffers in IPC messages to using shared memory. This is only used
-   * for testing purposes where we need to transmit small buffers using shmem
-   * (in order to have fast tests). Passing a value of 0 resets the threshold
-   * to its default. The threshold is in bytes.
-   */
-  void (*SetMinimumArrayBufferSizeForShmem)(PP_Instance instance,
-                                            uint32_t threshold);
-  /**
-   * Run the V8 garbage collector for tests.
-   */
-  void (*RunV8GC)(PP_Instance instance);
-};
-
-typedef struct PPB_Testing_Private_1_0 PPB_Testing_Private;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_TESTING_PRIVATE_H_ */
-
diff --git a/c/private/ppb_udp_socket_private.h b/c/private/ppb_udp_socket_private.h
deleted file mode 100644
index 7e53704..0000000
--- a/c/private/ppb_udp_socket_private.h
+++ /dev/null
@@ -1,162 +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.
- */
-
-/* From private/ppb_udp_socket_private.idl modified Mon Jun 24 09:53:43 2013. */
-
-#ifndef PPAPI_C_PRIVATE_PPB_UDP_SOCKET_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_UDP_SOCKET_PRIVATE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-
-#define PPB_UDPSOCKET_PRIVATE_INTERFACE_0_2 "PPB_UDPSocket_Private;0.2"
-#define PPB_UDPSOCKET_PRIVATE_INTERFACE_0_3 "PPB_UDPSocket_Private;0.3"
-#define PPB_UDPSOCKET_PRIVATE_INTERFACE_0_4 "PPB_UDPSocket_Private;0.4"
-#define PPB_UDPSOCKET_PRIVATE_INTERFACE PPB_UDPSOCKET_PRIVATE_INTERFACE_0_4
-
-/**
- * @file
- * This file defines the <code>PPB_UDPSocket_Private</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-typedef enum {
-  /* Allow the socket to share the local address to which socket will
-   * be bound with other processes. Value's type should be
-   * PP_VARTYPE_BOOL. */
-  PP_UDPSOCKETFEATURE_PRIVATE_ADDRESS_REUSE = 0,
-  /* Allow sending and receiving packets sent to and from broadcast
-   * addresses. Value's type should be PP_VARTYPE_BOOL. */
-  PP_UDPSOCKETFEATURE_PRIVATE_BROADCAST = 1,
-  /* Special value for counting the number of available
-   * features. Should not be passed to SetSocketFeature(). */
-  PP_UDPSOCKETFEATURE_PRIVATE_COUNT = 2
-} PP_UDPSocketFeature_Private;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_UDPSocketFeature_Private, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_UDPSocket_Private_0_4 {
-  /**
-   * Creates a UDP socket resource.
-   */
-  PP_Resource (*Create)(PP_Instance instance_id);
-  /**
-   * Determines if a given resource is a UDP socket.
-   */
-  PP_Bool (*IsUDPSocket)(PP_Resource resource_id);
-  /**
-   * Sets a socket feature to |udp_socket|. Should be called before
-   * Bind(). Possible values for |name|, |value| and |value|'s type
-   * are described in PP_UDPSocketFeature_Private description. If no
-   * error occurs, returns PP_OK. Otherwise, returns
-   * PP_ERROR_BADRESOURCE (if bad |udp_socket| provided),
-   * PP_ERROR_BADARGUMENT (if bad name/value/value's type provided)
-   * or PP_ERROR_FAILED in the case of internal errors.
-   */
-  int32_t (*SetSocketFeature)(PP_Resource udp_socket,
-                              PP_UDPSocketFeature_Private name,
-                              struct PP_Var value);
-  /* Creates a socket and binds to the address given by |addr|. */
-  int32_t (*Bind)(PP_Resource udp_socket,
-                  const struct PP_NetAddress_Private* addr,
-                  struct PP_CompletionCallback callback);
-  /* Returns the address that the socket has bound to.  A successful
-   * call to Bind must be called first. Returns PP_FALSE if Bind
-   * fails, or if Close has been called.
-   */
-  PP_Bool (*GetBoundAddress)(PP_Resource udp_socket,
-                             struct PP_NetAddress_Private* addr);
-  /* Performs a non-blocking recvfrom call on socket.
-   * Bind must be called first. |callback| is invoked when recvfrom
-   * reads data.  You must call GetRecvFromAddress to recover the
-   * address the data was retrieved from.
-   */
-  int32_t (*RecvFrom)(PP_Resource udp_socket,
-                      char* buffer,
-                      int32_t num_bytes,
-                      struct PP_CompletionCallback callback);
-  /* Upon successful completion of RecvFrom, the address that the data
-   * was received from is stored in |addr|.
-   */
-  PP_Bool (*GetRecvFromAddress)(PP_Resource udp_socket,
-                                struct PP_NetAddress_Private* addr);
-  /* Performs a non-blocking sendto call on the socket created and
-   * bound(has already called Bind).  The callback |callback| is
-   * invoked when sendto completes.
-   */
-  int32_t (*SendTo)(PP_Resource udp_socket,
-                    const char* buffer,
-                    int32_t num_bytes,
-                    const struct PP_NetAddress_Private* addr,
-                    struct PP_CompletionCallback callback);
-  /* Cancels all pending reads and writes, and closes the socket. */
-  void (*Close)(PP_Resource udp_socket);
-};
-
-typedef struct PPB_UDPSocket_Private_0_4 PPB_UDPSocket_Private;
-
-struct PPB_UDPSocket_Private_0_2 {
-  PP_Resource (*Create)(PP_Instance instance_id);
-  PP_Bool (*IsUDPSocket)(PP_Resource resource_id);
-  int32_t (*Bind)(PP_Resource udp_socket,
-                  const struct PP_NetAddress_Private* addr,
-                  struct PP_CompletionCallback callback);
-  int32_t (*RecvFrom)(PP_Resource udp_socket,
-                      char* buffer,
-                      int32_t num_bytes,
-                      struct PP_CompletionCallback callback);
-  PP_Bool (*GetRecvFromAddress)(PP_Resource udp_socket,
-                                struct PP_NetAddress_Private* addr);
-  int32_t (*SendTo)(PP_Resource udp_socket,
-                    const char* buffer,
-                    int32_t num_bytes,
-                    const struct PP_NetAddress_Private* addr,
-                    struct PP_CompletionCallback callback);
-  void (*Close)(PP_Resource udp_socket);
-};
-
-struct PPB_UDPSocket_Private_0_3 {
-  PP_Resource (*Create)(PP_Instance instance_id);
-  PP_Bool (*IsUDPSocket)(PP_Resource resource_id);
-  int32_t (*Bind)(PP_Resource udp_socket,
-                  const struct PP_NetAddress_Private* addr,
-                  struct PP_CompletionCallback callback);
-  PP_Bool (*GetBoundAddress)(PP_Resource udp_socket,
-                             struct PP_NetAddress_Private* addr);
-  int32_t (*RecvFrom)(PP_Resource udp_socket,
-                      char* buffer,
-                      int32_t num_bytes,
-                      struct PP_CompletionCallback callback);
-  PP_Bool (*GetRecvFromAddress)(PP_Resource udp_socket,
-                                struct PP_NetAddress_Private* addr);
-  int32_t (*SendTo)(PP_Resource udp_socket,
-                    const char* buffer,
-                    int32_t num_bytes,
-                    const struct PP_NetAddress_Private* addr,
-                    struct PP_CompletionCallback callback);
-  void (*Close)(PP_Resource udp_socket);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_UDP_SOCKET_PRIVATE_H_ */
-
diff --git a/c/private/ppb_uma_private.h b/c/private/ppb_uma_private.h
deleted file mode 100644
index 5e2d45a..0000000
--- a/c/private/ppb_uma_private.h
+++ /dev/null
@@ -1,83 +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.
- */
-
-/* From private/ppb_uma_private.idl modified Fri Mar 14 16:59:33 2014. */
-
-#ifndef PPAPI_C_PRIVATE_PPB_UMA_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_UMA_PRIVATE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_UMA_PRIVATE_INTERFACE_0_3 "PPB_UMA_Private;0.3"
-#define PPB_UMA_PRIVATE_INTERFACE PPB_UMA_PRIVATE_INTERFACE_0_3
-
-/**
- * @file
- * This file defines the <code>PPB_UMA_Private</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * Contains functions for plugins to report UMA usage stats.
- */
-struct PPB_UMA_Private_0_3 {
-  /**
-   * HistogramCustomTimes is a pointer to a function which records a time
-   * sample given in milliseconds in the histogram given by |name|, possibly
-   * creating the histogram if it does not exist.
-   */
-  void (*HistogramCustomTimes)(PP_Instance instance,
-                               struct PP_Var name,
-                               int64_t sample,
-                               int64_t min,
-                               int64_t max,
-                               uint32_t bucket_count);
-  /**
-   * HistogramCustomCounts is a pointer to a function which records a sample
-   * in the histogram given by |name|, possibly creating the histogram if it
-   * does not exist.
-   */
-  void (*HistogramCustomCounts)(PP_Instance instance,
-                                struct PP_Var name,
-                                int32_t sample,
-                                int32_t min,
-                                int32_t max,
-                                uint32_t bucket_count);
-  /**
-   * HistogramEnumeration is a pointer to a function which records a sample
-   * in the histogram given by |name|, possibly creating the histogram if it
-   * does not exist.  The sample represents a value in an enumeration bounded
-   * by |boundary_value|, that is, sample < boundary_value always.
-   */
-  void (*HistogramEnumeration)(PP_Instance instance,
-                               struct PP_Var name,
-                               int32_t sample,
-                               int32_t boundary_value);
-  /**
-   * IsCrashReportingEnabled returns PP_OK to the completion callback to
-   * indicate that the current user has opted-in to crash reporting, or
-   * PP_ERROR_* on failure or when a user has not opted-in.  This can be used to
-   * gate other reporting processes such as analytics and crash reporting.
-   */
-  int32_t (*IsCrashReportingEnabled)(PP_Instance instance,
-                                     struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_UMA_Private_0_3 PPB_UMA_Private;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_UMA_PRIVATE_H_ */
-
diff --git a/c/private/ppb_x509_certificate_private.h b/c/private/ppb_x509_certificate_private.h
deleted file mode 100644
index e817588..0000000
--- a/c/private/ppb_x509_certificate_private.h
+++ /dev/null
@@ -1,182 +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.
- */
-
-/* From private/ppb_x509_certificate_private.idl,
- *   modified Wed Apr 11 17:11:26 2012.
- */
-
-#ifndef PPAPI_C_PRIVATE_PPB_X509_CERTIFICATE_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPB_X509_CERTIFICATE_PRIVATE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_X509CERTIFICATE_PRIVATE_INTERFACE_0_1 \
-    "PPB_X509Certificate_Private;0.1"
-#define PPB_X509CERTIFICATE_PRIVATE_INTERFACE \
-    PPB_X509CERTIFICATE_PRIVATE_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the <code>PPB_X509Certificate_Private</code> interface for
- * an X509 certificate.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-/**
- * This enumeration corresponds to fields of an X509 certificate. Refer to
- * <a href="http://www.ietf.org/rfc/rfc5280.txt>RFC 5280</a> for further
- * documentation about particular fields.
- */
-typedef enum {
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_COMMON_NAME = 0,
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_LOCALITY_NAME = 1,
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_STATE_OR_PROVINCE_NAME = 2,
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_COUNTRY_NAME = 3,
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_ORGANIZATION_NAME = 4,
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_ORGANIZATION_UNIT_NAME = 5,
-  /**
-   * Note: This field is unimplemented and will return
-   * <code>PP_VARTYPE_NULL</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_UNIQUE_ID = 6,
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_COMMON_NAME = 7,
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_LOCALITY_NAME = 8,
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_STATE_OR_PROVINCE_NAME = 9,
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_COUNTRY_NAME = 10,
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_ORGANIZATION_NAME = 11,
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_ORGANIZATION_UNIT_NAME = 12,
-  /**
-   * Note: This field is unimplemented and will return
-   * <code>PP_VARTYPE_NULL</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_UNIQUE_ID = 13,
-  /**
-   * Note: This field is unimplemented and will return
-   * <code>PP_VARTYPE_NULL</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_VERSION = 14,
-  /**
-   * This corresponds to a byte array (<code>PP_VARTYPE_ARRAY_BUFFER</code>).
-   * The serial number may include a leading 0.
-   */
-  PP_X509CERTIFICATE_PRIVATE_SERIAL_NUMBER = 15,
-  /**
-   * Note: This field is unimplemented and will return
-   * <code>PP_VARTYPE_NULL</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_SIGNATURE_ALGORITHM_OID = 16,
-  /**
-   * Note: This field is unimplemented and will return
-   * <code>PP_VARTYPE_NULL</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_SIGNATURE_ALGORITHM_PARAMATERS_RAW = 17,
-  /**
-   * This corresponds to a double (<code>PP_VARTYPE_DOUBLE</code>) which
-   * can be cast to a <code>PP_TIME</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_VALIDITY_NOT_BEFORE = 18,
-  /**
-   * This corresponds to a double (<code>PP_VARTYPE_DOUBLE</code>) which
-   * can be cast to a <code>PP_TIME</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_VALIDITY_NOT_AFTER = 19,
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_PUBLIC_KEY_ALGORITHM_OID = 20,
-  /**
-   * Note: This field is unimplemented and will return
-   * <code>PP_VARTYPE_NULL</code>.
-   */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_PUBLIC_KEY = 21,
-  /**
-   * This corresponds to a byte array (<code>PP_VARTYPE_ARRAY_BUFFER</code>).
-   * This is the DER-encoded representation of the certificate.
-   */
-  PP_X509CERTIFICATE_PRIVATE_RAW = 22,
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_ISSUER_DISTINGUISHED_NAME = 23,
-  /** This corresponds to a string (<code>PP_VARTYPE_STRING</code>). */
-  PP_X509CERTIFICATE_PRIVATE_SUBJECT_DISTINGUISHED_NAME = 24
-} PP_X509Certificate_Private_Field;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_X509Certificate_Private_Field, 4);
-
-/**
- * This enumeration defines the different possible values for X5O9 certificate
- * versions as returned by:
- * <code>GetField(resource, PP_X509CERTIFICATE_PRIVATE_VERSION)</code>.
- */
-typedef enum {
-  PP_X509CERTIFICATE_PRIVATE_V1 = 0,
-  PP_X509CERTIFICATE_PRIVATE_V2 = 1,
-  PP_X509CERTIFICATE_PRIVATE_V3 = 2
-} PPB_X509Certificate_Private_Version;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PPB_X509Certificate_Private_Version, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_X509Certificate_Private</code> interface provides access to
- * the fields of an X509 certificate.
- */
-struct PPB_X509Certificate_Private_0_1 {
-  /**
-   * Allocates a <code>PPB_X509Certificate_Private</code> resource.
-   * <code>Initialize()</code> must be called before using the certificate.
-   */
-  PP_Resource (*Create)(PP_Instance instance);
-  /**
-   * Returns <code>PP_TRUE</code> if a given resource is a
-   * <code>PPB_X509Certificate_Private</code>.
-   */
-  PP_Bool (*IsX509CertificatePrivate)(PP_Resource resource);
-  /**
-   * Initializes a <code>PPB_X509Certificate_Private</code> from the DER-encoded
-   * representation. |bytes| should represent only a single certificate.
-   * <code>PP_FALSE</code> is returned if |bytes| is not a valid DER-encoding of
-   * a certificate. Note: Flash requires this to be synchronous.
-   */
-  PP_Bool (*Initialize)(PP_Resource resource,
-                        const char* bytes,
-                        uint32_t length);
-  /**
-   * Get a field of the X509Certificate as a <code>PP_Var</code>. A null
-   * <code>PP_Var</code> is returned if the field is unavailable.
-   */
-  struct PP_Var (*GetField)(PP_Resource resource,
-                            PP_X509Certificate_Private_Field field);
-};
-
-typedef struct PPB_X509Certificate_Private_0_1 PPB_X509Certificate_Private;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPB_X509_CERTIFICATE_PRIVATE_H_ */
-
diff --git a/c/private/ppp_instance_private.h b/c/private/ppp_instance_private.h
deleted file mode 100644
index f87b404..0000000
--- a/c/private/ppp_instance_private.h
+++ /dev/null
@@ -1,61 +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.
- */
-
-/* From private/ppp_instance_private.idl modified Thu Mar 28 10:22:54 2013. */
-
-#ifndef PPAPI_C_PRIVATE_PPP_INSTANCE_PRIVATE_H_
-#define PPAPI_C_PRIVATE_PPP_INSTANCE_PRIVATE_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPP_INSTANCE_PRIVATE_INTERFACE_0_1 "PPP_Instance_Private;0.1"
-#define PPP_INSTANCE_PRIVATE_INTERFACE PPP_INSTANCE_PRIVATE_INTERFACE_0_1
-
-/**
- * @file
- * This file defines the PPP_InstancePrivate structure; a series of functions
- * that a trusted plugin may implement to provide capabilities only available
- * to trusted plugins.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The PPP_Instance_Private interface contains pointers to a series of
- * functions that may be implemented in a trusted plugin to provide capabilities
- * that aren't possible in untrusted modules.
- */
-struct PPP_Instance_Private_0_1 {
-  /**
-   * GetInstanceObject returns a PP_Var representing the scriptable object for
-   * the given instance. Normally this will be a PPP_Class_Deprecated object
-   * that exposes methods and properties to JavaScript.
-   *
-   * On Failure, the returned PP_Var should be a "void" var.
-   *
-   * The returned PP_Var should have a reference added for the caller, which
-   * will be responsible for Release()ing that reference.
-   *
-   * @param[in] instance A PP_Instance identifying the instance from which the
-   *            instance object is being requested.
-   * @return A PP_Var containing scriptable object.
-   */
-  struct PP_Var (*GetInstanceObject)(PP_Instance instance);
-};
-
-typedef struct PPP_Instance_Private_0_1 PPP_Instance_Private;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPP_INSTANCE_PRIVATE_H_ */
-
diff --git a/c/private/ppp_pexe_stream_handler.h b/c/private/ppp_pexe_stream_handler.h
deleted file mode 100644
index 0f080d0..0000000
--- a/c/private/ppp_pexe_stream_handler.h
+++ /dev/null
@@ -1,61 +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.
- */
-
-/* From private/ppp_pexe_stream_handler.idl,
- *   modified Wed Aug  6 13:11:06 2014.
- */
-
-#ifndef PPAPI_C_PRIVATE_PPP_PEXE_STREAM_HANDLER_H_
-#define PPAPI_C_PRIVATE_PPP_PEXE_STREAM_HANDLER_H_
-
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPP_PEXESTREAMHANDLER_INTERFACE_1_0 "PPP_PexeStreamHandler;1.0"
-#define PPP_PEXESTREAMHANDLER_INTERFACE PPP_PEXESTREAMHANDLER_INTERFACE_1_0
-
-/**
- * @file
- * This file contains NaCl private interfaces. This interface is not versioned
- * and is for internal Chrome use. It may change without notice. */
-
-
-#include "ppapi/c/private/pp_file_handle.h"
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPP_PexeStreamHandler_1_0 {
-  /**
-   * Invoked as a result of a cache hit for a translated pexe.
-   */
-  void (*DidCacheHit)(void* user_data, PP_FileHandle nexe_file_handle);
-  /**
-   * Invoked as a result of a cache miss for a translated pexe.
-   * Provides the expected length of the pexe, as read from HTTP headers.
-   */
-  void (*DidCacheMiss)(void* user_data,
-                       int64_t expected_total_length,
-                       PP_FileHandle temp_nexe_file);
-  /**
-   * Invoked when a block of data has been downloaded.
-   * Only invoked after DidCacheMiss().
-   */
-  void (*DidStreamData)(void* user_data, const void* data, int32_t length);
-  /**
-   * Invoked when the stream has finished downloading, regardless of whether it
-   * succeeded. Not invoked if DidCacheHit() was called.
-   */
-  void (*DidFinishStream)(void* user_data, int32_t pp_error);
-};
-
-typedef struct PPP_PexeStreamHandler_1_0 PPP_PexeStreamHandler;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_PRIVATE_PPP_PEXE_STREAM_HANDLER_H_ */
-
diff --git a/c/trusted/ppb_browser_font_trusted.h b/c/trusted/ppb_browser_font_trusted.h
deleted file mode 100644
index 905fd60..0000000
--- a/c/trusted/ppb_browser_font_trusted.h
+++ /dev/null
@@ -1,282 +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.
- */
-
-/* From trusted/ppb_browser_font_trusted.idl,
- *   modified Thu Mar 28 10:14:27 2013.
- */
-
-#ifndef PPAPI_C_TRUSTED_PPB_BROWSER_FONT_TRUSTED_H_
-#define PPAPI_C_TRUSTED_PPB_BROWSER_FONT_TRUSTED_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_BROWSERFONT_TRUSTED_INTERFACE_1_0 "PPB_BrowserFont_Trusted;1.0"
-#define PPB_BROWSERFONT_TRUSTED_INTERFACE PPB_BROWSERFONT_TRUSTED_INTERFACE_1_0
-
-/**
- * @file
- * This file defines the <code>PPB_BrowserFont_Trusted</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-typedef enum {
-  /**
-   * Uses the user's default web page font (normally either the default serif
-   * or sans serif font).
-   */
-  PP_BROWSERFONT_TRUSTED_FAMILY_DEFAULT = 0,
-  /**
-   * These families will use the default web page font corresponding to the
-   * given family.
-   */
-  PP_BROWSERFONT_TRUSTED_FAMILY_SERIF = 1,
-  PP_BROWSERFONT_TRUSTED_FAMILY_SANSSERIF = 2,
-  PP_BROWSERFONT_TRUSTED_FAMILY_MONOSPACE = 3
-} PP_BrowserFont_Trusted_Family;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_BrowserFont_Trusted_Family, 4);
-
-/**
- * Specifies the font weight. Normally users will only use NORMAL or BOLD.
- */
-typedef enum {
-  PP_BROWSERFONT_TRUSTED_WEIGHT_100 = 0,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_200 = 1,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_300 = 2,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_400 = 3,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_500 = 4,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_600 = 5,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_700 = 6,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_800 = 7,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_900 = 8,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_NORMAL = PP_BROWSERFONT_TRUSTED_WEIGHT_400,
-  PP_BROWSERFONT_TRUSTED_WEIGHT_BOLD = PP_BROWSERFONT_TRUSTED_WEIGHT_700
-} PP_BrowserFont_Trusted_Weight;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_BrowserFont_Trusted_Weight, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Structs
- * @{
- */
-struct PP_BrowserFont_Trusted_Description {
-  /**
-   * Font face name as a string. This can also be an undefined var, in which
-   * case the generic family will be obeyed. If the face is not available on
-   * the system, the browser will attempt to do font fallback or pick a default
-   * font.
-   */
-  struct PP_Var face;
-  /**
-   * When Create()ing a font and the face is an undefined var, the family
-   * specifies the generic font family type to use. If the face is specified,
-   * this will be ignored.
-   *
-   * When Describe()ing a font, the family will be the value you passed in when
-   * the font was created. In other words, if you specify a face name, the
-   * family will not be updated to reflect whether the font name you requested
-   * is serif or sans serif.
-   */
-  PP_BrowserFont_Trusted_Family family;
-  /**
-   * Size in pixels.
-   *
-   * You can specify 0 to get the default font size. The default font size
-   * may vary depending on the requested font. The typical example is that
-   * the user may have a different font size for the default monospace font to
-   * give it a similar optical size to the proportionally spaced fonts.
-   */
-  uint32_t size;
-  /**
-   * Normally you will use either normal or bold.
-   */
-  PP_BrowserFont_Trusted_Weight weight;
-  PP_Bool italic;
-  PP_Bool small_caps;
-  /**
-   * Adjustment to apply to letter and word spacing, respectively. Initialize
-   * to 0 to get normal spacing. Negative values bring letters/words closer
-   * together, positive values separate them.
-   */
-  int32_t letter_spacing;
-  int32_t word_spacing;
-  /**
-   * Ensure that this struct is 48-bytes wide by padding the end.  In some
-   * compilers, PP_Var is 8-byte aligned, so those compilers align this struct
-   * on 8-byte boundaries as well and pad it to 16 bytes even without this
-   * padding attribute.  This padding makes its size consistent across
-   * compilers.
-   */
-  int32_t padding;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_BrowserFont_Trusted_Description, 48);
-
-struct PP_BrowserFont_Trusted_Metrics {
-  int32_t height;
-  int32_t ascent;
-  int32_t descent;
-  int32_t line_spacing;
-  int32_t x_height;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_BrowserFont_Trusted_Metrics, 20);
-
-struct PP_BrowserFont_Trusted_TextRun {
-  /**
-   * This var must either be a string or a null/undefined var (which will be
-   * treated as a 0-length string).
-   */
-  struct PP_Var text;
-  /**
-   * Set to PP_TRUE if the text is right-to-left.
-   */
-  PP_Bool rtl;
-  /**
-   * Set to PP_TRUE to force the directionality of the text regardless of
-   * content
-   */
-  PP_Bool override_direction;
-};
-PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_BrowserFont_Trusted_TextRun, 24);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * Provides an interface for native browser text rendering.
- *
- * This API is "trusted" not for security reasons, but because it can not be
- * implemented efficiently when running out-of-process in Browser Client. In
- * this case, WebKit is in another process and every text call would require a
- * synchronous IPC to the renderer. It is, however, available to native
- * (non-NaCl) out-of-process PPAPI plugins since WebKit is available in the
- * plugin process.
- */
-struct PPB_BrowserFont_Trusted_1_0 {
-  /**
-   * Returns a list of all available font families on the system. You can use
-   * this list to decide whether to Create() a font.
-   *
-   * The return value will be a single string with null characters delimiting
-   * the end of each font name. For example: "Arial\0Courier\0Times\0".
-   *
-   * Returns an undefined var on failure (this typically means you passed an
-   * invalid instance).
-   */
-  struct PP_Var (*GetFontFamilies)(PP_Instance instance);
-  /**
-   * Returns a font which best matches the given description. The return value
-   * will have a non-zero ID on success, or zero on failure.
-   */
-  PP_Resource (*Create)(
-      PP_Instance instance,
-      const struct PP_BrowserFont_Trusted_Description* description);
-  /**
-   * Returns PP_TRUE if the given resource is a Font. Returns PP_FALSE if the
-   * resource is invalid or some type other than a Font.
-   */
-  PP_Bool (*IsFont)(PP_Resource resource);
-  /**
-   * Loads the description and metrics of the font into the given structures.
-   * The description will be different than the description the font was
-   * created with since it will be filled with the real values from the font
-   * that was actually selected.
-   *
-   * The PP_Var in the description should be of type Void on input. On output,
-   * this will contain the string and will have a reference count of 1. The
-   * plugin is responsible for calling Release on this var.
-   *
-   * Returns PP_TRUE on success, PP_FALSE if the font is invalid or if the Var
-   * in the description isn't Null (to prevent leaks).
-   */
-  PP_Bool (*Describe)(PP_Resource font,
-                      struct PP_BrowserFont_Trusted_Description* description,
-                      struct PP_BrowserFont_Trusted_Metrics* metrics);
-  /**
-   * Draws the text to the image buffer.
-   *
-   * The given point represents the baseline of the left edge of the font,
-   * regardless of whether it is left-to-right or right-to-left (in the case of
-   * RTL text, this will actually represent the logical end of the text).
-   *
-   * The clip is optional and may be NULL. In this case, the text will be
-   * clipped to the image.
-   *
-   * The image_data_is_opaque flag indicates whether subpixel antialiasing can
-   * be performed, if it is supported. When the image below the text is
-   * opaque, subpixel antialiasing is supported and you should set this to
-   * PP_TRUE to pick up the user's default preferences. If your plugin is
-   * partially transparent, then subpixel antialiasing is not possible and
-   * grayscale antialiasing will be used instead (assuming the user has
-   * antialiasing enabled at all).
-   */
-  PP_Bool (*DrawTextAt)(PP_Resource font,
-                        PP_Resource image_data,
-                        const struct PP_BrowserFont_Trusted_TextRun* text,
-                        const struct PP_Point* position,
-                        uint32_t color,
-                        const struct PP_Rect* clip,
-                        PP_Bool image_data_is_opaque);
-  /**
-   * Returns the width of the given string. If the font is invalid or the var
-   * isn't a valid string, this will return -1.
-   *
-   * Note that this function handles complex scripts such as Arabic, combining
-   * accents, etc. so that adding the width of substrings won't necessarily
-   * produce the correct width of the entire string.
-   *
-   * Returns -1 on failure.
-   */
-  int32_t (*MeasureText)(PP_Resource font,
-                         const struct PP_BrowserFont_Trusted_TextRun* text);
-  /**
-   * Returns the character at the given pixel X position from the beginning of
-   * the string. This handles complex scripts such as Arabic, where characters
-   * may be combined or replaced depending on the context. Returns (uint32)-1
-   * on failure.
-   *
-   * TODO(brettw) this function may be broken. See the CharPosRTL test. It
-   * seems to tell you "insertion point" rather than painting position. This
-   * is useful but maybe not what we intended here.
-   */
-  uint32_t (*CharacterOffsetForPixel)(
-      PP_Resource font,
-      const struct PP_BrowserFont_Trusted_TextRun* text,
-      int32_t pixel_position);
-  /**
-   * Returns the horizontal advance to the given character if the string was
-   * placed at the given position. This handles complex scripts such as Arabic,
-   * where characters may be combined or replaced depending on context. Returns
-   * -1 on error.
-   */
-  int32_t (*PixelOffsetForCharacter)(
-      PP_Resource font,
-      const struct PP_BrowserFont_Trusted_TextRun* text,
-      uint32_t char_offset);
-};
-
-typedef struct PPB_BrowserFont_Trusted_1_0 PPB_BrowserFont_Trusted;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_TRUSTED_PPB_BROWSER_FONT_TRUSTED_H_ */
-
diff --git a/c/trusted/ppb_char_set_trusted.h b/c/trusted/ppb_char_set_trusted.h
deleted file mode 100644
index 22fdf8f..0000000
--- a/c/trusted/ppb_char_set_trusted.h
+++ /dev/null
@@ -1,124 +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.
- */
-
-/* From trusted/ppb_char_set_trusted.idl modified Wed Feb  8 16:34:25 2012. */
-
-#ifndef PPAPI_C_TRUSTED_PPB_CHAR_SET_TRUSTED_H_
-#define PPAPI_C_TRUSTED_PPB_CHAR_SET_TRUSTED_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_CHARSET_TRUSTED_INTERFACE_1_0 "PPB_CharSet_Trusted;1.0"
-#define PPB_CHARSET_TRUSTED_INTERFACE PPB_CHARSET_TRUSTED_INTERFACE_1_0
-
-/**
- * @file
- *
- * This file defines the <code>PPB_CharSet_Trusted</code> interface.
- */
-
-
-/**
- * @addtogroup Enums
- * @{
- */
-typedef enum {
-  /**
-   * Causes the entire conversion to fail if an error is encountered. The
-   * conversion function will return NULL.
-   */
-  PP_CHARSET_TRUSTED_CONVERSIONERROR_FAIL,
-  /**
-   * Silently skips over errors. Unrepresentable characters and input encoding
-   * errors will be removed from the output.
-   */
-  PP_CHARSET_TRUSTED_CONVERSIONERROR_SKIP,
-  /**
-   * Replaces the error or unrepresentable character with a substitution
-   * character. When converting to a Unicode character set (UTF-8 or UTF-16) it
-   * will use the unicode "substitution character" U+FFFD. When converting to
-   * another character set, the character will be charset-specific. For many
-   * languages this will be the representation of the '?' character.
-   */
-  PP_CHARSET_TRUSTED_CONVERSIONERROR_SUBSTITUTE
-} PP_CharSet_Trusted_ConversionError;
-PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_CharSet_Trusted_ConversionError, 4);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/**
- * The <code>PPB_CharSet_Trusted</code> interface provides functions for
- * converting between character sets.
- *
- * This inteface is provided for trusted plugins only since in Native Client it
- * would require an expensive out-of-process IPC call for each conversion,
- * which makes performance unacceptable. Native Client plugins should include
- * ICU or some other library if they need this feature.
- */
-struct PPB_CharSet_Trusted_1_0 {
-  /**
-   * Converts the UTF-16 string pointed to by |*utf16| to an 8-bit string in
-   * the specified code page. |utf16_len| is measured in UTF-16 units, not
-   * bytes. This value may not be NULL.
-   *
-   * The given output buffer will be filled up to output_length bytes with the
-   * result. output_length will be updated with the number of bytes required
-   * for the given string. The output buffer may be null to just retrieve the
-   * required buffer length.
-   *
-   * This function will return PP_FALSE if there was an error converting the
-   * string and you requested PP_CHARSET_CONVERSIONERROR_FAIL, or the output
-   * character set was unknown. Otherwise, it will return PP_TRUE.
-   */
-  PP_Bool (*UTF16ToCharSet)(const uint16_t utf16[],
-                            uint32_t utf16_len,
-                            const char* output_char_set,
-                            PP_CharSet_Trusted_ConversionError on_error,
-                            char* output_buffer,
-                            uint32_t* output_length);
-  /**
-   * Same as UTF16ToCharSet except converts in the other direction. The input
-   * is in the given charset, and the |input_len| is the number of bytes in
-   * the |input| string.
-   *
-   * Note that the output_utf16_length is measured in UTF-16 characters.
-   *
-   * Since UTF16 can represent every Unicode character, the only time the
-   * replacement character will be used is if the encoding in the input string
-   * is incorrect.
-   */
-  PP_Bool (*CharSetToUTF16)(const char* input,
-                            uint32_t input_len,
-                            const char* input_char_set,
-                            PP_CharSet_Trusted_ConversionError on_error,
-                            uint16_t* output_buffer,
-                            uint32_t* output_utf16_length);
-  /**
-   * Returns a string var representing the current multi-byte character set of
-   * the current system.
-   *
-   * WARNING: You really shouldn't be using this function unless you're dealing
-   * with legacy data. You should be using UTF-8 or UTF-16 and you don't have
-   * to worry about the character sets.
-   */
-  struct PP_Var (*GetDefaultCharSet)(PP_Instance instance);
-};
-
-typedef struct PPB_CharSet_Trusted_1_0 PPB_CharSet_Trusted;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_TRUSTED_PPB_CHAR_SET_TRUSTED_H_ */
-
diff --git a/c/trusted/ppb_file_chooser_trusted.h b/c/trusted/ppb_file_chooser_trusted.h
deleted file mode 100644
index bc1190c..0000000
--- a/c/trusted/ppb_file_chooser_trusted.h
+++ /dev/null
@@ -1,74 +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.
- */
-
-/* From trusted/ppb_file_chooser_trusted.idl,
- *   modified Fri Mar 16 10:00:48 2012.
- */
-
-#ifndef PPAPI_C_TRUSTED_PPB_FILE_CHOOSER_TRUSTED_H_
-#define PPAPI_C_TRUSTED_PPB_FILE_CHOOSER_TRUSTED_H_
-
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-
-#define PPB_FILECHOOSER_TRUSTED_INTERFACE_0_5 "PPB_FileChooserTrusted;0.5"
-#define PPB_FILECHOOSER_TRUSTED_INTERFACE_0_6 "PPB_FileChooserTrusted;0.6"
-#define PPB_FILECHOOSER_TRUSTED_INTERFACE PPB_FILECHOOSER_TRUSTED_INTERFACE_0_6
-
-/**
- * @file
- * This file defines the <code>PPB_FileChooser_Trusted</code> interface.
- */
-
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-struct PPB_FileChooserTrusted_0_6 {
-  /**
-   * This function displays a previously created file chooser resource as a
-   * dialog box, prompting the user to choose a file or files to open, or a
-   * single file for saving. The callback is called with PP_OK on successful
-   * completion with a file (or files) selected or PP_ERROR_USERCANCEL if the
-   * user selected no file.
-   *
-   * @param[in] chooser The file chooser resource.
-   * @param[in] save_as A <code>PP_Bool</code> value indicating if this dialog
-   * is choosing a file for saving.
-   * @param[in] suggested_file_name If saving, the suggested name for the
-   * file, otherwise, null or undefined.
-   * @param[in] callback A <code>CompletionCallback</code> to be called after
-   * the user has closed the file chooser dialog.
-   *
-   * @return PP_OK_COMPLETIONPENDING if request to show the dialog was
-   * successful, another error code from pp_errors.h on failure.
-   */
-  int32_t (*ShowWithoutUserGesture)(PP_Resource chooser,
-                                    PP_Bool save_as,
-                                    struct PP_Var suggested_file_name,
-                                    struct PP_ArrayOutput output,
-                                    struct PP_CompletionCallback callback);
-};
-
-typedef struct PPB_FileChooserTrusted_0_6 PPB_FileChooserTrusted;
-
-struct PPB_FileChooserTrusted_0_5 {
-  int32_t (*ShowWithoutUserGesture)(PP_Resource chooser,
-                                    PP_Bool save_as,
-                                    struct PP_Var suggested_file_name,
-                                    struct PP_CompletionCallback callback);
-};
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_TRUSTED_PPB_FILE_CHOOSER_TRUSTED_H_ */
-
diff --git a/c/trusted/ppb_url_loader_trusted.h b/c/trusted/ppb_url_loader_trusted.h
deleted file mode 100644
index b49133b..0000000
--- a/c/trusted/ppb_url_loader_trusted.h
+++ /dev/null
@@ -1,82 +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.
- */
-
-/* From trusted/ppb_url_loader_trusted.idl modified Mon Mar 19 13:26:48 2018. */
-
-#ifndef PPAPI_C_TRUSTED_PPB_URL_LOADER_TRUSTED_H_
-#define PPAPI_C_TRUSTED_PPB_URL_LOADER_TRUSTED_H_
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-
-#define PPB_URLLOADERTRUSTED_INTERFACE_0_3 "PPB_URLLoaderTrusted;0.3"
-#define PPB_URLLOADERTRUSTED_INTERFACE PPB_URLLOADERTRUSTED_INTERFACE_0_3
-
-/**
- * @file
- * URL loader trusted interfaces. */
-
-
-/**
- * @addtogroup Typedefs
- * @{
- */
-/**
- * NOTE: Permission checks for functions added to this file must be done in
- * pepper_url_loader.cc.
- *
- */
-/**
- * Callback that indicates the status of the download and upload for the
- * given URLLoader resource.
- */
-typedef void (*PP_URLLoaderTrusted_StatusCallback)(
-    PP_Instance pp_instance,
-    PP_Resource pp_resource,
-    int64_t bytes_sent,
-    int64_t total_bytes_to_be_sent,
-    int64_t bytes_received,
-    int64_t total_bytes_to_be_received);
-/**
- * @}
- */
-
-/**
- * @addtogroup Interfaces
- * @{
- */
-/* Available only to trusted implementations. */
-struct PPB_URLLoaderTrusted_0_3 {
-  /**
-   * Grant this URLLoader the capability to make unrestricted cross-origin
-   * requests.
-   */
-  void (*GrantUniversalAccess)(PP_Resource loader);
-  /**
-   * Registers that the given function will be called when the upload or
-   * downloaded byte count has changed. This is not exposed on the untrusted
-   * interface because it can be quite chatty and encourages people to write
-   * feedback UIs that update as frequently as the progress updates.
-   *
-   * The other serious gotcha with this callback is that the callback must not
-   * mutate the URL loader or cause it to be destroyed.
-   *
-   * However, the proxy layer needs this information to push to the other
-   * process, so we expose it here. Only one callback can be set per URL
-   * Loader. Setting to a NULL callback will disable it.
-   */
-  void (*RegisterStatusCallback)(PP_Resource loader,
-                                 PP_URLLoaderTrusted_StatusCallback cb);
-};
-
-typedef struct PPB_URLLoaderTrusted_0_3 PPB_URLLoaderTrusted;
-/**
- * @}
- */
-
-#endif  /* PPAPI_C_TRUSTED_PPB_URL_LOADER_TRUSTED_H_ */
-
diff --git a/cpp/BUILD.gn b/cpp/BUILD.gn
deleted file mode 100644
index c916c3a..0000000
--- a/cpp/BUILD.gn
+++ /dev/null
@@ -1,273 +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("//ppapi/buildflags/buildflags.gni")
-
-if (is_nacl) {
-  import("//build/config/nacl/config.gni")
-}
-
-assert(enable_ppapi)
-
-if (is_nacl && is_nacl_glibc) {
-  cpp_target_type = "shared_library"
-} else {
-  cpp_target_type = "static_library"
-}
-
-# Link to this target to get the PPAPI C++ wrapper objects and plugin startup
-# code. See also "objects" below.
-target(cpp_target_type, "cpp") {
-  output_name = "ppapi_cpp_lib"
-
-  sources = [
-    "module_embedder.h",
-    "ppp_entrypoints.cc",
-  ]
-
-  public_deps = [
-    ":objects",
-    "//ppapi/c",
-  ]
-
-  if (is_nacl) {
-    public_deps += [ "//build/config/nacl:nacl_base" ]
-
-    if (is_nacl_glibc) {
-      # When using gcc, we hide all symbols by default, but that breaks at
-      # link time as the test executable requires symbols defined in the
-      # shared library.
-      configs -= [ "//build/config/gcc:symbol_visibility_hidden" ]
-      configs += [ "//build/config/gcc:symbol_visibility_default" ]
-
-      cflags = [ "-fPIC" ]
-    } else {
-      # This library is distributed as a part of the SDK and as such has to
-      # be a static library rather than a source set.
-      complete_static_lib = true
-      configs -= [ "//build/config/compiler:thin_archive" ]
-    }
-  }
-}
-
-# Link to this target to get only the PPAPI C++ wrapper objects but not the
-# plugin startup code. Some plugins need special startup code that they supply
-# themselves.
-source_set("objects") {
-  sources = [
-    "array_output.cc",
-    "array_output.h",
-    "audio.cc",
-    "audio.h",
-    "audio_buffer.cc",
-    "audio_buffer.h",
-    "audio_config.cc",
-    "audio_config.h",
-    "completion_callback.h",
-    "core.cc",
-    "core.h",
-    "directory_entry.cc",
-    "directory_entry.h",
-    "file_io.cc",
-    "file_io.h",
-    "file_ref.cc",
-    "file_ref.h",
-    "file_system.cc",
-    "file_system.h",
-    "fullscreen.cc",
-    "fullscreen.h",
-    "graphics_2d.cc",
-    "graphics_2d.h",
-    "graphics_3d.cc",
-    "graphics_3d.h",
-    "graphics_3d_client.cc",
-    "graphics_3d_client.h",
-    "host_resolver.cc",
-    "host_resolver.h",
-    "image_data.cc",
-    "image_data.h",
-    "input_event.cc",
-    "input_event.h",
-    "input_event_interface_name.h",
-    "instance.cc",
-    "instance.h",
-    "instance_handle.cc",
-    "instance_handle.h",
-    "logging.h",
-    "media_stream_audio_track.cc",
-    "media_stream_audio_track.h",
-    "media_stream_video_track.cc",
-    "media_stream_video_track.h",
-    "message_handler.h",
-    "message_loop.cc",
-    "message_loop.h",
-    "module.cc",
-    "module.h",
-    "module_impl.h",
-    "mouse_cursor.cc",
-    "mouse_cursor.h",
-    "mouse_lock.cc",
-    "mouse_lock.h",
-    "net_address.cc",
-    "net_address.h",
-    "network_list.cc",
-    "network_list.h",
-    "network_monitor.cc",
-    "network_monitor.h",
-    "network_proxy.cc",
-    "network_proxy.h",
-    "output_traits.h",
-    "point.h",
-    "rect.cc",
-    "rect.h",
-    "resource.cc",
-    "resource.h",
-    "size.h",
-    "tcp_socket.cc",
-    "tcp_socket.h",
-    "text_input_controller.cc",
-    "text_input_controller.h",
-    "touch_point.h",
-    "udp_socket.cc",
-    "udp_socket.h",
-    "url_loader.cc",
-    "url_loader.h",
-    "url_request_info.cc",
-    "url_request_info.h",
-    "url_response_info.cc",
-    "url_response_info.h",
-    "var.cc",
-    "var.h",
-    "var_array.cc",
-    "var_array.h",
-    "var_array_buffer.cc",
-    "var_array_buffer.h",
-    "var_dictionary.cc",
-    "var_dictionary.h",
-    "video_decoder.cc",
-    "video_decoder.h",
-    "video_encoder.cc",
-    "video_encoder.h",
-    "video_frame.cc",
-    "video_frame.h",
-    "view.cc",
-    "view.h",
-    "vpn_provider.cc",
-    "vpn_provider.h",
-    "websocket.cc",
-    "websocket.h",
-
-    # Dev interfaces.
-    "dev/audio_input_dev.cc",
-    "dev/audio_input_dev.h",
-    "dev/audio_output_dev.cc",
-    "dev/audio_output_dev.h",
-    "dev/buffer_dev.cc",
-    "dev/buffer_dev.h",
-    "dev/crypto_dev.cc",
-    "dev/crypto_dev.h",
-    "dev/cursor_control_dev.cc",
-    "dev/cursor_control_dev.h",
-    "dev/device_ref_dev.cc",
-    "dev/device_ref_dev.h",
-    "dev/file_chooser_dev.cc",
-    "dev/file_chooser_dev.h",
-    "dev/ime_input_event_dev.cc",
-    "dev/ime_input_event_dev.h",
-    "dev/memory_dev.cc",
-    "dev/memory_dev.h",
-    "dev/printing_dev.cc",
-    "dev/printing_dev.h",
-    "dev/text_input_dev.cc",
-    "dev/text_input_dev.h",
-    "dev/url_util_dev.cc",
-    "dev/url_util_dev.h",
-    "dev/video_capture_client_dev.cc",
-    "dev/video_capture_client_dev.h",
-    "dev/video_capture_dev.cc",
-    "dev/video_capture_dev.h",
-    "dev/video_decoder_client_dev.cc",
-    "dev/video_decoder_client_dev.h",
-    "dev/video_decoder_dev.cc",
-    "dev/video_decoder_dev.h",
-    "dev/view_dev.cc",
-    "dev/view_dev.h",
-
-    # Deprecated interfaces.
-    "dev/scriptable_object_deprecated.cc",
-    "dev/scriptable_object_deprecated.h",
-
-    # Private interfaces.
-    "private/camera_capabilities_private.cc",
-    "private/camera_capabilities_private.h",
-    "private/camera_device_private.cc",
-    "private/camera_device_private.h",
-    "private/ext_crx_file_system_private.cc",
-    "private/ext_crx_file_system_private.h",
-    "private/file_io_private.cc",
-    "private/file_io_private.h",
-    "private/host_resolver_private.cc",
-    "private/host_resolver_private.h",
-    "private/instance_private.cc",
-    "private/instance_private.h",
-    "private/isolated_file_system_private.cc",
-    "private/isolated_file_system_private.h",
-    "private/net_address_private.cc",
-    "private/net_address_private.h",
-    "private/pass_file_handle.cc",
-    "private/pass_file_handle.h",
-    "private/tcp_server_socket_private.cc",
-    "private/tcp_server_socket_private.h",
-    "private/tcp_socket_private.cc",
-    "private/tcp_socket_private.h",
-    "private/udp_socket_private.cc",
-    "private/udp_socket_private.h",
-    "private/uma_private.cc",
-    "private/uma_private.h",
-    "private/var_private.cc",
-    "private/var_private.h",
-    "private/video_frame_private.cc",
-    "private/video_frame_private.h",
-    "private/x509_certificate_private.cc",
-    "private/x509_certificate_private.h",
-
-    # Trusted interfaces.
-    "trusted/browser_font_trusted.cc",
-    "trusted/browser_font_trusted.h",
-    "trusted/file_chooser_trusted.cc",
-    "trusted/file_chooser_trusted.h",
-
-    # Utility sources.
-    "../utility/completion_callback_factory.h",
-    "../utility/completion_callback_factory_thread_traits.h",
-    "../utility/graphics/paint_aggregator.cc",
-    "../utility/graphics/paint_aggregator.h",
-    "../utility/graphics/paint_manager.cc",
-    "../utility/graphics/paint_manager.h",
-    "../utility/threading/lock.cc",
-    "../utility/threading/lock.h",
-    "../utility/threading/simple_thread.cc",
-    "../utility/threading/simple_thread.h",
-    "../utility/websocket/websocket_api.cc",
-    "../utility/websocket/websocket_api.h",
-  ]
-
-  configs += [ "//build/config:precompiled_headers" ]
-
-  public_deps = [ "//ppapi/c" ]
-
-  if (is_nacl) {
-    public_deps += [ "//build/config/nacl:nacl_base" ]
-
-    if (is_nacl_glibc) {
-      # When using gcc, we hide all symbols by default, but that breaks at
-      # link time as the test executable requires symbols defined in the
-      # shared library.
-      configs -= [ "//build/config/gcc:symbol_visibility_hidden" ]
-      configs += [ "//build/config/gcc:symbol_visibility_default" ]
-
-      cflags = [ "-fPIC" ]
-    }
-  }
-}
diff --git a/cpp/DEPS b/cpp/DEPS
deleted file mode 100644
index af2aa4c..0000000
--- a/cpp/DEPS
+++ /dev/null
@@ -1,16 +0,0 @@
-# ppapi/cpp should not be dependent on other parts of chromium; it should stay
-# browser-neutral as much as possible.
-include_rules = [
-  "-base",
-  "-build",
-  "-ipc",
-  "-uncode",
-  "-testing",
-  "-ppapi",
-  "+ppapi/c",
-  "-ppapi/c/private",
-  "-ppapi/c/trusted",
-  "+ppapi/cpp",
-  "-ppapi/cpp/private",
-  "-ppapi/cpp/trusted",
-]
diff --git a/cpp/array_output.cc b/cpp/array_output.cc
deleted file mode 100644
index d8bb7af..0000000
--- a/cpp/array_output.cc
+++ /dev/null
@@ -1,41 +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/cpp/array_output.h"
-
-#include "ppapi/cpp/logging.h"
-
-namespace pp {
-
-// static
-void* ArrayOutputAdapterBase::GetDataBufferThunk(void* user_data,
-                                                 uint32_t element_count,
-                                                 uint32_t element_size) {
-  return static_cast<ArrayOutputAdapterBase*>(user_data)->
-      GetDataBuffer(element_count, element_size);
-}
-
-VarArrayOutputAdapterWithStorage::VarArrayOutputAdapterWithStorage()
-    : ArrayOutputAdapter<PP_Var>() {
-  set_output(&temp_storage_);
-}
-
-VarArrayOutputAdapterWithStorage::~VarArrayOutputAdapterWithStorage() {
-  if (!temp_storage_.empty()) {
-    // An easy way to release the var references held by this object.
-    output();
-  }
-}
-
-std::vector<Var>& VarArrayOutputAdapterWithStorage::output() {
-  PP_DCHECK(output_storage_.empty());
-
-  output_storage_.reserve(temp_storage_.size());
-  for (size_t i = 0; i < temp_storage_.size(); i++)
-    output_storage_.push_back(Var(PASS_REF, temp_storage_[i]));
-  temp_storage_.clear();
-  return output_storage_;
-}
-
-}  // namespace pp
diff --git a/cpp/array_output.h b/cpp/array_output.h
deleted file mode 100644
index dcd9fc8..0000000
--- a/cpp/array_output.h
+++ /dev/null
@@ -1,275 +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_CPP_ARRAY_OUTPUT_H_
-#define PPAPI_CPP_ARRAY_OUTPUT_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <vector>
-
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/pass_ref.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-// Converts the given array of PP_Resources into an array of the requested
-// C++ resource types, passing ownership of a reference in the process.
-//
-// This is used to convert output arrays of resources that the browser has
-// generated into the more convenient C++ wrappers for those resources. The
-// initial "PassRef" parameter is there to emphasize what happens to the
-// reference count of the input resource and to match the resource constructors
-// that look the same.
-template<typename ResourceObjectType>
-inline void ConvertPPResourceArrayToObjects(
-    PassRef,
-    const std::vector<PP_Resource>& input,
-    std::vector<ResourceObjectType>* output) {
-  output->resize(0);
-  output->reserve(input.size());
-  for (size_t i = 0; i < input.size(); i++)
-    output->push_back(ResourceObjectType(PASS_REF, input[i]));
-}
-
-// Non-templatized base class for the array output conversion. It provides the
-// C implementation of a PP_ArrayOutput whose callback function is implemented
-// as a virtual call on a derived class. Do not use directly, use one of the
-// derived classes below.
-class ArrayOutputAdapterBase {
- public:
-  ArrayOutputAdapterBase() {
-    pp_array_output_.GetDataBuffer =
-        &ArrayOutputAdapterBase::GetDataBufferThunk;
-    pp_array_output_.user_data = this;
-  }
-  virtual ~ArrayOutputAdapterBase() {}
-
-  const PP_ArrayOutput& pp_array_output() { return pp_array_output_; }
-
- protected:
-  virtual void* GetDataBuffer(uint32_t element_count,
-                              uint32_t element_size) = 0;
-
- private:
-  static void* GetDataBufferThunk(void* user_data,
-                                  uint32_t element_count,
-                                  uint32_t element_size);
-
-  PP_ArrayOutput pp_array_output_;
-
-  // Disallow copying and assignment. This will do the wrong thing for most
-  // subclasses.
-  ArrayOutputAdapterBase(const ArrayOutputAdapterBase&);
-  ArrayOutputAdapterBase& operator=(const ArrayOutputAdapterBase&);
-};
-
-// This adapter provides functionality for implementing a PP_ArrayOutput
-// structure as writing to a given vector object.
-//
-// This is generally used internally in the C++ wrapper objects to
-// write into an output parameter supplied by the plugin. If the element size
-// that the browser is writing does not match the size of the type we're using
-// this will assert and return NULL (which will cause the browser to fail the
-// call).
-//
-// Example that allows the browser to write into a given vector:
-//   void DoFoo(std::vector<int>* results) {
-//     ArrayOutputAdapter<int> adapter(results);
-//     ppb_foo->DoFoo(adapter.pp_array_output());
-//   }
-template<typename T>
-class ArrayOutputAdapter : public ArrayOutputAdapterBase {
- public:
-  ArrayOutputAdapter(std::vector<T>* output) : output_(output) {}
-
- protected:
-  // Two-step init for the "with storage" version below.
-  ArrayOutputAdapter() : output_(NULL) {}
-  void set_output(std::vector<T>* output) { output_ = output; }
-
-  // ArrayOutputAdapterBase implementation.
-  virtual void* GetDataBuffer(uint32_t element_count, uint32_t element_size) {
-    if (element_count == 0)
-      return NULL;
-    PP_DCHECK(element_size == sizeof(T));
-    if (element_size != sizeof(T))
-      return NULL;
-    output_->resize(element_count);
-    return &(*output_)[0];
-  }
-
- private:
-  std::vector<T>* output_;
-};
-
-// This adapter provides functionality for implementing a PP_ArrayOutput
-// structure as writing resources to a given vector object.
-//
-// When returning an array of resources, the browser will write PP_Resources
-// via a PP_ArrayOutput. This code will automatically convert the PP_Resources
-// to the given wrapper type, (as long as that wrapper type supports the
-// correct constructor). The ownership of the resources that the browser passed
-// to us will be transferred to the C++ wrapper object.
-//
-// Conversion of the PP_Resources to the C++ wrapper object occurs in the
-// destructor. This object is intended to be used on the stack in a C++ wrapper
-// object for a call.
-//
-// Example:
-//   void GetFiles(std::vector<pp::FileRef>* results) {
-//     ResourceArrayOutputAdapter<pp::FileRef> adapter(results);
-//     ppb_foo->DoFoo(adapter.pp_array_output());
-//   }
-template<typename T>
-class ResourceArrayOutputAdapter : public ArrayOutputAdapterBase {
- public:
-  explicit ResourceArrayOutputAdapter(std::vector<T>* output)
-      : output_(output) {
-    output_->resize(0);
-  }
-  virtual ~ResourceArrayOutputAdapter() {
-    ConvertPPResourceArrayToObjects(PASS_REF, intermediate_output_, output_);
-  }
-
- protected:
-  // Two-step init for the "with storage" version below.
-  ResourceArrayOutputAdapter() : output_(NULL) {}
-  void set_output(T* output) { output_ = output; }
-
-  // ArrayOutputAdapterBase implementation.
-  virtual void* GetDataBuffer(uint32_t element_count,
-                              uint32_t element_size) {
-    if (element_count == 0)
-      return NULL;
-    PP_DCHECK(element_size == sizeof(PP_Resource));
-    if (element_size != sizeof(PP_Resource))
-      return NULL;
-    intermediate_output_.resize(element_count);
-    return &intermediate_output_[0];
-  }
-
- private:
-  std::vector<PP_Resource> intermediate_output_;
-  std::vector<T>* output_;
-};
-
-// This adapter is like the ArrayOutputAdapter except that it also contains
-// the underlying std::vector that will be populated (rather than writing it to
-// an object passed into the constructor).
-//
-// This is used by the CompletionCallbackFactory system to collect the output
-// parameters from an async function call. The collected data is then passed to
-// the plugins callback function.
-//
-// You can also use it directly if you want to have an array output and aren't
-// using the CompletionCallbackFactory. For example, if you're calling a
-// PPAPI function DoFoo that takes a PP_OutputArray that is supposed to be
-// writing integers, do this:
-//
-//    ArrayOutputAdapterWithStorage<int> adapter;
-//    ppb_foo->DoFoo(adapter.pp_output_array());
-//    const std::vector<int>& result = adapter.output();
-template<typename T>
-class ArrayOutputAdapterWithStorage : public ArrayOutputAdapter<T> {
- public:
-  ArrayOutputAdapterWithStorage() {
-    this->set_output(&output_storage_);
-  }
-
-  std::vector<T>& output() { return output_storage_; }
-
- private:
-  std::vector<T> output_storage_;
-};
-
-// This adapter is like the ArrayOutputAdapterWithStorage except this
-// additionally converts PP_Var structs to pp::Var objects.
-//
-// You can also use it directly if you want to have an array output and aren't
-// using the CompletionCallbackFactory. For example, if you're calling a
-// PPAPI function GetVars that takes a PP_OutputArray that is supposed to be
-// writing PP_Vars, do this:
-//
-//    VarArrayOutputAdapterWithStorage adapter;
-//    ppb_foo->GetVars(adapter.pp_output_array());
-//    const std::vector<pp::Var>& result = adapter.output().
-//
-// This one is non-inline since it's not templatized.
-class VarArrayOutputAdapterWithStorage : public ArrayOutputAdapter<PP_Var> {
- public:
-  VarArrayOutputAdapterWithStorage();
-  virtual ~VarArrayOutputAdapterWithStorage();
-
-  // Returns the final array of resource objects, converting the PP_Vars
-  // written by the browser to pp::Var objects.
-  //
-  // This function should only be called once or we would end up converting
-  // the array more than once, which would mess up the refcounting.
-  std::vector<Var>& output();
-
- private:
-  // The browser will write the PP_Vars into this array.
-  std::vector<PP_Var> temp_storage_;
-
-  // When asked for the output, the resources above will be converted to the
-  // C++ resource objects in this array for passing to the calling code.
-  std::vector<Var> output_storage_;
-};
-
-// This adapter is like the ArrayOutputAdapterWithStorage except this
-// additionally converts PP_Resources to C++ wrapper objects of the given type.
-//
-// You can also use it directly if you want to have an array output and aren't
-// using the CompletionCallbackFactory. For example, if you're calling a
-// PPAPI function GetFiles that takes a PP_OutputArray that is supposed to be
-// writing PP_Resources cooresponding to FileRefs, do this:
-//
-//    ResourceArrayOutputAdapterWithStorage<FileRef> adapter;
-//    ppb_foo->GetFiles(adapter.pp_output_array());
-//    std::vector<FileRef> result = adapter.output().
-template<typename T>
-class ResourceArrayOutputAdapterWithStorage
-    : public ArrayOutputAdapter<PP_Resource> {
- public:
-  ResourceArrayOutputAdapterWithStorage() {
-    set_output(&temp_storage_);
-  }
-
-  virtual ~ResourceArrayOutputAdapterWithStorage() {
-    if (!temp_storage_.empty()) {
-      // An easy way to release the resource references held by this object.
-      output();
-    }
-  }
-
-  // Returns the final array of resource objects, converting the PP_Resources
-  // written by the browser to resource objects.
-  //
-  // This function should only be called once or we would end up converting
-  // the array more than once, which would mess up the refcounting.
-  std::vector<T>& output() {
-    PP_DCHECK(output_storage_.empty());
-
-    ConvertPPResourceArrayToObjects(PASS_REF, temp_storage_, &output_storage_);
-    temp_storage_.clear();
-    return output_storage_;
-  }
-
- private:
-  // The browser will write the PP_Resources into this array.
-  std::vector<PP_Resource> temp_storage_;
-
-  // When asked for the output, the resources above will be converted to the
-  // C++ resource objects in this array for passing to the calling code.
-  std::vector<T> output_storage_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_ARRAY_OUTPUT_H_
diff --git a/cpp/audio.cc b/cpp/audio.cc
deleted file mode 100644
index a8baf06..0000000
--- a/cpp/audio.cc
+++ /dev/null
@@ -1,72 +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/cpp/audio.h"
-
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Audio_1_0>() {
-  return PPB_AUDIO_INTERFACE_1_0;
-}
-
-template <> const char* interface_name<PPB_Audio_1_1>() {
-  return PPB_AUDIO_INTERFACE_1_1;
-}
-
-}  // namespace
-
-Audio::Audio(const InstanceHandle& instance,
-             const AudioConfig& config,
-             PPB_Audio_Callback callback,
-             void* user_data)
-    : config_(config),
-      use_1_0_interface_(false) {
-  if (has_interface<PPB_Audio_1_1>()) {
-    PassRefFromConstructor(get_interface<PPB_Audio_1_1>()->Create(
-        instance.pp_instance(), config.pp_resource(), callback, user_data));
-  }
-}
-
-Audio::Audio(const InstanceHandle& instance,
-             const AudioConfig& config,
-             PPB_Audio_Callback_1_0 callback,
-             void* user_data)
-    : config_(config),
-      use_1_0_interface_(true) {
-  if (has_interface<PPB_Audio_1_0>()) {
-    PassRefFromConstructor(get_interface<PPB_Audio_1_0>()->Create(
-        instance.pp_instance(), config.pp_resource(), callback, user_data));
-  }
-}
-
-bool Audio::StartPlayback() {
-  if (has_interface<PPB_Audio_1_1>() && !use_1_0_interface_) {
-    return PP_ToBool(get_interface<PPB_Audio_1_1>()->StartPlayback(
-        pp_resource()));
-  }
-  if (has_interface<PPB_Audio_1_0>()) {
-    return PP_ToBool(get_interface<PPB_Audio_1_0>()->StartPlayback(
-        pp_resource()));
-  }
-  return false;
-}
-
-bool Audio::StopPlayback() {
-  if (has_interface<PPB_Audio_1_1>() && !use_1_0_interface_) {
-    return PP_ToBool(get_interface<PPB_Audio_1_1>()->StopPlayback(
-        pp_resource()));
-  }
-  if (has_interface<PPB_Audio_1_0>()) {
-    return PP_ToBool(get_interface<PPB_Audio_1_0>()->StopPlayback(
-        pp_resource()));
-  }
-  return false;
-}
-
-}  // namespace pp
diff --git a/cpp/audio.h b/cpp/audio.h
deleted file mode 100644
index 2e39060..0000000
--- a/cpp/audio.h
+++ /dev/null
@@ -1,99 +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_CPP_AUDIO_H_
-#define PPAPI_CPP_AUDIO_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/ppb_audio.h"
-#include "ppapi/cpp/audio_config.h"
-#include "ppapi/cpp/resource.h"
-
-/// @file
-/// This file defines the API to create realtime stereo audio streaming
-/// capabilities.
-
-namespace pp {
-
-class InstanceHandle;
-
-/// An audio resource. Refer to the
-/// <a href="/native-client/devguide/coding/audio.html">Audio</a>
-/// chapter in the Developer's Guide for information on using this interface.
-class Audio : public Resource {
- public:
-
-  /// An empty constructor for an Audio resource.
-  Audio() {}
-
-  /// A constructor that creates an Audio resource. No sound will be heard
-  /// until StartPlayback() is called. The callback is called with the buffer
-  /// address and given user data whenever the buffer needs to be filled.
-  /// From within the callback, you should not call <code>PPB_Audio</code>
-  /// functions. The callback will be called on a different thread than the one
-  /// which created the interface. For performance-critical applications (such
-  /// as low-latency audio), the callback should avoid blocking or calling
-  /// functions that can obtain locks, such as malloc. The layout and the size
-  /// of the buffer passed to the audio callback will be determined by
-  /// the device configuration and is specified in the <code>AudioConfig</code>
-  /// documentation.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  /// @param[in] config An <code>AudioConfig</code> containing the audio config
-  /// resource.
-  /// @param[in] callback A <code>PPB_Audio_Callback</code> callback function
-  /// that the browser calls when it needs more samples to play.
-  /// @param[in] user_data A pointer to user data used in the callback function.
-  Audio(const InstanceHandle& instance,
-        const AudioConfig& config,
-        PPB_Audio_Callback callback,
-        void* user_data);
-
-  /// A constructor that creates an Audio resource.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  /// @param[in] config An <code>AudioConfig</code> containing the audio config
-  /// resource.
-  /// @param[in] callback A <code>PPB_Audio_Callback_1_0</code> callback
-  /// function that the browser calls when it needs more samples to play.
-  /// @param[in] user_data A pointer to user data used in the callback function.
-  Audio(const InstanceHandle& instance,
-        const AudioConfig& config,
-        PPB_Audio_Callback_1_0 callback,
-        void* user_data);
-
-  /// Getter function for returning the internal <code>PPB_AudioConfig</code>
-  /// struct.
-  ///
-  /// @return A mutable reference to the PPB_AudioConfig struct.
-  AudioConfig& config() { return config_; }
-
-  /// Getter function for returning the internal <code>PPB_AudioConfig</code>
-  /// struct.
-  ///
-  /// @return A const reference to the internal <code>PPB_AudioConfig</code>
-  /// struct.
-  const AudioConfig& config() const { return config_; }
-
-  /// StartPlayback() starts playback of audio.
-  ///
-  /// @return true if successful, otherwise false.
-  bool StartPlayback();
-
-  /// StopPlayback stops playback of audio.
-  ///
-  /// @return true if successful, otherwise false.
-  bool StopPlayback();
-
- private:
-  AudioConfig config_;
-  bool use_1_0_interface_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_AUDIO_H_
-
diff --git a/cpp/audio_buffer.cc b/cpp/audio_buffer.cc
deleted file mode 100644
index 94d998e..0000000
--- a/cpp/audio_buffer.cc
+++ /dev/null
@@ -1,91 +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/cpp/audio_buffer.h"
-
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_AudioBuffer_0_1>() {
-  return PPB_AUDIOBUFFER_INTERFACE_0_1;
-}
-
-}  // namespace
-
-AudioBuffer::AudioBuffer() {
-}
-
-AudioBuffer::AudioBuffer(const AudioBuffer& other) : Resource(other) {
-}
-
-AudioBuffer::AudioBuffer(const Resource& resource) : Resource(resource) {
-}
-
-AudioBuffer::AudioBuffer(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-AudioBuffer::~AudioBuffer() {
-}
-
-PP_TimeDelta AudioBuffer::GetTimestamp() const {
-  if (has_interface<PPB_AudioBuffer_0_1>())
-    return get_interface<PPB_AudioBuffer_0_1>()->GetTimestamp(pp_resource());
-  return 0.0;
-}
-
-void AudioBuffer::SetTimestamp(PP_TimeDelta timestamp) {
-  if (has_interface<PPB_AudioBuffer_0_1>()) {
-    get_interface<PPB_AudioBuffer_0_1>()->SetTimestamp(pp_resource(),
-                                                       timestamp);
-  }
-}
-
-PP_AudioBuffer_SampleRate AudioBuffer::GetSampleRate() const {
-  if (has_interface<PPB_AudioBuffer_0_1>())
-    return get_interface<PPB_AudioBuffer_0_1>()->GetSampleRate(pp_resource());
-  return PP_AUDIOBUFFER_SAMPLERATE_UNKNOWN;
-}
-
-PP_AudioBuffer_SampleSize AudioBuffer::GetSampleSize() const {
-  if (has_interface<PPB_AudioBuffer_0_1>())
-    return get_interface<PPB_AudioBuffer_0_1>()->GetSampleSize(pp_resource());
-  return PP_AUDIOBUFFER_SAMPLESIZE_UNKNOWN;
-}
-
-uint32_t AudioBuffer::GetNumberOfChannels() const {
-  if (has_interface<PPB_AudioBuffer_0_1>()) {
-    return get_interface<PPB_AudioBuffer_0_1>()->GetNumberOfChannels(
-        pp_resource());
-  }
-  return 0;
-}
-
-uint32_t AudioBuffer::GetNumberOfSamples() const {
-  if (has_interface<PPB_AudioBuffer_0_1>()) {
-    return get_interface<PPB_AudioBuffer_0_1>()->GetNumberOfSamples(
-        pp_resource());
-  }
-  return 0;
-}
-
-void* AudioBuffer::GetDataBuffer() {
-  if (has_interface<PPB_AudioBuffer_0_1>())
-    return get_interface<PPB_AudioBuffer_0_1>()->GetDataBuffer(pp_resource());
-  return NULL;
-}
-
-uint32_t AudioBuffer::GetDataBufferSize() const {
-  if (has_interface<PPB_AudioBuffer_0_1>()) {
-    return get_interface<PPB_AudioBuffer_0_1>()->GetDataBufferSize(
-        pp_resource());
-  }
-  return 0;
-}
-
-}  // namespace pp
diff --git a/cpp/audio_buffer.h b/cpp/audio_buffer.h
deleted file mode 100644
index 893789d..0000000
--- a/cpp/audio_buffer.h
+++ /dev/null
@@ -1,87 +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_CPP_AUDIO_BUFFER_H_
-#define PPAPI_CPP_AUDIO_BUFFER_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_audio_buffer.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class AudioBuffer : public Resource {
- public:
-  /// Default constructor for creating an is_null()
-  /// <code>AudioBuffer</code> object.
-  AudioBuffer();
-
-  /// The copy constructor for <code>AudioBuffer</code>.
-  ///
-  /// @param[in] other A reference to an <code>AudioBuffer</code>.
-  AudioBuffer(const AudioBuffer& other);
-
-  /// Constructs an <code>AudioBuffer</code> from a <code>Resource</code>.
-  ///
-  /// @param[in] resource A <code>PPB_AudioBuffer</code> resource.
-  explicit AudioBuffer(const Resource& resource);
-
-  /// A constructor used when you have received a <code>PP_Resource</code> as a
-  /// return value that has had 1 ref added for you.
-  ///
-  /// @param[in] resource A <code>PPB_AudioBuffer</code> resource.
-  AudioBuffer(PassRef, PP_Resource resource);
-
-  virtual ~AudioBuffer();
-
-  /// Gets the timestamp of the audio buffer.
-  ///
-  /// @return A <code>PP_TimeDelta</code> containing the timestamp of the audio
-  /// buffer. Given in seconds since the start of the containing audio stream.
-  PP_TimeDelta GetTimestamp() const;
-
-  /// Sets the timestamp of the audio buffer.
-  ///
-  /// @param[in] timestamp A <code>PP_TimeDelta</code> containing the timestamp
-  /// of the audio buffer. Given in seconds since the start of the containing
-  /// audio stream.
-  void SetTimestamp(PP_TimeDelta timestamp);
-
-  /// Gets the sample rate of the audio buffer.
-  ///
-  /// @return The sample rate of the audio buffer.
-  PP_AudioBuffer_SampleRate GetSampleRate() const;
-
-  /// Gets the sample size of the audio buffer in bytes.
-  ///
-  /// @return The sample size of the audio buffer in bytes.
-  PP_AudioBuffer_SampleSize GetSampleSize() const;
-
-  /// Gets the number of channels in the audio buffer.
-  ///
-  /// @return The number of channels in the audio buffer.
-  uint32_t GetNumberOfChannels() const;
-
-  /// Gets the number of samples in the audio buffer.
-  ///
-  /// @return The number of samples in the audio buffer.
-  /// For example, at a sampling rate of 44,100 Hz in stereo audio, a buffer
-  /// containing 4,410 * 2 samples would have a duration of 100 milliseconds.
-  uint32_t GetNumberOfSamples() const;
-
-  /// Gets the data buffer containing the audio buffer samples.
-  ///
-  /// @return A pointer to the beginning of the data buffer.
-  void* GetDataBuffer();
-
-  /// Gets the size of data buffer in bytes.
-  ///
-  /// @return The size of the data buffer in bytes.
-  uint32_t GetDataBufferSize() const;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_AUDIO_BUFFER_H_
diff --git a/cpp/audio_config.cc b/cpp/audio_config.cc
deleted file mode 100644
index 8b1c0ac..0000000
--- a/cpp/audio_config.cc
+++ /dev/null
@@ -1,75 +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/cpp/audio_config.h"
-
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_AudioConfig_1_1>() {
-  return PPB_AUDIO_CONFIG_INTERFACE_1_1;
-}
-
-template <> const char* interface_name<PPB_AudioConfig_1_0>() {
-  return PPB_AUDIO_CONFIG_INTERFACE_1_0;
-}
-
-}  // namespace
-
-AudioConfig::AudioConfig()
-    : sample_rate_(PP_AUDIOSAMPLERATE_NONE),
-      sample_frame_count_(0) {
-}
-
-AudioConfig::AudioConfig(const InstanceHandle& instance,
-                         PP_AudioSampleRate sample_rate,
-                         uint32_t sample_frame_count)
-    : sample_rate_(sample_rate),
-      sample_frame_count_(sample_frame_count) {
-  if (has_interface<PPB_AudioConfig_1_1>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_AudioConfig_1_1>()->CreateStereo16Bit(
-        instance.pp_instance(), sample_rate, sample_frame_count));
-  } else if (has_interface<PPB_AudioConfig_1_0>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_AudioConfig_1_0>()->CreateStereo16Bit(
-        instance.pp_instance(), sample_rate, sample_frame_count));
-  }
-}
-
-// static
-PP_AudioSampleRate AudioConfig::RecommendSampleRate(
-    const InstanceHandle& instance) {
-  if (has_interface<PPB_AudioConfig_1_1>()) {
-    return get_interface<PPB_AudioConfig_1_1>()->
-        RecommendSampleRate(instance.pp_instance());
-  }
-  return PP_AUDIOSAMPLERATE_NONE;
-}
-
-// static
-uint32_t AudioConfig::RecommendSampleFrameCount(
-    const InstanceHandle& instance,
-    PP_AudioSampleRate sample_rate,
-    uint32_t requested_sample_frame_count) {
-  if (has_interface<PPB_AudioConfig_1_1>()) {
-    return get_interface<PPB_AudioConfig_1_1>()->
-        RecommendSampleFrameCount(instance.pp_instance(),
-                                  sample_rate,
-                                  requested_sample_frame_count);
-  }
-  if (has_interface<PPB_AudioConfig_1_0>()) {
-    return get_interface<PPB_AudioConfig_1_0>()->
-        RecommendSampleFrameCount(sample_rate,
-                                  requested_sample_frame_count);
-  }
-  return 0;
-}
-
-}  // namespace pp
diff --git a/cpp/audio_config.h b/cpp/audio_config.h
deleted file mode 100644
index 2d83f3a..0000000
--- a/cpp/audio_config.h
+++ /dev/null
@@ -1,132 +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_CPP_AUDIO_CONFIG_H_
-#define PPAPI_CPP_AUDIO_CONFIG_H_
-
-#include "ppapi/c/ppb_audio_config.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/cpp/resource.h"
-
-/// @file
-/// This file defines the interface for establishing an
-/// audio configuration resource within the browser.
-
-namespace pp {
-
-class InstanceHandle;
-
-/// A 16 bit stereo AudioConfig resource. Refer to the
-/// <a href="/native-client/devguide/coding/audio.html">Audio
-/// </a>chapter in the Developer's Guide for information on using this
-/// interface.
-///
-/// A single sample frame on a stereo device means one value for the left
-/// channel and one value for the right channel.
-///
-/// Buffer layout for a stereo int16 configuration:
-///
-/// <code>int16_t *buffer16;</code>
-/// <code>buffer16[0]</code> is the first left channel sample.
-/// <code>buffer16[1]</code> is the first right channel sample.
-/// <code>buffer16[2]</code> is the second left channel sample.
-/// <code>buffer16[3]</code> is the second right channel sample.
-/// <code>...</code>
-/// <code>buffer16[2 * (sample_frame_count - 1)]</code> is the last left
-/// channel sample.
-/// <code>buffer16[2 * (sample_frame_count - 1) + 1]</code> is the last right
-/// channel sample.
-/// Data will always be in the native endian format of the platform.
-///
-/// <strong>Example:</strong>
-/// @code
-///
-/// // Create an audio config with a supported frame count.
-/// uint32_t sample_frame_count = AudioConfig::RecommendSampleFrameCount(
-///    PP_AUDIOSAMPLERATE_44100, 4096);
-///  AudioConfig config(PP_AUDIOSAMPLERATE_44100, sample_frame_count);
-///  if (config.is_null())
-///    return false;  // Couldn't configure audio.
-///
-///   // Then use the config to create your audio resource.
-///  Audio audio(instance, config, callback, user_data);
-///   if (audio.is_null())
-///     return false;  // Couldn't create audio.
-/// @endcode
-class AudioConfig : public Resource {
- public:
-  /// An empty constructor for an <code>AudioConfig</code> resource.
-  AudioConfig();
-
-  /// A constructor that creates an audio config based on the given sample rate
-  /// and frame count. If the rate and frame count aren't supported, the
-  /// resulting resource will be is_null(). You can pass the result of
-  /// RecommendSampleFrameCount() as the sample frame count.
-  ///
-  /// @param[in] instance The instance associated with this resource.
-  ///
-  /// @param[in] sample_rate A <code>PP_AudioSampleRate</code> which is either
-  /// <code>PP_AUDIOSAMPLERATE_44100</code> or
-  /// <code>PP_AUDIOSAMPLERATE_48000</code>.
-  ///
-  /// @param[in] sample_frame_count A uint32_t frame count returned from the
-  /// <code>RecommendSampleFrameCount</code> function.
-  AudioConfig(const InstanceHandle& instance,
-              PP_AudioSampleRate sample_rate,
-              uint32_t sample_frame_count);
-
-  /// RecommendSampleRate() returns the native sample rate used by the
-  /// audio system.  Applications that use the recommended sample rate might
-  /// obtain lower latency and higher fidelity output.
-  ///
-  /// @param[in] instance The instance associated with this resource.
-  static PP_AudioSampleRate RecommendSampleRate(
-      const InstanceHandle& instance);
-
-  /// RecommendSampleFrameCount() returns a supported frame count closest to
-  /// the requested count. The sample frame count determines the overall
-  /// latency of audio. Smaller frame counts will yield lower latency, but
-  /// higher CPU utilization. Supported sample frame counts will vary by
-  /// hardware and system (consider that the local system might be anywhere
-  /// from a cell phone or a high-end audio workstation). Sample counts less
-  /// than <code>PP_AUDIOMINSAMPLEFRAMECOUNT</code> and greater than
-  /// <code>PP_AUDIOMAXSAMPLEFRAMECOUNT</code> are never supported on any
-  /// system, but values in between aren't necessarily valid. This function
-  /// will return a supported count closest to the requested value for use in
-  /// the constructor.
-  ///
-  /// @param[in] instance The instance associated with this resource.
-  /// @param[in] sample_rate A <code>PP_AudioSampleRate</code> which is either
-  /// <code>PP_AUDIOSAMPLERATE_44100</code> or
-  /// <code>PP_AUDIOSAMPLERATE_48000</code>.
-  /// @param[in] requested_sample_frame_count A uint32_t requested frame count.
-  ///
-  /// @return A uint32_t containing the recommended sample frame count if
-  /// successful. If the sample frame count or bit rate is not supported,
-  /// this function will fail and return 0.
-  static uint32_t RecommendSampleFrameCount(
-      const InstanceHandle& instance,
-      PP_AudioSampleRate sample_rate,
-      uint32_t requested_sample_frame_count);
-
-  /// Getter function for returning the internal
-  /// <code>PP_AudioSampleRate</code> enum.
-  ///
-  /// @return The <code>PP_AudioSampleRate</code> enum.
-  PP_AudioSampleRate sample_rate() const { return sample_rate_; }
-
-  /// Getter function for returning the internal sample frame count.
-  ///
-  /// @return A uint32_t containing the sample frame count.
-  uint32_t sample_frame_count() const { return sample_frame_count_; }
-
- private:
-  PP_AudioSampleRate sample_rate_;
-  uint32_t sample_frame_count_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_AUDIO_CONFIG_H_
-
diff --git a/cpp/completion_callback.h b/cpp/completion_callback.h
deleted file mode 100644
index 0a46fd0..0000000
--- a/cpp/completion_callback.h
+++ /dev/null
@@ -1,277 +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_CPP_COMPLETION_CALLBACK_H_
-#define PPAPI_CPP_COMPLETION_CALLBACK_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module.h"         // nogncheck http://crbug.com/1228394
-#include "ppapi/cpp/output_traits.h"  // nogncheck http://crbug.com/1228394
-
-/// @file
-/// This file defines the API to create and run a callback.
-namespace pp {
-
-/// This API enables you to implement and receive callbacks when
-/// Pepper operations complete asynchronously.
-///
-/// You can create these objects yourself, but it is most common to use the
-/// CompletionCallbackFactory to allow the callbacks to call class member
-/// functions.
-class CompletionCallback {
- public:
-  /// The default constructor will create a blocking
-  /// <code>CompletionCallback</code> that can be passed to a method to
-  /// indicate that the calling thread should be blocked until the asynchronous
-  /// operation corresponding to the method completes.
-  ///
-  /// <strong>Note:</strong> Blocking completion callbacks are only allowed from
-  /// from background threads.
-  CompletionCallback() {
-    cc_ = PP_BlockUntilComplete();
-  }
-
-  /// A constructor for creating a <code>CompletionCallback</code>.
-  ///
-  /// @param[in] func The function to be called on completion.
-  /// @param[in] user_data The user data to be passed to the callback function.
-  /// This is optional and is typically used to help track state in case of
-  /// multiple pending callbacks.
-  CompletionCallback(PP_CompletionCallback_Func func, void* user_data) {
-    cc_ = PP_MakeCompletionCallback(func, user_data);
-  }
-
-  /// A constructor for creating a <code>CompletionCallback</code> with
-  /// specified flags.
-  ///
-  /// @param[in] func The function to be called on completion.
-  /// @param[in] user_data The user data to be passed to the callback function.
-  /// This is optional and is typically used to help track state in case of
-  /// multiple pending callbacks.
-  /// @param[in] flags Bit field combination of
-  /// <code>PP_CompletionCallback_Flag</code> flags used to control how
-  /// non-NULL callbacks are scheduled by asynchronous methods.
-  CompletionCallback(PP_CompletionCallback_Func func, void* user_data,
-                     int32_t flags) {
-    cc_ = PP_MakeCompletionCallback(func, user_data);
-    cc_.flags = flags;
-  }
-
-  /// The set_flags() function is used to set the flags used to control
-  /// how non-NULL callbacks are scheduled by asynchronous methods.
-  ///
-  /// @param[in] flags Bit field combination of
-  /// <code>PP_CompletionCallback_Flag</code> flags used to control how
-  /// non-NULL callbacks are scheduled by asynchronous methods.
-  void set_flags(int32_t flags) { cc_.flags = flags; }
-
-  /// Run() is used to run the <code>CompletionCallback</code>.
-  /// Normally, the system runs a <code>CompletionCallback</code> after an
-  /// asynchronous operation completes, but programs may wish to run the
-  /// <code>CompletionCallback</code> manually in order to reuse the same code
-  /// paths.
-  ///
-  /// @param[in] result The result of the operation to be passed to the
-  /// callback function. Non-positive values correspond to the error codes
-  /// from <code>pp_errors.h</code> (excluding
-  /// <code>PP_OK_COMPLETIONPENDING</code>). Positive values indicate
-  /// additional information such as bytes read.
-  void Run(int32_t result) {
-    PP_DCHECK(cc_.func);
-    PP_RunCompletionCallback(&cc_, result);
-  }
-
-  /// RunAndClear() is used to run the <code>CompletionCallback</code> and
-  /// clear out the callback so that it cannot be run a second time.
-  ///
-  /// @param[in] result The result of the operation to be passed to the
-  /// callback function. Non-positive values correspond to the error codes
-  /// from <code>pp_errors.h</code> (excluding
-  /// <code>PP_OK_COMPLETIONPENDING</code>). Positive values indicate
-  /// additional information such as bytes read.
-  void RunAndClear(int32_t result) {
-    PP_DCHECK(cc_.func);
-    PP_RunAndClearCompletionCallback(&cc_, result);
-  }
-
-  /// IsOptional() is used to determine the setting of the
-  /// <code>PP_COMPLETIONCALLBACK_FLAG_OPTIONAL</code> flag. This flag allows
-  /// any method taking such callback to complete synchronously
-  /// and not call the callback if the operation would not block. This is useful
-  /// when performance is an issue, and the operation bandwidth should not be
-  /// limited to the processing speed of the message loop.
-  ///
-  /// On synchronous method completion, the completion result will be returned
-  /// by the method itself. Otherwise, the method will return
-  /// PP_OK_COMPLETIONPENDING, and the callback will be invoked asynchronously
-  /// on the same thread where the PPB method was invoked.
-  ///
-  /// @return true if this callback is optional, otherwise false.
-  bool IsOptional() const {
-    return (cc_.func == NULL ||
-            (cc_.flags & PP_COMPLETIONCALLBACK_FLAG_OPTIONAL) != 0);
-  }
-
-  /// The pp_completion_callback() function returns the underlying
-  /// <code>PP_CompletionCallback</code>
-  ///
-  /// @return A <code>PP_CompletionCallback</code>.
-  const PP_CompletionCallback& pp_completion_callback() const { return cc_; }
-
-  /// The flags() function returns flags used to control how non-NULL callbacks
-  /// are scheduled by asynchronous methods.
-  ///
-  /// @return An int32_t containing a bit field combination of
-  /// <code>PP_CompletionCallback_Flag</code> flags.
-  int32_t flags() const { return cc_.flags; }
-
-  /// MayForce() is used when implementing functions taking callbacks.
-  /// If the callback is required and <code>result</code> indicates that it has
-  /// not been scheduled, it will be forced on the main thread.
-  ///
-  /// <strong>Example:</strong>
-  ///
-  /// @code
-  ///
-  /// int32_t OpenURL(pp::URLLoader* loader,
-  ///                 pp::URLRequestInfo* url_request_info,
-  ///                 const CompletionCallback& cc) {
-  ///   if (loader == NULL || url_request_info == NULL)
-  ///     return cc.MayForce(PP_ERROR_BADRESOURCE);
-  ///   return loader->Open(*loader, *url_request_info, cc);
-  /// }
-  ///
-  /// @endcode
-  ///
-  /// @param[in] result PP_OK_COMPLETIONPENDING or the result of the completed
-  /// operation to be passed to the callback function. PP_OK_COMPLETIONPENDING
-  /// indicates that the callback has already been scheduled. Other
-  /// non-positive values correspond to error codes from
-  /// <code>pp_errors.h</code>. Positive values indicate additional information
-  /// such as bytes read.
-  ///
-  /// @return <code>PP_OK_COMPLETIONPENDING</code> if the callback has been
-  /// forced, result parameter otherwise.
-  int32_t MayForce(int32_t result) const {
-    if (result == PP_OK_COMPLETIONPENDING || IsOptional())
-      return result;
-    // FIXME(dmichael): Use pp::MessageLoop here once it's out of Dev.
-    Module::Get()->core()->CallOnMainThread(0, *this, result);
-    return PP_OK_COMPLETIONPENDING;
-  }
-
- protected:
-  PP_CompletionCallback cc_;
-};
-
-/// A CompletionCallbackWithOutput defines a completion callback that
-/// additionally stores a pointer to some output data. Some C++ wrappers
-/// take a CompletionCallbackWithOutput when the browser is returning a
-/// bit of data as part of the function call. The "output" parameter
-/// stored in the CompletionCallbackWithOutput will receive the data from
-/// the browser.
-///
-/// You can create this yourself, but it is most common to use with the
-/// CompletionCallbackFactory's NewCallbackWithOutput, which manages the
-/// storage for the output parameter for you and passes it as an argument
-/// to your callback function.
-///
-/// Note that this class doesn't actually do anything with the output data,
-/// it just stores a pointer to it. C++ wrapper objects that accept a
-/// CompletionCallbackWithOutput will retrieve this pointer and pass it to
-/// the browser as the output parameter.
-template<typename T>
-class CompletionCallbackWithOutput : public CompletionCallback {
- public:
-  /// The type that will actually be stored in the completion callback. In the
-  /// common case, this will be equal to the template parameter (for example,
-  /// CompletionCallbackWithOutput<int> would obviously take an int*. However,
-  /// resources are passed as PP_Resource, vars as PP_Var, and arrays as our
-  /// special ArrayOutputAdapter object. The CallbackOutputTraits defines
-  /// specializations for all of these cases.
-  typedef typename internal::CallbackOutputTraits<T>::StorageType
-      OutputStorageType;
-  typedef typename internal::CallbackOutputTraits<T>::APIArgType
-      APIArgType;
-
-  /// The default constructor will create a blocking
-  /// <code>CompletionCallback</code> that references the given output
-  /// data.
-  ///
-  /// @param[in] output A pointer to the data associated with the callback. The
-  /// caller must ensure that this pointer outlives the completion callback.
-  ///
-  /// <strong>Note:</strong> Blocking completion callbacks are only allowed from
-  /// from background threads.
-  CompletionCallbackWithOutput(OutputStorageType* output)
-      : CompletionCallback(),
-        output_(output) {
-  }
-
-  /// A constructor for creating a <code>CompletionCallback</code> that
-  /// references the given output data.
-  ///
-  /// @param[in] func The function to be called on completion.
-  /// @param[in] user_data The user data to be passed to the callback function.
-  /// This is optional and is typically used to help track state in case of
-  /// multiple pending callbacks.
-  /// @param[in] output A pointer to the data associated with the callback. The
-  /// caller must ensure that this pointer outlives the completion callback.
-  CompletionCallbackWithOutput(PP_CompletionCallback_Func func,
-                               void* user_data,
-                               OutputStorageType* output)
-      : CompletionCallback(func, user_data),
-        output_(output) {
-  }
-
-  /// A constructor for creating a <code>CompletionCallback</code> that
-  /// references the given output data.
-  ///
-  /// @param[in] func The function to be called on completion.
-  ///
-  /// @param[in] user_data The user data to be passed to the callback function.
-  /// This is optional and is typically used to help track state in case of
-  /// multiple pending callbacks.
-  ///
-  /// @param[in] flags Bit field combination of
-  /// <code>PP_CompletionCallback_Flag</code> flags used to control how
-  /// non-NULL callbacks are scheduled by asynchronous methods.
-  ///
-  /// @param[in] output A pointer to the data associated with the callback. The
-  /// caller must ensure that this pointer outlives the completion callback.
-  CompletionCallbackWithOutput(PP_CompletionCallback_Func func,
-                               void* user_data,
-                               int32_t flags,
-                               OutputStorageType* output)
-      : CompletionCallback(func, user_data, flags),
-        output_(output) {
-  }
-
-  APIArgType output() const {
-    return internal::CallbackOutputTraits<T>::StorageToAPIArg(*output_);
-  }
-
- private:
-  OutputStorageType* output_;
-};
-
-/// BlockUntilComplete() is used in place of an actual completion callback
-/// to request blocking behavior. If specified, the calling thread will block
-/// until the function completes. Blocking completion callbacks are only
-/// allowed from background threads.
-///
-/// @return A <code>CompletionCallback</code> corresponding to a NULL callback.
-inline CompletionCallback BlockUntilComplete() {
-  // Note: Explicitly inlined to avoid link errors when included into
-  // ppapi_proxy and ppapi_cpp_objects.
-  return CompletionCallback();
-}
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_COMPLETION_CALLBACK_H_
diff --git a/cpp/core.cc b/cpp/core.cc
deleted file mode 100644
index ac9f488..0000000
--- a/cpp/core.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2010 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/cpp/core.h"
-
-#include "ppapi/cpp/completion_callback.h"
-
-namespace pp {
-
-// This function is implemented in the .cc file to avoid including completion
-// callback all over the project.
-void Core::CallOnMainThread(int32_t delay_in_milliseconds,
-                            const CompletionCallback& callback,
-                            int32_t result) {
-  return interface_->CallOnMainThread(delay_in_milliseconds,
-                                      callback.pp_completion_callback(),
-                                      result);
-}
-
-bool Core::IsMainThread() {
-  return PP_ToBool(interface_->IsMainThread());
-}
-
-}  // namespace pp
diff --git a/cpp/core.h b/cpp/core.h
deleted file mode 100644
index 3612ae2..0000000
--- a/cpp/core.h
+++ /dev/null
@@ -1,121 +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_CPP_CORE_H_
-#define PPAPI_CPP_CORE_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_core.h"
-
-/// @file
-/// This file defines APIs related to memory management, time, and threads.
-
-namespace pp {
-
-class CompletionCallback;
-class Module;
-
-/// APIs related to memory management, time, and threads.
-class Core {
- public:
-  // Note that we explicitly don't expose Resource& versions of this function
-  // since Resource will normally manage the refcount properly. These should
-  // be called only when doing manual management on raw PP_Resource handles,
-  // which should be fairly rare.
-
-  /// AddRefResource() increments the reference count for the provided
-  /// <code>resource</code>.
-  ///
-  /// @param[in] resource A <code>PP_Resource</code> corresponding to a
-  /// resource.
-  void AddRefResource(PP_Resource resource) {
-    interface_->AddRefResource(resource);
-  }
-
-  /// ReleaseResource() decrements the reference count for the provided
-  /// <code>resource</code>. The resource will be deallocated if the
-  /// reference count reaches zero.
-  ///
-  /// @param[in] resource A <code>PP_Resource</code> corresponding to a
-  /// resource.
-  void ReleaseResource(PP_Resource resource) {
-    interface_->ReleaseResource(resource);
-  }
-
-  /// GetTime() returns the "wall clock time" according to the
-  /// browser.
-  ///
-  /// @return A <code>PP_Time</code> containing the "wall clock time" according
-  /// to the browser.
-  PP_Time GetTime() {
-    return interface_->GetTime();
-  }
-
-  /// GetTimeTicks() returns the "tick time" according to the browser.
-  /// This clock is used by the browser when passing some event times to the
-  /// module (for example, using the
-  /// <code>PP_InputEvent::time_stamp_seconds</code> field). It is not
-  /// correlated to any actual wall clock time (like GetTime()). Because
-  /// of this, it will not change if the user changes their computer clock.
-  ///
-  /// @return A <code>PP_TimeTicks</code> containing the "tick time" according
-  /// to the browser.
-  PP_TimeTicks GetTimeTicks() {
-    return interface_->GetTimeTicks();
-  }
-
-  /// CallOnMainThread() schedules work to be executed on the main pepper
-  /// thread after the specified delay. The delay may be 0 to specify a call
-  /// back as soon as possible.
-  ///
-  /// The |result| parameter will just be passed as the second argument to the
-  /// callback. Many applications won't need this, but it allows a module to
-  /// emulate calls of some callbacks which do use this value.
-  ///
-  /// <strong>Note:</strong> CallOnMainThread(), even when used from the main
-  /// thread with a delay of 0 milliseconds, will never directly invoke the
-  /// callback.  Even in this case, the callback will be scheduled
-  /// asynchronously.
-  ///
-  /// <strong>Note:</strong> If the browser is shutting down or if the module
-  /// has no instances, then the callback function may not be called.
-  ///
-  /// @param[in] delay_in_milliseconds An int32_t delay in milliseconds.
-  /// @param[in] callback A <code>CompletionCallback</code> callback function
-  /// that the browser will call after the specified delay.
-  /// @param[in] result An int32_t that the browser will pass to the given
-  /// <code>CompletionCallback</code>.
-  void CallOnMainThread(int32_t delay_in_milliseconds,
-                        const CompletionCallback& callback,
-                        int32_t result = 0);
-
-
-  /// IsMainThread() returns true if the current thread is the main pepper
-  /// thread.
-  ///
-  /// This function is useful for implementing sanity checks, and deciding if
-  /// dispatching using CallOnMainThread() is required.
-  ///
-  /// @return true if the current thread is the main pepper thread, otherwise
-  /// false.
-  bool IsMainThread();
-
- private:
-  // Allow Module to construct.
-  friend class Module;
-
-  // Only module should make this class so this constructor is private.
-  Core(const PPB_Core* inter) : interface_(inter) {}
-
-  // Copy and assignment are disallowed.
-  Core(const Core& other);
-  Core& operator=(const Core& other);
-
-  const PPB_Core* interface_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_CORE_H_
diff --git a/cpp/dev/audio_input_dev.cc b/cpp/dev/audio_input_dev.cc
deleted file mode 100644
index 714c555..0000000
--- a/cpp/dev/audio_input_dev.cc
+++ /dev/null
@@ -1,140 +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/cpp/dev/audio_input_dev.h"
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_AudioInput_Dev_0_3>() {
-  return PPB_AUDIO_INPUT_DEV_INTERFACE_0_3;
-}
-
-template <> const char* interface_name<PPB_AudioInput_Dev_0_4>() {
-  return PPB_AUDIO_INPUT_DEV_INTERFACE_0_4;
-}
-
-}  // namespace
-
-AudioInput_Dev::AudioInput_Dev() {
-}
-
-AudioInput_Dev::AudioInput_Dev(const InstanceHandle& instance) {
-  if (has_interface<PPB_AudioInput_Dev_0_4>()) {
-    PassRefFromConstructor(get_interface<PPB_AudioInput_Dev_0_4>()->Create(
-        instance.pp_instance()));
-  } else if (has_interface<PPB_AudioInput_Dev_0_3>()) {
-    PassRefFromConstructor(get_interface<PPB_AudioInput_Dev_0_3>()->Create(
-        instance.pp_instance()));
-  }
-}
-
-AudioInput_Dev::~AudioInput_Dev() {
-}
-
-// static
-bool AudioInput_Dev::IsAvailable() {
-  return has_interface<PPB_AudioInput_Dev_0_4>() ||
-         has_interface<PPB_AudioInput_Dev_0_3>();
-}
-
-int32_t AudioInput_Dev::EnumerateDevices(
-    const CompletionCallbackWithOutput<std::vector<DeviceRef_Dev> >& callback) {
-  if (has_interface<PPB_AudioInput_Dev_0_4>()) {
-    return get_interface<PPB_AudioInput_Dev_0_4>()->EnumerateDevices(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_AudioInput_Dev_0_3>()) {
-    return get_interface<PPB_AudioInput_Dev_0_3>()->EnumerateDevices(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  }
-
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t AudioInput_Dev::MonitorDeviceChange(
-    PP_MonitorDeviceChangeCallback callback,
-    void* user_data) {
-  if (has_interface<PPB_AudioInput_Dev_0_4>()) {
-    return get_interface<PPB_AudioInput_Dev_0_4>()->MonitorDeviceChange(
-        pp_resource(), callback, user_data);
-  }
-  if (has_interface<PPB_AudioInput_Dev_0_3>()) {
-    return get_interface<PPB_AudioInput_Dev_0_3>()->MonitorDeviceChange(
-        pp_resource(), callback, user_data);
-  }
-
-  return PP_ERROR_NOINTERFACE;
-}
-
-int32_t AudioInput_Dev::Open(const DeviceRef_Dev& device_ref,
-                             const AudioConfig& config,
-                             PPB_AudioInput_Callback audio_input_callback,
-                             void* user_data,
-                             const CompletionCallback& callback) {
-  if (has_interface<PPB_AudioInput_Dev_0_4>()) {
-    return get_interface<PPB_AudioInput_Dev_0_4>()->Open(
-        pp_resource(), device_ref.pp_resource(), config.pp_resource(),
-        audio_input_callback, user_data, callback.pp_completion_callback());
-  }
-
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t AudioInput_Dev::Open(
-    const DeviceRef_Dev& device_ref,
-    const AudioConfig& config,
-    PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
-    void* user_data,
-    const CompletionCallback& callback) {
-  if (has_interface<PPB_AudioInput_Dev_0_3>()) {
-    return get_interface<PPB_AudioInput_Dev_0_3>()->Open(
-        pp_resource(), device_ref.pp_resource(), config.pp_resource(),
-        audio_input_callback_0_3, user_data, callback.pp_completion_callback());
-  }
-
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-bool AudioInput_Dev::StartCapture() {
-  if (has_interface<PPB_AudioInput_Dev_0_4>()) {
-    return PP_ToBool(get_interface<PPB_AudioInput_Dev_0_4>()->StartCapture(
-        pp_resource()));
-  }
-  if (has_interface<PPB_AudioInput_Dev_0_3>()) {
-    return PP_ToBool(get_interface<PPB_AudioInput_Dev_0_3>()->StartCapture(
-        pp_resource()));
-  }
-
-  return false;
-}
-
-bool AudioInput_Dev::StopCapture() {
-  if (has_interface<PPB_AudioInput_Dev_0_4>()) {
-    return PP_ToBool(get_interface<PPB_AudioInput_Dev_0_4>()->StopCapture(
-        pp_resource()));
-  }
-  if (has_interface<PPB_AudioInput_Dev_0_3>()) {
-    return PP_ToBool(get_interface<PPB_AudioInput_Dev_0_3>()->StopCapture(
-        pp_resource()));
-  }
-
-  return false;
-}
-
-void AudioInput_Dev::Close() {
-  if (has_interface<PPB_AudioInput_Dev_0_4>()) {
-    get_interface<PPB_AudioInput_Dev_0_4>()->Close(pp_resource());
-  } else if (has_interface<PPB_AudioInput_Dev_0_3>()) {
-    get_interface<PPB_AudioInput_Dev_0_3>()->Close(pp_resource());
-  }
-}
-
-}  // namespace pp
diff --git a/cpp/dev/audio_input_dev.h b/cpp/dev/audio_input_dev.h
deleted file mode 100644
index 27e244c..0000000
--- a/cpp/dev/audio_input_dev.h
+++ /dev/null
@@ -1,69 +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_CPP_DEV_AUDIO_INPUT_DEV_H_
-#define PPAPI_CPP_DEV_AUDIO_INPUT_DEV_H_
-
-#include <stdint.h>
-
-#include <vector>
-
-#include "ppapi/c/dev/ppb_audio_input_dev.h"
-#include "ppapi/cpp/audio_config.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/dev/device_ref_dev.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class InstanceHandle;
-
-class AudioInput_Dev : public Resource {
- public:
-  /// An empty constructor for an AudioInput resource.
-  AudioInput_Dev();
-
-  /// Constructor to create an audio input resource.
-  explicit AudioInput_Dev(const InstanceHandle& instance);
-
-  virtual ~AudioInput_Dev();
-
-  /// Static function for determining whether the browser supports the required
-  /// AudioInput interface.
-  ///
-  /// @return true if the interface is available, false otherwise.
-  static bool IsAvailable();
-
-  int32_t EnumerateDevices(
-      const CompletionCallbackWithOutput<std::vector<DeviceRef_Dev> >&
-          callback);
-
-  int32_t MonitorDeviceChange(PP_MonitorDeviceChangeCallback callback,
-                              void* user_data);
-
-  /// If |device_ref| is null (i.e., is_null() returns true), the default device
-  /// will be used.
-  ///
-  /// Requires <code>PPB_AudioInput_Dev</code> version 0.4 or up.
-  int32_t Open(const DeviceRef_Dev& device_ref,
-               const AudioConfig& config,
-               PPB_AudioInput_Callback audio_input_callback,
-               void* user_data,
-               const CompletionCallback& callback);
-
-  /// Requires <code>PPB_AudioInput_Dev</code> version 0.3.
-  int32_t Open(const DeviceRef_Dev& device_ref,
-               const AudioConfig& config,
-               PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
-               void* user_data,
-               const CompletionCallback& callback);
-
-  bool StartCapture();
-  bool StopCapture();
-  void Close();
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_AUDIO_INPUT_DEV_H_
diff --git a/cpp/dev/audio_output_dev.cc b/cpp/dev/audio_output_dev.cc
deleted file mode 100644
index 531e916..0000000
--- a/cpp/dev/audio_output_dev.cc
+++ /dev/null
@@ -1,98 +0,0 @@
-// Copyright 2017 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/cpp/dev/audio_output_dev.h"
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <>
-const char* interface_name<PPB_AudioOutput_Dev_0_1>() {
-  return PPB_AUDIO_OUTPUT_DEV_INTERFACE_0_1;
-}
-
-}  // namespace
-
-AudioOutput_Dev::AudioOutput_Dev() {}
-
-AudioOutput_Dev::AudioOutput_Dev(const InstanceHandle& instance) {
-  if (has_interface<PPB_AudioOutput_Dev_0_1>()) {
-    PassRefFromConstructor(get_interface<PPB_AudioOutput_Dev_0_1>()->Create(
-        instance.pp_instance()));
-  }
-}
-
-AudioOutput_Dev::~AudioOutput_Dev() {}
-
-// static
-bool AudioOutput_Dev::IsAvailable() {
-  return has_interface<PPB_AudioOutput_Dev_0_1>();
-}
-
-int32_t AudioOutput_Dev::EnumerateDevices(
-    const CompletionCallbackWithOutput<std::vector<DeviceRef_Dev> >& callback) {
-  if (has_interface<PPB_AudioOutput_Dev_0_1>()) {
-    return get_interface<PPB_AudioOutput_Dev_0_1>()->EnumerateDevices(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  }
-
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t AudioOutput_Dev::MonitorDeviceChange(
-    PP_MonitorDeviceChangeCallback callback,
-    void* user_data) {
-  if (has_interface<PPB_AudioOutput_Dev_0_1>()) {
-    return get_interface<PPB_AudioOutput_Dev_0_1>()->MonitorDeviceChange(
-        pp_resource(), callback, user_data);
-  }
-
-  return PP_ERROR_NOINTERFACE;
-}
-
-int32_t AudioOutput_Dev::Open(const DeviceRef_Dev& device_ref,
-                              const AudioConfig& config,
-                              PPB_AudioOutput_Callback audio_output_callback,
-                              void* user_data,
-                              const CompletionCallback& callback) {
-  if (has_interface<PPB_AudioOutput_Dev_0_1>()) {
-    return get_interface<PPB_AudioOutput_Dev_0_1>()->Open(
-        pp_resource(), device_ref.pp_resource(), config.pp_resource(),
-        audio_output_callback, user_data, callback.pp_completion_callback());
-  }
-
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-bool AudioOutput_Dev::StartPlayback() {
-  if (has_interface<PPB_AudioOutput_Dev_0_1>()) {
-    return PP_ToBool(
-        get_interface<PPB_AudioOutput_Dev_0_1>()->StartPlayback(pp_resource()));
-  }
-
-  return false;
-}
-
-bool AudioOutput_Dev::StopPlayback() {
-  if (has_interface<PPB_AudioOutput_Dev_0_1>()) {
-    return PP_ToBool(
-        get_interface<PPB_AudioOutput_Dev_0_1>()->StopPlayback(pp_resource()));
-  }
-
-  return false;
-}
-
-void AudioOutput_Dev::Close() {
-  if (has_interface<PPB_AudioOutput_Dev_0_1>()) {
-    get_interface<PPB_AudioOutput_Dev_0_1>()->Close(pp_resource());
-  }
-}
-
-}  // namespace pp
diff --git a/cpp/dev/audio_output_dev.h b/cpp/dev/audio_output_dev.h
deleted file mode 100644
index e1d9926..0000000
--- a/cpp/dev/audio_output_dev.h
+++ /dev/null
@@ -1,84 +0,0 @@
-// Copyright 2017 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_CPP_DEV_AUDIO_OUTPUT_DEV_H_
-#define PPAPI_CPP_DEV_AUDIO_OUTPUT_DEV_H_
-
-#include <stdint.h>
-
-#include <vector>
-
-#include "ppapi/c/dev/ppb_audio_output_dev.h"
-#include "ppapi/cpp/audio_config.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/dev/device_ref_dev.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class InstanceHandle;
-
-class AudioOutput_Dev : public Resource {
- public:
-  // An empty constructor for an AudioOutput resource.
-  AudioOutput_Dev();
-
-  // Constructor to create an audio output resource.
-  explicit AudioOutput_Dev(const InstanceHandle& instance);
-
-  virtual ~AudioOutput_Dev();
-
-  // Static function for determining whether the browser supports the required
-  // AudioOutput interface.
-  //
-  // @return true if the interface is available, false otherwise.
-  static bool IsAvailable();
-
-  int32_t EnumerateDevices(
-      const CompletionCallbackWithOutput<std::vector<DeviceRef_Dev> >& cb);
-
-  int32_t MonitorDeviceChange(PP_MonitorDeviceChangeCallback callback,
-                              void* user_data);
-
-  // If |device_ref| is null (i.e., is_null() returns true), the default device
-  // will be used.
-  int32_t Open(const DeviceRef_Dev& device_ref,
-               const AudioConfig& config,
-               PPB_AudioOutput_Callback audio_output_callback,
-               void* user_data,
-               const CompletionCallback& callback);
-
-  // Getter function for returning the internal <code>PPB_AudioConfig</code>
-  // struct.
-  //
-  // @return A mutable reference to the PPB_AudioConfig struct.
-  AudioConfig& config() { return config_; }
-
-  // Getter function for returning the internal <code>PPB_AudioConfig</code>
-  // struct.
-  //
-  // @return A const reference to the internal <code>PPB_AudioConfig</code>
-  // struct.
-  const AudioConfig& config() const { return config_; }
-
-  // StartPlayback() starts playback of audio.
-  //
-  // @return true if successful, otherwise false.
-  bool StartPlayback();
-
-  // StopPlayback stops playback of audio.
-  //
-  // @return true if successful, otherwise false.
-  bool StopPlayback();
-
-  // Close closes the audio output device.
-  void Close();
-
- private:
-  AudioConfig config_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_AUDIO_OUTPUT_DEV_H_
diff --git a/cpp/dev/buffer_dev.cc b/cpp/dev/buffer_dev.cc
deleted file mode 100644
index ee18ec0..0000000
--- a/cpp/dev/buffer_dev.cc
+++ /dev/null
@@ -1,73 +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/cpp/dev/buffer_dev.h"
-
-#include "ppapi/c/dev/ppb_buffer_dev.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Buffer_Dev>() {
-  return PPB_BUFFER_DEV_INTERFACE;
-}
-
-}  // namespace
-
-Buffer_Dev::Buffer_Dev() : data_(NULL), size_(0) {
-}
-
-Buffer_Dev::Buffer_Dev(const Buffer_Dev& other)
-    : Resource(other) {
-  Init();
-}
-
-Buffer_Dev::Buffer_Dev(PP_Resource resource)
-    : Resource(resource) {
-  Init();
-}
-
-Buffer_Dev::Buffer_Dev(const InstanceHandle& instance, uint32_t size)
-    : data_(NULL),
-      size_(0) {
-  if (!has_interface<PPB_Buffer_Dev>())
-    return;
-
-  PassRefFromConstructor(get_interface<PPB_Buffer_Dev>()->Create(
-      instance.pp_instance(), size));
-  Init();
-}
-
-Buffer_Dev::Buffer_Dev(PassRef, PP_Resource resource)
-    : Resource(PassRef(), resource) {
-  Init();
-}
-
-Buffer_Dev::~Buffer_Dev() {
-  get_interface<PPB_Buffer_Dev>()->Unmap(pp_resource());
-}
-
-Buffer_Dev& Buffer_Dev::operator=(const Buffer_Dev& rhs) {
-  Resource::operator=(rhs);
-  Init();
-  return *this;
-}
-
-void Buffer_Dev::Init() {
-  if (get_interface<PPB_Buffer_Dev>()->Describe(pp_resource(), &size_)) {
-    data_ = get_interface<PPB_Buffer_Dev>()->Map(pp_resource());
-    if (data_)
-      return;
-  }
-
-  Clear();
-  data_ = NULL;
-  size_ = 0;
-}
-
-}  // namespace pp
diff --git a/cpp/dev/buffer_dev.h b/cpp/dev/buffer_dev.h
deleted file mode 100644
index b17fa8b..0000000
--- a/cpp/dev/buffer_dev.h
+++ /dev/null
@@ -1,48 +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_CPP_DEV_BUFFER_DEV_H_
-#define PPAPI_CPP_DEV_BUFFER_DEV_H_
-
-#include <stdint.h>
-
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class InstanceHandle;
-
-class Buffer_Dev : public Resource {
- public:
-  // Creates an is_null() Buffer object.
-  Buffer_Dev();
-  Buffer_Dev(const Buffer_Dev& other);
-  explicit Buffer_Dev(PP_Resource resource);
-
-  // Creates & Maps a new Buffer in the browser with the given size. The
-  // resulting object will be is_null() if either Create() or Map() fails.
-  Buffer_Dev(const InstanceHandle& instance, uint32_t size);
-
-  // Constructor used when the buffer resource already has a reference count
-  // assigned. No additional reference is taken.
-  Buffer_Dev(PassRef, PP_Resource resource);
-
-  // Unmap the underlying shared memory.
-  virtual ~Buffer_Dev();
-
-  Buffer_Dev& operator=(const Buffer_Dev& rhs);
-
-  uint32_t size() const { return size_; }
-  void* data() const { return data_; }
-
- private:
-  void Init();
-
-  void* data_;
-  uint32_t size_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_BUFFER_DEV_H_
diff --git a/cpp/dev/crypto_dev.cc b/cpp/dev/crypto_dev.cc
deleted file mode 100644
index b87d0f8..0000000
--- a/cpp/dev/crypto_dev.cc
+++ /dev/null
@@ -1,29 +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/cpp/dev/crypto_dev.h"
-
-#include "ppapi/c/dev/ppb_crypto_dev.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Crypto_Dev_0_1>() {
-  return PPB_CRYPTO_DEV_INTERFACE_0_1;
-}
-
-}  // namespace
-
-bool Crypto_Dev::GetRandomBytes(char* buffer, uint32_t num_bytes) {
-  if (has_interface<PPB_Crypto_Dev_0_1>()) {
-    get_interface<PPB_Crypto_Dev_0_1>()->GetRandomBytes(buffer, num_bytes);
-    return true;
-  }
-  return false;
-}
-
-}  // namespace pp
diff --git a/cpp/dev/crypto_dev.h b/cpp/dev/crypto_dev.h
deleted file mode 100644
index 6e3283f..0000000
--- a/cpp/dev/crypto_dev.h
+++ /dev/null
@@ -1,31 +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_CPP_DEV_CRYPTO_DEV_H_
-#define PPAPI_CPP_DEV_CRYPTO_DEV_H_
-
-#include "ppapi/c/pp_stdint.h"
-
-/// @file
-/// This file defines APIs related to cryptography.
-
-namespace pp {
-
-/// APIs related to cryptography.
-class Crypto_Dev {
- public:
-  Crypto_Dev() {}
-
-  /// A function that fills the buffer with random bytes. This may be slow, so
-  /// avoid getting more bytes than needed.
-  ///
-  /// @param[out] buffer The buffer to receive the random bytes.
-  /// @param[in] num_bytes A number of random bytes to produce.
-  /// @return True on success, false on failure.
-  bool GetRandomBytes(char* buffer, uint32_t num_bytes);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_CRYPTO_DEV_H_
diff --git a/cpp/dev/cursor_control_dev.cc b/cpp/dev/cursor_control_dev.cc
deleted file mode 100644
index e2cdc84..0000000
--- a/cpp/dev/cursor_control_dev.cc
+++ /dev/null
@@ -1,67 +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/cpp/dev/cursor_control_dev.h"
-
-#include "ppapi/cpp/image_data.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/point.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_CursorControl_Dev_0_4>() {
-  return PPB_CURSOR_CONTROL_DEV_INTERFACE_0_4;
-}
-
-}  // namespace
-
-bool CursorControl_Dev::SetCursor(const InstanceHandle& instance,
-                                  PP_CursorType_Dev type,
-                                  const ImageData& custom_image,
-                                  const Point& hot_spot) {
-  if (has_interface<PPB_CursorControl_Dev_0_4>()) {
-    return PP_ToBool(get_interface<PPB_CursorControl_Dev_0_4>()->SetCursor(
-        instance.pp_instance(), type, custom_image.pp_resource(),
-        &hot_spot.pp_point()));
-  }
-  return false;
-}
-
-bool LockCursor(const InstanceHandle& instance) {
-  if (has_interface<PPB_CursorControl_Dev_0_4>()) {
-    return PP_ToBool(get_interface<PPB_CursorControl_Dev_0_4>()->LockCursor(
-        instance.pp_instance()));
-  }
-  return false;
-}
-
-bool UnlockCursor(const InstanceHandle& instance) {
-  if (has_interface<PPB_CursorControl_Dev_0_4>()) {
-    return PP_ToBool(get_interface<PPB_CursorControl_Dev_0_4>()->UnlockCursor(
-        instance.pp_instance()));
-  }
-  return false;
-}
-
-bool HasCursorLock(const InstanceHandle& instance) {
-  if (has_interface<PPB_CursorControl_Dev_0_4>()) {
-    return PP_ToBool(get_interface<PPB_CursorControl_Dev_0_4>()->HasCursorLock(
-        instance.pp_instance()));
-  }
-  return false;
-}
-
-bool CanLockCursor(const InstanceHandle& instance) {
-  if (has_interface<PPB_CursorControl_Dev_0_4>()) {
-    return PP_ToBool(get_interface<PPB_CursorControl_Dev_0_4>()->CanLockCursor(
-        instance.pp_instance()));
-  }
-  return false;
-}
-
-}  // namespace pp
diff --git a/cpp/dev/cursor_control_dev.h b/cpp/dev/cursor_control_dev.h
deleted file mode 100644
index 9de9ae1..0000000
--- a/cpp/dev/cursor_control_dev.h
+++ /dev/null
@@ -1,36 +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_CPP_DEV_CURSOR_CONTROL_DEV_H_
-#define PPAPI_CPP_DEV_CURSOR_CONTROL_DEV_H_
-
-#include "ppapi/c/dev/ppb_cursor_control_dev.h"
-
-/// @file
-/// This file defines APIs for controlling the cursor.
-
-namespace pp {
-
-class ImageData;
-class InstanceHandle;
-class Point;
-
-/// APIs for controlling the cursor.
-class CursorControl_Dev {
- public:
-  CursorControl_Dev() {}
-
-  bool SetCursor(const InstanceHandle& instance,
-                 PP_CursorType_Dev type,
-                 const ImageData& custom_image,
-                 const Point& hot_spot);
-  bool LockCursor(const InstanceHandle& instance);
-  bool UnlockCursor(const InstanceHandle& instance);
-  bool HasCursorLock(const InstanceHandle& instance);
-  bool CanLockCursor(const InstanceHandle& instance);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_CURSOR_CONTROL_DEV_H_
diff --git a/cpp/dev/device_ref_dev.cc b/cpp/dev/device_ref_dev.cc
deleted file mode 100644
index 5c122aa..0000000
--- a/cpp/dev/device_ref_dev.cc
+++ /dev/null
@@ -1,48 +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/cpp/dev/device_ref_dev.h"
-
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_DeviceRef_Dev>() {
-  return PPB_DEVICEREF_DEV_INTERFACE;
-}
-
-}  // namespace
-
-DeviceRef_Dev::DeviceRef_Dev() {
-}
-
-DeviceRef_Dev::DeviceRef_Dev(PP_Resource resource) : Resource(resource) {
-}
-
-DeviceRef_Dev::DeviceRef_Dev(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-DeviceRef_Dev::DeviceRef_Dev(const DeviceRef_Dev& other) : Resource(other) {
-}
-
-DeviceRef_Dev::~DeviceRef_Dev() {
-}
-
-PP_DeviceType_Dev DeviceRef_Dev::GetType() const {
-  if (!has_interface<PPB_DeviceRef_Dev>())
-    return PP_DEVICETYPE_DEV_INVALID;
-  return get_interface<PPB_DeviceRef_Dev>()->GetType(pp_resource());
-}
-
-Var DeviceRef_Dev::GetName() const {
-  if (!has_interface<PPB_DeviceRef_Dev>())
-    return Var();
-  return Var(PASS_REF,
-             get_interface<PPB_DeviceRef_Dev>()->GetName(pp_resource()));
-}
-
-}  // namespace pp
diff --git a/cpp/dev/device_ref_dev.h b/cpp/dev/device_ref_dev.h
deleted file mode 100644
index fd68d1e..0000000
--- a/cpp/dev/device_ref_dev.h
+++ /dev/null
@@ -1,33 +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_CPP_DEV_DEVICE_REF_DEV_H_
-#define PPAPI_CPP_DEV_DEVICE_REF_DEV_H_
-
-#include "ppapi/c/dev/ppb_device_ref_dev.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-class DeviceRef_Dev : public Resource {
- public:
-  DeviceRef_Dev();
-
-  explicit DeviceRef_Dev(PP_Resource resource);
-
-  DeviceRef_Dev(PassRef, PP_Resource resource);
-
-  DeviceRef_Dev(const DeviceRef_Dev& other);
-
-  virtual ~DeviceRef_Dev();
-
-  PP_DeviceType_Dev GetType() const;
-
-  Var GetName() const;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_DEVICE_REF_DEV_H_
diff --git a/cpp/dev/file_chooser_dev.cc b/cpp/dev/file_chooser_dev.cc
deleted file mode 100644
index 5e0f812..0000000
--- a/cpp/dev/file_chooser_dev.cc
+++ /dev/null
@@ -1,112 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
-#pragma allow_unsafe_libc_calls
-#endif
-
-#include "ppapi/cpp/dev/file_chooser_dev.h"
-
-#include <stddef.h>
-#include <string.h>
-
-#include "ppapi/c/dev/ppb_file_chooser_dev.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/file_ref.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_FileChooser_Dev_0_5>() {
-  return PPB_FILECHOOSER_DEV_INTERFACE_0_5;
-}
-
-template <> const char* interface_name<PPB_FileChooser_Dev_0_6>() {
-  return PPB_FILECHOOSER_DEV_INTERFACE_0_6;
-}
-
-}  // namespace
-
-FileChooser_Dev::FileChooser_Dev(const InstanceHandle& instance,
-                                 PP_FileChooserMode_Dev mode,
-                                 const Var& accept_types) {
-  if (has_interface<PPB_FileChooser_Dev_0_6>()) {
-    PassRefFromConstructor(get_interface<PPB_FileChooser_Dev_0_6>()->Create(
-        instance.pp_instance(), mode, accept_types.pp_var()));
-  } else if (has_interface<PPB_FileChooser_Dev_0_5>()) {
-    PassRefFromConstructor(get_interface<PPB_FileChooser_Dev_0_5>()->Create(
-        instance.pp_instance(), mode, accept_types.pp_var()));
-  }
-}
-
-FileChooser_Dev::FileChooser_Dev(const FileChooser_Dev& other)
-    : Resource(other) {}
-
-FileChooser_Dev& FileChooser_Dev::operator=(const FileChooser_Dev& other) {
-  Resource::operator=(other);
-  return *this;
-}
-
-int32_t FileChooser_Dev::Show(
-    const CompletionCallbackWithOutput< std::vector<FileRef> >& callback) {
-  if (has_interface<PPB_FileChooser_Dev_0_6>()) {
-    return get_interface<PPB_FileChooser_Dev_0_6>()->Show(
-        pp_resource(),
-        callback.output(),
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_FileChooser_Dev_0_5>()) {
-    // Data for our callback wrapper. The callback handler will delete it.
-    ChooseCallbackData0_5* data = new ChooseCallbackData0_5;
-    data->file_chooser = pp_resource();
-    data->output = callback.output();
-    data->original_callback = callback.pp_completion_callback();
-
-    return get_interface<PPB_FileChooser_Dev_0_5>()->Show(
-        pp_resource(), PP_MakeCompletionCallback(&CallbackConverter, data));
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-// static
-void FileChooser_Dev::CallbackConverter(void* user_data, int32_t result) {
-  ChooseCallbackData0_5* data = static_cast<ChooseCallbackData0_5*>(user_data);
-
-  // Get all of the selected file resources using the iterator API.
-  std::vector<PP_Resource> selected_files;
-  if (result == PP_OK) {
-    const PPB_FileChooser_Dev_0_5* chooser =
-        get_interface<PPB_FileChooser_Dev_0_5>();
-    while (PP_Resource cur = chooser->GetNextChosenFile(data->file_chooser))
-      selected_files.push_back(cur);
-  }
-
-  // Need to issue the "GetDataBuffer" even for error cases & when the
-  // number of items is 0.
-  void* output_buf = data->output.GetDataBuffer(
-      data->output.user_data,
-      static_cast<uint32_t>(selected_files.size()), sizeof(PP_Resource));
-  if (output_buf) {
-    if (!selected_files.empty()) {
-      memcpy(output_buf, &selected_files[0],
-             sizeof(PP_Resource) * selected_files.size());
-    }
-  } else {
-    // Error allocating, need to free the resource IDs.
-    for (size_t i = 0; i < selected_files.size(); i++)
-      Module::Get()->core()->ReleaseResource(selected_files[i]);
-  }
-
-  // Now execute the original callback.
-  PP_RunCompletionCallback(&data->original_callback, result);
-  delete data;
-}
-
-}  // namespace pp
diff --git a/cpp/dev/file_chooser_dev.h b/cpp/dev/file_chooser_dev.h
deleted file mode 100644
index 1786401..0000000
--- a/cpp/dev/file_chooser_dev.h
+++ /dev/null
@@ -1,102 +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_CPP_DEV_FILE_CHOOSER_DEV_H_
-#define PPAPI_CPP_DEV_FILE_CHOOSER_DEV_H_
-
-#include <stdint.h>
-
-#include <vector>
-
-#include "ppapi/c/dev/ppb_file_chooser_dev.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/file_ref.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class FileRef;
-class InstanceHandle;
-class Var;
-
-class FileChooser_Dev : public Resource {
- public:
-  /// Creates an is_null() FileChooser object.
-  FileChooser_Dev() {}
-
-  /// This function creates a file chooser dialog resource.  The chooser is
-  /// associated with a particular instance, so that it may be positioned on the
-  /// screen relative to the tab containing the instance.  Returns 0 if passed
-  /// an invalid instance.
-  ///
-  /// @param mode A PPB_FileChooser_Dev instance can be used to select a single
-  /// file (PP_FILECHOOSERMODE_OPEN) or multiple files
-  /// (PP_FILECHOOSERMODE_OPENMULTIPLE). Unlike the HTML5 <input type="file">
-  /// tag, a PPB_FileChooser_Dev instance cannot be used to select a directory.
-  /// In order to get the list of files in a directory, the
-  /// PPB_FileRef::ReadDirectoryEntries interface must be used.
-  ///
-  /// @param accept_types A comma-separated list of MIME types and file
-  /// extensions such as "audio/ *,text/plain,.html" (note there should be
-  /// no space between the '/' and the '*', but one is added to avoid confusing
-  /// C++ comments). The dialog may restrict selectable files to the specified
-  /// MIME types and file extensions. If a string in the comma-separated list
-  /// begins with a period (.) then the string is interpreted as a file
-  /// extension, otherwise it is interpreted as a MIME-type. An empty string or
-  /// an undefined var may be given to indicate that all types should be
-  /// accepted.
-  FileChooser_Dev(const InstanceHandle& instance,
-                  PP_FileChooserMode_Dev mode,
-                  const Var& accept_types);
-
-  FileChooser_Dev(const FileChooser_Dev& other);
-  FileChooser_Dev& operator=(const FileChooser_Dev& other);
-
-  /// This function displays a previously created file chooser resource as a
-  /// dialog box, prompting the user to choose a file or files. This function
-  /// must be called in response to a user gesture, such as a mouse click or
-  /// touch event. The callback is called with PP_OK on successful completion
-  /// with a file (or files) selected, PP_ERROR_USERCANCEL if the user selected
-  /// no file, or another error code from pp_errors.h on failure.
-  ///
-  /// @param callback The completion callback that will be executed. On success,
-  /// the selected files will be passed to the given function.
-  ///
-  /// Normally you would use a CompletionCallbackFactory to allow callbacks to
-  /// be bound to your class. See completion_callback_factory.h for more
-  /// discussion on how to use this. Your callback will generally look like:
-  ///
-  /// @code
-  ///   void OnFilesSelected(int32_t result,
-  ///                        const std::vector<pp::FileRef>& files) {
-  ///     if (result == PP_OK)
-  ///       // use files...
-  ///   }
-  /// @endcode
-  ///
-  /// @return PP_OK_COMPLETIONPENDING if request to show the dialog was
-  /// successful, another error code from pp_errors.h on failure.
-  virtual int32_t Show(
-      const CompletionCallbackWithOutput< std::vector<FileRef> >& callback);
-
- protected:
-  // Heap-allocated data passed to the CallbackConverter for backwards compat.
-  struct ChooseCallbackData0_5 {
-    PP_Resource file_chooser;
-    PP_ArrayOutput output;
-    PP_CompletionCallback original_callback;
-  };
-
-  // Provide backwards-compatibility for older versions. Converts the old-style
-  // 0.5 "iterator" interface to the new-style 0.6 "array output" interface that
-  // the caller is expecting.
-  //
-  // This takes a heap-allocated ChooseCallbackData0_5 struct passed as the
-  // user data and deletes it when the call completes.
-  static void CallbackConverter(void* user_data, int32_t result);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_FILE_CHOOSER_DEV_H_
diff --git a/cpp/dev/ime_input_event_dev.cc b/cpp/dev/ime_input_event_dev.cc
deleted file mode 100644
index 0573ee0..0000000
--- a/cpp/dev/ime_input_event_dev.cc
+++ /dev/null
@@ -1,132 +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/cpp/dev/ime_input_event_dev.h"
-
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_IMEInputEvent_Dev_0_2>() {
-  return PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_2;
-}
-
-template <> const char* interface_name<PPB_IMEInputEvent_Dev_0_1>() {
-  return PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_1;
-}
-
-}  // namespace
-
-// IMEInputEvent_Dev -------------------------------------------------------
-
-IMEInputEvent_Dev::IMEInputEvent_Dev() : InputEvent() {
-}
-
-IMEInputEvent_Dev::IMEInputEvent_Dev(const InputEvent& event) : InputEvent() {
-  bool is_ime_event = false;
-  if (has_interface<PPB_IMEInputEvent_Dev_0_2>()) {
-    if (get_interface<PPB_IMEInputEvent_Dev_0_2>()->IsIMEInputEvent(
-        event.pp_resource())) {
-      is_ime_event = true;
-    }
-  } else if (has_interface<PPB_IMEInputEvent_Dev_0_1>()) {
-    if (get_interface<PPB_IMEInputEvent_Dev_0_1>()->IsIMEInputEvent(
-        event.pp_resource())) {
-      is_ime_event = true;
-    }
-  }
-
-  if (is_ime_event) {
-    Module::Get()->core()->AddRefResource(event.pp_resource());
-    PassRefFromConstructor(event.pp_resource());
-  }
-}
-
-IMEInputEvent_Dev::IMEInputEvent_Dev(
-    const InstanceHandle& instance,
-    PP_InputEvent_Type type,
-    PP_TimeTicks time_stamp,
-    const Var& text,
-    const std::vector<uint32_t>& segment_offsets,
-    int32_t target_segment,
-    const std::pair<uint32_t, uint32_t>& selection) : InputEvent() {
-  if (!has_interface<PPB_IMEInputEvent_Dev_0_2>())
-    return;
-  uint32_t dummy = 0;
-  PassRefFromConstructor(get_interface<PPB_IMEInputEvent_Dev_0_2>()->Create(
-      instance.pp_instance(), type, time_stamp, text.pp_var(),
-      segment_offsets.empty() ? 0u :
-          static_cast<uint32_t>(segment_offsets.size() - 1),
-      segment_offsets.empty() ? &dummy : &segment_offsets[0],
-      target_segment, selection.first, selection.second));
-}
-
-
-Var IMEInputEvent_Dev::GetText() const {
-  if (has_interface<PPB_IMEInputEvent_Dev_0_2>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_IMEInputEvent_Dev_0_2>()->GetText(
-                   pp_resource()));
-  } else if (has_interface<PPB_IMEInputEvent_Dev_0_1>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_IMEInputEvent_Dev_0_1>()->GetText(
-                   pp_resource()));
-  }
-  return Var();
-}
-
-uint32_t IMEInputEvent_Dev::GetSegmentNumber() const {
-  if (has_interface<PPB_IMEInputEvent_Dev_0_2>()) {
-    return get_interface<PPB_IMEInputEvent_Dev_0_2>()->GetSegmentNumber(
-        pp_resource());
-  } else if (has_interface<PPB_IMEInputEvent_Dev_0_1>()) {
-    return get_interface<PPB_IMEInputEvent_Dev_0_1>()->GetSegmentNumber(
-        pp_resource());
-  }
-  return 0;
-}
-
-uint32_t IMEInputEvent_Dev::GetSegmentOffset(uint32_t index) const {
-  if (has_interface<PPB_IMEInputEvent_Dev_0_2>()) {
-    return get_interface<PPB_IMEInputEvent_Dev_0_2>()->GetSegmentOffset(
-        pp_resource(), index);
-  } else if (has_interface<PPB_IMEInputEvent_Dev_0_1>()) {
-    return get_interface<PPB_IMEInputEvent_Dev_0_1>()->GetSegmentOffset(
-        pp_resource(), index);
-  }
-  return 0;
-}
-
-int32_t IMEInputEvent_Dev::GetTargetSegment() const {
-  if (has_interface<PPB_IMEInputEvent_Dev_0_2>()) {
-    return get_interface<PPB_IMEInputEvent_Dev_0_2>()->GetTargetSegment(
-        pp_resource());
-  } else if (has_interface<PPB_IMEInputEvent_Dev_0_1>()) {
-    return get_interface<PPB_IMEInputEvent_Dev_0_1>()->GetTargetSegment(
-        pp_resource());
-  }
-  return 0;
-}
-
-std::pair<uint32_t, uint32_t> IMEInputEvent_Dev::GetSelection() const {
-  std::pair<uint32_t, uint32_t> range(0, 0);
-  if (has_interface<PPB_IMEInputEvent_Dev_0_2>()) {
-    get_interface<PPB_IMEInputEvent_Dev_0_2>()->GetSelection(pp_resource(),
-                                                         &range.first,
-                                                         &range.second);
-  } else if (has_interface<PPB_IMEInputEvent_Dev_0_1>()) {
-    get_interface<PPB_IMEInputEvent_Dev_0_1>()->GetSelection(pp_resource(),
-                                                             &range.first,
-                                                             &range.second);
-  }
-  return range;
-}
-
-
-}  // namespace pp
diff --git a/cpp/dev/ime_input_event_dev.h b/cpp/dev/ime_input_event_dev.h
deleted file mode 100644
index 9a6216a..0000000
--- a/cpp/dev/ime_input_event_dev.h
+++ /dev/null
@@ -1,108 +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_CPP_DEV_IME_INPUT_EVENT_DEV_H_
-#define PPAPI_CPP_DEV_IME_INPUT_EVENT_DEV_H_
-
-#include <stdint.h>
-
-#include <utility>
-#include <vector>
-
-#include "ppapi/c/dev/ppb_ime_input_event_dev.h"
-#include "ppapi/cpp/input_event.h"
-
-/// @file
-/// This file defines the API used to handle IME input events.
-
-namespace pp {
-
-class Var;
-
-class IMEInputEvent_Dev : public InputEvent {
- public:
-  /// Constructs an is_null() IME input event object.
-  IMEInputEvent_Dev();
-
-  /// Constructs an IME input event object from the provided generic input
-  /// event. If the given event is itself is_null() or is not an IME input
-  /// event, the object will be is_null().
-  ///
-  /// @param[in] event A generic input event.
-  explicit IMEInputEvent_Dev(const InputEvent& event);
-
-  /// This constructor manually constructs an IME event from the provided
-  /// parameters.
-  ///
-  /// @param[in] instance The instance for which this event occurred.
-  ///
-  /// @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-  /// input event. The type must be one of the ime event types.
-  ///
-  /// @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-  /// when the event occurred.
-  ///
-  /// @param[in] text The string returned by <code>GetText</code>.
-  ///
-  /// @param[in] segment_offsets The array of numbers returned by
-  /// <code>GetSegmentOffset</code>.
-  ///
-  /// @param[in] target_segment The number returned by
-  /// <code>GetTargetSegment</code>.
-  ///
-  /// @param[in] selection The range returned by <code>GetSelection</code>.
-  IMEInputEvent_Dev(const InstanceHandle& instance,
-                    PP_InputEvent_Type type,
-                    PP_TimeTicks time_stamp,
-                    const Var& text,
-                    const std::vector<uint32_t>& segment_offsets,
-                    int32_t target_segment,
-                    const std::pair<uint32_t, uint32_t>& selection);
-
-  /// Returns the composition text as a UTF-8 string for the given IME event.
-  ///
-  /// @return A string var representing the composition text. For non-IME
-  /// input events the return value will be an undefined var.
-  Var GetText() const;
-
-  /// Returns the number of segments in the composition text.
-  ///
-  /// @return The number of segments. For events other than COMPOSITION_UPDATE,
-  /// returns 0.
-  uint32_t GetSegmentNumber() const;
-
-  /// Returns the position of the index-th segmentation point in the composition
-  /// text. The position is given by a byte-offset (not a character-offset) of
-  /// the string returned by GetText(). It always satisfies
-  /// 0=GetSegmentOffset(0) < ... < GetSegmentOffset(i) < GetSegmentOffset(i+1)
-  /// < ... < GetSegmentOffset(GetSegmentNumber())=(byte-length of GetText()).
-  /// Note that [GetSegmentOffset(i), GetSegmentOffset(i+1)) represents the
-  /// range of the i-th segment, and hence GetSegmentNumber() can be a valid
-  /// argument to this function instead of an off-by-1 error.
-  ///
-  /// @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-  /// event.
-  ///
-  /// @param[in] index An integer indicating a segment.
-  ///
-  /// @return The byte-offset of the segmentation point. If the event is not
-  /// COMPOSITION_UPDATE or index is out of range, returns 0.
-  uint32_t GetSegmentOffset(uint32_t index) const;
-
-  /// Returns the index of the current target segment of composition.
-  ///
-  /// @return An integer indicating the index of the target segment. When there
-  /// is no active target segment, or the event is not COMPOSITION_UPDATE,
-  /// returns -1.
-  int32_t GetTargetSegment() const;
-
-  /// Returns the range selected by caret in the composition text.
-  ///
-  /// @return A pair of integers indicating the selection range.
-  std::pair<uint32_t, uint32_t> GetSelection() const;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_IME_INPUT_EVENT_DEV_H_
diff --git a/cpp/dev/memory_dev.cc b/cpp/dev/memory_dev.cc
deleted file mode 100644
index 79122b5..0000000
--- a/cpp/dev/memory_dev.cc
+++ /dev/null
@@ -1,33 +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/cpp/dev/memory_dev.h"
-
-#include "ppapi/c/dev/ppb_memory_dev.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Memory_Dev>() {
-  return PPB_MEMORY_DEV_INTERFACE;
-}
-
-}  // namespace
-
-void* Memory_Dev::MemAlloc(uint32_t num_bytes) {
-  if (!has_interface<PPB_Memory_Dev>())
-    return NULL;
-  return get_interface<PPB_Memory_Dev>()->MemAlloc(num_bytes);
-}
-
-void Memory_Dev::MemFree(void* ptr) {
-  if (!has_interface<PPB_Memory_Dev>() || !ptr)
-    return;
-  get_interface<PPB_Memory_Dev>()->MemFree(ptr);
-}
-
-}  // namespace pp
diff --git a/cpp/dev/memory_dev.h b/cpp/dev/memory_dev.h
deleted file mode 100644
index 1473bb5..0000000
--- a/cpp/dev/memory_dev.h
+++ /dev/null
@@ -1,36 +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_CPP_DEV_MEMORY_DEV_H_
-#define PPAPI_CPP_DEV_MEMORY_DEV_H_
-
-#include "ppapi/c/pp_stdint.h"
-
-/// @file
-/// This file defines APIs related to memory management.
-
-namespace pp {
-
-/// APIs related to memory management, time, and threads.
-class Memory_Dev {
- public:
-  Memory_Dev() {}
-
-  /// A function that allocates memory.
-  ///
-  /// @param[in] num_bytes A number of bytes to allocate.
-  /// @return A pointer to the memory if successful, NULL If the
-  /// allocation fails.
-  void* MemAlloc(uint32_t num_bytes);
-
-  /// A function that deallocates memory.
-  ///
-  /// @param[in] ptr A pointer to the memory to deallocate. It is safe to
-  /// pass NULL to this function.
-  void MemFree(void* ptr);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_MEMORY_DEV_H_
diff --git a/cpp/dev/printing_dev.cc b/cpp/dev/printing_dev.cc
deleted file mode 100644
index ae9fb07..0000000
--- a/cpp/dev/printing_dev.cc
+++ /dev/null
@@ -1,108 +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/cpp/dev/printing_dev.h"
-
-#include "ppapi/c/dev/ppb_printing_dev.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-static const char kPPPPrintingInterface[] = PPP_PRINTING_DEV_INTERFACE;
-
-template <> const char* interface_name<PPB_Printing_Dev_0_7>() {
-  return PPB_PRINTING_DEV_INTERFACE_0_7;
-}
-
-uint32_t QuerySupportedFormats(PP_Instance instance) {
-  void* object =
-      Instance::GetPerInstanceObject(instance, kPPPPrintingInterface);
-  if (!object)
-    return 0;
-  return static_cast<Printing_Dev*>(object)->QuerySupportedPrintOutputFormats();
-}
-
-int32_t Begin(PP_Instance instance,
-              const struct PP_PrintSettings_Dev* print_settings) {
-  void* object =
-      Instance::GetPerInstanceObject(instance, kPPPPrintingInterface);
-  if (!object)
-    return 0;
-  return static_cast<Printing_Dev*>(object)->PrintBegin(*print_settings);
-}
-
-PP_Resource PrintPages(PP_Instance instance,
-                       const struct PP_PrintPageNumberRange_Dev* page_ranges,
-                       uint32_t page_range_count) {
-  void* object =
-      pp::Instance::GetPerInstanceObject(instance, kPPPPrintingInterface);
-  if (!object)
-    return 0;
-  return static_cast<Printing_Dev*>(object)->PrintPages(
-      page_ranges, page_range_count).detach();
-}
-
-void End(PP_Instance instance) {
-  void* object =
-      pp::Instance::GetPerInstanceObject(instance, kPPPPrintingInterface);
-  if (object)
-    static_cast<Printing_Dev*>(object)->PrintEnd();
-}
-
-PP_Bool IsScalingDisabled(PP_Instance instance) {
-  void* object =
-      pp::Instance::GetPerInstanceObject(instance, kPPPPrintingInterface);
-  if (!object)
-    return PP_FALSE;
-  bool return_value =
-      static_cast<Printing_Dev*>(object)->IsPrintScalingDisabled();
-  return PP_FromBool(return_value);
-}
-
-const PPP_Printing_Dev ppp_printing = {
-  &QuerySupportedFormats,
-  &Begin,
-  &PrintPages,
-  &End,
-  &IsScalingDisabled
-};
-
-}  // namespace
-
-Printing_Dev::Printing_Dev(Instance* instance)
-    : associated_instance_(instance) {
-  Module::Get()->AddPluginInterface(kPPPPrintingInterface, &ppp_printing);
-  instance->AddPerInstanceObject(
-      kPPPPrintingInterface, this);
-  if (has_interface<PPB_Printing_Dev_0_7>()) {
-    PassRefFromConstructor(get_interface<PPB_Printing_Dev_0_7>()->Create(
-        associated_instance_.pp_instance()));
-  }
-}
-
-Printing_Dev::~Printing_Dev() {
-  Instance::RemovePerInstanceObject(associated_instance_,
-                                    kPPPPrintingInterface, this);
-}
-
-// static
-bool Printing_Dev::IsAvailable() {
-  return has_interface<PPB_Printing_Dev_0_7>();
-}
-
-int32_t Printing_Dev::GetDefaultPrintSettings(
-    const CompletionCallbackWithOutput<PP_PrintSettings_Dev>& callback) const {
-  if (has_interface<PPB_Printing_Dev_0_7>()) {
-    return get_interface<PPB_Printing_Dev_0_7>()->GetDefaultPrintSettings(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-}  // namespace pp
diff --git a/cpp/dev/printing_dev.h b/cpp/dev/printing_dev.h
deleted file mode 100644
index 0a50d40..0000000
--- a/cpp/dev/printing_dev.h
+++ /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.
-
-#ifndef PPAPI_CPP_DEV_PRINTING_DEV_H_
-#define PPAPI_CPP_DEV_PRINTING_DEV_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/dev/ppp_printing_dev.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class Instance;
-
-// You would typically use this either via inheritance on your instance or
-// by composition: see find_private.h for an example.
-class Printing_Dev : public Resource {
- public:
-  // The instance parameter must outlive this class.
-  explicit Printing_Dev(Instance* instance);
-  virtual ~Printing_Dev();
-
-  // PPP_Printing_Dev functions exposed as virtual functions for you to
-  // override.
-  virtual uint32_t QuerySupportedPrintOutputFormats() = 0;
-  virtual int32_t PrintBegin(const PP_PrintSettings_Dev& print_settings) = 0;
-  virtual Resource PrintPages(const PP_PrintPageNumberRange_Dev* page_ranges,
-                              uint32_t page_range_count) = 0;
-  virtual void PrintEnd() = 0;
-  virtual bool IsPrintScalingDisabled() = 0;
-
-  // PPB_Printing_Dev functions.
-  // Returns true if the browser supports the required PPB_Printing_Dev
-  // interface.
-  static bool IsAvailable();
-
-  // Get the default print settings and store them in the output of |callback|.
-  int32_t GetDefaultPrintSettings(
-      const CompletionCallbackWithOutput<PP_PrintSettings_Dev>& callback) const;
-
- private:
-  InstanceHandle associated_instance_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_PRINTING_DEV_H_
diff --git a/cpp/dev/scriptable_object_deprecated.cc b/cpp/dev/scriptable_object_deprecated.cc
deleted file mode 100644
index 4687cf1..0000000
--- a/cpp/dev/scriptable_object_deprecated.cc
+++ /dev/null
@@ -1,201 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/cpp/dev/scriptable_object_deprecated.h"
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "ppapi/c/dev/ppb_memory_dev.h"
-#include "ppapi/c/dev/ppp_class_deprecated.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-namespace deprecated {
-
-namespace {
-
-// Allows converting an output param of a Var to an output param of a PP_Var
-// for exceptions. The object is only copied if it is not void, which we
-// take to mean an exception occurred.
-class ExceptionConverter {
- public:
-  ExceptionConverter(PP_Var* out) : out_(out) {
-  }
-  ~ExceptionConverter() {
-    if (!exception_.is_undefined())
-      *out_ = exception_.Detach();
-  }
-
-  Var* Get() { return &exception_; }
-
- private:
-  PP_Var* out_;
-  Var exception_;
-};
-
-// Used internally to convert a C-style array of PP_Var to a vector of Var.
-void ArgListToVector(uint32_t argc, PP_Var* argv, std::vector<Var>* output) {
-  output->reserve(argc);
-  for (size_t i = 0; i < argc; i++)
-    output->push_back(Var(Var::DontManage(), argv[i]));
-}
-
-bool HasProperty(void* object, PP_Var name, PP_Var* exception) {
-  ExceptionConverter e(exception);
-  return static_cast<ScriptableObject*>(object)->HasProperty(
-      Var(Var::DontManage(), name), e.Get());
-}
-
-bool HasMethod(void* object, PP_Var name, PP_Var* exception) {
-  ExceptionConverter e(exception);
-  return static_cast<ScriptableObject*>(object)->HasMethod(
-      Var(Var::DontManage(), name), e.Get());
-}
-
-PP_Var GetProperty(void* object,
-                   PP_Var name,
-                   PP_Var* exception) {
-  ExceptionConverter e(exception);
-  return static_cast<ScriptableObject*>(object)->GetProperty(
-      Var(Var::DontManage(), name), e.Get()).Detach();
-}
-
-void GetAllPropertyNames(void* object,
-                         uint32_t* property_count,
-                         PP_Var** properties,
-                         PP_Var* exception) {
-  ExceptionConverter e(exception);
-  std::vector<Var> props;
-  static_cast<ScriptableObject*>(object)->GetAllPropertyNames(&props, e.Get());
-  if (props.empty())
-    return;
-  *property_count = static_cast<uint32_t>(props.size());
-
-  const PPB_Memory_Dev* memory_if = static_cast<const PPB_Memory_Dev*>(
-      pp::Module::Get()->GetBrowserInterface(PPB_MEMORY_DEV_INTERFACE));
-  *properties = static_cast<PP_Var*>(memory_if->MemAlloc(
-      static_cast<uint32_t>(sizeof(PP_Var) * props.size())));
-
-  for (size_t i = 0; i < props.size(); ++i)
-    (*properties)[i] = props[i].Detach();
-}
-
-void SetProperty(void* object,
-                 PP_Var name,
-                 PP_Var value,
-                 PP_Var* exception) {
-  ExceptionConverter e(exception);
-  static_cast<ScriptableObject*>(object)->SetProperty(
-      Var(Var::DontManage(), name), Var(Var::DontManage(), value), e.Get());
-}
-
-void RemoveProperty(void* object,
-                    PP_Var name,
-                    PP_Var* exception) {
-  ExceptionConverter e(exception);
-  static_cast<ScriptableObject*>(object)->RemoveProperty(
-      Var(Var::DontManage(), name), e.Get());
-}
-
-PP_Var Call(void* object,
-            PP_Var method_name,
-            uint32_t argc,
-            PP_Var* argv,
-            PP_Var* exception) {
-  ExceptionConverter e(exception);
-
-  std::vector<Var> args;
-  ArgListToVector(argc, argv, &args);
-  return static_cast<ScriptableObject*>(object)->Call(
-      Var(Var::DontManage(), method_name), args, e.Get()).Detach();
-}
-
-PP_Var Construct(void* object,
-                 uint32_t argc,
-                 PP_Var* argv,
-                 PP_Var* exception) {
-  ExceptionConverter e(exception);
-
-  std::vector<Var> args;
-  ArgListToVector(argc, argv, &args);
-  return static_cast<ScriptableObject*>(object)->Construct(
-      args, e.Get()).Detach();
-}
-
-void Deallocate(void* object) {
-  delete static_cast<ScriptableObject*>(object);
-}
-
-PPP_Class_Deprecated plugin_class = {
-  &HasProperty,
-  &HasMethod,
-  &GetProperty,
-  &GetAllPropertyNames,
-  &SetProperty,
-  &RemoveProperty,
-  &Call,
-  &Construct,
-  &Deallocate
-};
-
-}  // namespace
-
-bool ScriptableObject::HasProperty(const Var& /*name*/, Var* /*exception*/) {
-  return false;
-}
-
-bool ScriptableObject::HasMethod(const Var& /*name*/, Var* /*exception*/) {
-  return false;
-}
-
-Var ScriptableObject::GetProperty(const Var& /*name*/, Var* exception) {
-  *exception = Var("Property does not exist on ScriptableObject");
-  return Var();
-}
-
-void ScriptableObject::GetAllPropertyNames(std::vector<Var>* /*properties*/,
-                                           Var* /*exception*/) {
-}
-
-void ScriptableObject::SetProperty(const Var& /*name*/,
-                                   const Var& /*value*/,
-                                   Var* exception) {
-  *exception = Var("Property can not be set on ScriptableObject");
-}
-
-void ScriptableObject::RemoveProperty(const Var& /*name*/,
-                                      Var* exception) {
-  *exception = Var(
-      "Property does does not exist to be removed in ScriptableObject");
-}
-
-Var ScriptableObject::Call(const Var& /*method_name*/,
-                           const std::vector<Var>& /*args*/,
-                           Var* exception) {
-  *exception = Var("Method does not exist to call in ScriptableObject");
-  return Var();
-}
-
-Var ScriptableObject::Construct(const std::vector<Var>& /*args*/,
-                                Var* exception) {
-  *exception = Var("Construct method does not exist in ScriptableObject");
-  return Var();
-}
-
-// static
-const PPP_Class_Deprecated* ScriptableObject::GetClass() {
-  return &plugin_class;
-}
-
-}  // namespace deprecated
-
-}  // namespace pp
diff --git a/cpp/dev/scriptable_object_deprecated.h b/cpp/dev/scriptable_object_deprecated.h
deleted file mode 100644
index 442fe94..0000000
--- a/cpp/dev/scriptable_object_deprecated.h
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright 2010 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_CPP_DEV_SCRIPTABLE_OBJECT_DEPRECATED_H_
-#define PPAPI_CPP_DEV_SCRIPTABLE_OBJECT_DEPRECATED_H_
-
-#include <vector>
-
-struct PPP_Class_Deprecated;
-
-namespace pp {
-class Var;
-class VarPrivate;
-}
-
-namespace pp {
-
-namespace deprecated {
-
-// This class allows you to implement objects accessible by JavaScript. Derive
-// from this class and override the virtual functions you support. pp::Var has
-// a constructor that takes a pointer to a ScriptableObject for when you want
-// to convert your custom object to a var.
-//
-// Please see the PPB_Core C interface for more information on how to implement
-// these functions. These functions are the backend implementation for the
-// functions in PPB_Var, which contains further information.
-//
-// Please see:
-//   http://code.google.com/p/ppapi/wiki/InterfacingWithJavaScript
-// for a general overview of interfacing with JavaScript.
-class ScriptableObject {
- public:
-  ScriptableObject() {}
-  virtual ~ScriptableObject() {}
-
-  // The default implementation returns false.
-  virtual bool HasProperty(const Var& name, Var* exception);
-
-  // The default implementation returns false.
-  virtual bool HasMethod(const Var& name, Var* exception);
-
-  // The default implementation sets an exception that the property doesn't
-  // exist.
-  virtual Var GetProperty(const Var& name, Var* exception);
-
-  // The default implementation returns no properties.
-  virtual void GetAllPropertyNames(std::vector<Var>* properties,
-                                   Var* exception);
-
-  // The default implementation sets an exception that the property can not be
-  // set.
-  virtual void SetProperty(const Var& name,
-                           const Var& value,
-                           Var* exception);
-
-  // The default implementation sets an exception that the method does not
-  // exist.
-  virtual void RemoveProperty(const Var& name,
-                              Var* exception);
-
-  // TODO(brettw) need native array access here.
-
-  // method_name is guaranteed to be either a string or an integer.
-  //
-  // The default implementation sets an exception that the method does not
-  // exist.
-  virtual Var Call(const Var& method_name,
-                   const std::vector<Var>& args,
-                   Var* exception);
-
-  // The default implementation sets an exception that the method does not
-  // exist.
-  virtual Var Construct(const std::vector<Var>& args,
-                        Var* exception);
-
- private:
-  friend class ::pp::Var;
-  friend class ::pp::VarPrivate;
-  static const PPP_Class_Deprecated* GetClass();
-
-  // Unimplemented, copy and assignment is not allowed.
-  ScriptableObject(const ScriptableObject& other);
-  ScriptableObject& operator=(const ScriptableObject& other);
-};
-
-}  // namespace deprecated
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_SCRIPTABLE_OBJECT_DEPRECATED_H_
-
diff --git a/cpp/dev/text_input_dev.cc b/cpp/dev/text_input_dev.cc
deleted file mode 100644
index 24957dd..0000000
--- a/cpp/dev/text_input_dev.cc
+++ /dev/null
@@ -1,108 +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/cpp/dev/text_input_dev.h"
-
-#include "ppapi/c/dev/ppp_text_input_dev.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/rect.h"
-
-namespace pp {
-
-namespace {
-
-static const char kPPPTextInputInterface[] = PPP_TEXTINPUT_DEV_INTERFACE;
-
-void RequestSurroundingText(PP_Instance instance,
-                            uint32_t desired_number_of_characters) {
-  void* object = Instance::GetPerInstanceObject(instance,
-                                                kPPPTextInputInterface);
-  if (!object)
-    return;
-  static_cast<TextInput_Dev*>(object)->RequestSurroundingText(
-      desired_number_of_characters);
-}
-
-const PPP_TextInput_Dev ppp_text_input = {
-  &RequestSurroundingText
-};
-
-template <> const char* interface_name<PPB_TextInput_Dev_0_2>() {
-  return PPB_TEXTINPUT_DEV_INTERFACE_0_2;
-}
-
-template <> const char* interface_name<PPB_TextInput_Dev_0_1>() {
-  return PPB_TEXTINPUT_DEV_INTERFACE_0_1;
-}
-
-}  // namespace
-
-
-TextInput_Dev::TextInput_Dev(Instance* instance)
-    : instance_(instance) {
-  Module::Get()->AddPluginInterface(kPPPTextInputInterface,
-                                    &ppp_text_input);
-  instance->AddPerInstanceObject(kPPPTextInputInterface, this);
-}
-
-TextInput_Dev::~TextInput_Dev() {
-  Instance::RemovePerInstanceObject(instance_, kPPPTextInputInterface, this);
-}
-
-void TextInput_Dev::RequestSurroundingText(uint32_t) {
-  // Default implementation. Send a null range.
-  UpdateSurroundingText(std::string(), 0, 0);
-}
-
-void TextInput_Dev::SetTextInputType(PP_TextInput_Type_Dev type) {
-  if (has_interface<PPB_TextInput_Dev_0_2>()) {
-    get_interface<PPB_TextInput_Dev_0_2>()->SetTextInputType(
-        instance_.pp_instance(), type);
-  } else if (has_interface<PPB_TextInput_Dev_0_1>()) {
-    get_interface<PPB_TextInput_Dev_0_1>()->SetTextInputType(
-        instance_.pp_instance(), type);
-  }
-}
-
-void TextInput_Dev::UpdateCaretPosition(const Rect& caret,
-                                        const Rect& bounding_box) {
-  if (has_interface<PPB_TextInput_Dev_0_2>()) {
-    get_interface<PPB_TextInput_Dev_0_2>()->UpdateCaretPosition(
-        instance_.pp_instance(), &caret.pp_rect(), &bounding_box.pp_rect());
-  } else if (has_interface<PPB_TextInput_Dev_0_1>()) {
-    get_interface<PPB_TextInput_Dev_0_1>()->UpdateCaretPosition(
-        instance_.pp_instance(), &caret.pp_rect(), &bounding_box.pp_rect());
-  }
-}
-
-void TextInput_Dev::CancelCompositionText() {
-  if (has_interface<PPB_TextInput_Dev_0_2>()) {
-    get_interface<PPB_TextInput_Dev_0_2>()->CancelCompositionText(
-        instance_.pp_instance());
-  } else if (has_interface<PPB_TextInput_Dev_0_1>()) {
-    get_interface<PPB_TextInput_Dev_0_1>()->CancelCompositionText(
-        instance_.pp_instance());
-  }
-}
-
-void TextInput_Dev::SelectionChanged() {
-  if (has_interface<PPB_TextInput_Dev_0_2>()) {
-    get_interface<PPB_TextInput_Dev_0_2>()->SelectionChanged(
-        instance_.pp_instance());
-  }
-}
-
-void TextInput_Dev::UpdateSurroundingText(const std::string& text,
-                                          uint32_t caret,
-                                          uint32_t anchor) {
-  if (has_interface<PPB_TextInput_Dev_0_2>()) {
-    get_interface<PPB_TextInput_Dev_0_2>()->UpdateSurroundingText(
-        instance_.pp_instance(), text.c_str(), caret, anchor);
-  }
-}
-
-
-}  // namespace pp
diff --git a/cpp/dev/text_input_dev.h b/cpp/dev/text_input_dev.h
deleted file mode 100644
index c926d39..0000000
--- a/cpp/dev/text_input_dev.h
+++ /dev/null
@@ -1,63 +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_CPP_DEV_TEXT_INPUT_DEV_H_
-#define PPAPI_CPP_DEV_TEXT_INPUT_DEV_H_
-
-#include <stdint.h>
-
-#include <string>
-
-#include "ppapi/c/dev/ppb_text_input_dev.h"
-#include "ppapi/cpp/instance_handle.h"
-
-namespace pp {
-
-class Rect;
-class Instance;
-
-// This class allows you to associate the PPP_TextInput_Dev and
-// PPB_TextInput_Dev C-based interfaces with an object. It associates itself
-// with the given instance, and registers as the global handler for handling the
-// PPP_TextInput_Dev interface that the browser calls.
-//
-// You would typically use this either via inheritance on your instance:
-//   class MyInstance : public pp::Instance, public pp::TextInput_Dev {
-//     MyInstance() : pp::TextInput_Dev(this) {
-//     }
-//     ...
-//   };
-//
-// or by composition:
-//   class MyTextInput : public pp::TextInput_Dev {
-//     ...
-//   };
-//
-//   class MyInstance : public pp::Instance {
-//     MyInstance() : text_input_(this) {
-//     }
-//
-//     MyTextInput text_input_;
-//   };
-class TextInput_Dev {
- public:
-  explicit TextInput_Dev(Instance* instance);
-  virtual ~TextInput_Dev();
-
-  virtual void RequestSurroundingText(uint32_t desired_number_of_characters);
-
-  void SetTextInputType(PP_TextInput_Type_Dev type);
-  void UpdateCaretPosition(const Rect& caret, const Rect& bounding_box);
-  void CancelCompositionText();
-  void SelectionChanged();
-  void UpdateSurroundingText(const std::string& text,
-                             uint32_t caret, uint32_t anchor);
-
- private:
-  InstanceHandle instance_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_TEXT_INPUT_DEV_H_
diff --git a/cpp/dev/url_util_dev.cc b/cpp/dev/url_util_dev.cc
deleted file mode 100644
index 96a6f97..0000000
--- a/cpp/dev/url_util_dev.cc
+++ /dev/null
@@ -1,195 +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/cpp/dev/url_util_dev.h"
-
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_URLUtil_Dev_0_6>() {
-  return PPB_URLUTIL_DEV_INTERFACE_0_6;
-}
-
-template <> const char* interface_name<PPB_URLUtil_Dev_0_7>() {
-  return PPB_URLUTIL_DEV_INTERFACE_0_7;
-}
-
-}  // namespace
-
-// static
-const URLUtil_Dev* URLUtil_Dev::Get() {
-  static URLUtil_Dev util;
-  static bool tried_to_init = false;
-  static bool interface_available = false;
-
-  if (!tried_to_init) {
-    tried_to_init = true;
-    if (has_interface<PPB_URLUtil_Dev_0_7>() ||
-        has_interface<PPB_URLUtil_Dev_0_6>())
-      interface_available = true;
-  }
-
-  if (!interface_available)
-    return NULL;
-  return &util;
-}
-
-Var URLUtil_Dev::Canonicalize(const Var& url,
-                              PP_URLComponents_Dev* components) const {
-  if (has_interface<PPB_URLUtil_Dev_0_7>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_URLUtil_Dev_0_7>()->Canonicalize(url.pp_var(),
-                                                                  components));
-  }
-  if (has_interface<PPB_URLUtil_Dev_0_6>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_URLUtil_Dev_0_6>()->Canonicalize(url.pp_var(),
-                                                                  components));
-  }
-  return Var();
-}
-
-Var URLUtil_Dev::ResolveRelativeToURL(const Var& base_url,
-                                      const Var& relative_string,
-                                      PP_URLComponents_Dev* components) const {
-  if (has_interface<PPB_URLUtil_Dev_0_7>()) {
-      return Var(PASS_REF,
-                 get_interface<PPB_URLUtil_Dev_0_7>()->ResolveRelativeToURL(
-                     base_url.pp_var(),
-                     relative_string.pp_var(),
-                     components));
-  }
-  if (has_interface<PPB_URLUtil_Dev_0_6>()) {
-      return Var(PASS_REF,
-                 get_interface<PPB_URLUtil_Dev_0_6>()->ResolveRelativeToURL(
-                     base_url.pp_var(),
-                     relative_string.pp_var(),
-                     components));
-  }
-  return Var();
-}
-
-Var URLUtil_Dev::ResolveRelativeToDocument(
-    const InstanceHandle& instance,
-    const Var& relative_string,
-    PP_URLComponents_Dev* components) const {
-  if (has_interface<PPB_URLUtil_Dev_0_7>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_URLUtil_Dev_0_7>()->ResolveRelativeToDocument(
-                   instance.pp_instance(),
-                   relative_string.pp_var(),
-                   components));
-  }
-  if (has_interface<PPB_URLUtil_Dev_0_6>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_URLUtil_Dev_0_6>()->ResolveRelativeToDocument(
-                   instance.pp_instance(),
-                   relative_string.pp_var(),
-                   components));
-  }
-  return Var();
-}
-
-bool URLUtil_Dev::IsSameSecurityOrigin(const Var& url_a,
-                                       const Var& url_b) const {
-  if (has_interface<PPB_URLUtil_Dev_0_7>()) {
-    return PP_ToBool(
-        get_interface<PPB_URLUtil_Dev_0_7>()->IsSameSecurityOrigin(
-            url_a.pp_var(),
-            url_b.pp_var()));
-  }
-  if (has_interface<PPB_URLUtil_Dev_0_6>()) {
-    return PP_ToBool(
-        get_interface<PPB_URLUtil_Dev_0_6>()->IsSameSecurityOrigin(
-            url_a.pp_var(),
-            url_b.pp_var()));
-  }
-  return false;
-}
-
-bool URLUtil_Dev::DocumentCanRequest(const InstanceHandle& instance,
-                                     const Var& url) const {
-  if (has_interface<PPB_URLUtil_Dev_0_7>()) {
-    return PP_ToBool(
-        get_interface<PPB_URLUtil_Dev_0_7>()->DocumentCanRequest(
-            instance.pp_instance(),
-            url.pp_var()));
-  }
-  if (has_interface<PPB_URLUtil_Dev_0_6>()) {
-    return PP_ToBool(
-        get_interface<PPB_URLUtil_Dev_0_6>()->DocumentCanRequest(
-            instance.pp_instance(),
-            url.pp_var()));
-  }
-  return false;
-}
-
-bool URLUtil_Dev::DocumentCanAccessDocument(
-    const InstanceHandle& active,
-    const InstanceHandle& target) const {
-  if (has_interface<PPB_URLUtil_Dev_0_7>()) {
-    return PP_ToBool(
-        get_interface<PPB_URLUtil_Dev_0_7>()->DocumentCanAccessDocument(
-            active.pp_instance(),
-            target.pp_instance()));
-  }
-  if (has_interface<PPB_URLUtil_Dev_0_6>()) {
-    return PP_ToBool(
-        get_interface<PPB_URLUtil_Dev_0_6>()->DocumentCanAccessDocument(
-            active.pp_instance(),
-            target.pp_instance()));
-  }
-  return false;
-}
-
-Var URLUtil_Dev::GetDocumentURL(const InstanceHandle& instance,
-                                PP_URLComponents_Dev* components) const {
-  if (has_interface<PPB_URLUtil_Dev_0_7>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_URLUtil_Dev_0_7>()->GetDocumentURL(
-                   instance.pp_instance(),
-                   components));
-  }
-  if (has_interface<PPB_URLUtil_Dev_0_6>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_URLUtil_Dev_0_6>()->GetDocumentURL(
-                   instance.pp_instance(),
-                   components));
-  }
-  return Var();
-}
-
-Var URLUtil_Dev::GetPluginInstanceURL(const InstanceHandle& instance,
-                                      PP_URLComponents_Dev* components) const {
-  if (has_interface<PPB_URLUtil_Dev_0_7>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_URLUtil_Dev_0_7>()->GetPluginInstanceURL(
-                   instance.pp_instance(),
-                   components));
-  }
-  if (has_interface<PPB_URLUtil_Dev_0_6>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_URLUtil_Dev_0_6>()->GetPluginInstanceURL(
-                   instance.pp_instance(),
-                   components));
-  }
-  return Var();
-}
-
-Var URLUtil_Dev::GetPluginReferrerURL(const InstanceHandle& instance,
-                                      PP_URLComponents_Dev* components) const {
-  if (has_interface<PPB_URLUtil_Dev_0_7>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_URLUtil_Dev_0_7>()->GetPluginReferrerURL(
-                   instance.pp_instance(),
-                   components));
-  }
-  return Var();
-}
-
-}  // namespace pp
diff --git a/cpp/dev/url_util_dev.h b/cpp/dev/url_util_dev.h
deleted file mode 100644
index 83384da..0000000
--- a/cpp/dev/url_util_dev.h
+++ /dev/null
@@ -1,56 +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_CPP_DEV_URL_UTIL_DEV_H_
-#define PPAPI_CPP_DEV_URL_UTIL_DEV_H_
-
-#include "ppapi/c/dev/ppb_url_util_dev.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-class InstanceHandle;
-
-// Simple wrapper around the PPB_URLUtil interface.
-class URLUtil_Dev {
- public:
-  // This class is just a collection of random functions that aren't
-  // particularly attached to anything. This may return NULL if the
-  // browser doesn't support the URLUtil interface. Since this is a
-  // singleton, don't delete the pointer.
-  static const URLUtil_Dev* Get();
-
-  Var Canonicalize(const Var& url,
-                   PP_URLComponents_Dev* components = NULL) const;
-
-  Var ResolveRelativeToURL(const Var& base_url,
-                           const Var& relative_string,
-                           PP_URLComponents_Dev* components = NULL) const;
-  Var ResolveRelativeToDocument(const InstanceHandle& instance,
-                                const Var& relative_string,
-                                PP_URLComponents_Dev* components = NULL) const;
-
-  bool IsSameSecurityOrigin(const Var& url_a, const Var& url_b) const;
-  bool DocumentCanRequest(const InstanceHandle& instance, const Var& url) const;
-  bool DocumentCanAccessDocument(const InstanceHandle& active,
-                                 const InstanceHandle& target) const;
-  Var GetDocumentURL(const InstanceHandle& instance,
-                     PP_URLComponents_Dev* components = NULL) const;
-
-  Var GetPluginInstanceURL(const InstanceHandle& instance,
-                           PP_URLComponents_Dev* components = NULL) const;
-  Var GetPluginReferrerURL(const InstanceHandle& instance,
-                           PP_URLComponents_Dev* components = NULL) const;
-
- private:
-  URLUtil_Dev() {}
-
-  // Copy and assignment are disallowed.
-  URLUtil_Dev(const URLUtil_Dev& other);
-  URLUtil_Dev& operator=(const URLUtil_Dev& other);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_URL_UTIL_DEV_H_
diff --git a/cpp/dev/video_capture_client_dev.cc b/cpp/dev/video_capture_client_dev.cc
deleted file mode 100644
index 79b8277..0000000
--- a/cpp/dev/video_capture_client_dev.cc
+++ /dev/null
@@ -1,85 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/cpp/dev/video_capture_client_dev.h"
-
-#include "ppapi/c/dev/ppp_video_capture_dev.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-
-namespace pp {
-
-namespace {
-
-const char kPPPVideoCaptureInterface[] = PPP_VIDEO_CAPTURE_DEV_INTERFACE;
-
-void OnDeviceInfo(PP_Instance instance,
-                  PP_Resource resource,
-                  const struct PP_VideoCaptureDeviceInfo_Dev* info,
-                  uint32_t buffer_count,
-                  const PP_Resource buffers[]) {
-  VideoCaptureClient_Dev* client = static_cast<VideoCaptureClient_Dev*>(
-      Instance::GetPerInstanceObject(instance, kPPPVideoCaptureInterface));
-  if (!client)
-    return;
-
-  std::vector<Buffer_Dev> buffer_list;
-  buffer_list.reserve(buffer_count);
-  for (uint32_t i = 0; i < buffer_count; ++i)
-    buffer_list.push_back(Buffer_Dev(buffers[i]));
-
-  client->OnDeviceInfo(resource, *info, buffer_list);
-}
-
-void OnStatus(PP_Instance instance, PP_Resource resource, uint32_t status) {
-  VideoCaptureClient_Dev* client = static_cast<VideoCaptureClient_Dev*>(
-      Instance::GetPerInstanceObject(instance, kPPPVideoCaptureInterface));
-  if (client)
-    client->OnStatus(resource, status);
-}
-
-void OnError(PP_Instance instance, PP_Resource resource, uint32_t error_code) {
-  VideoCaptureClient_Dev* client = static_cast<VideoCaptureClient_Dev*>(
-      Instance::GetPerInstanceObject(instance, kPPPVideoCaptureInterface));
-  if (client)
-    client->OnError(resource, error_code);
-}
-
-void OnBufferReady(PP_Instance instance,
-                   PP_Resource resource,
-                   uint32_t buffer) {
-  VideoCaptureClient_Dev* client = static_cast<VideoCaptureClient_Dev*>(
-      Instance::GetPerInstanceObject(instance, kPPPVideoCaptureInterface));
-  if (client)
-    client->OnBufferReady(resource, buffer);
-}
-
-PPP_VideoCapture_Dev ppp_video_capture = {
-  OnDeviceInfo,
-  OnStatus,
-  OnError,
-  OnBufferReady
-};
-
-}  // namespace
-
-VideoCaptureClient_Dev::VideoCaptureClient_Dev(Instance* instance)
-    : instance_(instance) {
-  Module::Get()->AddPluginInterface(kPPPVideoCaptureInterface,
-                                    &ppp_video_capture);
-  instance->AddPerInstanceObject(kPPPVideoCaptureInterface, this);
-}
-
-VideoCaptureClient_Dev::~VideoCaptureClient_Dev() {
-  Instance::RemovePerInstanceObject(instance_,
-                                    kPPPVideoCaptureInterface, this);
-}
-
-}  // namespace pp
diff --git a/cpp/dev/video_capture_client_dev.h b/cpp/dev/video_capture_client_dev.h
deleted file mode 100644
index 00a1992..0000000
--- a/cpp/dev/video_capture_client_dev.h
+++ /dev/null
@@ -1,39 +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_CPP_DEV_VIDEO_CAPTURE_CLIENT_DEV_H_
-#define PPAPI_CPP_DEV_VIDEO_CAPTURE_CLIENT_DEV_H_
-
-#include <stdint.h>
-
-#include <vector>
-
-#include "ppapi/c/dev/pp_video_capture_dev.h"
-#include "ppapi/cpp/dev/buffer_dev.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class Instance;
-
-class VideoCaptureClient_Dev {
- public:
-  explicit VideoCaptureClient_Dev(Instance* instance);
-  virtual ~VideoCaptureClient_Dev();
-
-  virtual void OnDeviceInfo(PP_Resource video_capture,
-                            const PP_VideoCaptureDeviceInfo_Dev& info,
-                            const std::vector<Buffer_Dev>& buffers) = 0;
-  virtual void OnStatus(PP_Resource video_capture, uint32_t status) = 0;
-  virtual void OnError(PP_Resource video_capture, uint32_t error) = 0;
-  virtual void OnBufferReady(PP_Resource video_capture, uint32_t buffer) = 0;
-
- private:
-  InstanceHandle instance_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_VIDEO_CAPTURE_CLIENT_DEV_H_
diff --git a/cpp/dev/video_capture_dev.cc b/cpp/dev/video_capture_dev.cc
deleted file mode 100644
index 358dfcc..0000000
--- a/cpp/dev/video_capture_dev.cc
+++ /dev/null
@@ -1,109 +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/cpp/dev/video_capture_dev.h"
-
-#include "ppapi/c/dev/ppb_video_capture_dev.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_VideoCapture_Dev_0_3>() {
-  return PPB_VIDEOCAPTURE_DEV_INTERFACE_0_3;
-}
-
-}  // namespace
-
-VideoCapture_Dev::VideoCapture_Dev(const InstanceHandle& instance) {
-  if (has_interface<PPB_VideoCapture_Dev_0_3>()) {
-    PassRefFromConstructor(get_interface<PPB_VideoCapture_Dev_0_3>()->Create(
-        instance.pp_instance()));
-  }
-}
-
-VideoCapture_Dev::VideoCapture_Dev(PP_Resource resource)
-    : Resource(resource) {
-}
-
-VideoCapture_Dev::~VideoCapture_Dev() {
-}
-
-// static
-bool VideoCapture_Dev::IsAvailable() {
-  return has_interface<PPB_VideoCapture_Dev_0_3>();
-}
-
-int32_t VideoCapture_Dev::EnumerateDevices(
-    const CompletionCallbackWithOutput<std::vector<DeviceRef_Dev> >& callback) {
-  if (has_interface<PPB_VideoCapture_Dev_0_3>()) {
-    return get_interface<PPB_VideoCapture_Dev_0_3>()->EnumerateDevices(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  }
-
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t VideoCapture_Dev::MonitorDeviceChange(
-    PP_MonitorDeviceChangeCallback callback,
-    void* user_data) {
-  if (has_interface<PPB_VideoCapture_Dev_0_3>()) {
-    return get_interface<PPB_VideoCapture_Dev_0_3>()->MonitorDeviceChange(
-        pp_resource(), callback, user_data);
-  }
-
-  return PP_ERROR_NOINTERFACE;
-}
-
-int32_t VideoCapture_Dev::Open(
-    const DeviceRef_Dev& device_ref,
-    const PP_VideoCaptureDeviceInfo_Dev& requested_info,
-    uint32_t buffer_count,
-    const CompletionCallback& callback) {
-  if (has_interface<PPB_VideoCapture_Dev_0_3>()) {
-    return get_interface<PPB_VideoCapture_Dev_0_3>()->Open(
-        pp_resource(), device_ref.pp_resource(), &requested_info, buffer_count,
-        callback.pp_completion_callback());
-  }
-
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t VideoCapture_Dev::StartCapture() {
-  if (has_interface<PPB_VideoCapture_Dev_0_3>()) {
-    return get_interface<PPB_VideoCapture_Dev_0_3>()->StartCapture(
-        pp_resource());
-  }
-
-  return PP_ERROR_NOINTERFACE;
-}
-
-int32_t VideoCapture_Dev::ReuseBuffer(uint32_t buffer) {
-  if (has_interface<PPB_VideoCapture_Dev_0_3>()) {
-    return get_interface<PPB_VideoCapture_Dev_0_3>()->ReuseBuffer(pp_resource(),
-                                                                  buffer);
-  }
-
-  return PP_ERROR_NOINTERFACE;
-}
-
-int32_t VideoCapture_Dev::StopCapture() {
-  if (has_interface<PPB_VideoCapture_Dev_0_3>()) {
-    return get_interface<PPB_VideoCapture_Dev_0_3>()->StopCapture(
-        pp_resource());
-  }
-
-  return PP_ERROR_NOINTERFACE;
-}
-
-void VideoCapture_Dev::Close() {
-  if (has_interface<PPB_VideoCapture_Dev_0_3>()) {
-    get_interface<PPB_VideoCapture_Dev_0_3>()->Close(pp_resource());
-  }
-}
-
-}  // namespace pp
diff --git a/cpp/dev/video_capture_dev.h b/cpp/dev/video_capture_dev.h
deleted file mode 100644
index c3b2f0d..0000000
--- a/cpp/dev/video_capture_dev.h
+++ /dev/null
@@ -1,48 +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_CPP_DEV_VIDEO_CAPTURE_DEV_H_
-#define PPAPI_CPP_DEV_VIDEO_CAPTURE_DEV_H_
-
-#include <stdint.h>
-
-#include <vector>
-
-#include "ppapi/c/dev/pp_video_capture_dev.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/dev/device_ref_dev.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class InstanceHandle;
-
-class VideoCapture_Dev : public Resource {
- public:
-  explicit VideoCapture_Dev(const InstanceHandle& instance);
-  VideoCapture_Dev(PP_Resource resource);
-
-  virtual ~VideoCapture_Dev();
-
-  // Returns true if the required interface is available.
-  static bool IsAvailable();
-
-  int32_t EnumerateDevices(
-      const CompletionCallbackWithOutput<std::vector<DeviceRef_Dev> >&
-          callback);
-  int32_t MonitorDeviceChange(PP_MonitorDeviceChangeCallback callback,
-                              void* user_data);
-  int32_t Open(const DeviceRef_Dev& device_ref,
-               const PP_VideoCaptureDeviceInfo_Dev& requested_info,
-               uint32_t buffer_count,
-               const CompletionCallback& callback);
-  int32_t StartCapture();
-  int32_t ReuseBuffer(uint32_t buffer);
-  int32_t StopCapture();
-  void Close();
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_VIDEO_CAPTURE_DEV_H_
diff --git a/cpp/dev/video_decoder_client_dev.cc b/cpp/dev/video_decoder_client_dev.cc
deleted file mode 100644
index 0be4d3f..0000000
--- a/cpp/dev/video_decoder_client_dev.cc
+++ /dev/null
@@ -1,86 +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/cpp/dev/video_decoder_client_dev.h"
-
-#include "ppapi/c/dev/ppp_video_decoder_dev.h"
-#include "ppapi/cpp/dev/video_decoder_dev.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-const char kPPPVideoDecoderInterface[] = PPP_VIDEODECODER_DEV_INTERFACE;
-
-// Callback to provide buffers for the decoded output pictures.
-void ProvidePictureBuffers(PP_Instance instance,
-                           PP_Resource decoder,
-                           uint32_t req_num_of_bufs,
-                           const PP_Size* dimensions,
-                           uint32_t texture_target) {
-  void* object = Instance::GetPerInstanceObject(instance,
-                                                kPPPVideoDecoderInterface);
-  if (!object)
-    return;
-  static_cast<VideoDecoderClient_Dev*>(object)->ProvidePictureBuffers(
-      decoder, req_num_of_bufs, *dimensions, texture_target);
-}
-
-void DismissPictureBuffer(PP_Instance instance,
-                          PP_Resource decoder,
-                          int32_t picture_buffer_id) {
-  void* object = Instance::GetPerInstanceObject(instance,
-                                                kPPPVideoDecoderInterface);
-  if (!object)
-    return;
-  static_cast<VideoDecoderClient_Dev*>(object)->DismissPictureBuffer(
-      decoder, picture_buffer_id);
-}
-
-void PictureReady(PP_Instance instance,
-                  PP_Resource decoder,
-                  const PP_Picture_Dev* picture) {
-  void* object = Instance::GetPerInstanceObject(instance,
-                                                kPPPVideoDecoderInterface);
-  if (!object)
-    return;
-  static_cast<VideoDecoderClient_Dev*>(object)->PictureReady(decoder, *picture);
-}
-
-void NotifyError(PP_Instance instance,
-                 PP_Resource decoder,
-                 PP_VideoDecodeError_Dev error) {
-  void* object = Instance::GetPerInstanceObject(instance,
-                                                kPPPVideoDecoderInterface);
-  if (!object)
-    return;
-  static_cast<VideoDecoderClient_Dev*>(object)->NotifyError(decoder, error);
-}
-
-static PPP_VideoDecoder_Dev videodecoder_interface = {
-  &ProvidePictureBuffers,
-  &DismissPictureBuffer,
-  &PictureReady,
-  &NotifyError,
-};
-
-}  // namespace
-
-VideoDecoderClient_Dev::VideoDecoderClient_Dev(Instance* instance)
-    : associated_instance_(instance) {
-  Module::Get()->AddPluginInterface(kPPPVideoDecoderInterface,
-                                    &videodecoder_interface);
-  instance->AddPerInstanceObject(kPPPVideoDecoderInterface, this);
-}
-
-VideoDecoderClient_Dev::~VideoDecoderClient_Dev() {
-  Instance::RemovePerInstanceObject(associated_instance_,
-                                    kPPPVideoDecoderInterface, this);
-}
-
-}  // namespace pp
diff --git a/cpp/dev/video_decoder_client_dev.h b/cpp/dev/video_decoder_client_dev.h
deleted file mode 100644
index 3d880c0..0000000
--- a/cpp/dev/video_decoder_client_dev.h
+++ /dev/null
@@ -1,50 +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_CPP_DEV_VIDEO_DECODER_CLIENT_DEV_H_
-#define PPAPI_CPP_DEV_VIDEO_DECODER_CLIENT_DEV_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/dev/pp_video_dev.h"
-#include "ppapi/cpp/instance_handle.h"
-
-namespace pp {
-
-class Instance;
-
-// This class provides a C++ interface for callbacks related to video decoding.
-// It is the C++ counterpart to PPP_VideoDecoder_Dev.
-// You would normally use multiple inheritance to derive from this class in your
-// instance.
-class VideoDecoderClient_Dev {
- public:
-  VideoDecoderClient_Dev(Instance* instance);
-  virtual ~VideoDecoderClient_Dev();
-
-  // Callback to provide buffers for the decoded output pictures.
-  virtual void ProvidePictureBuffers(PP_Resource decoder,
-                                     uint32_t req_num_of_bufs,
-                                     const PP_Size& dimensions,
-                                     uint32_t texture_target) = 0;
-
-  // Callback for decoder to deliver unneeded picture buffers back to the
-  // plugin.
-  virtual void DismissPictureBuffer(PP_Resource decoder,
-                                    int32_t picture_buffer_id) = 0;
-
-  // Callback to deliver decoded pictures ready to be displayed.
-  virtual void PictureReady(PP_Resource decoder,
-                            const PP_Picture_Dev& picture) = 0;
-
-  // Callback to notify about decoding errors.
-  virtual void NotifyError(PP_Resource decoder,
-                           PP_VideoDecodeError_Dev error) = 0;
-
- private:
-  InstanceHandle associated_instance_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_VIDEO_DECODER_CLIENT_DEV_H_
diff --git a/cpp/dev/video_decoder_dev.cc b/cpp/dev/video_decoder_dev.cc
deleted file mode 100644
index 84d5f38..0000000
--- a/cpp/dev/video_decoder_dev.cc
+++ /dev/null
@@ -1,78 +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/cpp/dev/video_decoder_dev.h"
-
-#include "ppapi/c/dev/ppb_video_decoder_dev.h"
-#include "ppapi/c/dev/ppp_video_decoder_dev.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/graphics_3d.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_VideoDecoder_Dev>() {
-  return PPB_VIDEODECODER_DEV_INTERFACE;
-}
-
-}  // namespace
-
-VideoDecoder_Dev::VideoDecoder_Dev(const InstanceHandle& instance,
-                                   const Graphics3D& context,
-                                   PP_VideoDecoder_Profile profile) {
-  if (!has_interface<PPB_VideoDecoder_Dev>())
-    return;
-  PassRefFromConstructor(get_interface<PPB_VideoDecoder_Dev>()->Create(
-      instance.pp_instance(), context.pp_resource(), profile));
-}
-
-VideoDecoder_Dev::VideoDecoder_Dev(PP_Resource resource) : Resource(resource) {
-}
-
-VideoDecoder_Dev::~VideoDecoder_Dev() {
-}
-
-void VideoDecoder_Dev::AssignPictureBuffers(
-    const std::vector<PP_PictureBuffer_Dev>& buffers) {
-  if (!has_interface<PPB_VideoDecoder_Dev>() || !pp_resource())
-    return;
-  get_interface<PPB_VideoDecoder_Dev>()->AssignPictureBuffers(
-      pp_resource(), static_cast<uint32_t>(buffers.size()), &buffers[0]);
-}
-
-int32_t VideoDecoder_Dev::Decode(
-    const PP_VideoBitstreamBuffer_Dev& bitstream_buffer,
-    const CompletionCallback& callback) {
-  if (!has_interface<PPB_VideoDecoder_Dev>())
-    return callback.MayForce(PP_ERROR_NOINTERFACE);
-  return get_interface<PPB_VideoDecoder_Dev>()->Decode(
-      pp_resource(), &bitstream_buffer, callback.pp_completion_callback());
-}
-
-void VideoDecoder_Dev::ReusePictureBuffer(int32_t picture_buffer_id) {
-  if (!has_interface<PPB_VideoDecoder_Dev>() || !pp_resource())
-    return;
-  get_interface<PPB_VideoDecoder_Dev>()->ReusePictureBuffer(
-      pp_resource(), picture_buffer_id);
-}
-
-int32_t VideoDecoder_Dev::Flush(const CompletionCallback& callback) {
-  if (!has_interface<PPB_VideoDecoder_Dev>())
-    return callback.MayForce(PP_ERROR_NOINTERFACE);
-  return get_interface<PPB_VideoDecoder_Dev>()->Flush(
-      pp_resource(), callback.pp_completion_callback());
-}
-
-int32_t VideoDecoder_Dev::Reset(const CompletionCallback& callback) {
-  if (!has_interface<PPB_VideoDecoder_Dev>())
-    return callback.MayForce(PP_ERROR_NOINTERFACE);
-  return get_interface<PPB_VideoDecoder_Dev>()->Reset(
-      pp_resource(), callback.pp_completion_callback());
-}
-
-}  // namespace pp
diff --git a/cpp/dev/video_decoder_dev.h b/cpp/dev/video_decoder_dev.h
deleted file mode 100644
index d728a03..0000000
--- a/cpp/dev/video_decoder_dev.h
+++ /dev/null
@@ -1,47 +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_CPP_DEV_VIDEO_DECODER_DEV_H_
-#define PPAPI_CPP_DEV_VIDEO_DECODER_DEV_H_
-
-#include <stdint.h>
-
-#include <vector>
-
-#include "ppapi/c/dev/pp_video_dev.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/dev/buffer_dev.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class Graphics3D;
-class InstanceHandle;
-
-// C++ wrapper for the Pepper Video Decoder interface. For more detailed
-// documentation refer to the C interfaces.
-//
-// C++ version of the PPB_VideoDecoder_Dev interface.
-class VideoDecoder_Dev : public Resource {
- public:
-  // See PPB_VideoDecoder_Dev::Create.
-  VideoDecoder_Dev(const InstanceHandle& instance,
-                   const Graphics3D& context,
-                   PP_VideoDecoder_Profile profile);
-  explicit VideoDecoder_Dev(PP_Resource resource);
-
-  virtual ~VideoDecoder_Dev();
-
-  // PPB_VideoDecoder_Dev implementation.
-  void AssignPictureBuffers(const std::vector<PP_PictureBuffer_Dev>& buffers);
-  int32_t Decode(const PP_VideoBitstreamBuffer_Dev& bitstream_buffer,
-                 const CompletionCallback& callback);
-  void ReusePictureBuffer(int32_t picture_buffer_id);
-  int32_t Flush(const CompletionCallback& callback);
-  int32_t Reset(const CompletionCallback& callback);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_VIDEO_DECODER_DEV_H_
diff --git a/cpp/dev/view_dev.cc b/cpp/dev/view_dev.cc
deleted file mode 100644
index a00d57d..0000000
--- a/cpp/dev/view_dev.cc
+++ /dev/null
@@ -1,32 +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/cpp/dev/view_dev.h"
-
-#include "ppapi/c/dev/ppb_view_dev.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_View_Dev>() {
-  return PPB_VIEW_DEV_INTERFACE;
-}
-
-}  // namespace
-
-float ViewDev::GetDeviceScale() const {
-  if (!has_interface<PPB_View_Dev>())
-    return 1.0f;
-  return get_interface<PPB_View_Dev>()->GetDeviceScale(pp_resource());
-}
-
-float ViewDev::GetCSSScale() const {
-  if (!has_interface<PPB_View_Dev>())
-    return 1.0f;
-  return get_interface<PPB_View_Dev>()->GetCSSScale(pp_resource());
-}
-
-}  // namespace pp
diff --git a/cpp/dev/view_dev.h b/cpp/dev/view_dev.h
deleted file mode 100644
index f2f512b..0000000
--- a/cpp/dev/view_dev.h
+++ /dev/null
@@ -1,44 +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_CPP_DEV_VIEW_DEV_H_
-#define PPAPI_CPP_DEV_VIEW_DEV_H_
-
-#include "ppapi/cpp/view.h"
-
-namespace pp {
-
-// ViewDev is a version of View that exposes under-development APIs related to
-// HiDPI
-class ViewDev : public View {
- public:
-  ViewDev() : View() {}
-  ViewDev(const View& other) : View(other) {}
-
-  virtual ~ViewDev() {}
-
-  /// GetDeviceScale returns the scale factor between device pixels and DIPs
-  /// (also known as logical pixels or UI pixels on some platforms). This allows
-  /// the developer to render their contents at device resolution, even as
-  /// coordinates / sizes are given in DIPs through the API.
-  ///
-  /// Note that the coordinate system for Pepper APIs is DIPs. Also note that
-  /// one DIP might not equal one CSS pixel - when page scale/zoom is in effect.
-  ///
-  /// @return A <code>float</code> value representing the number of device
-  /// pixels per DIP.
-  float GetDeviceScale() const;
-
-  /// GetCSSScale returns the scale factor between DIPs and CSS pixels. This
-  /// allows proper scaling between DIPs - as sent via the Pepper API - and CSS
-  /// pixel coordinates used for Web content.
-  ///
-  /// @return A <code>float</code> value representing the number of DIPs per CSS
-  /// pixel.
-  float GetCSSScale() const;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DEV_VIEW_DEV_H_
diff --git a/cpp/directory_entry.cc b/cpp/directory_entry.cc
deleted file mode 100644
index 6cd7e1b..0000000
--- a/cpp/directory_entry.cc
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright 2010 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
-#pragma allow_unsafe_libc_calls
-#endif
-
-#include "ppapi/cpp/directory_entry.h"
-
-#include <string.h>
-
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module.h"
-
-namespace pp {
-
-DirectoryEntry::DirectoryEntry() {
-  memset(&data_, 0, sizeof(data_));
-}
-
-DirectoryEntry::DirectoryEntry(
-    PassRef, const PP_DirectoryEntry& data) {
-  data_.file_ref = data.file_ref;
-  data_.file_type = data.file_type;
-}
-
-DirectoryEntry::DirectoryEntry(const DirectoryEntry& other) {
-  data_.file_ref = other.data_.file_ref;
-  data_.file_type = other.data_.file_type;
-  if (data_.file_ref)
-    Module::Get()->core()->AddRefResource(data_.file_ref);
-}
-
-DirectoryEntry::~DirectoryEntry() {
-  if (data_.file_ref)
-    Module::Get()->core()->ReleaseResource(data_.file_ref);
-}
-
-DirectoryEntry& DirectoryEntry::operator=(
-    const DirectoryEntry& other) {
-  if (data_.file_ref)
-    Module::Get()->core()->ReleaseResource(data_.file_ref);
-  data_ = other.data_;
-  if (data_.file_ref)
-    Module::Get()->core()->AddRefResource(data_.file_ref);
-  return *this;
-}
-
-namespace internal {
-
-DirectoryEntryArrayOutputAdapterWithStorage::
-    DirectoryEntryArrayOutputAdapterWithStorage() {
-  set_output(&temp_storage_);
-}
-
-DirectoryEntryArrayOutputAdapterWithStorage::
-    ~DirectoryEntryArrayOutputAdapterWithStorage() {
-  if (!temp_storage_.empty()) {
-    // An easy way to release the resource references held by |temp_storage_|.
-    // A destructor for PP_DirectoryEntry will release them.
-    output();
-  }
-}
-
-std::vector<DirectoryEntry>&
-    DirectoryEntryArrayOutputAdapterWithStorage::output() {
-  PP_DCHECK(output_storage_.empty());
-  typedef std::vector<PP_DirectoryEntry> Entries;
-  for (Entries::iterator it = temp_storage_.begin();
-       it != temp_storage_.end();
-       ++it) {
-    output_storage_.push_back(DirectoryEntry(PASS_REF, *it));
-  }
-  temp_storage_.clear();
-  return output_storage_;
-}
-
-}  // namespace internal
-}  // namespace pp
diff --git a/cpp/directory_entry.h b/cpp/directory_entry.h
deleted file mode 100644
index 7cf2160..0000000
--- a/cpp/directory_entry.h
+++ /dev/null
@@ -1,129 +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_CPP_DIRECTORY_ENTRY_H_
-#define PPAPI_CPP_DIRECTORY_ENTRY_H_
-
-#include <vector>
-
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_directory_entry.h"
-#include "ppapi/cpp/array_output.h"
-#include "ppapi/cpp/file_ref.h"
-#include "ppapi/cpp/output_traits.h"
-#include "ppapi/cpp/pass_ref.h"
-
-/// @file
-/// This file defines the API used to handle a directory entry.
-
-namespace pp {
-
-/// The <code>DirectoryEntry</code> class represents information about
-/// a directory entry.
-class DirectoryEntry {
- public:
-  /// Default constructor for creating an is_null() <code>DirectoryEntry</code>
-  /// object.
-  DirectoryEntry();
-
-  /// A constructor used when you have a <code>PP_DirectoryEntry</code> which
-  /// contains a <code>FileRef</code> that has already been reference counted
-  /// as a return value.
-  ///
-  /// @param[in] data A <code>PP_DirectoryEntry</code> to be copied.
-  DirectoryEntry(PassRef, const PP_DirectoryEntry& data);
-
-  /// A copy constructor for <code>DirectoryEntry</code>. This constructor
-  /// increments a reference count of the <code>FileRef</code> held by this
-  /// DirectoryEntry.
-  ///
-  /// @param[in] other A pointer to a <code>DirectoryEntry</code>.
-  DirectoryEntry(const DirectoryEntry& other);
-
-  /// A destructor that decrements a reference count of the <code>FileRef</code>
-  /// held by this <code>DirectoryEntry</code>.
-  ~DirectoryEntry();
-
-  /// This function assigns one <code>DirectoryEntry</code> object to this
-  /// <code>DirectoryEntry</code> object. This function increases the reference
-  /// count of the <code>FileRef</code> of the other DirectoryEntry while
-  /// decrementing the reference count of the FileRef of this DirectoryEntry.
-  ///
-  /// @param[in] other A pointer to a <code>DirectoryEntry</code>.
-  ///
-  /// @return A new <code>DirectoryEntry</code> object.
-  DirectoryEntry& operator=(const DirectoryEntry& other);
-
-  /// This function determines if this <code>DirectoryEntry</code> is a null
-  /// value.
-  ///
-  /// @return true if this <code>DirectoryEntry</code> is null, otherwise false.
-  bool is_null() const { return !data_.file_ref; }
-
-  /// This function returns the <code>FileRef</code> held by this
-  /// <code>DirectoryEntry</code>.
-  ///
-  /// @return A <code>FileRef</code> of the file.
-  FileRef file_ref() const { return FileRef(data_.file_ref); }
-
-  /// This function returns the <code>PP_FileType</code> of the file referenced
-  /// by this <code>DirectoryEntry</code>.
-  ///
-  /// @return A <code>PP_FileType</code> of the file.
-  PP_FileType file_type() const { return data_.file_type; }
-
- private:
-  PP_DirectoryEntry data_;
-};
-
-namespace internal {
-
-class DirectoryEntryArrayOutputAdapterWithStorage
-    : public ArrayOutputAdapter<PP_DirectoryEntry> {
- public:
-  DirectoryEntryArrayOutputAdapterWithStorage();
-  virtual ~DirectoryEntryArrayOutputAdapterWithStorage();
-
-  // Returns the final array of resource objects, converting the
-  // PP_DirectoryEntry written by the browser to pp::DirectoryEntry
-  // objects.
-  //
-  // This function should only be called once or we would end up converting
-  // the array more than once, which would mess up the refcounting.
-  std::vector<DirectoryEntry>& output();
-
- private:
-  // The browser will write the PP_DirectoryEntrys into this array.
-  std::vector<PP_DirectoryEntry> temp_storage_;
-
-  // When asked for the output, the PP_DirectoryEntrys above will be
-  // converted to the pp::DirectoryEntrys in this array for passing to the
-  // calling code.
-  std::vector<DirectoryEntry> output_storage_;
-};
-
-// A specialization of CallbackOutputTraits to provide the callback system the
-// information on how to handle vectors of pp::DirectoryEntry. This converts
-// PP_DirectoryEntry to pp::DirectoryEntry when passing to the plugin.
-template <>
-struct CallbackOutputTraits< std::vector<DirectoryEntry> > {
-  typedef PP_ArrayOutput APIArgType;
-  typedef DirectoryEntryArrayOutputAdapterWithStorage StorageType;
-
-  static inline APIArgType StorageToAPIArg(StorageType& t) {
-    return t.pp_array_output();
-  }
-
-  static inline std::vector<DirectoryEntry>& StorageToPluginArg(
-      StorageType& t) {
-    return t.output();
-  }
-
-  static inline void Initialize(StorageType* /* t */) {}
-};
-
-}  // namespace internal
-}  // namespace pp
-
-#endif  // PPAPI_CPP_DIRECTORY_ENTRY_H_
diff --git a/cpp/documentation/Doxyfile b/cpp/documentation/Doxyfile
deleted file mode 100644
index 8e2a671..0000000
--- a/cpp/documentation/Doxyfile
+++ /dev/null
@@ -1,1732 +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.
-
-# Doxyfile 1.7.4
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
-# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-DOXYFILE_ENCODING      = UTF-8
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME           =
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER         =
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer
-# a quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF          =
-
-# With the PROJECT_LOGO tag one can specify an logo or icon that is
-# included in the documentation. The maximum height of the logo should not
-# exceed 55 pixels and the maximum width should not exceed 200 pixels.
-# Doxygen will copy the logo to the output directory.
-
-PROJECT_LOGO           =
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = PepperCPPRefDocs
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
-# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
-# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
-# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = NO
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       = "The $name class" \
-                         "The $name widget" \
-                         "The $name file" \
-                         is \
-                         provides \
-                         specifies \
-                         contains \
-                         represents \
-                         a \
-                         an \
-                         the
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH        =
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful if your file system
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF      = YES
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF           = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for
-# Java. For instance, namespaces will be presented as packages, qualified
-# scopes will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
-
-OPTIMIZE_FOR_FORTRAN   = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for
-# VHDL.
-
-OPTIMIZE_OUTPUT_VHDL   = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given extension.
-# Doxygen has a built-in mapping, but you can override or extend it using this
-# tag. The format is ext=language, where ext is a file extension, and language
-# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
-# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
-# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
-# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
-# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
-
-EXTENSION_MAPPING      =
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also makes the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT        = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
-# Doxygen will parse them like normal C++ but will assume all classes use public
-# instead of private inheritance when no explicit protection keyword is present.
-
-SIP_SUPPORT            = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate getter
-# and setter methods for a property. Setting this option to YES (the default)
-# will make doxygen replace the get and set methods by a property in the
-# documentation. This will only work if the methods are indeed getting or
-# setting a simple type. If this is not the case, or you want to show the
-# methods anyway, you should set this option to NO.
-
-IDL_PROPERTY_SUPPORT   = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
-# unions are shown inside the group in which they are included (e.g. using
-# @ingroup) instead of on a separate page (for HTML and Man pages) or
-# section (for LaTeX and RTF).
-
-INLINE_GROUPED_CLASSES = NO
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
-# is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-
-TYPEDEF_HIDES_STRUCT   = NO
-
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
-# determine which symbols to keep in memory and which to flush to disk.
-# When the cache is full, less often used symbols will be written to disk.
-# For small to medium size projects (<1000 input files) the default value is
-# probably good enough. For larger projects a too small cache size can cause
-# doxygen to be busy swapping symbols to and from disk most of the time
-# causing a significant performance penalty.
-# If the system has enough physical memory increasing the cache will improve the
-# performance by keeping more symbols in memory. Note that the value works on
-# a logarithmic scale so increasing the size by one will roughly double the
-# memory usage. The cache size is given by this formula:
-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols
-
-SYMBOL_CACHE_SIZE      = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base
-# name of the file that contains the anonymous namespace. By default
-# anonymous namespaces are hidden.
-
-EXTRACT_ANON_NSPACES   = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = NO
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES     = NO
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
-# will list include files with double quotes in the documentation
-# rather than with sharp brackets.
-
-FORCE_LOCAL_INCLUDES   = NO
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
-# will sort the (brief and detailed) documentation of class members so that
-# constructors and destructors are listed first. If set to NO (the default)
-# the constructors will appear in the respective orders defined by
-# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
-# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
-# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the default)
-# the group names will appear in their defined order.
-
-SORT_GROUP_NAMES       = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
-# do proper type resolution of all parameters of a function it will reject a
-# match between the prototype and the implementation of a member function even
-# if there is only one candidate or it is obvious which candidate to choose
-# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
-# will still accept a match between prototype and implementation in such cases.
-
-STRICT_PROTO_MATCHING  = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or macro consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and macros in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 27
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES       = NO
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
-# This will remove the Files entry from the Quick Index and from the
-# Folder Tree View (if specified). The default is YES.
-
-SHOW_FILES             = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page.  This will remove the Namespaces entry from the Quick Index
-# and from the Folder Tree View (if specified). The default is YES.
-
-SHOW_NAMESPACES        = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER    =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. The create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option.
-# You can optionally specify a file name after the option, if omitted
-# DoxygenLayout.xml will be used as the name of the layout file.
-
-LAYOUT_FILE            = ./documentation/DoxygenLayout.xml
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# The WARN_NO_PARAMDOC option can be enabled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC       = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE           =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT                  = . \
-                         ./documentation
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
-# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
-# the list of possible encodings.
-
-INPUT_ENCODING         = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
-# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
-# *.f90 *.f *.for *.vhd *.vhdl
-
-FILE_PATTERNS          = *.h \
-                         *.dox
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE              = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE                =
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       = _*.h
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS        =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH           =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS       = *
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH             = ./documentation/images-dox
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.  If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER           =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis.  Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match.  The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty or if
-# non of the patterns match the file name, INPUT_FILTER is applied.
-
-FILTER_PATTERNS        =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = NO
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
-# and it is also possible to disable source filtering for a specific pattern
-# using *.ext= (so without naming a filter). This option only has effect when
-# FILTER_SOURCE_FILES is enabled.
-
-FILTER_SOURCE_PATTERNS =
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = NO
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = NO
-
-# If the REFERENCES_RELATION tag is set to YES
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.  Otherwise they will link to the documentation.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header. Note that when using a custom header you are responsible
-# for the proper inclusion of any scripts and style sheets that doxygen
-# needs, which is dependent on the configuration options used.
-# It is adviced to generate a default header using "doxygen -w html
-# header.html footer.html stylesheet.css YourConfigFile" and then modify
-# that header. Note that the header is subject to change so you typically
-# have to redo this when upgrading to a newer version of doxygen or when
-# changing the value of configuration settings such as GENERATE_TREEVIEW!
-
-HTML_HEADER            = documentation/header.html
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER            = documentation/footer.html
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        = documentation/stylesheet.css
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that
-# the files will be copied as-is; there are no commands or markers available.
-
-HTML_EXTRA_FILES       =
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
-# Doxygen will adjust the colors in the stylesheet and background images
-# according to this color. Hue is specified as an angle on a colorwheel,
-# see http://en.wikipedia.org/wiki/Hue for more information.
-# For instance the value 0 represents red, 60 is yellow, 120 is green,
-# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
-# The allowed range is 0 to 359.
-
-HTML_COLORSTYLE_HUE    = 217
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
-# the colors in the HTML output. For a value of 0 the output will use
-# grayscales only. A value of 255 will produce the most vivid colors.
-
-HTML_COLORSTYLE_SAT    = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
-# the luminance component of the colors in the HTML output. Values below
-# 100 gradually make the output lighter, whereas values above 100 make
-# the output darker. The value divided by 100 is the actual gamma applied,
-# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
-# and 100 does not change the gamma.
-
-HTML_COLORSTYLE_GAMMA  = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting
-# this to NO can help when comparing the output of multiple runs.
-
-HTML_TIMESTAMP         = YES
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-
-HTML_DYNAMIC_SECTIONS  = NO
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files
-# will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5 (Leopard).
-# To create a documentation set, doxygen will generate a Makefile in the
-# HTML output directory. Running make will produce the docset in that
-# directory and running "make install" will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
-# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-
-GENERATE_DOCSET        = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
-# feed. A documentation feed provides an umbrella under which multiple
-# documentation sets from a single provider (such as a company or product suite)
-# can be grouped.
-
-DOCSET_FEEDNAME        = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
-# should uniquely identify the documentation set bundle. This should be a
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
-# will append .docset to the name.
-
-DOCSET_BUNDLE_ID       = org.doxygen.Project
-
-# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-
-DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
-
-# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
-
-DOCSET_PUBLISHER_NAME  = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE               =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
-
-CHM_INDEX_ENCODING     =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
-# that can be used as input for Qt's qhelpgenerator to generate a
-# Qt Compressed Help (.qch) of the generated HTML documentation.
-
-GENERATE_QHP           = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
-# be used to specify the file name of the resulting .qch file.
-# The path specified is relative to the HTML output folder.
-
-QCH_FILE               =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
-
-QHP_NAMESPACE          = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
-
-QHP_VIRTUAL_FOLDER     = doc
-
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
-# add. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
-
-QHP_CUST_FILTER_NAME   =
-
-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see
-# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
-# Qt Help Project / Custom Filters</a>.
-
-QHP_CUST_FILTER_ATTRS  =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's
-# filter section matches.
-# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
-# Qt Help Project / Filter Attributes</a>.
-
-QHP_SECT_FILTER_ATTRS  =
-
-# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
-# be used to specify the location of Qt's qhelpgenerator.
-# If non-empty doxygen will try to run qhelpgenerator on the generated
-# .qhp file.
-
-QHG_LOCATION           =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
-# will be generated, which together with the HTML files, form an Eclipse help
-# plugin. To install this plugin and make it available under the help contents
-# menu in Eclipse, the contents of the directory containing the HTML and XML
-# files needs to be copied into the plugins directory of eclipse. The name of
-# the directory within the plugins directory should be the same as
-# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
-# the help appears.
-
-GENERATE_ECLIPSEHELP   = NO
-
-# A unique identifier for the eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have
-# this name.
-
-ECLIPSE_DOC_ID         = org.doxygen.Project
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX          = NO
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
-# (range [0,1..20]) that doxygen will group on one line in the generated HTML
-# documentation. Note that a value of 0 will completely suppress the enum
-# values from appearing in the overview section.
-
-ENUM_VALUES_PER_LINE   = 0
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information.
-# If the tag value is set to YES, a side panel will be generated
-# containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
-# Windows users are probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW      = NO
-
-# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
-# and Class Hierarchy pages using a tree view instead of an ordered list.
-
-USE_INLINE_TREES       = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH         = 251
-
-# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
-# links to external symbols imported via tag files in a separate window.
-
-EXT_LINKS_IN_WINDOW    = NO
-
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# when you change the font size after a successful doxygen run you need
-# to manually remove any form_*.png images from the HTML output directory
-# to force them to be regenerated.
-
-FORMULA_FONTSIZE       = 10
-
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are
-# not supported properly for IE 6.0, but are supported on all modern browsers.
-# Note that when changing this option you need to delete any form_*.png files
-# in the HTML output before the changes have effect.
-
-FORMULA_TRANSPARENT    = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
-# (see http://www.mathjax.org) which uses client side Javascript for the
-# rendering instead of using prerendered bitmaps. Use this if you do not
-# have LaTeX installed or if you want to formulas look prettier in the HTML
-# output. When enabled you also need to install MathJax separately and
-# configure the path to it using the MATHJAX_RELPATH option.
-
-USE_MATHJAX            = NO
-
-# When MathJax is enabled you need to specify the location relative to the
-# HTML output directory using the MATHJAX_RELPATH option. The destination
-# directory should contain the MathJax.js script. For instance, if the mathjax
-# directory is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to the
-# mathjax.org site, so you can quickly see the result without installing
-# MathJax, but it is strongly recommended to install a local copy of MathJax
-# before deployment.
-
-MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box
-# for the HTML output. The underlying search engine uses javascript
-# and DHTML and should work on any modern browser. Note that when using
-# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
-# (GENERATE_DOCSET) there is already a search function so this one should
-# typically be disabled. For large projects the javascript based search engine
-# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
-
-SEARCHENGINE           = NO
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a PHP enabled web server instead of at the web client
-# using Javascript. Doxygen will generate the search PHP script and index
-# file to put on the web server. The advantage of the server
-# based approach is that it scales better to large projects and allows
-# full text search. The disadvantages are that it is more difficult to setup
-# and does not have live searching capabilities.
-
-SERVER_BASED_SEARCH    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-# Note that when enabling USE_PDFLATEX this option is only used for
-# generating bitmaps for formulas in the HTML output, but not in the
-# Makefile that is written to the output directory.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           =
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
-# the generated latex document. The footer should contain everything after
-# the last chapter. If it is left blank doxygen will generate a
-# standard footer. Notice: only use this tag if you know what you are doing!
-
-LATEX_FOOTER           =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include
-# source code with syntax highlighting in the LaTeX output.
-# Note that which sources are shown also depends on other settings
-# such as SOURCE_BROWSER.
-
-LATEX_SOURCE_CODE      = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA             =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD                =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader.  This is useful
-# if you want to understand what is going on.  On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = YES
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF     = YES
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# pointed to by INCLUDE_PATH will be searched when a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH           =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS  =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED             = __native_client__ \
-                         DOXYGEN_SHOULD_SKIP_THIS \
-                         __attribute__(x)= \
-                         EXTERN_C_BEGIN= \
-                         EXTERN_C_END= \
-                         PP_COMPILE_ASSERT_SIZE_IN_BYTES= \
-                         PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES= \
-                         PP_INLINE= \
-                         PP_EXPORT
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition that
-# overrules the definition found in the source code.
-
-EXPAND_AS_DEFINED      =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all references to function-like macros
-# that are alone on a line, have an all uppercase name, and do not end with a
-# semicolon, because these will confuse the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-#   TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-#   TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES               =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option also works with HAVE_DOT disabled, but it is recommended to
-# install and use dot, since it yields more powerful graphs.
-
-CLASS_DIAGRAMS         = NO
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH            =
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = YES
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
-# allowed to run in parallel. When set to 0 (the default) doxygen will
-# base this on the number of processors available in the system. You can set it
-# explicitly to a value larger than 0 to get control over the balance
-# between CPU load and processing speed.
-
-DOT_NUM_THREADS        = 4
-
-# By default doxygen will write a font called Helvetica to the output
-# directory and reference it in all dot files that doxygen generates.
-# When you want a differently looking font you can specify the font name
-# using DOT_FONTNAME. You need to make sure dot is able to find the font,
-# which can be done by putting it in a standard location or by setting the
-# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
-# containing the font.
-
-DOT_FONTNAME           = FreeSans.ttf
-
-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-# The default size is 10pt.
-
-DOT_FONTSIZE           = 10
-
-# By default doxygen will tell dot to use the output directory to look for the
-# FreeSans.ttf font (which doxygen will put there itself). If you specify a
-# different font using DOT_FONTNAME you can set the path where dot
-# can find it using this tag.
-
-DOT_FONTPATH           =
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = NO
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = NO
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK               = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH             = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will generate a graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are svg, png, jpg, or gif.
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT       = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               = /usr/local/graphviz-2.14/bin
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS           =
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the
-# \mscfile command).
-
-MSCFILE_DIRS           =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES    = 57
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH    = 1000
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not
-# seem to support this out of the box. Warning: Depending on the platform used,
-# enabling this option may lead to badly anti-aliased labels on the edges of
-# a graph (i.e. they become hard to read).
-
-DOT_TRANSPARENT        = YES
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP            = YES
diff --git a/cpp/documentation/DoxygenLayout.xml b/cpp/documentation/DoxygenLayout.xml
deleted file mode 100644
index a5be8a1..0000000
--- a/cpp/documentation/DoxygenLayout.xml
+++ /dev/null
@@ -1,184 +0,0 @@
-<doxygenlayout version="1.0">
-  <!-- Navigation index tabs for HTML output -->
-  <navindex>
-    <tab type="mainpage" visible="no" title=""/>
-    <tab type="pages" visible="no" title=""/>
-    <tab type="modules" visible="yes" title=""/>
-    <tab type="namespaces" visible="no" title="">
-      <tab type="namespaces" visible="no" title=""/>
-      <tab type="namespacemembers" visible="no" title=""/>
-    </tab>
-    <tab type="classes" visible="no" title="">
-      <tab type="classes" visible="no" title=""/>
-      <tab type="classindex" visible="no" title=""/>
-      <tab type="hierarchy" visible="no" title=""/>
-      <tab type="classmembers" visible="no" title=""/>
-    </tab>
-    <tab type="files" visible="no" title="">
-      <tab type="files" visible="no" title=""/>
-      <tab type="globals" visible="no" title=""/>
-    </tab>
-    <tab type="dirs" visible="no" title=""/>
-    <tab type="examples" visible="no" title=""/>
-  </navindex>
-
-  <!-- Layout definition for a class page -->
-  <class>
-    <briefdescription visible="yes"/>
-    <includes visible="$SHOW_INCLUDE_FILES"/>
-    <inheritancegraph visible="$CLASS_GRAPH"/>
-    <collaborationgraph visible="$COLLABORATION_GRAPH"/>
-    <allmemberslink visible="yes"/>
-    <memberdecl>
-      <nestedclasses visible="yes" title=""/>
-      <publictypes title=""/>
-      <publicslots title=""/>
-      <signals title=""/>
-      <publicmethods title="Public Functions"/>
-      <publicstaticmethods title="Static Public Member Functions"/>
-      <publicattributes title=""/>
-      <publicstaticattributes title=""/>
-      <protectedtypes title=""/>
-      <protectedslots title=""/>
-      <protectedmethods title="Protected Functions"/>
-      <protectedstaticmethods title=""/>
-      <protectedattributes title="Protected Attributes"/>
-      <protectedstaticattributes title=""/>
-      <packagetypes title=""/>
-      <packagemethods title=""/>
-      <packagestaticmethods title=""/>
-      <packageattributes title=""/>
-      <packagestaticattributes title=""/>
-      <properties title=""/>
-      <events title=""/>
-      <privatetypes title=""/>
-      <privateslots title=""/>
-      <privatemethods title=""/>
-      <privatestaticmethods title=""/>
-      <privateattributes title=""/>
-      <privatestaticattributes title=""/>
-      <friends title="Friends List"/>
-      <related title="" subtitle=""/>
-      <membergroups visible="yes"/>
-    </memberdecl>
-    <detaileddescription title=""/>
-    <memberdef>
-      <typedefs title=""/>
-      <enums title=""/>
-      <constructors title="Constructor and Destructor Details"/>
-      <functions title="Function Details"/>
-      <related title="Friends and Related Functions Details"/>
-      <variables title="Member Data Details"/>
-      <properties title=""/>
-      <events title=""/>
-    </memberdef>
-    <usedfiles visible="$SHOW_USED_FILES"/>
-    <authorsection visible="yes"/>
-  </class>
-
-  <!-- Layout definition for a namespace page -->
-  <namespace>
-    <briefdescription visible="yes"/>
-    <memberdecl>
-      <nestednamespaces visible="yes" title=""/>
-      <classes visible="yes" title=""/>
-      <typedefs title=""/>
-      <enums title=""/>
-      <functions title=""/>
-      <variables title=""/>
-      <membergroups visible="yes"/>
-    </memberdecl>
-    <detaileddescription title=""/>
-    <memberdef>
-      <typedefs title=""/>
-      <enums title=""/>
-      <functions title=""/>
-      <variables title=""/>
-    </memberdef>
-    <authorsection visible="yes"/>
-  </namespace>
-
-  <!-- Layout definition for a file page -->
-  <file>
-    <briefdescription visible="yes"/>
-    <includes visible="$SHOW_INCLUDE_FILES"/>
-    <includegraph visible="$INCLUDE_GRAPH"/>
-    <includedbygraph visible="$INCLUDED_BY_GRAPH"/>
-    <sourcelink visible="yes"/>
-    <memberdecl>
-      <classes visible="yes" title=""/>
-      <namespaces visible="yes" title=""/>
-      <defines title=""/>
-      <typedefs title=""/>
-      <enums title=""/>
-      <functions title=""/>
-      <variables title=""/>
-      <membergroups visible="yes"/>
-    </memberdecl>
-    <detaileddescription title=""/>
-    <memberdef>
-      <defines title=""/>
-      <typedefs title=""/>
-      <enums title=""/>
-      <functions title="Function Details"/>
-      <variables title=""/>
-    </memberdef>
-    <authorsection/>
-  </file>
-
-  <!-- Layout definition for a group page -->
-  <group>
-    <briefdescription visible="yes"/>
-    <groupgraph visible="$GROUP_GRAPHS"/>
-    <memberdecl>
-      <classes visible="yes" title=""/>
-      <namespaces visible="yes" title=""/>
-      <dirs visible="yes" title=""/>
-      <nestedgroups visible="yes" title=""/>
-      <files visible="yes" title=""/>
-      <defines title=""/>
-      <typedefs title=""/>
-      <enums title=""/>
-      <enumvalues title=""/>
-      <functions title=""/>
-      <variables title=""/>
-      <signals title=""/>
-      <publicslots title=""/>
-      <protectedslots title=""/>
-      <privateslots title=""/>
-      <events title=""/>
-      <properties title=""/>
-      <friends title=""/>
-      <membergroups visible="yes"/>
-    </memberdecl>
-    <detaileddescription title=""/>
-    <memberdef>
-      <pagedocs/>
-      <defines title=""/>
-      <typedefs title=""/>
-      <enums title=""/>
-      <enumvalues title=""/>
-      <functions title=""/>
-      <variables title=""/>
-      <signals title=""/>
-      <publicslots title=""/>
-      <protectedslots title=""/>
-      <privateslots title=""/>
-      <events title=""/>
-      <properties title=""/>
-      <friends title=""/>
-    </memberdef>
-    <authorsection visible="yes"/>
-  </group>
-
-  <!-- Layout definition for a directory page -->
-  <directory>
-    <briefdescription visible="yes"/>
-    <directorygraph visible="yes"/>
-    <memberdecl>
-      <dirs visible="yes"/>
-      <files visible="yes"/>
-    </memberdecl>
-    <detaileddescription title=""/>
-  </directory>
-</doxygenlayout>
diff --git a/cpp/documentation/check.sh b/cpp/documentation/check.sh
deleted file mode 100755
index 651ca51..0000000
--- a/cpp/documentation/check.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash
-# 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.
-
-# simple script to check html via tidy. Either specify html files on
-# command line or rely on default which checks all html files in
-# current directory
-set -o nounset
-set -o errexit
-
-
-CheckFile () {
-  echo "========================================"
-  echo "checking $1"
-  echo "========================================"
-  tidy -e -q $1
-}
-
-
-if [ $# -eq 0  ] ; then
-  for file in *.html ; do
-   CheckFile ${file}
-  done
-else
-  for file in $* ; do
-   CheckFile ${file}
-  done
-fi
diff --git a/cpp/documentation/doxy_cleanup.py b/cpp/documentation/doxy_cleanup.py
deleted file mode 100755
index e5a42db..0000000
--- a/cpp/documentation/doxy_cleanup.py
+++ /dev/null
@@ -1,144 +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 utility cleans up the html files as emitted by doxygen so
-that they are suitable for publication on a Google documentation site.
-'''
-
-from __future__ import print_function
-
-import optparse
-import os
-import re
-import shutil
-import string
-import sys
-try:
-  from BeautifulSoup import BeautifulSoup, Tag
-except (ImportError, NotImplementedError):
-  print("This tool requires the BeautifulSoup package "
-        "(see http://www.crummy.com/software/BeautifulSoup/).\n"
-        "Make sure that the file BeautifulSoup.py is either in this directory "
-        "or is available in your PYTHON_PATH")
-  raise
-
-
-class HTMLFixer(object):
-  '''This class cleans up the html strings as produced by Doxygen
-  '''
-
-  def __init__(self, html):
-    self.soup = BeautifulSoup(html)
-
-  def FixTableHeadings(self):
-    '''Fixes the doxygen table headings.
-
-    This includes:
-      - Using bare <h2> title row instead of row embedded in <tr><td> in table
-      - Putting the "name" attribute into the "id" attribute of the <tr> tag.
-      - Splitting up tables into multiple separate tables if a table
-        heading appears in the middle of a table.
-
-    For example, this html:
-     <table>
-      <tr><td colspan="2"><h2><a name="pub-attribs"></a>
-      Data Fields List</h2></td></tr>
-      ...
-     </table>
-
-    would be converted to this:
-     <h2>Data Fields List</h2>
-     <table>
-      ...
-     </table>
-    '''
-
-    table_headers = []
-    for tag in self.soup.findAll('tr'):
-      if tag.td and tag.td.h2 and tag.td.h2.a and tag.td.h2.a['name']:
-        #tag['id'] = tag.td.h2.a['name']
-        tag.string = tag.td.h2.a.next
-        tag.name = 'h2'
-        table_headers.append(tag)
-
-    # reverse the list so that earlier tags don't delete later tags
-    table_headers.reverse()
-    # Split up tables that have multiple table header (th) rows
-    for tag in table_headers:
-      print("Header tag: %s is %s" % (tag.name, tag.string.strip()))
-      # Is this a heading in the middle of a table?
-      if tag.findPreviousSibling('tr') and tag.parent.name == 'table':
-        print("Splitting Table named %s" % tag.string.strip())
-        table = tag.parent
-        table_parent = table.parent
-        table_index = table_parent.contents.index(table)
-        new_table = Tag(self.soup, name='table', attrs=table.attrs)
-        table_parent.insert(table_index + 1, new_table)
-        tag_index = table.contents.index(tag)
-        for index, row in enumerate(table.contents[tag_index:]):
-          new_table.insert(index, row)
-      # Now move the <h2> tag to be in front of the <table> tag
-      assert tag.parent.name == 'table'
-      table = tag.parent
-      table_parent = table.parent
-      table_index = table_parent.contents.index(table)
-      table_parent.insert(table_index, tag)
-
-  def RemoveTopHeadings(self):
-    '''Removes <div> sections with a header, tabs, or navpath class attribute'''
-    header_tags = self.soup.findAll(
-        name='div',
-        attrs={'class' : re.compile('^(header|tabs[0-9]*|navpath)$')})
-    [tag.extract() for tag in header_tags]
-
-  def FixAll(self):
-    self.FixTableHeadings()
-    self.RemoveTopHeadings()
-
-  def __str__(self):
-    return str(self.soup)
-
-
-def main():
-  '''Main entry for the doxy_cleanup utility
-
-  doxy_cleanup takes a list of html files and modifies them in place.'''
-
-  parser = optparse.OptionParser(usage='Usage: %prog [options] files...')
-
-  parser.add_option('-m', '--move', dest='move', action='store_true',
-                    default=False, help='move html files to "original_html"')
-
-  options, files = parser.parse_args()
-
-  if not files:
-    parser.print_usage()
-    return 1
-
-  for filename in files:
-    try:
-      with open(filename, 'r') as file:
-        html = file.read()
-
-      print("Processing %s" % filename)
-      fixer = HTMLFixer(html)
-      fixer.FixAll()
-      with open(filename, 'w') as file:
-        file.write(str(fixer))
-      if options.move:
-        new_directory = os.path.join(
-            os.path.dirname(os.path.dirname(filename)), 'original_html')
-        if not os.path.exists(new_directory):
-          os.mkdir(new_directory)
-        shutil.move(filename, new_directory)
-    except:
-      print("Error while processing %s" % filename)
-      raise
-
-  return 0
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/cpp/documentation/footer.html b/cpp/documentation/footer.html
deleted file mode 100644
index 454a101..0000000
--- a/cpp/documentation/footer.html
+++ /dev/null
@@ -1,5 +0,0 @@
-</div> <!-- id="doxygen-ref" -->
-
-  </body>
-</html>
-
diff --git a/cpp/documentation/header.html b/cpp/documentation/header.html
deleted file mode 100644
index 89b99a9..0000000
--- a/cpp/documentation/header.html
+++ /dev/null
@@ -1,13 +0,0 @@
-{% include "native-client/_local_variables.html" %}
-<html devsite>
-  <head>
-    <link href="/native-client/css/local_extensions.css" rel="stylesheet" type="text/css" />
-    <title>$title</title>
-    <meta name="project_path" value="/native-client/_project.yaml" />
-    <meta name="book_path" value="/native-client/_book.yaml" />
-
-  </head>
-  <body>
-
-<div id="doxygen-ref">
-<div>
\ No newline at end of file
diff --git a/cpp/documentation/images-dox/README.txt b/cpp/documentation/images-dox/README.txt
deleted file mode 100644
index 9a9e18c..0000000
--- a/cpp/documentation/images-dox/README.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This directory holds all images that go into the doxygen-generated
-API reference doc. To include an image, use code like the following:
-
-@image html figure.jpg
-
-If you want a caption, specify it like this:
-
-@image html figure.jpg "Test image"
-
diff --git a/cpp/documentation/index.dox b/cpp/documentation/index.dox
deleted file mode 100644
index 5b516c3..0000000
--- a/cpp/documentation/index.dox
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-[include "/chrome/nativeclient/_local_variables.ezt"]  [# this file should be at root of your document hierarchy ]
-[define section]docs[end]  [# this should be "docs" if the file lives in the "Docs" section (top nav)]
-                           [# Otherwise, it's "home," "articles," "download," or "terms" ]
-[define page_title]Pepper C API[end]  [# this is the title for only this page ]
-
-[include "/_boilerplate_header.ezt"]
-[verbatim]
-
-<p>This reference documentation describes the C version of the Pepper API, a cross-platform, open-source API for creating Native Client modules. Some interfaces are already implemented in any Native Client-aware browser and certain portions of the API will be implemented by you in the Native Client module. This page has the following contents:
-</p>
-
-<ol class="toc">
-<li><a href="#reading">Before you start</a></li>
-<li><a href="#pepperc">Pepper C reference</a></li>
-<li><a href="#navigate">Navigating the Pepper C reference</a></li>
-</ol>
-
-<h2 id="reading">Before you start</h2>
-
-<p>We recommend that you read the following documents prior to reading the API documentation:</p>
-
-<ul class="nolist">
-<li><a href="/chrome/nativeclient/docs/technical_overview.html">Technical Overview</a></li>
-<li><a href="/chrome/nativeclient/docs/tutorial.html">Tutorial: Getting Started</a></li>
-<li><a href="/chrome/nativeclient/docs/developers_guide.html">Developer's Guide</a></li>
-</ul>
-
-<h2 id="pepperc">Pepper C reference</h2>
-
-<p>The lowest level of the Pepper API is the C API, declared in the header files in ppapi/c. The C API represents the lowest level binary interface between a Native Client module and the browser.</p>
-
-<h3>C API Groupings</h3>
-
-<p>The C API is divided into three sub-groupings, indicated by the prefixes PP, PPB, and PPP.</p> 
-
-<p>The prefix "PP," used to help prevent naming collisions, stands for "Pepper Plugin" also known as the "Native Client module." Common structs have a PP_ prefix, such as PP_Var for representing a JavaScript variable or PP_Rect for describing a rectangle. There are also several PP_ utility functions in the PP_ grouping.</p>
-
-<p>Interfaces in the C API are named according to whether they are implemented by the browser or by you, the web app developer, in the Native Client module. Interfaces implemented by the browser are prefixed by "PPB" where "B" stands for browser. For example, the PPB_Core interface is a collection of core interfaces implemented by the browser and accessed by the Native Client module. As a web app developer, you need only know how to invoke PPB_ interfaces in your Native Client module.</p>
-
-<p>Interfaces implemented by the Native Client module (Plugin) are prefixed by "PPP" where "P" stands for plugin. For example, the PPP_Class interface provides an object accessible to JavaScript in the browser. You will implement these interfaces in your Native Client module.</p>
-
-<p>In some cases, there might be both a browser and a Native Client module interface for the same concept. For example, the PPP_Instance interface represents the Native Client module functions that the browser calls related to a certain instance. This interface is used to deliver mouse click events to the Native Client module. The Native Client module will call PPB_Instance in the browser to allow the Native Client module to manipulate its instance.</p>
-
-<h2 id="navigate">Navigating the Pepper C reference</h2>
-
-<p>Click on any of the links below "Pepper C API" on the left to view the API by construct (all interfaces, structures, functions, and so on), functional area (all APIs pertaining to audio, 2D graphics, 3D graphics, and so on), or file (all APIs in <code>pp_bool.h</code>, <code>ppp.h</code>, <code>ppb_var.h</code>, and so on).</p>
-
-[endverbatim]
-[include "/_boilerplate_footer.ezt"]
diff --git a/cpp/documentation/removefilesCPP.sh b/cpp/documentation/removefilesCPP.sh
deleted file mode 100755
index c092010..0000000
--- a/cpp/documentation/removefilesCPP.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-
-# 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.
-
-rm annotated.html
-rm bc_s.png
-rm classes.html
-rm closed.png
-rm doxygen.png
-rm functions*.*
-rm globals*.*
-rm index_8dox.html
-rm namespacemembers.html
-rm namespacemembers_func.html
-rm namespaces.html
-rm nav_f.png
-rm nav_h.png
-rm open.png
-rm tab_a.png
-rm tab_b.png
-rm tab_h.png
-rm tab_s.png
-# all .map and all .md5 files
-rm *.md5
-rm *.map
-rm *.css
-rm index.html
-rm jquery.js
-rm hierarchy.html
-
-
-
-
diff --git a/cpp/documentation/stylesheet-dox.css b/cpp/documentation/stylesheet-dox.css
deleted file mode 100644
index 81d1a42..0000000
--- a/cpp/documentation/stylesheet-dox.css
+++ /dev/null
@@ -1,478 +0,0 @@
-body, table, div, p, dl {
-  font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
-  font-size: 12px;
-}
-
-/* @group Heading Levels */
-
-h1 {
-  text-align: center;
-  font-size: 150%;
-}
-
-h1 a, h2 a, h3 a, h4 a {
-  font-weight:bold;
-}
-
-h2 {
-  font-size: 120%;
-  margin-top: 2.0em;
-  margin-bottom: 0.5em;
-}
-
-h3 {
-  font-size: 100%;
-}
-
-div.contents {
-  margin-top: 2.0em;
-}
-
-/* @end */
-
-caption {
-  font-weight: bold;
-  font-size: 9px;
-}
-
-div.qindex, div.navpath, div.navtab{
-  background-color: #e8eef2;
-  border: 1px solid #84b0c7;
-  text-align: center;
-  margin: 2px;
-  padding: 2px;
-}
-
-div.qindex, div.navpath {
-  width: 100%;
-  line-height: 140%;
-}
-
-div.navtab {
-  margin-right: 15px;
-}
-
-/* @group Link Styling */
-
-a {
-  color: #153788;
-  font-weight: normal;
-  text-decoration: none;
-}
-
-.contents a:visited {
-  color: #1b77c5;
-}
-
-a:hover {
-  text-decoration: underline;
-}
-
-a.qindex {
-  font-weight: bold;
-}
-
-a.qindexHL {
-  font-weight: bold;
-  background-color: #6666cc;
-  color: #ffffff;
-  border: 1px double #9295C2;
-}
-
-a.el {
-  font-weight: bold;
-}
-
-a.elRef {
-}
-
-a.code {
-}
-
-a.codeRef {
-}
-
-/* @end */
-
-dl.el {
-  margin-left: -1cm;
-}
-
-.fragment {
-  font-family: monospace, fixed;
-  font-size: 105%;
-}
-
-pre.fragment {
-  border: 1px solid #CCCCCC;
-  background-color: #f5f5f5;
-  padding: 4px 6px;
-  margin: 4px 8px 4px 2px;
-}
-
-div.ah {
-  background-color: black;
-  font-weight: bold;
-  color: #ffffff;
-  margin-bottom: 3px;
-  margin-top: 3px
-}
-
-div.groupHeader {
-  margin-left: 16px;
-  margin-top: 12px;
-  margin-bottom: 6px;
-  font-weight: bold;
-}
-
-div.groupText {
-  margin-left: 16px;
-  font-style: italic;
-}
-
-body {
-  background: white;
-  color: black;
-  margin-right: 20px;
-  margin-left: 20px;
-}
-
-td.indexkey {
-  background-color: #e8eef2;
-  font-weight: bold;
-  border: 1px solid #CCCCCC;
-  margin: 2px 0px 2px 0;
-  padding: 2px 10px;
-}
-
-td.indexvalue {
-  background-color: #e8eef2;
-  border: 1px solid #CCCCCC;
-  padding: 2px 10px;
-  margin: 2px 0px;
-}
-
-tr.memlist {
-  background-color: #f0f0f0;
-}
-
-p.formulaDsp {
-  text-align: center;
-}
-
-img.formulaDsp {
-}
-
-img.formulaInl {
-  vertical-align: middle;
-}
-
-/* @group Code Colorization */
-
-span.keyword {
-  color: #008000
-}
-
-span.keywordtype {
-  color: #604020
-}
-
-span.keywordflow {
-  color: #e08000
-}
-
-span.comment {
-  color: #800000
-}
-
-span.preprocessor {
-  color: #806020
-}
-
-span.stringliteral {
-  color: #002080
-}
-
-span.charliteral {
-  color: #008080
-}
-
-span.vhdldigit {
-  color: #ff00ff
-}
-
-span.vhdlchar {
-  color: #000000
-}
-
-span.vhdlkeyword {
-  color: #700070
-}
-
-span.vhdllogic {
-  color: #ff0000
-}
-
-/* @end */
-
-.search {
-  color: #003399;
-  font-weight: bold;
-}
-
-form.search {
-  margin-bottom: 0px;
-  margin-top: 0px;
-}
-
-input.search {
-  font-size: 75%;
-  color: #000080;
-  font-weight: normal;
-  background-color: #e8eef2;
-}
-
-td.tiny {
-  font-size: 75%;
-}
-
-.dirtab {
-  padding: 4px;
-  border-collapse: collapse;
-  border: 1px solid #84b0c7;
-}
-
-th.dirtab {
-  background: #e8eef2;
-  font-weight: bold;
-}
-
-hr {
-  height: 0;
-  border: none;
-  border-top: 1px solid #666;
-}
-
-/* @group Member Descriptions */
-
-.mdescLeft, .mdescRight,
-.memItemLeft, .memItemRight,
-.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
-  background-color: #FAFAFA;
-  border: none;
-  margin: 4px;
-  padding: 1px 0 0 8px;
-}
-
-.mdescLeft, .mdescRight {
-  padding: 0px 8px 4px 8px;
-  color: #555;
-}
-
-.memItemLeft, .memItemRight, .memTemplParams {
-  border-top: 1px solid #ccc;
-}
-
-.memTemplParams {
-  color: #606060;
-}
-
-/* @end */
-
-/* @group Member Details */
-
-/* Styles for detailed member documentation */
-
-.memtemplate {
-  font-size: 80%;
-  color: #606060;
-  font-weight: normal;
-  margin-left: 3px;
-}
-
-.memnav {
-  background-color: #e8eef2;
-  border: 1px solid #84b0c7;
-  text-align: center;
-  margin: 2px;
-  margin-right: 15px;
-  padding: 2px;
-}
-
-.memitem {
-  padding: 0;
-}
-
-.memname {
-  white-space: nowrap;
-  font-weight: bold;
-}
-
-.memproto, .memdoc {
-  border: 1px solid #84b0c7;
-}
-
-.memproto {
-  padding: 0;
-  background-color: #d5e1e8;
-  font-weight: bold;
-  -webkit-border-top-left-radius: 8px;
-  -webkit-border-top-right-radius: 8px;
-  -moz-border-radius-topleft: 8px;
-  -moz-border-radius-topright: 8px;
-}
-
-.memdoc {
-  padding: 2px 5px;
-  background-color: #eef3f5;
-  border-top-width: 0;
-  -webkit-border-bottom-left-radius: 8px;
-  -webkit-border-bottom-right-radius: 8px;
-  -moz-border-radius-bottomleft: 8px;
-  -moz-border-radius-bottomright: 8px;
-}
-
-.memdoc p, .memdoc dl, .memdoc ul {
-  margin: 6px 0;
-}
-
-.paramkey {
-  text-align: right;
-}
-
-.paramtype {
-  white-space: nowrap;
-}
-
-.paramname {
-  color: #602020;
-  white-space: nowrap;
-}
-.paramname em {
-  font-style: normal;
-}
-
-/* @end */
-
-/* @group Directory (tree) */
-
-/* for the tree view */
-
-.ftvtree {
-  font-family: sans-serif;
-  margin: 0.5em;
-}
-
-/* these are for tree view when used as main index */
-
-.directory {
-  font-size: 9pt;
-  font-weight: bold;
-}
-
-.directory h3 {
-  margin: 0px;
-  margin-top: 1em;
-  font-size: 11pt;
-}
-
-/*
-The following two styles can be used to replace the root node title
-with an image of your choice.  Simply uncomment the next two styles,
-specify the name of your image and be sure to set 'height' to the
-proper pixel height of your image.
-*/
-
-/*
-.directory h3.swap {
-  height: 61px;
-  background-repeat: no-repeat;
-  background-image: url("yourimage.gif");
-}
-.directory h3.swap span {
-  display: none;
-}
-*/
-
-.directory > h3 {
-  margin-top: 0;
-}
-
-.directory p {
-  margin: 0px;
-  white-space: nowrap;
-}
-
-.directory div {
-  display: none;
-  margin: 0px;
-}
-
-.directory img {
-  vertical-align: -30%;
-}
-
-/* these are for tree view when not used as main index */
-
-.directory-alt {
-  font-size: 100%;
-  font-weight: bold;
-}
-
-.directory-alt h3 {
-  margin: 0px;
-  margin-top: 1em;
-  font-size: 11pt;
-}
-
-.directory-alt > h3 {
-  margin-top: 0;
-}
-
-.directory-alt p {
-  margin: 0px;
-  white-space: nowrap;
-}
-
-.directory-alt div {
-  display: none;
-  margin: 0px;
-}
-
-.directory-alt img {
-  vertical-align: -30%;
-}
-
-/* @end */
-
-address {
-  font-style: normal;
-  text-align: center;
-  font-size: 90%;
-  color: gray;
-}
-
-DIV.tabs A, #toplinks
-{
-   font-size        : 9px;
-}
-
-#toplinks {
-  text-align: right;
-  margin-bottom: -1.9em;
-}
-
-.pending {
-  /* display:none; */
-  color:red; font-weight:bold;
-}
-
-#license {
-  color:gray;
-  font-size:90%;
-  border-top:1px solid;
-  border-color:gray;
-  padding-top:1em;
-  margin-top:3em;
-  text-align:center;
-}
diff --git a/cpp/documentation/stylesheet.css b/cpp/documentation/stylesheet.css
deleted file mode 100644
index 9ed8e38..0000000
--- a/cpp/documentation/stylesheet.css
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Based off the Doxygen generated template stylesheet and trimmed/edited to
- * remove items that would conflict with codesite or other overlying
- * stylesheets while maintaining the desired look and feel.
- *
- * The #doxygen-ref is an id tag which encompasses code generated by doxygen
- * and allows override of standard html tags while not affecting the rest
- * of the page such as sidebars.
- */
-
-A.qindex {
-  text-decoration: none;
-  font-weight: bold;
-  color: #1A419D;
-}
-A.qindex:visited {
-  text-decoration: none;
-  font-weight: bold;
-  color: #1A419D
-}
-A.qindex:hover {
-  text-decoration: none;
-  background-color: #ddf;
-}
-A.qindexHL {
-  text-decoration: none;
-  font-weight: bold;
-  background-color: #66c;
-  color: #fff;
-  border: 1px double #9295C2;
-}
-A.qindexHL:hover,
-A.qindexHL:visited {
-  text-decoration: none;
-  background-color: #66c;
-  color: #fff;
-}
-A.el {
-  text-decoration: none;
-  font-weight: bold;
-}
-A.elRef {
-  font-weight: bold;
-}
-A.code:link,
-A.code:visited {
-  text-decoration: none;
-  font-weight: normal;
-  color: #00F;
-}
-A.codeRef:link,
-A.codeRef:visited {
-  font-weight: normal;
-  color: #00F;
-}
-A:hover {
-  text-decoration: none;
-  background-color: #f2f2ff;
-}
-DL.el {
-  margin-left: -1cm;
-}
-.fragment {
-  font-family: Fixed, monospace;
-  font-size: 95%;
-}
-PRE.fragment {
-  border: 1px solid #CCC;
-  background-color: #f5f5f5;
-  margin: 4px 8px 4px 2px
-  padding: 4px 6px;
-}
-DIV.ah {
-  background-color: black;
-  font-weight: bold;
-  color: #fff;
-  margin-bottom: 3px;
-  margin-top: 3px
-}
-TD.md {
-  background-color: #e1e1e4;
-  font-weight: bold;
-  border: none;
-}
-TD.mdPrefix {
-  background-color: #e1e1e4;
-  color: #606060;
-  font-size: 80%;
-  border: none;
-}
-TD.mdname1 {
-  background-color: #e1e1e4;
-  font-weight: bold;
-  color: #602020;
-  border: none;
-}
-.memitem {
-  padding: 4px;
-  background-color: #ffff;
-}
-.memname {
-  background-color: #e1e1e4;
-  white-space: nowrap;
-  font-weight: bold;
-}
-.memdoc{
-  padding-left: 10px;
-}
-#doxygen-ref div.memproto td {
-  background-color: #e1e1e4;
-}
-.memproto {
-  background-color: #e1e1e4;
-  width: 100%;
-  border-width: 1px;
-  border-style: solid;
-  border-color: #e1e1f4;
-  font-weight: bold;
-  -moz-border-radius: 8px 8px 8px 8px;
-}
-.memproto .deprecated,
-.memname .deprecated,
-.summary .deprecated {
-  color: red;
-}
-.paramkey {
-  text-align: right;
-}
-.paramtype {
-  white-space: nowrap;
-}
-.paramname {
-  color: #602020;
-  font-style: italic;
-  white-space: nowrap;
-}
-DIV.groupHeader {
-  margin: 12px 16px 6px auto;
-  font-weight: bold;
-}
-DIV.groupText {
-  margin-left: 16px;
-  font-style: italic;
-  font-size: 90%;
-}
-TR.memlist {
-  background-color: #f0f0f0;
-}
-P.formulaDsp {
-  text-align: center;
-}
-IMG.formulaInl {
-  vertical-align: middle;
-}
-SPAN.keyword,
-SPAN.keywordflow {
-  color: #008000;
-}
-SPAN.keywordtyp {
-  color: #604020;
-}
-SPAN.comment {
-  color: #800000;
-}
-SPAN.preprocessor {
-  color: #806020;
-}
-SPAN.stringliteral {
-  color: #002080;
-}
-SPAN.charliteral {
-  color: #008080;
-}
-.mdTable {
-  background-color: #e1e1e4;
-  border: none;
-  padding: 0;
-}
-.mdRow {
-  padding: 8px 10px;
-  border: none;
-}
-.mdescLeft,
-.mdescRight {
-  padding: 0 8px 4px 8px;
-  font-size: 80%;
-  font-style: italic;
-  background-color: #FAFAFA;
-  border: 1px none #E0E0E0;
-  margin: 0;
-}
-.search {
-  color: #039;
-  font-weight: bold;
-}
-FORM.search {
-  margin: 0 auto;
-}
-INPUT.search {
-  font-size: 75%;
-  color: #000080;
-  font-weight: normal;
-  background-color: #e8eef2;
-}
-TD.tiny{
-  font-size: 75%;
-}
-#doxygen-ref HR {
-  height: 1px;
-  border: none;
-  border-top: 1px solid black;
-}
-#doxygen-ref table,
-#doxygen-ref td,
-#doxygen-ref tr {
-  border:none;
-}
-#doxygen-ref .contents H1 {
-  text-align: center;
-  background-color: #ffffff;
-  border: 0;
-}
-#doxygen-ref H2 {
-  margin-left: 0;
-  margin-bottom: 5px;
-}
-#doxygen-ref CAPTION {
-  font-weight: bold;
-}
-#doxygen-ref .contents .summary {
-  line-height: 1em;
-}
-#doxygen-ref .contents .summary TD {
-}
-#doxygen-ref .contents .summary .type {
-  text-align: right;
-}
-.memdoc {
-  padding-left: 30px;
-}
-.memitem {
-  border-top:1px solid #E5ECF9;
-}
-.doxygen-global {
-  background-color: #ffcc66;
-}
\ No newline at end of file
diff --git a/cpp/documentation/tabs.css b/cpp/documentation/tabs.css
deleted file mode 100644
index 132fb6e..0000000
--- a/cpp/documentation/tabs.css
+++ /dev/null
@@ -1,59 +0,0 @@
-.tabs, .tabs2, .tabs3 {
-    background-image: url('tab_b.png');
-    width: 100%;
-    z-index: 101;
-    font-size: 13px;
-}
-
-.tabs2 {
-    font-size: 10px;
-}
-.tabs3 {
-    font-size: 9px;
-}
-
-.tablist {
-    margin: 0;
-    padding: 0;
-    display: table;
-}
-
-.tablist li {
-    float: left;
-    display: table-cell;
-    background-image: url('tab_b.png');
-    line-height: 36px;
-    list-style: none;
-}
-
-.tablist a {
-    display: block;
-    padding: 0 20px;
-    font-weight: bold;
-    background-image:url('tab_s.png');
-    background-repeat:no-repeat;
-    background-position:right;
-    color: #283C5D;
-    text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
-    text-decoration: none;
-    outline: none;
-}
-
-.tabs3 .tablist a {
-    padding: 0 10px;
-}
-
-.tablist a:hover {
-    background-image: url('tab_h.png');
-    background-repeat:repeat-x;
-    color: #fff;
-    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
-    text-decoration: none;
-}
-
-.tablist li.current a {
-    background-image: url('tab_a.png');
-    background-repeat:repeat-x;
-    color: #fff;
-    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
-}
diff --git a/cpp/file_io.cc b/cpp/file_io.cc
deleted file mode 100644
index 4110f55..0000000
--- a/cpp/file_io.cc
+++ /dev/null
@@ -1,201 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
-#pragma allow_unsafe_libc_calls
-#endif
-
-#include "ppapi/cpp/file_io.h"
-
-#include <string.h>  // memcpy
-
-#include "ppapi/c/ppb_file_io.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/file_ref.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_FileIO_1_0>() {
-  return PPB_FILEIO_INTERFACE_1_0;
-}
-
-template <> const char* interface_name<PPB_FileIO_1_1>() {
-  return PPB_FILEIO_INTERFACE_1_1;
-}
-
-}  // namespace
-
-FileIO::FileIO() {}
-
-FileIO::FileIO(const InstanceHandle& instance) {
-  if (has_interface<PPB_FileIO_1_1>()) {
-    PassRefFromConstructor(get_interface<PPB_FileIO_1_1>()->Create(
-        instance.pp_instance()));
-  } else if (has_interface<PPB_FileIO_1_0>()) {
-    PassRefFromConstructor(get_interface<PPB_FileIO_1_0>()->Create(
-        instance.pp_instance()));
-  }
-}
-
-FileIO::FileIO(const FileIO& other) : Resource(other) {}
-
-FileIO& FileIO::operator=(const FileIO& other) {
-  Resource::operator=(other);
-  return *this;
-}
-
-int32_t FileIO::Open(const FileRef& file_ref,
-                     int32_t open_flags,
-                     const CompletionCallback& cc) {
-  if (has_interface<PPB_FileIO_1_1>()) {
-    return get_interface<PPB_FileIO_1_1>()->Open(
-        pp_resource(), file_ref.pp_resource(), open_flags,
-        cc.pp_completion_callback());
-  } else if (has_interface<PPB_FileIO_1_0>()) {
-    return get_interface<PPB_FileIO_1_0>()->Open(
-        pp_resource(), file_ref.pp_resource(), open_flags,
-        cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t FileIO::Query(PP_FileInfo* result_buf,
-                      const CompletionCallback& cc) {
-  if (has_interface<PPB_FileIO_1_1>()) {
-    return get_interface<PPB_FileIO_1_1>()->Query(
-        pp_resource(), result_buf, cc.pp_completion_callback());
-  } else if (has_interface<PPB_FileIO_1_0>()) {
-    return get_interface<PPB_FileIO_1_0>()->Query(
-        pp_resource(), result_buf, cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t FileIO::Touch(PP_Time last_access_time,
-                      PP_Time last_modified_time,
-                      const CompletionCallback& cc) {
-  if (has_interface<PPB_FileIO_1_1>()) {
-    return get_interface<PPB_FileIO_1_1>()->Touch(
-        pp_resource(), last_access_time, last_modified_time,
-        cc.pp_completion_callback());
-  } else if (has_interface<PPB_FileIO_1_0>()) {
-    return get_interface<PPB_FileIO_1_0>()->Touch(
-        pp_resource(), last_access_time, last_modified_time,
-        cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t FileIO::Read(int64_t offset,
-                     char* buffer,
-                     int32_t bytes_to_read,
-                     const CompletionCallback& cc) {
-  if (has_interface<PPB_FileIO_1_1>()) {
-    return get_interface<PPB_FileIO_1_1>()->Read(pp_resource(),
-        offset, buffer, bytes_to_read, cc.pp_completion_callback());
-  } else if (has_interface<PPB_FileIO_1_0>()) {
-    return get_interface<PPB_FileIO_1_0>()->Read(pp_resource(),
-        offset, buffer, bytes_to_read, cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t FileIO::Read(
-    int32_t offset,
-    int32_t max_read_length,
-    const CompletionCallbackWithOutput< std::vector<char> >& cc) {
-  if (has_interface<PPB_FileIO_1_1>()) {
-    PP_ArrayOutput array_output = cc.output();
-    return get_interface<PPB_FileIO_1_1>()->ReadToArray(pp_resource(),
-        offset, max_read_length, &array_output,
-        cc.pp_completion_callback());
-  } else if (has_interface<PPB_FileIO_1_0>()) {
-    // Data for our callback wrapper. The callback handler will delete it and
-    // temp_buffer.
-    CallbackData1_0* data = new CallbackData1_0;
-    data->output = cc.output();
-    data->temp_buffer = max_read_length >= 0 ? new char[max_read_length] : NULL;
-    data->original_callback = cc.pp_completion_callback();
-
-    // Actual returned bytes might not equals to max_read_length.  We need to
-    // read to a temporary buffer first and copy later to make sure the array
-    // buffer has correct size.
-    return get_interface<PPB_FileIO_1_0>()->Read(
-        pp_resource(), offset, data->temp_buffer, max_read_length,
-        PP_MakeCompletionCallback(&CallbackConverter, data));
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t FileIO::Write(int64_t offset,
-                      const char* buffer,
-                      int32_t bytes_to_write,
-                      const CompletionCallback& cc) {
-  if (has_interface<PPB_FileIO_1_1>()) {
-    return get_interface<PPB_FileIO_1_1>()->Write(
-        pp_resource(), offset, buffer, bytes_to_write,
-        cc.pp_completion_callback());
-  } else if (has_interface<PPB_FileIO_1_0>()) {
-    return get_interface<PPB_FileIO_1_0>()->Write(
-        pp_resource(), offset, buffer, bytes_to_write,
-        cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t FileIO::SetLength(int64_t length,
-                          const CompletionCallback& cc) {
-  if (has_interface<PPB_FileIO_1_1>()) {
-    return get_interface<PPB_FileIO_1_1>()->SetLength(
-        pp_resource(), length, cc.pp_completion_callback());
-  } else if (has_interface<PPB_FileIO_1_0>()) {
-    return get_interface<PPB_FileIO_1_0>()->SetLength(
-        pp_resource(), length, cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t FileIO::Flush(const CompletionCallback& cc) {
-  if (has_interface<PPB_FileIO_1_1>()) {
-    return get_interface<PPB_FileIO_1_1>()->Flush(
-        pp_resource(), cc.pp_completion_callback());
-  } else if (has_interface<PPB_FileIO_1_0>()) {
-    return get_interface<PPB_FileIO_1_0>()->Flush(
-        pp_resource(), cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-void FileIO::Close() {
-  if (has_interface<PPB_FileIO_1_1>())
-    get_interface<PPB_FileIO_1_1>()->Close(pp_resource());
-  else if (has_interface<PPB_FileIO_1_0>())
-    get_interface<PPB_FileIO_1_0>()->Close(pp_resource());
-}
-
-// static
-void FileIO::CallbackConverter(void* user_data, int32_t result) {
-  CallbackData1_0* data = static_cast<CallbackData1_0*>(user_data);
-
-  if (result >= 0) {
-    // Copy to the destination buffer owned by the callback.
-    char* buffer = static_cast<char*>(data->output.GetDataBuffer(
-        data->output.user_data, result, sizeof(char)));
-    memcpy(buffer, data->temp_buffer, result);
-    delete[] data->temp_buffer;
-  }
-
-  // Now execute the original callback.
-  PP_RunCompletionCallback(&data->original_callback, result);
-  delete data;
-}
-
-}  // namespace pp
diff --git a/cpp/file_io.h b/cpp/file_io.h
deleted file mode 100644
index 3a2b0d3..0000000
--- a/cpp/file_io.h
+++ /dev/null
@@ -1,250 +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_CPP_FILE_IO_H_
-#define PPAPI_CPP_FILE_IO_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_time.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/resource.h"
-
-/// @file
-/// This file defines the API to create a file i/o object.
-
-struct PP_FileInfo;
-
-namespace pp {
-
-class FileRef;
-class InstanceHandle;
-
-/// The <code>FileIO</code> class represents a regular file.
-class FileIO : public Resource {
- public:
-  /// Default constructor for creating an is_null() <code>FileIO</code>
-  /// object.
-  FileIO();
-
-  /// A constructor used to create a <code>FileIO</code> and associate it with
-  /// the provided <code>Instance</code>.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  explicit FileIO(const InstanceHandle& instance);
-
-  /// The copy constructor for <code>FileIO</code>.
-  ///
-  /// @param[in] other A reference to a <code>FileIO</code>.
-  FileIO(const FileIO& other);
-  FileIO& operator=(const FileIO& other);
-
-  /// Open() opens the specified regular file for I/O according to the given
-  /// open flags, which is a bit-mask of the PP_FileOpenFlags values.  Upon
-  /// success, the corresponding file is classified as "in use" by this FileIO
-  /// object until such time as the FileIO object is closed or destroyed.
-  ///
-  /// @param[in] file_ref A <code>PP_Resource</code> corresponding to a file
-  /// reference.
-  ///
-  /// @param[in] open_flags A bit-mask of the <code>PP_FileOpenFlags</code>
-  /// values. Valid values are:
-  ///  - PP_FILEOPENFLAG_READ
-  ///  - PP_FILEOPENFLAG_WRITE
-  ///  - PP_FILEOPENFLAG_CREATE
-  ///  - PP_FILEOPENFLAG_TRUNCATE
-  ///  - PP_FILEOPENFLAG_EXCLUSIVE
-  /// See <code>PP_FileOpenFlags</code> in <code>ppb_file_io.h</code> for more
-  /// details on these flags.
-  ///
-  /// @param[in] cc A <code>CompletionCallback</code> to be called upon
-  /// completion of Open().
-  ///
-  /// @return An int32_t containing an error code from
-  /// <code>pp_errors.h</code>.
-  int32_t Open(const FileRef& file_ref,
-               int32_t open_flags,
-               const CompletionCallback& cc);
-
-  /// Query() queries info about the file opened by this FileIO object. This
-  /// function will fail if the FileIO object has not been opened.
-  ///
-  /// @param[in] result_buf The <code>PP_FileInfo</code> structure representing
-  /// all information about the file.
-  /// @param[in] cc A <code>CompletionCallback</code> to be called upon
-  /// completion of Query(). <code>result_buf</code> must remain valid until
-  /// after the callback runs. If you pass a blocking callback,
-  /// <code>result_buf</code> must remain valid until after Query() returns.
-  ///
-  /// @return An int32_t containing an error code from
-  /// <code>pp_errors.h</code>.
-  int32_t Query(PP_FileInfo* result_buf,
-                const CompletionCallback& cc);
-
-  /// Touch() Updates time stamps for the file opened by this FileIO object.
-  /// This function will fail if the FileIO object has not been opened.
-  ///
-  /// @param[in] last_access_time The last time the FileIO was accessed.
-  /// @param[in] last_modified_time The last time the FileIO was modified.
-  /// @param[in] cc A <code>CompletionCallback</code> to be called upon
-  /// completion of Touch().
-  ///
-  /// @return An int32_t containing an error code from
-  /// <code>pp_errors.h</code>.
-  int32_t Touch(PP_Time last_access_time,
-                PP_Time last_modified_time,
-                const CompletionCallback& cc);
-
-  /// Reads from an offset in the file.
-  ///
-  /// The size of the buffer must be large enough to hold the specified number
-  /// of bytes to read.  This function might perform a partial read, meaning
-  /// that all the requested bytes might not be returned, even if the end of the
-  /// file has not been reached.
-  ///
-  /// This function reads into a buffer that the caller supplies. This buffer
-  /// must remain valid as long as the FileIO resource is alive. If you use
-  /// a completion callback factory and it goes out of scope, it will not issue
-  /// the callback on your class, BUT the callback factory can NOT cancel
-  /// the request from the browser's perspective. This means that the browser
-  /// will still try to write to your buffer even if the callback factory is
-  /// destroyed!
-  ///
-  /// So you must ensure that your buffer outlives the FileIO resource. If you
-  /// have one class and use the FileIO resource exclusively from that class
-  /// and never make any copies, this will be fine: the resource will be
-  /// destroyed when your class is. But keep in mind that copying a pp::FileIO
-  /// object just creates a second reference to the original resource. For
-  /// example, if you have a function like this:
-  ///   pp::FileIO MyClass::GetFileIO();
-  /// where a copy of your FileIO resource could outlive your class, the
-  /// callback will still be pending when your class goes out of scope, creating
-  /// the possibility of writing into invalid memory. So it's recommended to
-  /// keep your FileIO resource and any output buffers tightly controlled in
-  /// the same scope.
-  ///
-  /// <strong>Caveat:</strong> This Read() is potentially unsafe if you're using
-  /// a CompletionCallbackFactory to scope callbacks to the lifetime of your
-  /// class.  When your class goes out of scope, the callback factory will not
-  /// actually cancel the callback, but will rather just skip issuing the
-  /// callback on your class.  This means that if the FileIO object outlives
-  /// your class (if you made a copy saved somewhere else, for example), then
-  /// the browser will still try to write into your buffer when the
-  /// asynchronous read completes, potentially causing a crash.
-  ///
-  /// See the other version of Read() which avoids this problem by writing into
-  /// CompletionCallbackWithOutput, where the output buffer is automatically
-  /// managed by the callback.
-  ///
-  /// @param[in] offset The offset into the file.
-  /// @param[in] buffer The buffer to hold the specified number of bytes read.
-  /// @param[in] bytes_to_read The number of bytes to read from
-  /// <code>offset</code>.
-  /// @param[in] cc A <code>CompletionCallback</code> to be called upon
-  /// completion of Read(). <code>buffer</code> must remain valid until after
-  /// the callback runs. If you pass a blocking callback, <code>buffer</code>
-  /// must remain valid until after Read() returns.
-  ///
-  /// @return An The number of bytes read an error code from
-  /// <code>pp_errors.h</code>. If the return value is 0, then end-of-file was
-  /// reached. It is valid to call Read() multiple times with a completion
-  /// callback to queue up parallel reads from the file at different offsets.
-  int32_t Read(int64_t offset,
-               char* buffer,
-               int32_t bytes_to_read,
-               const CompletionCallback& cc);
-
-  /// Read() reads from an offset in the file.  A PP_ArrayOutput must be
-  /// provided so that output will be stored in its allocated buffer.  This
-  /// function might perform a partial read.
-  ///
-  /// @param[in] file_io A <code>PP_Resource</code> corresponding to a file
-  /// FileIO.
-  /// @param[in] offset The offset into the file.
-  /// @param[in] max_read_length The maximum number of bytes to read from
-  /// <code>offset</code>.
-  /// @param[in] output A <code>PP_ArrayOutput</code> to hold the output data.
-  /// @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-  /// completion of Read().
-  ///
-  /// @return The number of bytes read or an error code from
-  /// <code>pp_errors.h</code>. If the return value is 0, then end-of-file was
-  /// reached. It is valid to call Read() multiple times with a completion
-  /// callback to queue up parallel reads from the file, but pending reads
-  /// cannot be interleaved with other operations.
-  int32_t Read(int32_t offset,
-               int32_t max_read_length,
-               const CompletionCallbackWithOutput< std::vector<char> >& cc);
-
-  /// Write() writes to an offset in the file.  This function might perform a
-  /// partial write. The FileIO object must have been opened with write access.
-  ///
-  /// @param[in] offset The offset into the file.
-  /// @param[in] buffer The buffer to hold the specified number of bytes read.
-  /// @param[in] bytes_to_write The number of bytes to write to
-  /// <code>offset</code>.
-  /// @param[in] cc A <code>CompletionCallback</code> to be called upon
-  /// completion of Write().
-  ///
-  /// @return An The number of bytes written or an error code from
-  /// <code>pp_errors.h</code>. If the return value is 0, then end-of-file was
-  /// reached. It is valid to call Write() multiple times with a completion
-  /// callback to queue up parallel writes to the file at different offsets.
-  int32_t Write(int64_t offset,
-                const char* buffer,
-                int32_t bytes_to_write,
-                const CompletionCallback& cc);
-
-  /// SetLength() sets the length of the file.  If the file size is extended,
-  /// then the extended area of the file is zero-filled.  The FileIO object must
-  /// have been opened with write access.
-  ///
-  /// @param[in] length The length of the file to be set.
-  /// @param[in] cc A <code>CompletionCallback</code> to be called upon
-  /// completion of SetLength().
-  ///
-  /// @return An int32_t containing an error code from
-  /// <code>pp_errors.h</code>.
-  int32_t SetLength(int64_t length,
-                    const CompletionCallback& cc);
-
-  /// Flush() flushes changes to disk.  This call can be very expensive!
-  ///
-  /// @param[in] cc A <code>CompletionCallback</code> to be called upon
-  /// completion of Flush().
-  ///
-  /// @return An int32_t containing an error code from
-  /// <code>pp_errors.h</code>.
-  int32_t Flush(const CompletionCallback& cc);
-
-  /// Close() cancels any IO that may be pending, and closes the FileIO object.
-  /// Any pending callbacks will still run, reporting
-  /// <code>PP_ERROR_ABORTED</code> if pending IO was interrupted.  It is not
-  /// valid to call Open() again after a call to this method.
-  ///
-  /// <strong>Note:</strong> If the FileIO object is destroyed, and it is still
-  /// open, then it will be implicitly closed, so you are not required to call
-  /// Close().
-  void Close();
-
- private:
-  struct CallbackData1_0 {
-    PP_ArrayOutput output;
-    char* temp_buffer;
-    PP_CompletionCallback original_callback;
-  };
-
-  // Provide backwards-compatibility for older Read versions. Converts the
-  // old-style "char*" output buffer of 1.0 to the new "PP_ArrayOutput"
-  // interface in 1.1.
-  //
-  // This takes a heap-allocated CallbackData1_0 struct passed as the user data
-  // and deletes it when the call completes.
-  static void CallbackConverter(void* user_data, int32_t result);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_FILE_IO_H_
diff --git a/cpp/file_ref.cc b/cpp/file_ref.cc
deleted file mode 100644
index 11e4034..0000000
--- a/cpp/file_ref.cc
+++ /dev/null
@@ -1,224 +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/cpp/file_ref.h"
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/directory_entry.h"
-#include "ppapi/cpp/file_system.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_FileRef_1_0>() {
-  return PPB_FILEREF_INTERFACE_1_0;
-}
-
-template <> const char* interface_name<PPB_FileRef_1_1>() {
-  return PPB_FILEREF_INTERFACE_1_1;
-}
-
-template <> const char* interface_name<PPB_FileRef_1_2>() {
-  return PPB_FILEREF_INTERFACE_1_2;
-}
-
-}  // namespace
-
-FileRef::FileRef(PP_Resource resource) : Resource(resource) {
-}
-
-FileRef::FileRef(PassRef, PP_Resource resource) : Resource(PASS_REF, resource) {
-}
-
-FileRef::FileRef(const FileSystem& file_system,
-                 const char* path) {
-  if (has_interface<PPB_FileRef_1_2>()) {
-    PassRefFromConstructor(get_interface<PPB_FileRef_1_2>()->Create(
-        file_system.pp_resource(), path));
-  } else if (has_interface<PPB_FileRef_1_1>()) {
-    PassRefFromConstructor(get_interface<PPB_FileRef_1_1>()->Create(
-        file_system.pp_resource(), path));
-  } else if (has_interface<PPB_FileRef_1_0>()) {
-    PassRefFromConstructor(get_interface<PPB_FileRef_1_0>()->Create(
-        file_system.pp_resource(), path));
-  }
-}
-
-FileRef::FileRef(const FileRef& other) : Resource(other) {}
-
-FileRef& FileRef::operator=(const FileRef& other) {
-  Resource::operator=(other);
-  return *this;
-}
-
-PP_FileSystemType FileRef::GetFileSystemType() const {
-  if (has_interface<PPB_FileRef_1_2>())
-    return get_interface<PPB_FileRef_1_2>()->GetFileSystemType(pp_resource());
-  if (has_interface<PPB_FileRef_1_1>())
-    return get_interface<PPB_FileRef_1_1>()->GetFileSystemType(pp_resource());
-  if (has_interface<PPB_FileRef_1_0>())
-    return get_interface<PPB_FileRef_1_0>()->GetFileSystemType(pp_resource());
-  return PP_FILESYSTEMTYPE_EXTERNAL;
-}
-
-Var FileRef::GetName() const {
-  if (has_interface<PPB_FileRef_1_2>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_FileRef_1_2>()->GetName(pp_resource()));
-  }
-  if (has_interface<PPB_FileRef_1_1>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_FileRef_1_1>()->GetName(pp_resource()));
-  }
-  if (has_interface<PPB_FileRef_1_0>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_FileRef_1_0>()->GetName(pp_resource()));
-  }
-  return Var();
-}
-
-Var FileRef::GetPath() const {
-  if (has_interface<PPB_FileRef_1_2>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_FileRef_1_2>()->GetPath(pp_resource()));
-  }
-  if (has_interface<PPB_FileRef_1_1>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_FileRef_1_1>()->GetPath(pp_resource()));
-  }
-  if (has_interface<PPB_FileRef_1_0>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_FileRef_1_0>()->GetPath(pp_resource()));
-  }
-  return Var();
-}
-
-FileRef FileRef::GetParent() const {
-  if (has_interface<PPB_FileRef_1_2>()) {
-    return FileRef(PASS_REF,
-                   get_interface<PPB_FileRef_1_2>()->GetParent(pp_resource()));
-  }
-  if (has_interface<PPB_FileRef_1_1>()) {
-    return FileRef(PASS_REF,
-                   get_interface<PPB_FileRef_1_1>()->GetParent(pp_resource()));
-  }
-  if (has_interface<PPB_FileRef_1_0>()) {
-    return FileRef(PASS_REF,
-                   get_interface<PPB_FileRef_1_0>()->GetParent(pp_resource()));
-  }
-  return FileRef();
-}
-
-int32_t FileRef::MakeDirectory(int32_t make_directory_flags,
-                               const CompletionCallback& cc) {
-  if (has_interface<PPB_FileRef_1_2>()) {
-    return get_interface<PPB_FileRef_1_2>()->MakeDirectory(
-        pp_resource(),
-        make_directory_flags,
-        cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_FileRef_1_1>()) {
-    if (make_directory_flags & ~PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS)
-      return cc.MayForce(PP_ERROR_NOTSUPPORTED);
-    return get_interface<PPB_FileRef_1_1>()->MakeDirectory(
-        pp_resource(),
-        PP_FromBool(make_directory_flags & PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS),
-        cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_FileRef_1_0>()) {
-    if (make_directory_flags & ~PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS)
-      return cc.MayForce(PP_ERROR_NOTSUPPORTED);
-    return get_interface<PPB_FileRef_1_0>()->MakeDirectory(
-        pp_resource(),
-        PP_FromBool(make_directory_flags & PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS),
-        cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t FileRef::Touch(PP_Time last_access_time,
-                       PP_Time last_modified_time,
-                       const CompletionCallback& cc) {
-  if (has_interface<PPB_FileRef_1_2>()) {
-    return get_interface<PPB_FileRef_1_2>()->Touch(
-        pp_resource(), last_access_time, last_modified_time,
-        cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_FileRef_1_1>()) {
-    return get_interface<PPB_FileRef_1_1>()->Touch(
-        pp_resource(), last_access_time, last_modified_time,
-        cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_FileRef_1_0>()) {
-    return get_interface<PPB_FileRef_1_0>()->Touch(
-        pp_resource(), last_access_time, last_modified_time,
-        cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t FileRef::Delete(const CompletionCallback& cc) {
-  if (has_interface<PPB_FileRef_1_2>()) {
-    return get_interface<PPB_FileRef_1_2>()->Delete(
-        pp_resource(), cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_FileRef_1_1>()) {
-    return get_interface<PPB_FileRef_1_1>()->Delete(
-        pp_resource(), cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_FileRef_1_0>()) {
-    return get_interface<PPB_FileRef_1_0>()->Delete(
-        pp_resource(), cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t FileRef::Rename(const FileRef& new_file_ref,
-                        const CompletionCallback& cc) {
-  if (has_interface<PPB_FileRef_1_2>()) {
-    return get_interface<PPB_FileRef_1_2>()->Rename(
-        pp_resource(), new_file_ref.pp_resource(), cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_FileRef_1_1>()) {
-    return get_interface<PPB_FileRef_1_1>()->Rename(
-        pp_resource(), new_file_ref.pp_resource(), cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_FileRef_1_0>()) {
-    return get_interface<PPB_FileRef_1_0>()->Rename(
-        pp_resource(), new_file_ref.pp_resource(), cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t FileRef::Query(const CompletionCallbackWithOutput<PP_FileInfo>& cc) {
-  if (has_interface<PPB_FileRef_1_2>()) {
-    return get_interface<PPB_FileRef_1_2>()->Query(
-        pp_resource(), cc.output(), cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_FileRef_1_1>()) {
-    return get_interface<PPB_FileRef_1_1>()->Query(
-        pp_resource(), cc.output(), cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t FileRef::ReadDirectoryEntries(
-    const CompletionCallbackWithOutput<std::vector<DirectoryEntry> >&
-        callback) {
-  if (has_interface<PPB_FileRef_1_2>()) {
-    return get_interface<PPB_FileRef_1_2>()->ReadDirectoryEntries(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_FileRef_1_1>()) {
-    return get_interface<PPB_FileRef_1_1>()->ReadDirectoryEntries(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-}  // namespace pp
diff --git a/cpp/file_ref.h b/cpp/file_ref.h
deleted file mode 100644
index 8f9263f..0000000
--- a/cpp/file_ref.h
+++ /dev/null
@@ -1,184 +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_CPP_FILE_REF_H_
-#define PPAPI_CPP_FILE_REF_H_
-
-#include <vector>
-
-#include "ppapi/c/pp_file_info.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/ppb_file_ref.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/var.h"
-
-/// @file
-/// This file defines the API to create a file reference or "weak pointer" to a
-/// file in a file system.
-
-namespace pp {
-
-class DirectoryEntry;
-class FileSystem;
-class CompletionCallback;
-template <typename T> class CompletionCallbackWithOutput;
-
-/// The <code>FileRef</code> class represents a "weak pointer" to a file in
-/// a file system.
-class FileRef : public Resource {
- public:
-  /// Default constructor for creating an is_null() <code>FileRef</code>
-  /// object.
-  FileRef() {}
-
-  /// A constructor used when you have an existing PP_Resource for a FileRef
-  /// and which to create a C++ object that takes an additional reference to
-  /// the resource.
-  ///
-  /// @param[in] resource A PP_Resource corresponding to file reference.
-  explicit FileRef(PP_Resource resource);
-
-  /// A constructor used when you have received a PP_Resource as a return
-  /// value that has already been reference counted.
-  ///
-  /// @param[in] resource A PP_Resource corresponding to file reference.
-  FileRef(PassRef, PP_Resource resource);
-
-  /// A constructor that creates a weak pointer to a file in the given file
-  /// system. File paths are POSIX style.
-  ///
-  /// If the <code>path</code> is malformed, the resulting <code>FileRef</code>
-  /// will have a null <code>PP_Resource</code>.
-  ///
-  /// @param[in] file_system A <code>FileSystem</code> corresponding to a file
-  /// system type.
-  /// @param[in] path A path to the file. Must begin with a '/' character.
-  FileRef(const FileSystem& file_system, const char* path);
-
-  /// The copy constructor for <code>FileRef</code>.
-  ///
-  /// @param[in] other A pointer to a <code>FileRef</code>.
-  FileRef(const FileRef& other);
-  FileRef& operator=(const FileRef& other);
-
-  /// GetFileSystemType() returns the type of the file system.
-  ///
-  /// @return A <code>PP_FileSystemType</code> with the file system type if
-  /// valid or <code>PP_FILESYSTEMTYPE_INVALID</code> if the provided resource
-  /// is not a valid file reference.
-  PP_FileSystemType GetFileSystemType() const;
-
-  /// GetName() returns the name of the file.
-  ///
-  /// @return A <code>Var</code> containing the name of the file.  The value
-  /// returned by this function does not include any path components (such as
-  /// the name of the parent directory, for example). It is just the name of the
-  /// file. Use GetPath() to get the full file path.
-  Var GetName() const;
-
-  /// GetPath() returns the absolute path of the file.
-  ///
-  /// @return A <code>Var</code> containing the absolute path of the file.
-  /// This function fails if the file system type is
-  /// <code>PP_FileSystemType_External</code>.
-  Var GetPath() const;
-
-  /// GetParent() returns the parent directory of this file.  If
-  /// <code>file_ref</code> points to the root of the filesystem, then the root
-  /// is returned.
-  ///
-  /// @return A <code>FileRef</code> containing the parent directory of the
-  /// file. This function fails if the file system type is
-  /// <code>PP_FileSystemType_External</code>.
-  FileRef GetParent() const;
-
-  /// MakeDirectory() makes a new directory in the file system according to the
-  /// given <code>make_directory_flags</code>, which is a bit-mask of the
-  /// <code>PP_MakeDirectoryFlags</code> values.  It is not valid to make a
-  /// directory in the external file system.
-  ///
-  /// @param[in] make_directory_flags A bit-mask of the
-  /// <code>PP_MakeDirectoryFlags</code> values.
-  /// See <code>ppb_file_ref.h</code> for more details.
-  /// @param[in] cc A <code>CompletionCallback</code> to be called upon
-  /// completion of MakeDirectory().
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  int32_t MakeDirectory(int32_t make_directory_flags,
-                        const CompletionCallback& cc);
-
-  /// Touch() Updates time stamps for a file.  You must have write access to the
-  /// file if it exists in the external filesystem.
-  ///
-  /// @param[in] last_access_time The last time the file was accessed.
-  /// @param[in] last_modified_time The last time the file was modified.
-  /// @param[in] cc A <code>CompletionCallback</code> to be called upon
-  /// completion of Touch().
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  int32_t Touch(PP_Time last_access_time,
-                PP_Time last_modified_time,
-                const CompletionCallback& cc);
-
-  /// Delete() deletes a file or directory. If <code>file_ref</code> refers to
-  /// a directory, then the directory must be empty. It is an error to delete a
-  /// file or directory that is in use.  It is not valid to delete a file in
-  /// the external file system.
-  ///
-  /// @param[in] cc A <code>CompletionCallback</code> to be called upon
-  /// completion of Delete().
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  int32_t Delete(const CompletionCallback& cc);
-
-  /// Rename() renames a file or directory. Argument <code>new_file_ref</code>
-  /// must refer to files in the same file system as in this object. It is an
-  /// error to rename a file or directory that is in use.  It is not valid to
-  /// rename a file in the external file system.
-  ///
-  /// @param[in] new_file_ref A <code>FileRef</code> corresponding to a new
-  /// file reference.
-  /// @param[in] cc A <code>CompletionCallback</code> to be called upon
-  /// completion of Rename().
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  int32_t Rename(const FileRef& new_file_ref, const CompletionCallback& cc);
-
-  /// Query() queries info about a file or directory. You must have access to
-  /// read this file or directory if it exists in the external filesystem.
-  ///
-  /// @param[in] callback A <code>CompletionCallbackWithOutput</code>
-  /// to be called upon completion of Query().
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  int32_t Query(const CompletionCallbackWithOutput<PP_FileInfo>& callback);
-
-  /// ReadDirectoryEntries() Reads all entries in the directory.
-  ///
-  /// @param[in] cc A <code>CompletionCallbackWithOutput</code> to be called
-  /// upon completion of ReadDirectoryEntries(). On success, the
-  /// directory entries will be passed to the given function.
-  ///
-  /// Normally you would use a CompletionCallbackFactory to allow callbacks to
-  /// be bound to your class. See completion_callback_factory.h for more
-  /// discussion on how to use this. Your callback will generally look like:
-  ///
-  /// @code
-  ///   void OnReadDirectoryEntries(
-  ///       int32_t result,
-  ///       const std::vector<DirectoryEntry>& entries) {
-  ///     if (result == PP_OK)
-  ///       // use entries...
-  ///   }
-  /// @endcode
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  int32_t ReadDirectoryEntries(
-      const CompletionCallbackWithOutput< std::vector<DirectoryEntry> >&
-          callback);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_FILE_REF_H_
diff --git a/cpp/file_system.cc b/cpp/file_system.cc
deleted file mode 100644
index 7500a73..0000000
--- a/cpp/file_system.cc
+++ /dev/null
@@ -1,69 +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/cpp/file_system.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_file_system.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/file_ref.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_FileSystem_1_0>() {
-  return PPB_FILESYSTEM_INTERFACE_1_0;
-}
-
-}  // namespace
-
-FileSystem::FileSystem() {
-}
-
-FileSystem::FileSystem(const FileSystem& other) : Resource(other) {
-}
-
-FileSystem::FileSystem(const Resource& resource) : Resource(resource) {
-  if (!IsFileSystem(resource)) {
-    PP_NOTREACHED();
-
-    // On release builds, set this to null.
-    Clear();
-  }
-}
-
-FileSystem::FileSystem(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-FileSystem::FileSystem(const InstanceHandle& instance,
-                       PP_FileSystemType type) {
-  if (!has_interface<PPB_FileSystem_1_0>())
-    return;
-  PassRefFromConstructor(get_interface<PPB_FileSystem_1_0>()->Create(
-      instance.pp_instance(), type));
-}
-
-int32_t FileSystem::Open(int64_t expected_size,
-                         const CompletionCallback& cc) {
-  if (!has_interface<PPB_FileSystem_1_0>())
-    return cc.MayForce(PP_ERROR_NOINTERFACE);
-  return get_interface<PPB_FileSystem_1_0>()->Open(
-      pp_resource(), expected_size, cc.pp_completion_callback());
-}
-
-// static
-bool FileSystem::IsFileSystem(const Resource& resource) {
-  if (!has_interface<PPB_FileSystem_1_0>())
-    return false;
-  return get_interface<PPB_FileSystem_1_0>()->IsFileSystem(
-      resource.pp_resource()) == PP_TRUE;
-}
-
-}  // namespace pp
diff --git a/cpp/file_system.h b/cpp/file_system.h
deleted file mode 100644
index a5b0f68..0000000
--- a/cpp/file_system.h
+++ /dev/null
@@ -1,83 +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_CPP_FILE_SYSTEM_H_
-#define PPAPI_CPP_FILE_SYSTEM_H_
-
-#include "ppapi/c/pp_file_info.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/resource.h"
-
-/// @file
-/// This file defines the API to create a file system associated with a file.
-
-namespace pp {
-
-class CompletionCallback;
-
-/// The <code>FileSystem</code> class identifies the file system type
-/// associated with a file.
-class FileSystem : public Resource {
- public:
-  /// Constructs an is_null() filesystem resource. If you use this constructor,
-  /// you will have to assign it to a "real" FileSystem object before you can
-  /// use it.
-  FileSystem();
-
-  /// The copy constructor for <code>FileSystem</code>.
-  ///
-  /// @param[in] other A reference to a <code>FileSystem</code>.
-  FileSystem(const FileSystem& other);
-
-  /// Constructs a <code>FileSystem</code> from a <code>Resource</code>.
-  ///
-  /// @param[in] resource A <code>Resource</code> containing a file system.
-  explicit FileSystem(const Resource& resource);
-
-  /// A constructor used when you have received a PP_Resource as a return
-  /// value that has already been reference counted.
-  ///
-  /// @param[in] resource A PP_Resource corresponding to a PPB_FileSystem.
-  FileSystem(PassRef, PP_Resource resource);
-
-  /// This constructor creates a file system object of the given type.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  ///
-  /// @param[in] type A file system type as defined by
-  /// <code>PP_FileSystemType</code> enum.
-  FileSystem(const InstanceHandle& instance, PP_FileSystemType type);
-
-  /// Open() opens the file system. A file system must be opened before running
-  /// any other operation on it.
-  ///
-  /// @param[in] expected_size The expected size of the file system. Note that
-  /// this does not request quota; to do that, you must either invoke
-  /// requestQuota from JavaScript:
-  /// http://www.html5rocks.com/en/tutorials/file/filesystem/#toc-requesting-quota
-  /// or set the unlimitedStorage permission for Chrome Web Store apps:
-  /// http://code.google.com/chrome/extensions/manifest.html#permissions
-  ///
-  /// @param[in] cc A <code>PP_CompletionCallback</code> to be called upon
-  /// completion of Open().
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  int32_t Open(int64_t expected_size, const CompletionCallback& cc);
-
-  /// Checks whether a <code>Resource</code> is a file system, to test whether
-  /// it is appropriate for use with the <code>FileSystem</code> constructor.
-  ///
-  /// @param[in] resource A <code>Resource</code> to test.
-  ///
-  /// @return True if <code>resource</code> is a file system.
-  static bool IsFileSystem(const Resource& resource);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_FILE_SYSTEM_H_
diff --git a/cpp/fullscreen.cc b/cpp/fullscreen.cc
deleted file mode 100644
index 556e3ee..0000000
--- a/cpp/fullscreen.cc
+++ /dev/null
@@ -1,50 +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/cpp/fullscreen.h"
-
-#include "ppapi/c/ppb_fullscreen.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/size.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Fullscreen_1_0>() {
-  return PPB_FULLSCREEN_INTERFACE_1_0;
-}
-
-}  // namespace
-
-Fullscreen::Fullscreen(const InstanceHandle& instance)
-    : instance_(instance) {
-}
-
-Fullscreen::~Fullscreen() {
-}
-
-bool Fullscreen::IsFullscreen() {
-  return has_interface<PPB_Fullscreen_1_0>() &&
-      get_interface<PPB_Fullscreen_1_0>()->IsFullscreen(
-          instance_.pp_instance());
-}
-
-bool Fullscreen::SetFullscreen(bool fullscreen) {
-  if (!has_interface<PPB_Fullscreen_1_0>())
-    return false;
-  return PP_ToBool(get_interface<PPB_Fullscreen_1_0>()->SetFullscreen(
-      instance_.pp_instance(), PP_FromBool(fullscreen)));
-}
-
-bool Fullscreen::GetScreenSize(Size* size) {
-  if (!has_interface<PPB_Fullscreen_1_0>())
-    return false;
-  return PP_ToBool(get_interface<PPB_Fullscreen_1_0>()->GetScreenSize(
-      instance_.pp_instance(), &size->pp_size()));
-}
-
-}  // namespace pp
diff --git a/cpp/fullscreen.h b/cpp/fullscreen.h
deleted file mode 100644
index 0546a1e..0000000
--- a/cpp/fullscreen.h
+++ /dev/null
@@ -1,72 +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_CPP_FULLSCREEN_H_
-#define PPAPI_CPP_FULLSCREEN_H_
-
-#include "ppapi/cpp/instance_handle.h"
-
-/// @file
-/// This file defines the API for handling transitions of a module instance to
-/// and from fullscreen mode.
-
-namespace pp {
-
-class Size;
-
-/// The Fullscreen class allowing you to check and toggle fullscreen mode.
-class Fullscreen {
- public:
-  /// A constructor for creating a <code>Fullscreen</code>.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  explicit Fullscreen(const InstanceHandle& instance);
-
-  /// Destructor.
-  virtual ~Fullscreen();
-
-  /// IsFullscreen() checks whether the module instance is currently in
-  /// fullscreen mode.
-  ///
-  /// @return <code>true</code> if the module instance is in fullscreen mode,
-  /// <code>false</code> if the module instance is not in fullscreen mode.
-  bool IsFullscreen();
-
-  /// SetFullscreen() switches the module instance to and from fullscreen
-  /// mode.
-  ///
-  /// The transition to and from fullscreen mode is asynchronous. During the
-  /// transition, IsFullscreen() will return the previous value and
-  /// no 2D or 3D device can be bound. The transition ends at DidChangeView()
-  /// when IsFullscreen() returns the new value. You might receive other
-  /// DidChangeView() calls while in transition.
-  ///
-  /// The transition to fullscreen mode can only occur while the browser is
-  /// processing a user gesture, even if <code>true</code> is returned.
-  ///
-  /// @param[in] fullscreen <code>true</code> to enter fullscreen mode, or
-  /// <code>false</code> to exit fullscreen mode.
-  ///
-  /// @return <code>true</code> on success or <code>false</code> on
-  /// failure.
-  bool SetFullscreen(bool fullscreen);
-
-  /// GetScreenSize() gets the size of the screen in pixels. The module instance
-  /// will be resized to this size when SetFullscreen() is called to enter
-  /// fullscreen mode.
-  ///
-  /// @param[out] size The size of the entire screen in pixels.
-  ///
-  /// @return <code>true</code> on success or <code>false</code> on
-  /// failure.
-  bool GetScreenSize(Size* size);
-
- private:
-  InstanceHandle instance_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_FULLSCREEN_H_
diff --git a/cpp/graphics_2d.cc b/cpp/graphics_2d.cc
deleted file mode 100644
index 5e222ad..0000000
--- a/cpp/graphics_2d.cc
+++ /dev/null
@@ -1,170 +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/cpp/graphics_2d.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_graphics_2d.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/image_data.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/point.h"
-#include "ppapi/cpp/rect.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Graphics2D_1_0>() {
-  return PPB_GRAPHICS_2D_INTERFACE_1_0;
-}
-
-template <> const char* interface_name<PPB_Graphics2D_1_1>() {
-  return PPB_GRAPHICS_2D_INTERFACE_1_1;
-}
-
-template <> const char* interface_name<PPB_Graphics2D_1_2>() {
-    return PPB_GRAPHICS_2D_INTERFACE_1_2;
-}
-
-
-}  // namespace
-
-Graphics2D::Graphics2D() : Resource() {
-}
-
-Graphics2D::Graphics2D(const Graphics2D& other)
-    : Resource(other),
-      size_(other.size_) {
-}
-
-Graphics2D::Graphics2D(const InstanceHandle& instance,
-                       const Size& size,
-                       bool is_always_opaque)
-    : Resource() {
-  if (has_interface<PPB_Graphics2D_1_1>()) {
-    PassRefFromConstructor(get_interface<PPB_Graphics2D_1_1>()->Create(
-        instance.pp_instance(),
-        &size.pp_size(),
-        PP_FromBool(is_always_opaque)));
-  } else if (has_interface<PPB_Graphics2D_1_0>()) {
-    PassRefFromConstructor(get_interface<PPB_Graphics2D_1_0>()->Create(
-        instance.pp_instance(),
-        &size.pp_size(),
-        PP_FromBool(is_always_opaque)));
-  } else {
-    return;
-  }
-  if (!is_null()) {
-    // Only save the size if allocation succeeded.
-    size_ = size;
-  }
-}
-
-Graphics2D::~Graphics2D() {
-}
-
-Graphics2D& Graphics2D::operator=(const Graphics2D& other) {
-  Resource::operator=(other);
-  size_ = other.size_;
-  return *this;
-}
-
-void Graphics2D::PaintImageData(const ImageData& image,
-                                const Point& top_left) {
-  if (has_interface<PPB_Graphics2D_1_1>()) {
-    get_interface<PPB_Graphics2D_1_1>()->PaintImageData(pp_resource(),
-                                                        image.pp_resource(),
-                                                        &top_left.pp_point(),
-                                                        NULL);
-  } else if (has_interface<PPB_Graphics2D_1_0>()) {
-    get_interface<PPB_Graphics2D_1_0>()->PaintImageData(pp_resource(),
-                                                        image.pp_resource(),
-                                                        &top_left.pp_point(),
-                                                        NULL);
-  }
-}
-
-void Graphics2D::PaintImageData(const ImageData& image,
-                                const Point& top_left,
-                                const Rect& src_rect) {
-  if (has_interface<PPB_Graphics2D_1_1>()) {
-    get_interface<PPB_Graphics2D_1_1>()->PaintImageData(pp_resource(),
-                                                        image.pp_resource(),
-                                                        &top_left.pp_point(),
-                                                        &src_rect.pp_rect());
-  } else if (has_interface<PPB_Graphics2D_1_0>()) {
-    get_interface<PPB_Graphics2D_1_0>()->PaintImageData(pp_resource(),
-                                                        image.pp_resource(),
-                                                        &top_left.pp_point(),
-                                                        &src_rect.pp_rect());
-  }
-}
-
-void Graphics2D::Scroll(const Rect& clip, const Point& amount) {
-  if (has_interface<PPB_Graphics2D_1_1>()) {
-    get_interface<PPB_Graphics2D_1_1>()->Scroll(pp_resource(),
-                                                &clip.pp_rect(),
-                                                &amount.pp_point());
-  } else if (has_interface<PPB_Graphics2D_1_0>()) {
-    get_interface<PPB_Graphics2D_1_0>()->Scroll(pp_resource(),
-                                                &clip.pp_rect(),
-                                                &amount.pp_point());
-  }
-}
-
-void Graphics2D::ReplaceContents(ImageData* image) {
-  if (has_interface<PPB_Graphics2D_1_1>()) {
-    get_interface<PPB_Graphics2D_1_1>()->ReplaceContents(pp_resource(),
-                                                         image->pp_resource());
-  } else if (has_interface<PPB_Graphics2D_1_0>()) {
-    get_interface<PPB_Graphics2D_1_0>()->ReplaceContents(pp_resource(),
-                                                         image->pp_resource());
-  } else {
-    return;
-  }
-
-  // On success, reset the image data. This is to help prevent people
-  // from continuing to use the resource which will result in artifacts.
-  *image = ImageData();
-}
-
-int32_t Graphics2D::Flush(const CompletionCallback& cc) {
-  if (has_interface<PPB_Graphics2D_1_1>()) {
-    return get_interface<PPB_Graphics2D_1_1>()->Flush(
-        pp_resource(), cc.pp_completion_callback());
-  } else if (has_interface<PPB_Graphics2D_1_0>()) {
-    return get_interface<PPB_Graphics2D_1_0>()->Flush(
-        pp_resource(), cc.pp_completion_callback());
-  } else {
-    return cc.MayForce(PP_ERROR_NOINTERFACE);
-  }
-}
-
-bool Graphics2D::SetScale(float scale) {
-  if (!has_interface<PPB_Graphics2D_1_1>())
-    return false;
-  return PP_ToBool(get_interface<PPB_Graphics2D_1_1>()->SetScale(pp_resource(),
-                                                                 scale));
-}
-
-float Graphics2D::GetScale() {
-  if (!has_interface<PPB_Graphics2D_1_1>())
-    return 1.0f;
-  return get_interface<PPB_Graphics2D_1_1>()->GetScale(pp_resource());
-}
-
-bool Graphics2D::SetLayerTransform(float scale,
-                                   const Point& origin,
-                                   const Point& translate) {
-  if (!has_interface<PPB_Graphics2D_1_2>())
-    return false;
-  return PP_ToBool(get_interface<PPB_Graphics2D_1_2>()->SetLayerTransform(
-      pp_resource(), scale, &origin.pp_point(), &translate.pp_point()));
-}
-
-
-}  // namespace pp
diff --git a/cpp/graphics_2d.h b/cpp/graphics_2d.h
deleted file mode 100644
index 69d7c8e..0000000
--- a/cpp/graphics_2d.h
+++ /dev/null
@@ -1,296 +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_CPP_GRAPHICS_2D_H_
-#define PPAPI_CPP_GRAPHICS_2D_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/size.h"
-
-
-/// @file
-/// This file defines the API to create a 2D graphics context in the browser.
-namespace pp {
-
-class CompletionCallback;
-class ImageData;
-class InstanceHandle;
-class Point;
-class Rect;
-
-class Graphics2D : public Resource {
- public:
-  /// Default constructor for creating an is_null() <code>Graphics2D</code>
-  /// object.
-  Graphics2D();
-
-  /// The copy constructor for Graphics2D. The underlying 2D context is not
-  /// copied; this constructor creates another reference to the original 2D
-  /// context.
-  ///
-  /// @param[in] other A pointer to a <code>Graphics2D</code> context.
-  Graphics2D(const Graphics2D& other);
-
-  /// A constructor allocating a new 2D graphics context with the given size
-  /// in the browser, resulting object will be is_null() if the allocation
-  /// failed.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  ///
-  /// @param[in] size The size of the 2D graphics context in the browser,
-  /// measured in pixels. See <code>SetScale()</code> for more information.
-  ///
-  /// @param[in] is_always_opaque Set the <code>is_always_opaque</code> flag
-  /// to true if you know that you will be painting only opaque data to this
-  /// context. This option will disable blending when compositing the module
-  /// with the web page, which might give higher performance on some computers.
-  ///
-  /// If you set <code>is_always_opaque</code>, your alpha channel should
-  /// always be set to 0xFF or there may be painting artifacts. The alpha values
-  /// overwrite the destination alpha values without blending when
-  /// <code>is_always_opaque</code> is true.
-  Graphics2D(const InstanceHandle& instance,
-             const Size& size,
-             bool is_always_opaque);
-
-  /// A destructor that decrements the reference count of a
-  /// <code>Graphics2D</code> object made using the previous copy constructor.
-  /// It is possible that the destructor does not totally destroy the underlying
-  /// 2D context if there are outstanding references to it.
-  virtual ~Graphics2D();
-
-  /// This function assigns one 2D graphics context to this 2D graphics
-  /// context. This function increases the reference count of the 2D resource
-  /// of the other 2D graphics context while decrementing the reference counter
-  /// of this 2D graphics context.
-  ///
-  /// @param[in] other An other 2D graphics context.
-  ///
-  /// @return A new Graphics2D context.
-  Graphics2D& operator=(const Graphics2D& other);
-
-  /// Getter function for returning size of the 2D graphics context.
-  ///
-  /// @return The size of the 2D graphics context measured in pixels.
-  const Size& size() const { return size_; }
-
-  /// PaintImageData() enqueues a paint command of the given image into
-  /// the context. This command has no effect until you call Flush(). As a
-  /// result, what counts is the contents of the bitmap when you call Flush,
-  /// not when you call this function.
-  ///
-  /// The provided image will be placed at <code>top_left</code> from the top
-  /// left of the context's internal backing store. This version of
-  /// PaintImageData paints the entire image. Refer to the other version of
-  /// this function to paint only part of the area.
-  ///
-  /// The painted area of the source bitmap must fall entirely within the
-  /// context. Attempting to paint outside of the context will result in an
-  /// error.
-  ///
-  /// There are two methods most modules will use for painting. The first
-  /// method is to generate a new <code>ImageData</code> and then paint it.
-  /// In this case, you'll set the location of your painting to
-  /// <code>top_left</code> and set <code>src_rect</code> to <code>NULL</code>.
-  /// The second is that you're generating small invalid regions out of a larger
-  /// bitmap representing your entire module's image.
-  ///
-  /// @param[in] image The <code>ImageData</code> to be painted.
-  /// @param[in] top_left A <code>Point</code> representing the
-  /// <code>top_left</code> location where the <code>ImageData</code> will be
-  /// painted.
-  void PaintImageData(const ImageData& image,
-                      const Point& top_left);
-
-  /// PaintImageData() enqueues a paint command of the given image into
-  /// the context. This command has no effect until you call Flush(). As a
-  /// result, what counts is the contents of the bitmap when you call Flush(),
-  /// not when you call this function.
-  ///
-  /// The provided image will be placed at <code>top_left</code> from the top
-  /// left of the context's internal backing store. Then the pixels contained
-  /// in <code>src_rect</code> will be copied into the backing store. This
-  /// means that the rectangle being painted will be at <code>src_rect</code>
-  /// offset by <code>top_left</code>.
-  ///
-  /// The <code>src_rect</code> is specified in the coordinate system of the
-  /// image being painted, not the context. For the common case of copying the
-  /// entire image, you may specify an empty <code>src_rect</code>.
-  ///
-  /// The painted area of the source bitmap must fall entirely within the
-  /// context. Attempting to paint outside of the context will result in an
-  /// error. However, the source bitmap may fall outside the context, as long
-  /// as the <code>src_rect</code> subset of it falls entirely within the
-  /// context.
-  ///
-  /// There are two methods most modules will use for painting. The first
-  /// method is to generate a new <code>ImageData</code> and then paint it. In
-  /// this case, you'll set the location of your painting to
-  /// <code>top_left</code> and set <code>src_rect</code> to <code>NULL</code>.
-  /// The second is that you're generating small invalid regions out of a larger
-  /// bitmap representing your entire module. In this case, you would set the
-  /// location of your image to (0,0) and then set <code>src_rect</code> to the
-  /// pixels you changed.
-  ///
-  /// @param[in] image The <code>ImageData</code> to be painted.
-  /// @param[in] top_left A <code>Point</code> representing the
-  /// <code>top_left</code> location where the <code>ImageData</code> will be
-  /// painted.
-  /// @param[in] src_rect The rectangular area where the <code>ImageData</code>
-  /// will be painted.
-  void PaintImageData(const ImageData& image,
-                      const Point& top_left,
-                      const Rect& src_rect);
-
-  /// Scroll() enqueues a scroll of the context's backing store. This
-  /// function has no effect until you call Flush(). The data within the
-  /// provided clipping rectangle will be shifted by (dx, dy) pixels.
-  ///
-  /// This function will result in some exposed region which will have
-  /// undefined contents. The module should call PaintImageData() on
-  /// these exposed regions to give the correct contents.
-  ///
-  /// The scroll can be larger than the area of the clipping rectangle, which
-  /// means the current image will be scrolled out of the rectangle. This
-  /// scenario is not an error but will result in a no-op.
-  ///
-  /// @param[in] clip The clipping rectangle.
-  /// @param[in] amount The amount the area in the clipping rectangle will
-  /// shifted.
-  void Scroll(const Rect& clip, const Point& amount);
-
-  /// ReplaceContents() provides a slightly more efficient way to paint the
-  /// entire module's image. Normally, calling PaintImageData() requires that
-  /// the browser copy the pixels out of the image and into the graphics
-  /// context's backing store. This function replaces the graphics context's
-  /// backing store with the given image, avoiding the copy.
-  ///
-  /// The new image must be the exact same size as this graphics context. If
-  /// the new image uses a different image format than the browser's native
-  /// bitmap format (use ImageData::GetNativeImageDataFormat() to retrieve the
-  /// format), then a conversion will be done inside the browser which may slow
-  /// the performance a little bit.
-  ///
-  /// <strong>Note:</strong> The new image will not be painted until you call
-  /// Flush().
-  ///
-  /// After this call, you should take care to release your references to the
-  /// image. If you paint to the image after ReplaceContents(), there is the
-  /// possibility of significant painting artifacts because the page might use
-  /// partially-rendered data when copying out of the backing store.
-  ///
-  /// In the case of an animation, you will want to allocate a new image for
-  /// the next frame. It is best if you wait until the flush callback has
-  /// executed before allocating this bitmap. This gives the browser the option
-  /// of caching the previous backing store and handing it back to you
-  /// (assuming the sizes match). In the optimal case, this means no bitmaps are
-  /// allocated during the animation, and the backing store and "front buffer"
-  /// (which the module is painting into) are just being swapped back and forth.
-  ///
-  /// @param[in] image The <code>ImageData</code> to be painted.
-  void ReplaceContents(ImageData* image);
-
-  /// Flush() flushes any enqueued paint, scroll, and replace commands
-  /// to the backing store. This actually executes the updates, and causes a
-  /// repaint of the webpage, assuming this graphics context is bound to a
-  /// module instance.
-  ///
-  /// Flush() runs in asynchronous mode. Specify a callback function and
-  /// the argument for that callback function. The callback function will be
-  /// executed on the calling thread when the image has been painted to the
-  /// screen. While you are waiting for a <code>Flush</code> callback,
-  /// additional calls to Flush() will fail.
-  ///
-  /// Because the callback is executed (or thread unblocked) only when the
-  /// module's image is actually on the screen, this function provides
-  /// a way to rate limit animations. By waiting until the image is on the
-  /// screen before painting the next frame, you can ensure you're not
-  /// flushing 2D graphics faster than the screen can be updated.
-  ///
-  /// <strong>Unbound contexts</strong>
-  /// If the context is not bound to a module instance, you will
-  /// still get a callback. The callback will execute after Flush() returns
-  /// to avoid reentrancy. The callback will not wait until anything is
-  /// painted to the screen because there will be nothing on the screen. The
-  /// timing of this callback is not guaranteed and may be deprioritized by
-  /// the browser because it is not affecting the user experience.
-  ///
-  /// <strong>Off-screen instances</strong>
-  /// If the context is bound to an instance that is
-  /// currently not visible (for example, scrolled out of view) it will
-  /// behave like the "unbound context" case.
-  ///
-  /// <strong>Detaching a context</strong>
-  /// If you detach a context from a module instance, any
-  /// pending flush callbacks will be converted into the "unbound context"
-  /// case.
-  ///
-  /// <strong>Released contexts</strong>
-  /// A callback may or may not still get called even if you have released all
-  /// of your references to the context. This can occur if there are internal
-  /// references to the context that means it has not been internally
-  /// destroyed (for example, if it is still bound to an instance) or due to
-  /// other implementation details. As a result, you should be careful to
-  /// check that flush callbacks are for the context you expect and that
-  /// you're capable of handling callbacks for context that you may have
-  /// released your reference to.
-  ///
-  /// <strong>Shutdown</strong>
-  /// If a module instance is removed when a Flush is pending, the
-  /// callback will not be executed.
-  ///
-  /// @param[in] cc A <code>CompletionCallback</code> to be called when the
-  /// image has been painted on the screen.
-  ///
-  /// @return Returns <code>PP_OK</code> on success or
-  /// <code>PP_ERROR_BADRESOURCE</code> if the graphics context is invalid,
-  /// <code>PP_ERROR_BADARGUMENT</code> if the callback is null and
-  /// flush is being called from the main thread of the module, or
-  /// <code>PP_ERROR_INPROGRESS</code> if a flush is already pending that has
-  /// not issued its callback yet.  In the failure case, nothing will be
-  /// updated and no callback will be scheduled.
-
-  // TODO(darin): We should ensure that the completion callback always runs, so
-  // that it is easier for consumers to manage memory referenced by a callback.
-
-  // TODO(crbug.com/): Add back in the synchronous mode description once we have
-  // support for it.
-  int32_t Flush(const CompletionCallback& cc);
-
-  /// SetScale() sets the scale factor that will be applied when painting the
-  /// graphics context onto the output device. Typically, if rendering at device
-  /// resolution is desired, the context would be created with the width and
-  /// height scaled up by the view's GetDeviceScale and SetScale called with a
-  /// scale of 1.0 / GetDeviceScale(). For example, if the view resource passed
-  /// to DidChangeView has a rectangle of (w=200, h=100) and a device scale of
-  /// 2.0, one would call Create with a size of (w=400, h=200) and then call
-  /// SetScale with 0.5. One would then treat each pixel in the context as a
-  /// single device pixel.
-  ///
-  /// @param[in] scale The scale to apply when painting.
-  ///
-  /// @return Returns <code>true</code> on success or <code>false</code>
-  /// if the resource is invalid or the scale factor is 0 or less.
-  bool SetScale(float scale);
-
-  /// GetScale() gets the scale factor that will be applied when painting the
-  /// graphics context onto the output device.
-  ///
-  /// @return Returns the scale factor for the graphics context. If the resource
-  /// is invalid, 0.0 will be returned. The default scale for a graphics context
-  /// is 1.0.
-  float GetScale();
-
-  bool SetLayerTransform(float scale,
-                         const Point& origin,
-                         const Point& translate);
- private:
-  Size size_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_GRAPHICS_2D_H_
diff --git a/cpp/graphics_3d.cc b/cpp/graphics_3d.cc
deleted file mode 100644
index a2776c7..0000000
--- a/cpp/graphics_3d.cc
+++ /dev/null
@@ -1,83 +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/cpp/graphics_3d.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Graphics3D_1_0>() {
-  return PPB_GRAPHICS_3D_INTERFACE_1_0;
-}
-
-}  // namespace
-
-Graphics3D::Graphics3D() {
-}
-
-Graphics3D::Graphics3D(const InstanceHandle& instance,
-                       const int32_t attrib_list[]) {
-  if (has_interface<PPB_Graphics3D_1_0>()) {
-    PassRefFromConstructor(get_interface<PPB_Graphics3D_1_0>()->Create(
-        instance.pp_instance(), 0, attrib_list));
-  }
-}
-
-Graphics3D::Graphics3D(const InstanceHandle& instance,
-                       const Graphics3D& share_context,
-                       const int32_t attrib_list[]) {
-  if (has_interface<PPB_Graphics3D_1_0>()) {
-    PassRefFromConstructor(get_interface<PPB_Graphics3D_1_0>()->Create(
-        instance.pp_instance(),
-        share_context.pp_resource(),
-        attrib_list));
-  }
-}
-
-Graphics3D::~Graphics3D() {
-}
-
-int32_t Graphics3D::GetAttribs(int32_t attrib_list[]) const {
-  if (!has_interface<PPB_Graphics3D_1_0>())
-    return PP_ERROR_NOINTERFACE;
-
-  return get_interface<PPB_Graphics3D_1_0>()->GetAttribs(
-      pp_resource(),
-      attrib_list);
-}
-
-int32_t Graphics3D::SetAttribs(const int32_t attrib_list[]) {
-  if (!has_interface<PPB_Graphics3D_1_0>())
-    return PP_ERROR_NOINTERFACE;
-
-  return get_interface<PPB_Graphics3D_1_0>()->SetAttribs(
-      pp_resource(),
-      attrib_list);
-}
-
-int32_t Graphics3D::ResizeBuffers(int32_t width, int32_t height) {
-  if (!has_interface<PPB_Graphics3D_1_0>())
-    return PP_ERROR_NOINTERFACE;
-
-  return get_interface<PPB_Graphics3D_1_0>()->ResizeBuffers(
-      pp_resource(), width, height);
-}
-
-int32_t Graphics3D::SwapBuffers(const CompletionCallback& cc) {
-  if (!has_interface<PPB_Graphics3D_1_0>())
-    return PP_ERROR_NOINTERFACE;
-
-  return get_interface<PPB_Graphics3D_1_0>()->SwapBuffers(
-      pp_resource(),
-      cc.pp_completion_callback());
-}
-
-}  // namespace pp
diff --git a/cpp/graphics_3d.h b/cpp/graphics_3d.h
deleted file mode 100644
index f024a50..0000000
--- a/cpp/graphics_3d.h
+++ /dev/null
@@ -1,195 +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_CPP_GRAPHICS_3D_H_
-#define PPAPI_CPP_GRAPHICS_3D_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_graphics_3d.h"
-#include "ppapi/cpp/resource.h"
-
-/// @file
-/// This file defines the API to create a 3D rendering context in the browser.
-namespace pp {
-
-class CompletionCallback;
-class InstanceHandle;
-
-/// This class represents a 3D rendering context in the browser.
-class Graphics3D : public Resource {
- public:
-  /// Default constructor for creating an is_null() Graphics3D object.
-  Graphics3D();
-
-  /// A constructor for creating and initializing a 3D rendering context.
-  /// The returned context is created off-screen and must be attached
-  /// to a module instance using <code>Instance::BindGraphics</code> to draw on
-  /// the web page.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  ///
-  /// @param[in] attrib_list The list of attributes (name=value pairs) for the
-  /// context. The list is terminated with
-  /// <code>PP_GRAPHICS3DATTRIB_NONE</code>. The <code>attrib_list</code> may
-  /// be <code>NULL</code> or empty (first attribute is
-  /// <code>PP_GRAPHICS3DATTRIB_NONE</code>). If an attribute is not specified
-  /// in <code>attrib_list</code>, then the default value is used.
-  ///
-  /// Attributes are classified into two categories:
-  ///
-  /// 1. AtLeast: The attribute value in the returned context will meet or
-  ///            exceed the value requested when creating the object.
-  /// 2. Exact: The attribute value in the returned context is equal to
-  ///          the value requested when creating the object.
-  ///
-  /// AtLeast attributes are (all have default values of 0):
-  ///
-  /// <code>PP_GRAPHICS3DATTRIB_ALPHA_SIZE</code>
-  /// <code>PP_GRAPHICS3DATTRIB_BLUE_SIZE</code>
-  /// <code>PP_GRAPHICS3DATTRIB_GREEN_SIZE</code>
-  /// <code>PP_GRAPHICS3DATTRIB_RED_SIZE</code>
-  /// <code>PP_GRAPHICS3DATTRIB_DEPTH_SIZE</code>
-  /// <code>PP_GRAPHICS3DATTRIB_STENCIL_SIZE</code>
-  /// <code>PP_GRAPHICS3DATTRIB_SAMPLES</code>
-  /// <code>PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS</code>
-  ///
-  /// Exact attributes are:
-  ///
-  /// <code>PP_GRAPHICS3DATTRIB_WIDTH</code> Default 0
-  /// <code>PP_GRAPHICS3DATTRIB_HEIGHT</code> Default 0
-  /// <code>PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR</code>
-  /// Default: Implementation defined.
-  ///
-  /// On failure, the object will be is_null().
-  Graphics3D(const InstanceHandle& instance,
-             const int32_t attrib_list[]);
-
-  /// A constructor for creating and initializing a 3D rendering context. The
-  /// returned context is created off-screen. It must be attached to a
-  /// module instance using <code>Instance::BindGraphics</code> to draw on the
-  /// web page.
-  ///
-  /// This constructor is identical to the 2-argument version except that this
-  /// version allows sharing of resources with another context.
-  ///
-  /// @param[in] instance The instance that will own the new Graphics3D.
-  ///
-  /// @param[in] share_context Specifies the context with which all
-  /// shareable data will be shared. The shareable data is defined by the
-  /// client API (note that for OpenGL and OpenGL ES, shareable data excludes
-  /// texture objects named 0). An arbitrary number of Graphics3D resources
-  /// can share data in this fashion.
-  //
-  /// @param[in] attrib_list The list of attributes for the context. See the
-  /// 2-argument version of this constructor for more information.
-  ///
-  /// On failure, the object will be is_null().
-  Graphics3D(const InstanceHandle& instance,
-             const Graphics3D& share_context,
-             const int32_t attrib_list[]);
-
-  /// Destructor.
-  ~Graphics3D();
-
-  /// GetAttribs() retrieves the value for each attribute in
-  /// <code>attrib_list</code>. The list has the same structure as described
-  /// for the constructor. All attribute values specified in
-  /// <code>pp_graphics_3d.h</code> can be retrieved.
-  ///
-  /// @param[in,out] attrib_list The list of attributes (name=value pairs) for
-  /// the context. The list is terminated with
-  /// <code>PP_GRAPHICS3DATTRIB_NONE</code>.
-  ///
-  /// The following error codes may be returned on failure:
-  ///
-  /// PP_ERROR_BADRESOURCE if context is invalid.
-  /// PP_ERROR_BADARGUMENT if <code>attrib_list</code> is NULL or any attribute
-  /// in the <code>attrib_list</code> is not a valid attribute.
-  ///
-  /// <strong>Example:</strong>
-  ///
-  /// @code
-  /// int attrib_list[] = {PP_GRAPHICS3DATTRIB_RED_SIZE, 0,
-  ///                      PP_GRAPHICS3DATTRIB_GREEN_SIZE, 0,
-  ///                      PP_GRAPHICS3DATTRIB_BLUE_SIZE, 0,
-  ///                      PP_GRAPHICS3DATTRIB_NONE};
-  /// GetAttribs(context, attrib_list);
-  /// int red_bits = attrib_list[1];
-  /// int green_bits = attrib_list[3];
-  /// int blue_bits = attrib_list[5];
-  /// @endcode
-  ///
-  /// This example retrieves the values for rgb bits in the color buffer.
-  int32_t GetAttribs(int32_t attrib_list[]) const;
-
-  /// SetAttribs() sets the values for each attribute in
-  /// <code>attrib_list</code>. The list has the same structure as the list
-  /// used in the constructors.
-  ///
-  /// Attributes that can be specified are:
-  /// - PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR
-  ///
-  /// On failure the following error codes may be returned:
-  /// - PP_ERROR_BADRESOURCE if context is invalid.
-  /// - PP_ERROR_BADARGUMENT if attrib_list is NULL or any attribute in the
-  ///   attrib_list is not a valid attribute.
-  int32_t SetAttribs(const int32_t attrib_list[]);
-
-  /// ResizeBuffers() resizes the backing surface for the context.
-  ///
-  /// @param[in] width The width of the backing surface.
-  /// @param[in] height The height of the backing surface.
-  ///
-  /// @return An int32_t containing <code>PP_ERROR_BADRESOURCE</code> if
-  /// context is invalid or <code>PP_ERROR_BADARGUMENT</code> if the value
-  /// specified for width or height is less than zero.
-  /// <code>PP_ERROR_NOMEMORY</code> might be returned on the next
-  /// SwapBuffers() callback if the surface could not be resized due to
-  /// insufficient resources.
-  int32_t ResizeBuffers(int32_t width, int32_t height);
-
-  /// SwapBuffers() makes the contents of the color buffer available for
-  /// compositing. This function has no effect on off-screen surfaces: surfaces
-  /// not bound to any module instance. The contents of ancillary buffers are
-  /// always undefined after calling SwapBuffers(). The contents of the color
-  /// buffer are undefined if the value of the
-  /// <code>PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR</code> attribute of context is
-  /// not <code>PP_GRAPHICS3DATTRIB_BUFFER_PRESERVED</code>.
-  ///
-  /// SwapBuffers() runs in asynchronous mode. Specify a callback function and
-  /// the argument for that callback function. The callback function will be
-  /// executed on the calling thread after the color buffer has been composited
-  /// with rest of the html page. While you are waiting for a SwapBuffers()
-  /// callback, additional calls to SwapBuffers() will fail.
-  ///
-  /// Because the callback is executed (or thread unblocked) only when the
-  /// instance's current state is actually on the screen, this function
-  /// provides a way to rate limit animations. By waiting until the image is on
-  /// the screen before painting the next frame, you can ensure you're not
-  /// generating updates faster than the screen can be updated.
-  ///
-  /// SwapBuffers() performs an implicit flush operation on context.
-  /// If the context gets into an unrecoverable error condition while
-  /// processing a command, the error code will be returned as the argument
-  /// for the callback. The callback may return the following error codes:
-  ///
-  /// <code>PP_ERROR_NOMEMORY</code>
-  /// <code>PP_ERROR_CONTEXT_LOST</code>
-  ///
-  /// Note that the same error code may also be obtained by calling GetError().
-  ///
-  /// param[in] cc A <code>CompletionCallback</code> to be called upon
-  /// completion of SwapBuffers().
-  ///
-  /// @return An int32_t containing <code>PP_ERROR_BADRESOURCE</code> if
-  /// context is invalid or <code>PP_ERROR_BADARGUMENT</code> if callback is
-  /// invalid.
-  int32_t SwapBuffers(const CompletionCallback& cc);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_GRAPHICS_3D_H_
diff --git a/cpp/graphics_3d_client.cc b/cpp/graphics_3d_client.cc
deleted file mode 100644
index 6b4eba6..0000000
--- a/cpp/graphics_3d_client.cc
+++ /dev/null
@@ -1,45 +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/cpp/graphics_3d_client.h"
-
-#include "ppapi/c/ppp_graphics_3d.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-const char kPPPGraphics3DInterface[] = PPP_GRAPHICS_3D_INTERFACE;
-
-void Graphics3D_ContextLost(PP_Instance instance) {
-  void* object =
-      Instance::GetPerInstanceObject(instance, kPPPGraphics3DInterface);
-  if (!object)
-    return;
-  return static_cast<Graphics3DClient*>(object)->Graphics3DContextLost();
-}
-
-static PPP_Graphics3D graphics3d_interface = {
-  &Graphics3D_ContextLost,
-};
-
-}  // namespace
-
-Graphics3DClient::Graphics3DClient(Instance* instance)
-    : associated_instance_(instance) {
-  Module::Get()->AddPluginInterface(kPPPGraphics3DInterface,
-                                    &graphics3d_interface);
-  instance->AddPerInstanceObject(kPPPGraphics3DInterface, this);
-}
-
-Graphics3DClient::~Graphics3DClient() {
-  Instance::RemovePerInstanceObject(associated_instance_,
-                                    kPPPGraphics3DInterface, this);
-}
-
-}  // namespace pp
diff --git a/cpp/graphics_3d_client.h b/cpp/graphics_3d_client.h
deleted file mode 100644
index ef4a8d9..0000000
--- a/cpp/graphics_3d_client.h
+++ /dev/null
@@ -1,43 +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_CPP_GRAPHICS_3D_CLIENT_H_
-#define PPAPI_CPP_GRAPHICS_3D_CLIENT_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/cpp/instance_handle.h"
-
-/// @file
-/// This file defines the API for callbacks related to 3D.
-
-namespace pp {
-
-class Instance;
-
-// This class provides a C++ interface for callbacks related to 3D. You
-// would normally use multiple inheritance to derive from this class in your
-// instance.
-class Graphics3DClient {
- public:
-  ///
-  /// A constructor for creating a Graphics3DClient.
-  ///
-  /// @param[in] instance The instance that will own the new
-  /// <code>Graphics3DClient</code>.
-  explicit Graphics3DClient(Instance* instance);
-
-  /// Destructor.
-  virtual ~Graphics3DClient();
-
-  /// Graphics3DContextLost() is a notification that the context was lost for
-  /// the 3D devices.
-  virtual void Graphics3DContextLost() = 0;
-
- private:
-  InstanceHandle associated_instance_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_GRAPHICS_3D_CLIENT_H_
diff --git a/cpp/host_resolver.cc b/cpp/host_resolver.cc
deleted file mode 100644
index 8eb2f2b..0000000
--- a/cpp/host_resolver.cc
+++ /dev/null
@@ -1,93 +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.
-
-#include "ppapi/cpp/host_resolver.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_HostResolver_1_0>() {
-  return PPB_HOSTRESOLVER_INTERFACE_1_0;
-}
-
-}  // namespace
-
-HostResolver::HostResolver() {
-}
-
-HostResolver::HostResolver(const InstanceHandle& instance) {
-  if (has_interface<PPB_HostResolver_1_0>()) {
-    PassRefFromConstructor(get_interface<PPB_HostResolver_1_0>()->Create(
-        instance.pp_instance()));
-  }
-}
-
-HostResolver::HostResolver(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-HostResolver::HostResolver(const HostResolver& other) : Resource(other) {
-}
-
-HostResolver::~HostResolver() {
-}
-
-HostResolver& HostResolver::operator=(const HostResolver& other) {
-  Resource::operator=(other);
-  return *this;
-}
-
-// static
-bool HostResolver::IsAvailable() {
-  return has_interface<PPB_HostResolver_1_0>();
-}
-
-int32_t HostResolver::Resolve(const char* host,
-                              uint16_t port,
-                              const PP_HostResolver_Hint& hint,
-                              const CompletionCallback& callback) {
-  if (has_interface<PPB_HostResolver_1_0>()) {
-    return get_interface<PPB_HostResolver_1_0>()->Resolve(
-        pp_resource(), host, port, &hint, callback.pp_completion_callback());
-  }
-
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-Var HostResolver::GetCanonicalName() const {
-  if (has_interface<PPB_HostResolver_1_0>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_HostResolver_1_0>()->GetCanonicalName(
-                   pp_resource()));
-  }
-
-  return Var();
-}
-
-uint32_t HostResolver::GetNetAddressCount() const {
-  if (has_interface<PPB_HostResolver_1_0>()) {
-    return get_interface<PPB_HostResolver_1_0>()->GetNetAddressCount(
-        pp_resource());
-  }
-
-  return 0;
-}
-
-NetAddress HostResolver::GetNetAddress(uint32_t index) const {
-  if (has_interface<PPB_HostResolver_1_0>()) {
-    return NetAddress(PASS_REF,
-                      get_interface<PPB_HostResolver_1_0>()->GetNetAddress(
-                          pp_resource(), index));
-  }
-
-  return NetAddress();
-}
-
-}  // namespace pp
diff --git a/cpp/host_resolver.h b/cpp/host_resolver.h
deleted file mode 100644
index bfb14f4..0000000
--- a/cpp/host_resolver.h
+++ /dev/null
@@ -1,115 +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.
-
-#ifndef PPAPI_CPP_HOST_RESOLVER_H_
-#define PPAPI_CPP_HOST_RESOLVER_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/ppb_host_resolver.h"
-#include "ppapi/cpp/net_address.h"
-#include "ppapi/cpp/pass_ref.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-class CompletionCallback;
-class InstanceHandle;
-
-/// The <code>HostResolver</code> class supports host name resolution.
-///
-/// Permissions: In order to run <code>Resolve()</code>, apps permission
-/// <code>socket</code> with subrule <code>resolve-host</code> is required.
-/// For more details about network communication permissions, please see:
-/// http://developer.chrome.com/apps/app_network.html
-class HostResolver : public Resource {
- public:
-  /// Default constructor for creating an is_null() <code>HostResolver</code>
-  /// object.
-  HostResolver();
-
-  /// A constructor used to create a <code>HostResolver</code> object.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  explicit HostResolver(const InstanceHandle& instance);
-
-  /// A constructor used when you have received a <code>PP_Resource</code> as a
-  /// return value that has had 1 ref added for you.
-  ///
-  /// @param[in] resource A <code>PPB_HostResolver</code> resource.
-  HostResolver(PassRef, PP_Resource resource);
-
-  /// The copy constructor for <code>HostResolver</code>.
-  ///
-  /// @param[in] other A reference to another <code>HostResolver</code>.
-  HostResolver(const HostResolver& other);
-
-  /// The destructor.
-  virtual ~HostResolver();
-
-  /// The assignment operator for <code>HostResolver</code>.
-  ///
-  /// @param[in] other A reference to another <code>HostResolver</code>.
-  ///
-  /// @return A reference to this <code>HostResolver</code> object.
-  HostResolver& operator=(const HostResolver& other);
-
-  /// Static function for determining whether the browser supports the
-  /// <code>PPB_HostResolver</code> interface.
-  ///
-  /// @return true if the interface is available, false otherwise.
-  static bool IsAvailable();
-
-  /// Requests resolution of a host name. If the call completes successully, the
-  /// results can be retrieved by <code>GetCanonicalName()</code>,
-  /// <code>GetNetAddressCount()</code> and <code>GetNetAddress()</code>.
-  ///
-  /// @param[in] host The host name (or IP address literal) to resolve.
-  /// @param[in] port The port number to be set in the resulting network
-  /// addresses.
-  /// @param[in] hint A <code>PP_HostResolver_Hint</code> structure
-  /// providing hints for host resolution.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  /// <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have
-  /// required permissions. <code>PP_ERROR_NAME_NOT_RESOLVED</code> will be
-  /// returned if the host name couldn't be resolved.
-  int32_t Resolve(const char* host,
-                  uint16_t port,
-                  const PP_HostResolver_Hint& hint,
-                  const CompletionCallback& callback);
-
-  /// Gets the canonical name of the host.
-  ///
-  /// @return A string <code>Var</code> on success, which is an empty string
-  /// if <code>PP_HOSTRESOLVER_FLAG_CANONNAME</code> is not set in the hint
-  /// flags when calling <code>Resolve()</code>; an undefined <code>Var</code>
-  /// if there is a pending <code>Resolve()</code> call or the previous
-  /// <code>Resolve()</code> call failed.
-  Var GetCanonicalName() const;
-
-  /// Gets the number of network addresses.
-  ///
-  /// @return The number of available network addresses on success; 0 if there
-  /// is a pending <code>Resolve()</code> call or the previous
-  /// <code>Resolve()</code> call failed.
-  uint32_t GetNetAddressCount() const;
-
-  /// Gets a network address.
-  ///
-  /// @param[in] index An index indicating which address to return.
-  ///
-  /// @return A <code>NetAddress</code> object. The object will be null
-  /// (i.e., is_null() returns true) if there is a pending
-  /// <code>Resolve()</code> call or the previous <code>Resolve()</code> call
-  /// failed, or the specified index is out of range.
-  NetAddress GetNetAddress(uint32_t index) const;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_HOST_RESOLVER_H_
diff --git a/cpp/image_data.cc b/cpp/image_data.cc
deleted file mode 100644
index 40b37e8..0000000
--- a/cpp/image_data.cc
+++ /dev/null
@@ -1,108 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/cpp/image_data.h"
-
-#include <string.h>  // Needed for memset.
-
-#include <algorithm>
-
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_ImageData_1_0>() {
-  return PPB_IMAGEDATA_INTERFACE_1_0;
-}
-
-}  // namespace
-
-ImageData::ImageData() : data_(NULL) {
-  memset(&desc_, 0, sizeof(PP_ImageDataDesc));
-}
-
-ImageData::ImageData(const ImageData& other)
-    : Resource(other),
-      desc_(other.desc_),
-      data_(other.data_) {
-}
-
-ImageData::ImageData(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource),
-      data_(NULL) {
-  memset(&desc_, 0, sizeof(PP_ImageDataDesc));
-  InitData();
-}
-
-ImageData::ImageData(const InstanceHandle& instance,
-                     PP_ImageDataFormat format,
-                     const Size& size,
-                     bool init_to_zero)
-    : data_(NULL) {
-  memset(&desc_, 0, sizeof(PP_ImageDataDesc));
-
-  if (!has_interface<PPB_ImageData_1_0>())
-    return;
-
-  PassRefFromConstructor(get_interface<PPB_ImageData_1_0>()->Create(
-      instance.pp_instance(), format, &size.pp_size(),
-      PP_FromBool(init_to_zero)));
-  InitData();
-}
-
-ImageData& ImageData::operator=(const ImageData& other) {
-  Resource::operator=(other);
-  desc_ = other.desc_;
-  data_ = other.data_;
-  return *this;
-}
-
-const uint32_t* ImageData::GetAddr32(const Point& coord) const {
-  // Prefer evil const casts rather than evil code duplication.
-  return const_cast<ImageData*>(this)->GetAddr32(coord);
-}
-
-uint32_t* ImageData::GetAddr32(const Point& coord) {
-  // If we add more image format types that aren't 32-bit, we'd want to check
-  // here and fail.
-  return reinterpret_cast<uint32_t*>(
-      &static_cast<char*>(data())[coord.y() * stride() + coord.x() * 4]);
-}
-
-// static
-bool ImageData::IsImageDataFormatSupported(PP_ImageDataFormat format) {
-  if (!has_interface<PPB_ImageData_1_0>())
-    return false;
-  return PP_ToBool(get_interface<PPB_ImageData_1_0>()->
-      IsImageDataFormatSupported(format));
-}
-
-// static
-PP_ImageDataFormat ImageData::GetNativeImageDataFormat() {
-  if (!has_interface<PPB_ImageData_1_0>())
-    return PP_IMAGEDATAFORMAT_BGRA_PREMUL;  // Default to something on failure.
-  return get_interface<PPB_ImageData_1_0>()->GetNativeImageDataFormat();
-}
-
-void ImageData::InitData() {
-  if (!has_interface<PPB_ImageData_1_0>())
-    return;
-  if (get_interface<PPB_ImageData_1_0>()->Describe(pp_resource(), &desc_)) {
-    data_ = get_interface<PPB_ImageData_1_0>()->Map(pp_resource());
-    if (data_)
-      return;
-  }
-  *this = ImageData();
-}
-
-}  // namespace pp
diff --git a/cpp/image_data.h b/cpp/image_data.h
deleted file mode 100644
index 0a780a7..0000000
--- a/cpp/image_data.h
+++ /dev/null
@@ -1,143 +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_CPP_IMAGE_DATA_H_
-#define PPAPI_CPP_IMAGE_DATA_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_image_data.h"
-#include "ppapi/cpp/point.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/size.h"
-
-/// @file
-/// This file defines the APIs for determining how a browser
-/// handles image data.
-namespace pp {
-
-class InstanceHandle;
-
-class ImageData : public Resource {
- public:
-  /// Default constructor for creating an is_null() <code>ImageData</code>
-  /// object.
-  ImageData();
-
-  /// A constructor used when you have received a <code>PP_Resource</code> as a
-  /// return value that has already been reference counted.
-  ///
-  /// @param[in] resource A PP_Resource corresponding to image data.
-  ImageData(PassRef, PP_Resource resource);
-
-  /// The copy constructor for <code>ImageData</code>. This constructor
-  /// produces an <code>ImageData</code> object that shares the underlying
-  /// <code>Image</code> resource with <code>other</code>.
-  ///
-  /// @param[in] other A pointer to an image data.
-  ImageData(const ImageData& other);
-
-  /// A constructor that allocates a new <code>ImageData</code> in the browser
-  /// with the provided parameters. The resulting object will be is_null() if
-  /// the allocation failed.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  ///
-  /// @param[in] format A PP_ImageDataFormat containing desired image format.
-  /// PP_ImageDataFormat is an enumeration of the different types of
-  /// image data formats. Refer to
-  /// <a href="../c/ppb__image__data_8h.html">
-  /// <code>ppb_image_data.h</code></a> for further information.
-  ///
-  /// @param[in] size A pointer to a <code>Size</code> containing the image
-  /// size.
-  ///
-  /// @param[in] init_to_zero A bool used to determine transparency at
-  /// creation. Set the <code>init_to_zero</code> flag if you want the bitmap
-  /// initialized to transparent during the creation process. If this flag is
-  /// not set, the current contents of the bitmap will be undefined, and the
-  /// module should be sure to set all the pixels.
-  ImageData(const InstanceHandle& instance,
-            PP_ImageDataFormat format,
-            const Size& size,
-            bool init_to_zero);
-
-  /// This function decrements the reference count of this
-  /// <code>ImageData</code> and increments the reference count of the
-  /// <code>other</code> <code>ImageData</code>. This <code>ImageData</code>
-  /// shares the underlying image resource with <code>other</code>.
-  ///
-  /// @param[in] other An other image data.
-  ///
-  /// @return A new image data context.
-  ImageData& operator=(const ImageData& other);
-
-  /// IsImageDataFormatSupported() returns <code>true</code> if the supplied
-  /// format is supported by the browser. Note:
-  /// <code>PP_IMAGEDATAFORMAT_BGRA_PREMUL</code> and
-  /// <code>PP_IMAGEDATAFORMAT_RGBA_PREMUL</code> formats are always supported.
-  /// Other image formats do not make this guarantee, and should be checked
-  /// first with IsImageDataFormatSupported() before using.
-  ///
-  /// @param[in] format Image data format.
-  ///
-  /// @return <code>true</code> if the format is supported by the browser.
-  static bool IsImageDataFormatSupported(PP_ImageDataFormat format);
-
-  /// GetNativeImageDataFormat() determines the browser's preferred format for
-  /// images. Using this format guarantees no extra conversions will occur when
-  /// painting.
-  ///
-  /// @return <code>PP_ImageDataFormat</code> containing the preferred format.
-  static PP_ImageDataFormat GetNativeImageDataFormat();
-
-  /// A getter function for returning the current format for images.
-  ///
-  /// @return <code>PP_ImageDataFormat</code> containing the preferred format.
-  PP_ImageDataFormat format() const { return desc_.format; }
-
-  /// A getter function for returning the image size.
-  ///
-  /// @return The image size in pixels.
-  pp::Size size() const { return desc_.size; }
-
-  /// A getter function for returning the row width in bytes.
-  ///
-  /// @return The row width in bytes.
-  int32_t stride() const { return desc_.stride; }
-
-  /// A getter function for returning a raw pointer to the image pixels.
-  ///
-  /// @return A raw pointer to the image pixels.
-  void* data() const { return data_; }
-
-  /// This function is used retrieve the address of the given pixel for 32-bit
-  /// pixel formats.
-  ///
-  /// @param[in] coord A <code>Point</code> representing the x and y
-  /// coordinates for a specific pixel.
-  ///
-  /// @return The address for the pixel.
-  const uint32_t* GetAddr32(const Point& coord) const;
-
-  /// This function is used retrieve the address of the given pixel for 32-bit
-  /// pixel formats.
-  ///
-  /// @param[in] coord A <code>Point</code> representing the x and y
-  /// coordinates for a specific pixel.
-  ///
-  /// @return The address for the pixel.
-  uint32_t* GetAddr32(const Point& coord);
-
- private:
-  void InitData();
-
-  PP_ImageDataDesc desc_;
-  void* data_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_IMAGE_DATA_H_
diff --git a/cpp/input_event.cc b/cpp/input_event.cc
deleted file mode 100644
index 7e0f594..0000000
--- a/cpp/input_event.cc
+++ /dev/null
@@ -1,435 +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/cpp/input_event.h"
-
-#include "ppapi/cpp/input_event_interface_name.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/point.h"
-#include "ppapi/cpp/touch_point.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_KeyboardInputEvent_1_2>() {
-  return PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_2;
-}
-
-template <> const char* interface_name<PPB_KeyboardInputEvent_1_0>() {
-  return PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_0;
-}
-
-template <> const char* interface_name<PPB_MouseInputEvent_1_1>() {
-  return PPB_MOUSE_INPUT_EVENT_INTERFACE_1_1;
-}
-
-template <> const char* interface_name<PPB_WheelInputEvent_1_0>() {
-  return PPB_WHEEL_INPUT_EVENT_INTERFACE_1_0;
-}
-
-template <> const char* interface_name<PPB_TouchInputEvent_1_0>() {
-  return PPB_TOUCH_INPUT_EVENT_INTERFACE_1_0;
-}
-
-template <>
-const char* interface_name<PPB_TouchInputEvent_1_4>() {
-  return PPB_TOUCH_INPUT_EVENT_INTERFACE_1_4;
-}
-
-template <> const char* interface_name<PPB_IMEInputEvent_1_0>() {
-  return PPB_IME_INPUT_EVENT_INTERFACE_1_0;
-}
-
-}  // namespace
-
-// InputEvent ------------------------------------------------------------------
-
-InputEvent::InputEvent() : Resource() {
-}
-
-InputEvent::InputEvent(PP_Resource input_event_resource) : Resource() {
-  // Type check the input event before setting it.
-  if (!has_interface<PPB_InputEvent_1_0>())
-    return;
-  if (get_interface<PPB_InputEvent_1_0>()->IsInputEvent(input_event_resource)) {
-    Module::Get()->core()->AddRefResource(input_event_resource);
-    PassRefFromConstructor(input_event_resource);
-  }
-}
-
-InputEvent::~InputEvent() {
-}
-
-PP_InputEvent_Type InputEvent::GetType() const {
-  if (!has_interface<PPB_InputEvent_1_0>())
-    return PP_INPUTEVENT_TYPE_UNDEFINED;
-  return get_interface<PPB_InputEvent_1_0>()->GetType(pp_resource());
-}
-
-PP_TimeTicks InputEvent::GetTimeStamp() const {
-  if (!has_interface<PPB_InputEvent_1_0>())
-    return 0.0f;
-  return get_interface<PPB_InputEvent_1_0>()->GetTimeStamp(pp_resource());
-}
-
-uint32_t InputEvent::GetModifiers() const {
-  if (!has_interface<PPB_InputEvent_1_0>())
-    return 0;
-  return get_interface<PPB_InputEvent_1_0>()->GetModifiers(pp_resource());
-}
-
-// MouseInputEvent -------------------------------------------------------------
-
-MouseInputEvent::MouseInputEvent() : InputEvent() {
-}
-
-MouseInputEvent::MouseInputEvent(const InputEvent& event) : InputEvent() {
-  // Type check the input event before setting it.
-  if (!has_interface<PPB_MouseInputEvent_1_1>())
-    return;
-  if (get_interface<PPB_MouseInputEvent_1_1>()->IsMouseInputEvent(
-          event.pp_resource())) {
-    Module::Get()->core()->AddRefResource(event.pp_resource());
-    PassRefFromConstructor(event.pp_resource());
-  }
-}
-
-MouseInputEvent::MouseInputEvent(const InstanceHandle& instance,
-                                 PP_InputEvent_Type type,
-                                 PP_TimeTicks time_stamp,
-                                 uint32_t modifiers,
-                                 PP_InputEvent_MouseButton mouse_button,
-                                 const Point& mouse_position,
-                                 int32_t click_count,
-                                 const Point& mouse_movement) {
-  // Type check the input event before setting it.
-  if (!has_interface<PPB_MouseInputEvent_1_1>())
-    return;
-  PassRefFromConstructor(get_interface<PPB_MouseInputEvent_1_1>()->Create(
-      instance.pp_instance(), type, time_stamp, modifiers, mouse_button,
-      &mouse_position.pp_point(), click_count, &mouse_movement.pp_point()));
-}
-
-PP_InputEvent_MouseButton MouseInputEvent::GetButton() const {
-  if (!has_interface<PPB_MouseInputEvent_1_1>())
-    return PP_INPUTEVENT_MOUSEBUTTON_NONE;
-  return get_interface<PPB_MouseInputEvent_1_1>()->GetButton(pp_resource());
-}
-
-Point MouseInputEvent::GetPosition() const {
-  if (!has_interface<PPB_MouseInputEvent_1_1>())
-    return Point();
-  return get_interface<PPB_MouseInputEvent_1_1>()->GetPosition(pp_resource());
-}
-
-int32_t MouseInputEvent::GetClickCount() const {
-  if (!has_interface<PPB_MouseInputEvent_1_1>())
-    return 0;
-  return get_interface<PPB_MouseInputEvent_1_1>()->GetClickCount(pp_resource());
-}
-
-Point MouseInputEvent::GetMovement() const {
-  if (!has_interface<PPB_MouseInputEvent_1_1>())
-    return Point();
-  return get_interface<PPB_MouseInputEvent_1_1>()->GetMovement(pp_resource());
-}
-
-// WheelInputEvent -------------------------------------------------------------
-
-WheelInputEvent::WheelInputEvent() : InputEvent() {
-}
-
-WheelInputEvent::WheelInputEvent(const InputEvent& event) : InputEvent() {
-  // Type check the input event before setting it.
-  if (!has_interface<PPB_WheelInputEvent_1_0>())
-    return;
-  if (get_interface<PPB_WheelInputEvent_1_0>()->IsWheelInputEvent(
-          event.pp_resource())) {
-    Module::Get()->core()->AddRefResource(event.pp_resource());
-    PassRefFromConstructor(event.pp_resource());
-  }
-}
-
-WheelInputEvent::WheelInputEvent(const InstanceHandle& instance,
-                                 PP_TimeTicks time_stamp,
-                                 uint32_t modifiers,
-                                 const FloatPoint& wheel_delta,
-                                 const FloatPoint& wheel_ticks,
-                                 bool scroll_by_page) {
-  // Type check the input event before setting it.
-  if (!has_interface<PPB_WheelInputEvent_1_0>())
-    return;
-  PassRefFromConstructor(get_interface<PPB_WheelInputEvent_1_0>()->Create(
-      instance.pp_instance(), time_stamp, modifiers,
-      &wheel_delta.pp_float_point(), &wheel_ticks.pp_float_point(),
-      PP_FromBool(scroll_by_page)));
-}
-
-FloatPoint WheelInputEvent::GetDelta() const {
-  if (!has_interface<PPB_WheelInputEvent_1_0>())
-    return FloatPoint();
-  return get_interface<PPB_WheelInputEvent_1_0>()->GetDelta(pp_resource());
-}
-
-FloatPoint WheelInputEvent::GetTicks() const {
-  if (!has_interface<PPB_WheelInputEvent_1_0>())
-    return FloatPoint();
-  return get_interface<PPB_WheelInputEvent_1_0>()->GetTicks(pp_resource());
-}
-
-bool WheelInputEvent::GetScrollByPage() const {
-  if (!has_interface<PPB_WheelInputEvent_1_0>())
-    return false;
-  return PP_ToBool(
-      get_interface<PPB_WheelInputEvent_1_0>()->GetScrollByPage(pp_resource()));
-}
-
-// KeyboardInputEvent ----------------------------------------------------------
-
-KeyboardInputEvent::KeyboardInputEvent() : InputEvent() {
-}
-
-KeyboardInputEvent::KeyboardInputEvent(const InputEvent& event) : InputEvent() {
-  PP_Bool is_keyboard_event = PP_FALSE;
-
-  if (has_interface<PPB_KeyboardInputEvent_1_2>()) {
-    is_keyboard_event =
-        get_interface<PPB_KeyboardInputEvent_1_2>()->IsKeyboardInputEvent(
-            event.pp_resource());
-  } else if (has_interface<PPB_KeyboardInputEvent_1_0>()) {
-    is_keyboard_event =
-        get_interface<PPB_KeyboardInputEvent_1_0>()->IsKeyboardInputEvent(
-            event.pp_resource());
-  }
-
-  if (PP_ToBool(is_keyboard_event)) {
-    Module::Get()->core()->AddRefResource(event.pp_resource());
-    PassRefFromConstructor(event.pp_resource());
-  }
-}
-
-KeyboardInputEvent::KeyboardInputEvent(const InstanceHandle& instance,
-                                       PP_InputEvent_Type type,
-                                       PP_TimeTicks time_stamp,
-                                       uint32_t modifiers,
-                                       uint32_t key_code,
-                                       const Var& character_text) {
-  if (has_interface<PPB_KeyboardInputEvent_1_2>()) {
-    PassRefFromConstructor(get_interface<PPB_KeyboardInputEvent_1_2>()->Create(
-        instance.pp_instance(), type, time_stamp, modifiers, key_code,
-        character_text.pp_var(), Var().pp_var()));
-  } else if (has_interface<PPB_KeyboardInputEvent_1_0>()) {
-    PassRefFromConstructor(get_interface<PPB_KeyboardInputEvent_1_0>()->Create(
-        instance.pp_instance(), type, time_stamp, modifiers, key_code,
-        character_text.pp_var()));
-  }
-}
-
-KeyboardInputEvent::KeyboardInputEvent(const InstanceHandle& instance,
-                                       PP_InputEvent_Type type,
-                                       PP_TimeTicks time_stamp,
-                                       uint32_t modifiers,
-                                       uint32_t key_code,
-                                       const Var& character_text,
-                                       const Var& code) {
-  if (has_interface<PPB_KeyboardInputEvent_1_2>()) {
-    PassRefFromConstructor(get_interface<PPB_KeyboardInputEvent_1_2>()->Create(
-        instance.pp_instance(), type, time_stamp, modifiers, key_code,
-        character_text.pp_var(), code.pp_var()));
-  } else if (has_interface<PPB_KeyboardInputEvent_1_0>()) {
-    PassRefFromConstructor(get_interface<PPB_KeyboardInputEvent_1_0>()->Create(
-        instance.pp_instance(), type, time_stamp, modifiers, key_code,
-        character_text.pp_var()));
-  }
-}
-
-uint32_t KeyboardInputEvent::GetKeyCode() const {
-  if (has_interface<PPB_KeyboardInputEvent_1_2>()) {
-    return get_interface<PPB_KeyboardInputEvent_1_2>()->GetKeyCode(
-        pp_resource());
-  } else if (has_interface<PPB_KeyboardInputEvent_1_0>()) {
-    return get_interface<PPB_KeyboardInputEvent_1_0>()->GetKeyCode(
-        pp_resource());
-  }
-  return 0;
-}
-
-Var KeyboardInputEvent::GetCharacterText() const {
-  if (has_interface<PPB_KeyboardInputEvent_1_2>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_KeyboardInputEvent_1_2>()->GetCharacterText(
-                   pp_resource()));
-  } else if (has_interface<PPB_KeyboardInputEvent_1_0>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_KeyboardInputEvent_1_0>()->GetCharacterText(
-                 pp_resource()));
-  }
-  return Var();
-}
-
-Var KeyboardInputEvent::GetCode() const {
-  if (has_interface<PPB_KeyboardInputEvent_1_2>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_KeyboardInputEvent_1_2>()->GetCode(
-                   pp_resource()));
-  }
-  return Var();
-}
-
-// TouchInputEvent ------------------------------------------------------------
-TouchInputEvent::TouchInputEvent() : InputEvent() {
-}
-
-TouchInputEvent::TouchInputEvent(const InputEvent& event) : InputEvent() {
-  if (!has_interface<PPB_TouchInputEvent_1_0>())
-    return;
-  // Type check the input event before setting it.
-  if (get_interface<PPB_TouchInputEvent_1_0>()->IsTouchInputEvent(
-      event.pp_resource())) {
-    Module::Get()->core()->AddRefResource(event.pp_resource());
-    PassRefFromConstructor(event.pp_resource());
-  }
-}
-
-TouchInputEvent::TouchInputEvent(const InstanceHandle& instance,
-                                 PP_InputEvent_Type type,
-                                 PP_TimeTicks time_stamp,
-                                 uint32_t modifiers) {
-  // Type check the input event before setting it.
-  if (!has_interface<PPB_TouchInputEvent_1_0>())
-    return;
-  PassRefFromConstructor(get_interface<PPB_TouchInputEvent_1_0>()->Create(
-      instance.pp_instance(), type, time_stamp, modifiers));
-}
-
-void TouchInputEvent::AddTouchPoint(PP_TouchListType list,
-                                    PP_TouchPoint point) {
-  if (!has_interface<PPB_TouchInputEvent_1_0>())
-    return;
-  get_interface<PPB_TouchInputEvent_1_0>()->AddTouchPoint(pp_resource(), list,
-                                                          &point);
-}
-
-uint32_t TouchInputEvent::GetTouchCount(PP_TouchListType list) const {
-  if (!has_interface<PPB_TouchInputEvent_1_0>())
-    return 0;
-  return get_interface<PPB_TouchInputEvent_1_0>()->GetTouchCount(pp_resource(),
-                                                                 list);
-}
-
-TouchPoint TouchInputEvent::GetTouchById(PP_TouchListType list,
-                                             uint32_t id) const {
-  if (!has_interface<PPB_TouchInputEvent_1_0>())
-    return TouchPoint();
-
-  if (has_interface<PPB_TouchInputEvent_1_4>()) {
-    return TouchPoint(
-        get_interface<PPB_TouchInputEvent_1_4>()->GetTouchById(pp_resource(),
-                                                               list, id),
-        get_interface<PPB_TouchInputEvent_1_4>()->GetTouchTiltById(
-            pp_resource(), list, id));
-  }
-
-  return TouchPoint(get_interface<PPB_TouchInputEvent_1_0>()->GetTouchById(
-      pp_resource(), list, id));
-}
-
-TouchPoint TouchInputEvent::GetTouchByIndex(PP_TouchListType list,
-                                                uint32_t index) const {
-  if (!has_interface<PPB_TouchInputEvent_1_0>())
-    return TouchPoint();
-
-  if (has_interface<PPB_TouchInputEvent_1_4>()) {
-    return TouchPoint(
-        get_interface<PPB_TouchInputEvent_1_4>()->GetTouchByIndex(pp_resource(),
-                                                                  list, index),
-        get_interface<PPB_TouchInputEvent_1_4>()->GetTouchTiltByIndex(
-            pp_resource(), list, index));
-  }
-
-  return TouchPoint(get_interface<PPB_TouchInputEvent_1_0>()->
-                        GetTouchByIndex(pp_resource(), list, index));
-}
-
-// IMEInputEvent -------------------------------------------------------
-
-IMEInputEvent::IMEInputEvent() : InputEvent() {
-}
-
-IMEInputEvent::IMEInputEvent(const InputEvent& event) : InputEvent() {
-  if (has_interface<PPB_IMEInputEvent_1_0>()) {
-    if (get_interface<PPB_IMEInputEvent_1_0>()->IsIMEInputEvent(
-            event.pp_resource())) {
-      Module::Get()->core()->AddRefResource(event.pp_resource());
-      PassRefFromConstructor(event.pp_resource());
-    }
-  }
-}
-
-IMEInputEvent::IMEInputEvent(
-    const InstanceHandle& instance,
-    PP_InputEvent_Type type,
-    PP_TimeTicks time_stamp,
-    const Var& text,
-    const std::vector<uint32_t>& segment_offsets,
-    int32_t target_segment,
-    const std::pair<uint32_t, uint32_t>& selection) : InputEvent() {
-  if (!has_interface<PPB_IMEInputEvent_1_0>())
-    return;
-  uint32_t dummy = 0;
-  PassRefFromConstructor(get_interface<PPB_IMEInputEvent_1_0>()->Create(
-      instance.pp_instance(), type, time_stamp, text.pp_var(),
-      segment_offsets.empty() ? 0u :
-          static_cast<uint32_t>(segment_offsets.size() - 1),
-      segment_offsets.empty() ? &dummy : &segment_offsets[0],
-      target_segment, selection.first, selection.second));
-}
-
-
-Var IMEInputEvent::GetText() const {
-  if (has_interface<PPB_IMEInputEvent_1_0>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_IMEInputEvent_1_0>()->GetText(
-                   pp_resource()));
-  }
-  return Var();
-}
-
-uint32_t IMEInputEvent::GetSegmentNumber() const {
-  if (has_interface<PPB_IMEInputEvent_1_0>()) {
-    return get_interface<PPB_IMEInputEvent_1_0>()->GetSegmentNumber(
-        pp_resource());
-  }
-  return 0;
-}
-
-uint32_t IMEInputEvent::GetSegmentOffset(uint32_t index) const {
-  if (has_interface<PPB_IMEInputEvent_1_0>()) {
-    return get_interface<PPB_IMEInputEvent_1_0>()->GetSegmentOffset(
-        pp_resource(), index);
-  }
-  return 0;
-}
-
-int32_t IMEInputEvent::GetTargetSegment() const {
-  if (has_interface<PPB_IMEInputEvent_1_0>()) {
-    return get_interface<PPB_IMEInputEvent_1_0>()->GetTargetSegment(
-        pp_resource());
-  }
-  return 0;
-}
-
-void IMEInputEvent::GetSelection(uint32_t* start, uint32_t* end) const {
-  if (has_interface<PPB_IMEInputEvent_1_0>()) {
-    get_interface<PPB_IMEInputEvent_1_0>()->GetSelection(pp_resource(),
-                                                         start,
-                                                         end);
-  }
-}
-
-}  // namespace pp
diff --git a/cpp/input_event.h b/cpp/input_event.h
deleted file mode 100644
index bc84325..0000000
--- a/cpp/input_event.h
+++ /dev/null
@@ -1,471 +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_CPP_INPUT_EVENT_H_
-#define PPAPI_CPP_INPUT_EVENT_H_
-
-#include <stdint.h>
-
-#include <utility>
-#include <vector>
-
-#include "ppapi/c/ppb_input_event.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/touch_point.h"
-
-/// @file
-/// This file defines the API used to handle mouse and keyboard input events.
-
-namespace pp {
-
-class FloatPoint;
-class InstanceHandle;
-class Point;
-class Var;
-
-/// This class represents an input event resource. Normally you will get passed
-/// this object through the HandleInputEvent() function on the
-/// <code>Instance</code> object.
-///
-/// Typically you would check the type of the event and then create the
-/// appropriate event-specific object to query the properties.
-///
-/// <strong>Example:</strong>
-/// @code
-///
-/// bool MyInstance::HandleInputEvent(const pp::InputEvent& event) {
-///   switch (event.GetType()) {
-///     case PP_INPUTEVENT_TYPE_MOUSEDOWN {
-///       pp::MouseInputEvent mouse_event(event);
-///       return HandleMouseDown(mouse_event.GetMousePosition());
-///     }
-///     default:
-///       return false;
-/// }
-///
-/// @endcode
-class InputEvent : public Resource {
- public:
-  /// Default constructor that creates an is_null() InputEvent object.
-  InputEvent();
-
-  /// This constructor constructs an input event from the provided input event
-  /// resource ID. The InputEvent object will be is_null() if the given
-  /// resource is not a valid input event.
-  ///
-  /// @param[in] input_event_resource A input event resource ID.
-  explicit InputEvent(PP_Resource input_event_resource);
-
-  ~InputEvent();
-
-  /// GetType() returns the type of input event for this input event
-  /// object.
-  ///
-  /// @return A <code>PP_InputEvent_Type</code> if successful,
-  /// PP_INPUTEVENT_TYPE_UNDEFINED if the resource is invalid.
-  PP_InputEvent_Type GetType() const;
-
-  /// GetTimeStamp() returns the time that the event was generated. The time
-  /// will be before the current time since processing and dispatching the
-  /// event has some overhead. Use this value to compare the times the user
-  /// generated two events without being sensitive to variable processing time.
-  ///
-  /// The return value is in time ticks, which is a monotonically increasing
-  /// clock not related to the wall clock time. It will not change if the user
-  /// changes their clock or daylight savings time starts, so can be reliably
-  /// used to compare events. This means, however, that you can't correlate
-  /// event times to a particular time of day on the system clock.
-  ///
-  /// @return A <code>PP_TimeTicks</code> containing the time the event was
-  /// generated.
-  PP_TimeTicks GetTimeStamp() const;
-
-  /// GetModifiers() returns a bitfield indicating which modifiers were down
-  /// at the time of the event. This is a combination of the flags in the
-  /// <code>PP_InputEvent_Modifier</code> enum.
-  ///
-  /// @return The modifiers associated with the event, or 0 if the given
-  /// resource is not a valid event resource.
-  uint32_t GetModifiers() const;
-};
-
-/// This class handles mouse events.
-class MouseInputEvent : public InputEvent {
- public:
-  /// Constructs an is_null() mouse input event object.
-  MouseInputEvent();
-
-  /// This constructor constructs a mouse input event object from the provided
-  /// generic input event. If the given event is itself is_null() or is not
-  /// a mouse input event, the mouse object will be is_null().
-  ///
-  /// @param event An <code>InputEvent</code>.
-  explicit MouseInputEvent(const InputEvent& event);
-
-  /// This constructor manually constructs a mouse event from the provided
-  /// parameters.
-  ///
-  /// @param[in] instance The instance for which this event occurred.
-  ///
-  /// @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-  /// input event.
-  ///
-  /// @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-  /// when the event occurred.
-  ///
-  /// @param[in] modifiers A bit field combination of the
-  /// <code>PP_InputEvent_Modifier</code> flags.
-  ///
-  /// @param[in] mouse_button The button that changed for mouse down or up
-  /// events. This value will be <code>PP_EVENT_MOUSEBUTTON_NONE</code> for
-  /// mouse move, enter, and leave events.
-  ///
-  /// @param[in] mouse_position A <code>Point</code> containing the x and y
-  /// position of the mouse when the event occurred.
-  ///
-  /// @param[in] click_count
-  // TODO(brettw) figure out exactly what this means.
-  ///
-  /// @param[in] mouse_movement The change in position of the mouse.
-  MouseInputEvent(const InstanceHandle& instance,
-                  PP_InputEvent_Type type,
-                  PP_TimeTicks time_stamp,
-                  uint32_t modifiers,
-                  PP_InputEvent_MouseButton mouse_button,
-                  const Point& mouse_position,
-                  int32_t click_count,
-                  const Point& mouse_movement);
-
-  /// GetButton() returns the mouse position for a mouse input event.
-  ///
-  /// @return The mouse button associated with mouse down and up events. This
-  /// value will be PP_EVENT_MOUSEBUTTON_NONE for mouse move, enter, and leave
-  /// events, and for all non-mouse events.
-  PP_InputEvent_MouseButton GetButton() const;
-
-  /// GetPosition() returns the pixel location of a mouse input event. When
-  /// the mouse is locked, it returns the last known mouse position just as
-  /// mouse lock was entered.
-  ///
-  /// @return The point associated with the mouse event, relative to the upper-
-  /// left of the instance receiving the event. These values can be negative for
-  /// mouse drags. The return value will be (0, 0) for non-mouse events.
-  Point GetPosition() const;
-
-  // TODO(brettw) figure out exactly what this means.
-  int32_t GetClickCount() const;
-
-  /// Returns the change in position of the mouse. When the mouse is locked,
-  /// although the mouse position doesn't actually change, this function
-  /// still provides movement information, which indicates what the change in
-  /// position would be had the mouse not been locked.
-  ///
-  /// @return The change in position of the mouse, relative to the previous
-  /// position.
-  Point GetMovement() const;
-};
-
-class WheelInputEvent : public InputEvent {
- public:
-  /// Constructs an is_null() wheel input event object.
-  WheelInputEvent();
-
-  /// This constructor constructs a wheel input event object from the
-  /// provided generic input event. If the given event is itself
-  /// is_null() or is not a wheel input event, the wheel object will be
-  /// is_null().
-  ///
-  /// @param[in] event A generic input event.
-  explicit WheelInputEvent(const InputEvent& event);
-
-  /// Constructs a wheel input even from the given parameters.
-  ///
-  /// @param[in] instance The instance for which this event occurred.
-  ///
-  /// @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-  /// when the event occurred.
-  ///
-  /// @param[in] modifiers A bit field combination of the
-  /// <code>PP_InputEvent_Modifier</code> flags.
-  ///
-  /// @param[in] wheel_delta The scroll wheel's horizontal and vertical scroll
-  /// amounts.
-  ///
-  /// @param[in] wheel_ticks The number of "clicks" of the scroll wheel that
-  /// have produced the event.
-  ///
-  /// @param[in] scroll_by_page When true, the user is requesting to scroll
-  /// by pages. When false, the user is requesting to scroll by lines.
-  WheelInputEvent(const InstanceHandle& instance,
-                  PP_TimeTicks time_stamp,
-                  uint32_t modifiers,
-                  const FloatPoint& wheel_delta,
-                  const FloatPoint& wheel_ticks,
-                  bool scroll_by_page);
-
-  /// GetDelta() returns the amount vertically and horizontally the user has
-  /// requested to scroll by with their mouse wheel. A scroll down or to the
-  /// right (where the content moves up or left) is represented as positive
-  /// values, and a scroll up or to the left (where the content moves down or
-  /// right) is represented as negative values.
-  ///
-  /// This amount is system dependent and will take into account the user's
-  /// preferred scroll sensitivity and potentially also nonlinear acceleration
-  /// based on the speed of the scrolling.
-  ///
-  /// Devices will be of varying resolution. Some mice with large detents will
-  /// only generate integer scroll amounts. But fractional values are also
-  /// possible, for example, on some trackpads and newer mice that don't have
-  /// "clicks".
-  ///
-  /// @return The vertical and horizontal scroll values. The units are either in
-  /// pixels (when scroll_by_page is false) or pages (when scroll_by_page is
-  /// true). For example, y = -3 means scroll up 3 pixels when scroll_by_page
-  /// is false, and scroll up 3 pages when scroll_by_page is true.
-  FloatPoint GetDelta() const;
-
-  /// GetTicks() returns the number of "clicks" of the scroll wheel
-  /// that have produced the event. The value may have system-specific
-  /// acceleration applied to it, depending on the device. The positive and
-  /// negative meanings are the same as for GetDelta().
-  ///
-  /// If you are scrolling, you probably want to use the delta values.  These
-  /// tick events can be useful if you aren't doing actual scrolling and don't
-  /// want or pixel values. An example may be cycling between different items in
-  /// a game.
-  ///
-  /// @return The number of "clicks" of the scroll wheel. You may receive
-  /// fractional values for the wheel ticks if the mouse wheel is high
-  /// resolution or doesn't have "clicks". If your program wants discrete
-  /// events (as in the "picking items" example) you should accumulate
-  /// fractional click values from multiple messages until the total value
-  /// reaches positive or negative one. This should represent a similar amount
-  /// of scrolling as for a mouse that has a discrete mouse wheel.
-  FloatPoint GetTicks() const;
-
-  /// GetScrollByPage() indicates if the scroll delta x/y indicates pages or
-  /// lines to scroll by.
-  ///
-  /// @return true if the event is a wheel event and the user is scrolling
-  /// by pages, false if not or if the resource is not a wheel event.
-  bool GetScrollByPage() const;
-};
-
-class KeyboardInputEvent : public InputEvent {
- public:
-  /// Constructs an is_null() keyboard input event object.
-  KeyboardInputEvent();
-
-  /// Constructs a keyboard input event object from the provided generic input
-  /// event. If the given event is itself is_null() or is not a keyboard input
-  /// event, the keybaord object will be is_null().
-  ///
-  /// @param[in] event A generic input event.
-  explicit KeyboardInputEvent(const InputEvent& event);
-
-  /// Constructs a keyboard input even from the given parameters.
-  ///
-  /// @param[in] instance The instance for which this event occurred.
-  ///
-  /// @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-  /// input event.
-  ///
-  /// @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-  /// when the event occurred.
-  ///
-  /// @param[in]  modifiers A bit field combination of the
-  /// <code>PP_InputEvent_Modifier</code> flags.
-  ///
-  /// @param[in] key_code This value reflects the DOM KeyboardEvent
-  /// <code>keyCode</code> field. Chrome populates this with the Windows-style
-  /// Virtual Key code of the key.
-  ///
-  /// @param[in] character_text This value represents the typed character as a
-  /// UTF-8 string.
-  KeyboardInputEvent(const InstanceHandle& instance,
-                     PP_InputEvent_Type type,
-                     PP_TimeTicks time_stamp,
-                     uint32_t modifiers,
-                     uint32_t key_code,
-                     const Var& character_text);
-
-  /// Constructs a keyboard input even from the given parameters.
-  ///
-  /// @param[in] instance The instance for which this event occurred.
-  ///
-  /// @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-  /// input event.
-  ///
-  /// @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-  /// when the event occurred.
-  ///
-  /// @param[in]  modifiers A bit field combination of the
-  /// <code>PP_InputEvent_Modifier</code> flags.
-  ///
-  /// @param[in] key_code This value reflects the DOM KeyboardEvent
-  /// <code>keyCode</code> field. Chrome populates this with the Windows-style
-  /// Virtual Key code of the key.
-  ///
-  /// @param[in] character_text This value represents the typed character as a
-  /// UTF-8 string.
-  ///
-  /// @param[in] code This value reflects the DOM KeyboardEvent
-  /// <code>code</code> field, which identifies the physical key associated
-  /// with the event.
-  KeyboardInputEvent(const InstanceHandle& instance,
-                     PP_InputEvent_Type type,
-                     PP_TimeTicks time_stamp,
-                     uint32_t modifiers,
-                     uint32_t key_code,
-                     const Var& character_text,
-                     const Var& code);
-
-  /// Returns the DOM keyCode field for the keyboard event.
-  /// Chrome populates this with the Windows-style Virtual Key code of the key.
-  uint32_t GetKeyCode() const;
-
-  /// Returns the typed character for the given character event.
-  ///
-  /// @return A string var representing a single typed character for character
-  /// input events. For non-character input events the return value will be an
-  /// undefined var.
-  Var GetCharacterText() const;
-
-  /// Returns the DOM |code| for the keyboard event.
-  //
-  /// @return A string var representing a physical key that was pressed to
-  /// generate this event.
-  Var GetCode() const;
-};
-
-class TouchInputEvent : public InputEvent {
- public:
-  /// Constructs an is_null() touch input event object.
-  TouchInputEvent();
-
-  /// Constructs a touch input event object from the given generic input event.
-  /// If the given event is itself is_null() or is not a touch input event, the
-  /// touch object will be is_null().
-  explicit TouchInputEvent(const InputEvent& event);
-
-  /// Constructs a touch input even from the given parameters.
-  ///
-  /// @param[in] instance The instance for which this event occurred.
-  ///
-  /// @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-  /// input event.
-  ///
-  /// @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-  /// when the event occurred.
-  ///
-  /// @param[in]  modifiers A bit field combination of the
-  /// <code>PP_InputEvent_Modifier</code> flags.
-  TouchInputEvent(const InstanceHandle& instance,
-                  PP_InputEvent_Type type,
-                  PP_TimeTicks time_stamp,
-                  uint32_t modifiers);
-
-  /// Adds the touch-point to the specified TouchList.
-  void AddTouchPoint(PP_TouchListType list, PP_TouchPoint point);
-
-  /// @return The number of TouchPoints in this TouchList.
-  uint32_t GetTouchCount(PP_TouchListType list) const;
-
-  /// @return The TouchPoint at the given index of the given list, or an empty
-  /// TouchPoint if the index is out of range.
-  TouchPoint GetTouchByIndex(PP_TouchListType list, uint32_t index) const;
-
-  /// @return The TouchPoint in the given list with the given identifier, or an
-  /// empty TouchPoint if the list does not contain a TouchPoint with that
-  /// identifier.
-  TouchPoint GetTouchById(PP_TouchListType list, uint32_t id) const;
-};
-
-class IMEInputEvent : public InputEvent {
- public:
-  /// Constructs an is_null() IME input event object.
-  IMEInputEvent();
-
-  /// Constructs an IME input event object from the provided generic input
-  /// event. If the given event is itself is_null() or is not an IME input
-  /// event, the object will be is_null().
-  ///
-  /// @param[in] event A generic input event.
-  explicit IMEInputEvent(const InputEvent& event);
-
-  /// This constructor manually constructs an IME event from the provided
-  /// parameters.
-  ///
-  /// @param[in] instance The instance for which this event occurred.
-  ///
-  /// @param[in] type A <code>PP_InputEvent_Type</code> identifying the type of
-  /// input event. The type must be one of the ime event types.
-  ///
-  /// @param[in] time_stamp A <code>PP_TimeTicks</code> indicating the time
-  /// when the event occurred.
-  ///
-  /// @param[in] text The string returned by <code>GetText</code>.
-  ///
-  /// @param[in] segment_offsets The array of numbers returned by
-  /// <code>GetSegmentOffset</code>.
-  ///
-  /// @param[in] target_segment The number returned by
-  /// <code>GetTargetSegment</code>.
-  ///
-  /// @param[in] selection The range returned by <code>GetSelection</code>.
-  IMEInputEvent(const InstanceHandle& instance,
-                PP_InputEvent_Type type,
-                PP_TimeTicks time_stamp,
-                const Var& text,
-                const std::vector<uint32_t>& segment_offsets,
-                int32_t target_segment,
-                const std::pair<uint32_t, uint32_t>& selection);
-
-  /// Returns the composition text as a UTF-8 string for the given IME event.
-  ///
-  /// @return A string var representing the composition text. For non-IME
-  /// input events the return value will be an undefined var.
-  Var GetText() const;
-
-  /// Returns the number of segments in the composition text.
-  ///
-  /// @return The number of segments. For events other than COMPOSITION_UPDATE,
-  /// returns 0.
-  uint32_t GetSegmentNumber() const;
-
-  /// Returns the position of the index-th segmentation point in the composition
-  /// text. The position is given by a byte-offset (not a character-offset) of
-  /// the string returned by GetText(). It always satisfies
-  /// 0=GetSegmentOffset(0) < ... < GetSegmentOffset(i) < GetSegmentOffset(i+1)
-  /// < ... < GetSegmentOffset(GetSegmentNumber())=(byte-length of GetText()).
-  /// Note that [GetSegmentOffset(i), GetSegmentOffset(i+1)) represents the
-  /// range of the i-th segment, and hence GetSegmentNumber() can be a valid
-  /// argument to this function instead of an off-by-1 error.
-  ///
-  /// @param[in] ime_event A <code>PP_Resource</code> corresponding to an IME
-  /// event.
-  ///
-  /// @param[in] index An integer indicating a segment.
-  ///
-  /// @return The byte-offset of the segmentation point. If the event is not
-  /// COMPOSITION_UPDATE or index is out of range, returns 0.
-  uint32_t GetSegmentOffset(uint32_t index) const;
-
-  /// Returns the index of the current target segment of composition.
-  ///
-  /// @return An integer indicating the index of the target segment. When there
-  /// is no active target segment, or the event is not COMPOSITION_UPDATE,
-  /// returns -1.
-  int32_t GetTargetSegment() const;
-
-  /// Obtains the range selected by caret in the composition text.
-  ///
-  /// @param[out] start An integer indicating a start offset of selection range.
-  ///
-  /// @param[out] end An integer indicating an end offset of selection range.
-  void GetSelection(uint32_t* start, uint32_t* end) const;
-};
-}  // namespace pp
-
-#endif  // PPAPI_CPP_INPUT_EVENT_H_
diff --git a/cpp/input_event_interface_name.h b/cpp/input_event_interface_name.h
deleted file mode 100644
index 33c51c1..0000000
--- a/cpp/input_event_interface_name.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2018 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_CPP_INPUT_EVENT_INTERFACE_NAME_H_
-#define PPAPI_CPP_INPUT_EVENT_INTERFACE_NAME_H_
-
-#include "ppapi/c/ppb_input_event.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-// This implementation is shared between instance.cc and input_event.cc
-template <>
-const char* interface_name<PPB_InputEvent_1_0>() {
-  return PPB_INPUT_EVENT_INTERFACE_1_0;
-}
-
-}  // namespace
-}  // namespace pp
-
-#endif  // PPAPI_CPP_INPUT_EVENT_INTERFACE_NAME_H_
diff --git a/cpp/instance.cc b/cpp/instance.cc
deleted file mode 100644
index fefc61c..0000000
--- a/cpp/instance.cc
+++ /dev/null
@@ -1,250 +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/cpp/instance.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_console.h"
-#include "ppapi/c/ppb_input_event.h"
-#include "ppapi/c/ppb_instance.h"
-#include "ppapi/c/ppb_messaging.h"
-#include "ppapi/c/ppp_message_handler.h"
-#include "ppapi/cpp/graphics_2d.h"
-#include "ppapi/cpp/graphics_3d.h"
-#include "ppapi/cpp/image_data.h"
-#include "ppapi/cpp/input_event_interface_name.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/message_handler.h"
-#include "ppapi/cpp/message_loop.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/point.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/var.h"
-#include "ppapi/cpp/view.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Console_1_0>() {
-  return PPB_CONSOLE_INTERFACE_1_0;
-}
-
-template <> const char* interface_name<PPB_Instance_1_0>() {
-  return PPB_INSTANCE_INTERFACE_1_0;
-}
-
-template <> const char* interface_name<PPB_Messaging_1_0>() {
-  return PPB_MESSAGING_INTERFACE_1_0;
-}
-
-template <> const char* interface_name<PPB_Messaging_1_2>() {
-  return PPB_MESSAGING_INTERFACE_1_2;
-}
-
-// PPP_MessageHandler implementation -------------------------------------------
-void HandleMessage(PP_Instance pp_instance,
-                   void* user_data,
-                   const PP_Var* var) {
-  MessageHandler* message_handler = static_cast<MessageHandler*>(user_data);
-  message_handler->HandleMessage(InstanceHandle(pp_instance), Var(*var));
-}
-
-void HandleBlockingMessage(PP_Instance pp_instance,
-                           void* user_data,
-                           const PP_Var* var,
-                           PP_Var* result) {
-  MessageHandler* message_handler = static_cast<MessageHandler*>(user_data);
-  pp::Var result_var =
-      message_handler->HandleBlockingMessage(InstanceHandle(pp_instance),
-                                             Var(*var));
-  *result = result_var.Detach();
-}
-
-void Destroy(PP_Instance pp_instance, void* user_data) {
-  MessageHandler* message_handler = static_cast<MessageHandler*>(user_data);
-  message_handler->WasUnregistered(InstanceHandle(pp_instance));
-}
-
-static PPP_MessageHandler_0_2 message_handler_if = {
-  &HandleMessage, &HandleBlockingMessage, &Destroy
-};
-
-}  // namespace
-
-Instance::Instance(PP_Instance instance) : pp_instance_(instance) {
-}
-
-Instance::~Instance() {
-}
-
-bool Instance::Init(uint32_t /*argc*/, const char* /*argn*/[],
-                    const char* /*argv*/[]) {
-  return true;
-}
-
-void Instance::DidChangeView(const View& view) {
-  // Call the deprecated version for source backwards-compat.
-  DidChangeView(view.GetRect(), view.GetClipRect());
-}
-
-void Instance::DidChangeView(const pp::Rect& /*position*/,
-                             const pp::Rect& /*clip*/) {
-}
-
-void Instance::DidChangeFocus(bool /*has_focus*/) {
-}
-
-
-bool Instance::HandleDocumentLoad(const URLLoader& /*url_loader*/) {
-  return false;
-}
-
-bool Instance::HandleInputEvent(const InputEvent& /*event*/) {
-  return false;
-}
-
-void Instance::HandleMessage(const Var& /*message*/) {
-  return;
-}
-
-bool Instance::BindGraphics(const Graphics2D& graphics) {
-  if (!has_interface<PPB_Instance_1_0>())
-    return false;
-  return PP_ToBool(get_interface<PPB_Instance_1_0>()->BindGraphics(
-      pp_instance(), graphics.pp_resource()));
-}
-
-bool Instance::BindGraphics(const Graphics3D& graphics) {
-  if (!has_interface<PPB_Instance_1_0>())
-    return false;
-  return PP_ToBool(get_interface<PPB_Instance_1_0>()->BindGraphics(
-      pp_instance(), graphics.pp_resource()));
-}
-
-bool Instance::IsFullFrame() {
-  if (!has_interface<PPB_Instance_1_0>())
-    return false;
-  return PP_ToBool(get_interface<PPB_Instance_1_0>()->IsFullFrame(
-      pp_instance()));
-}
-
-int32_t Instance::RequestInputEvents(uint32_t event_classes) {
-  if (!has_interface<PPB_InputEvent_1_0>())
-    return PP_ERROR_NOINTERFACE;
-  return get_interface<PPB_InputEvent_1_0>()->RequestInputEvents(pp_instance(),
-                                                                 event_classes);
-}
-
-int32_t Instance::RequestFilteringInputEvents(uint32_t event_classes) {
-  if (!has_interface<PPB_InputEvent_1_0>())
-    return PP_ERROR_NOINTERFACE;
-  return get_interface<PPB_InputEvent_1_0>()->RequestFilteringInputEvents(
-      pp_instance(), event_classes);
-}
-
-void Instance::ClearInputEventRequest(uint32_t event_classes) {
-  if (!has_interface<PPB_InputEvent_1_0>())
-    return;
-  get_interface<PPB_InputEvent_1_0>()->ClearInputEventRequest(pp_instance(),
-                                                          event_classes);
-}
-
-void Instance::PostMessage(const Var& message) {
-  if (has_interface<PPB_Messaging_1_2>()) {
-    get_interface<PPB_Messaging_1_2>()->PostMessage(pp_instance(),
-                                                    message.pp_var());
-  } else if (has_interface<PPB_Messaging_1_0>()) {
-    get_interface<PPB_Messaging_1_0>()->PostMessage(pp_instance(),
-                                                    message.pp_var());
-  }
-}
-
-int32_t Instance::RegisterMessageHandler(MessageHandler* message_handler,
-                                         const MessageLoop& message_loop) {
-  if (!has_interface<PPB_Messaging_1_2>())
-    return PP_ERROR_NOTSUPPORTED;
-  return get_interface<PPB_Messaging_1_2>()->RegisterMessageHandler(
-      pp_instance(),
-      message_handler,
-      &message_handler_if,
-      message_loop.pp_resource());
-}
-
-void Instance::UnregisterMessageHandler() {
-  if (!has_interface<PPB_Messaging_1_2>())
-    return;
-  get_interface<PPB_Messaging_1_2>()->UnregisterMessageHandler(pp_instance());
-}
-
-void Instance::LogToConsole(PP_LogLevel level, const Var& value) {
-  if (!has_interface<PPB_Console_1_0>())
-    return;
-  get_interface<PPB_Console_1_0>()->Log(
-      pp_instance(), level, value.pp_var());
-}
-
-void Instance::LogToConsoleWithSource(PP_LogLevel level,
-                                      const Var& source,
-                                      const Var& value) {
-  if (!has_interface<PPB_Console_1_0>())
-    return;
-  get_interface<PPB_Console_1_0>()->LogWithSource(
-      pp_instance(), level, source.pp_var(), value.pp_var());
-}
-
-void Instance::AddPerInstanceObject(const std::string& interface_name,
-                                    void* object) {
-  // Ensure we're not trying to register more than one object per interface
-  // type. Otherwise, we'll get confused in GetPerInstanceObject.
-  PP_DCHECK(interface_name_to_objects_.find(interface_name) ==
-            interface_name_to_objects_.end());
-  interface_name_to_objects_[interface_name] = object;
-}
-
-void Instance::RemovePerInstanceObject(const std::string& interface_name,
-                                       void* object) {
-  InterfaceNameToObjectMap::iterator found = interface_name_to_objects_.find(
-      interface_name);
-  if (found == interface_name_to_objects_.end()) {
-    // Attempting to unregister an object that doesn't exist or was already
-    // unregistered.
-    PP_DCHECK(false);
-    return;
-  }
-
-  // Validate that we're removing the object we thing we are.
-  PP_DCHECK(found->second == object);
-  (void)object;  // Prevent warning in release mode.
-
-  interface_name_to_objects_.erase(found);
-}
-
-// static
-void Instance::RemovePerInstanceObject(const InstanceHandle& instance,
-                                       const std::string& interface_name,
-                                       void* object) {
-  // TODO(brettw) assert we're on the main thread.
-  Instance* that = Module::Get()->InstanceForPPInstance(instance.pp_instance());
-  if (!that)
-    return;
-  that->RemovePerInstanceObject(interface_name, object);
-}
-
-// static
-void* Instance::GetPerInstanceObject(PP_Instance instance,
-                                     const std::string& interface_name) {
-  Instance* that = Module::Get()->InstanceForPPInstance(instance);
-  if (!that)
-    return NULL;
-  InterfaceNameToObjectMap::iterator found =
-      that->interface_name_to_objects_.find(interface_name);
-  if (found == that->interface_name_to_objects_.end())
-    return NULL;
-  return found->second;
-}
-
-}  // namespace pp
diff --git a/cpp/instance.h b/cpp/instance.h
deleted file mode 100644
index 6c84356..0000000
--- a/cpp/instance.h
+++ /dev/null
@@ -1,627 +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_CPP_INSTANCE_H_
-#define PPAPI_CPP_INSTANCE_H_
-
-/// @file
-/// This file defines the C++ wrapper for an instance.
-
-#include <map>
-#include <string>
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/ppb_console.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/view.h"
-
-// Windows defines 'PostMessage', so we have to undef it.
-#ifdef PostMessage
-#undef PostMessage
-#endif
-
-/// The C++ interface to the Pepper API.
-namespace pp {
-
-class Graphics2D;
-class Graphics3D;
-class InputEvent;
-class InstanceHandle;
-class MessageHandler;
-class MessageLoop;
-class Rect;
-class URLLoader;
-class Var;
-
-class Instance {
- public:
-  /// Default constructor. Construction of an instance should only be done in
-  /// response to a browser request in <code>Module::CreateInstance</code>.
-  /// Otherwise, the instance will lack the proper bookkeeping in the browser
-  /// and in the C++ wrapper.
-  ///
-  /// Init() will be called immediately after the constructor. This allows you
-  /// to perform initialization tasks that can fail and to report that failure
-  /// to the browser.
-  explicit Instance(PP_Instance instance);
-
-  /// Destructor. When the instance is removed from the web page,
-  /// the <code>pp::Instance</code> object will be deleted. You should never
-  /// delete the <code>Instance</code> object yourself since the lifetime is
-  /// handled by the C++ wrapper and is controlled by the browser's calls to
-  /// the <code>PPP_Instance</code> interface.
-  ///
-  /// The <code>PP_Instance</code> identifier will still be valid during this
-  /// call so the instance can perform cleanup-related tasks. Once this function
-  /// returns, the <code>PP_Instance</code> handle will be invalid. This means
-  /// that you can't do any asynchronous operations such as network requests or
-  /// file writes from this destructor since they will be immediately canceled.
-  ///
-  /// <strong>Note:</strong> This function may be skipped in certain
-  /// call so the instance can perform cleanup-related tasks. Once this function
-  /// returns, the <code>PP_Instance</code> handle will be invalid. This means
-  /// that you can't do any asynchronous operations such as network requests or
-  /// file writes from this destructor since they will be immediately canceled.
-  virtual ~Instance();
-
-  /// This function returns the <code>PP_Instance</code> identifying this
-  /// object.
-  ///
-  /// @return A <code>PP_Instance</code> identifying this object.
-  PP_Instance pp_instance() const { return pp_instance_; }
-
-  /// Init() initializes this instance with the provided arguments. This
-  /// function will be called immediately after the instance object is
-  /// constructed.
-  ///
-  /// @param[in] argc The number of arguments contained in <code>argn</code>
-  /// and <code>argv</code>.
-  ///
-  /// @param[in] argn An array of argument names.  These argument names are
-  /// supplied in the \<embed\> tag, for example:
-  /// <code>\<embed id="nacl_module" dimensions="2"\></code> will produce two
-  /// argument names: "id" and "dimensions".
-  ///
-  /// @param[in] argv An array of argument values.  These are the values of the
-  /// arguments listed in the \<embed\> tag, for example
-  /// <code>\<embed id="nacl_module" dimensions="2"\></code> will produce two
-  /// argument values: "nacl_module" and "2".  The indices of these values
-  /// match the indices of the corresponding names in <code>argn</code>.
-  ///
-  /// @return true on success. Returning false causes the instance to be
-  /// deleted and no other functions to be called.
-  virtual bool Init(uint32_t argc, const char* argn[], const char* argv[]);
-
-  /// @{
-  /// @name PPP_Instance methods for the module to override:
-
-  /// DidChangeView() is called when the view information for the Instance
-  /// has changed. See the <code>View</code> object for information.
-  ///
-  /// Most implementations will want to check if the size and user visibility
-  /// changed, and either resize themselves or start/stop generating updates.
-  ///
-  /// You should not call the default implementation. For
-  /// backwards-compatibility, it will call the deprecated version of
-  /// DidChangeView below.
-  virtual void DidChangeView(const View& view);
-
-  /// Deprecated backwards-compatible version of <code>DidChangeView()</code>.
-  /// New code should derive from the version that takes a
-  /// <code>ViewChanged</code> object rather than this version. This function
-  /// is called by the default implementation of the newer
-  /// <code>DidChangeView</code> function for source compatibility with older
-  /// code.
-  ///
-  /// A typical implementation will check the size of the <code>position</code>
-  /// argument and reallocate the graphics context when a different size is
-  /// received. Note that this function will be called for scroll events where
-  /// the size doesn't change, so you should always check that the size is
-  /// actually different before doing any reallocations.
-  ///
-  /// @param[in] position The location on the page of the instance. The
-  /// position is relative to the top left corner of the viewport, which changes
-  /// as the page is scrolled. Generally the size of this value will be used to
-  /// create a graphics device, and the position is ignored (most things are
-  /// relative to the instance so the absolute position isn't useful in most
-  /// cases).
-  ///
-  /// @param[in] clip The visible region of the instance. This is relative to
-  /// the top left of the instance's coordinate system (not the page).  If the
-  /// instance is invisible, <code>clip</code> will be (0, 0, 0, 0).
-  ///
-  /// It's recommended to check for invisible instances and to stop
-  /// generating graphics updates in this case to save system resources. It's
-  /// not usually worthwhile, however, to generate partial updates according to
-  /// the clip when the instance is partially visible. Instead, update the
-  /// entire region. The time saved doing partial paints is usually not
-  /// significant and it can create artifacts when scrolling (this notification
-  /// is sent asynchronously from scrolling so there can be flashes of old
-  /// content in the exposed regions).
-  virtual void DidChangeView(const Rect& position, const Rect& clip);
-
-  /// DidChangeFocus() is called when an instance has gained or lost focus.
-  /// Having focus means that keyboard events will be sent to the instance.
-  /// An instance's default condition is that it will not have focus.
-  ///
-  /// The focus flag takes into account both browser tab and window focus as
-  /// well as focus of the plugin element on the page. In order to be deemed
-  /// to have focus, the browser window must be topmost, the tab must be
-  /// selected in the window, and the instance must be the focused element on
-  /// the page.
-  ///
-  /// <strong>Note:</strong>Clicks on instances will give focus only if you
-  /// handle the click event. Return <code>true</code> from
-  /// <code>HandleInputEvent</code> in <code>PPP_InputEvent</code> (or use
-  /// unfiltered events) to signal that the click event was handled. Otherwise,
-  /// the browser will bubble the event and give focus to the element on the
-  /// page that actually did end up consuming it. If you're not getting focus,
-  /// check to make sure you're either requesting them via
-  /// <code>RequestInputEvents()<code> (which implicitly marks all input events
-  /// as consumed) or via <code>RequestFilteringInputEvents()</code> and
-  /// returning true from your event handler.
-  ///
-  /// @param[in] has_focus Indicates the new focused state of the instance.
-  virtual void DidChangeFocus(bool has_focus);
-
-  /// HandleInputEvent() handles input events from the browser. The default
-  /// implementation does nothing and returns false.
-  ///
-  /// In order to receive input events, you must register for them by calling
-  /// RequestInputEvents() or RequestFilteringInputEvents(). By
-  /// default, no events are delivered.
-  ///
-  /// If the event was handled, it will not be forwarded to any default
-  /// handlers. If it was not handled, it may be dispatched to a default
-  /// handler. So it is important that an instance respond accurately with
-  /// whether event propagation should continue.
-  ///
-  /// Event propagation also controls focus. If you handle an event like a mouse
-  /// event, typically the instance will be given focus. Returning false from
-  /// a filtered event handler or not registering for an event type means that
-  /// the click will be given to a lower part of the page and your instance will
-  /// not receive focus. This allows an instance to be partially transparent,
-  /// where clicks on the transparent areas will behave like clicks to the
-  /// underlying page.
-  ///
-  /// In general, you should try to keep input event handling short. Especially
-  /// for filtered input events, the browser or page may be blocked waiting for
-  /// you to respond.
-  ///
-  /// The caller of this function will maintain a reference to the input event
-  /// resource during this call. Unless you take a reference to the resource
-  /// to hold it for later, you don't need to release it.
-  ///
-  /// <strong>Note: </strong>If you're not receiving input events, make sure
-  /// you register for the event classes you want by calling
-  /// <code>RequestInputEvents</code> or
-  /// <code>RequestFilteringInputEvents</code>. If you're still not receiving
-  /// keyboard input events, make sure you're returning true (or using a
-  /// non-filtered event handler) for mouse events. Otherwise, the instance will
-  /// not receive focus and keyboard events will not be sent.
-  ///
-  /// Refer to <code>RequestInputEvents</code> and
-  /// <code>RequestFilteringInputEvents</code> for further information.
-  ///
-  /// @param[in] event The event to handle.
-  ///
-  /// @return true if the event was handled, false if not. If you have
-  /// registered to filter this class of events by calling
-  /// <code>RequestFilteringInputEvents</code>, and you return false,
-  /// the event will be forwarded to the page (and eventually the browser)
-  /// for the default handling. For non-filtered events, the return value
-  /// will be ignored.
-  virtual bool HandleInputEvent(const pp::InputEvent& event);
-
-  /// HandleDocumentLoad() is called after Init() for a full-frame
-  /// instance that was instantiated based on the MIME type of a DOMWindow
-  /// navigation. This situation only applies to modules that are
-  /// pre-registered to handle certain MIME types. If you haven't specifically
-  /// registered to handle a MIME type or aren't positive this applies to you,
-  /// your implementation of this function can just return false.
-  ///
-  /// The given url_loader corresponds to a <code>URLLoader</code> object that
-  /// is already opened. Its response headers may be queried using
-  /// GetResponseInfo(). If you want to use the <code>URLLoader</code> to read
-  /// data, you will need to save a copy of it or the underlying resource will
-  /// be freed when this function returns and the load will be canceled.
-  ///
-  /// This method returns false if the module cannot handle the data. In
-  /// response to this method, the module should call ReadResponseBody() to read
-  /// the incoming data.
-  ///
-  /// @param[in] url_loader An open <code>URLLoader</code> instance.
-  ///
-  /// @return true if the data was handled, false otherwise.
-  virtual bool HandleDocumentLoad(const URLLoader& url_loader);
-
-  /// HandleMessage() is a function that the browser calls when PostMessage()
-  /// is invoked on the DOM element for the instance in JavaScript. Note
-  /// that PostMessage() in the JavaScript interface is asynchronous, meaning
-  /// JavaScript execution will not be blocked while HandleMessage() is
-  /// processing the message.
-  ///
-  /// When converting JavaScript arrays, any object properties whose name
-  /// is not an array index are ignored. When passing arrays and objects, the
-  /// entire reference graph will be converted and transferred. If the reference
-  /// graph has cycles, the message will not be sent and an error will be logged
-  /// to the console.
-  ///
-  /// <strong>Example:</strong>
-  ///
-  /// The following JavaScript code invokes <code>HandleMessage</code>, passing
-  /// the instance on which it was invoked, with <code>message</code> being a
-  /// string <code>Var</code> containing "Hello world!"
-  ///
-  /// @code{.html}
-  ///
-  /// <body>
-  ///   <object id="plugin"
-  ///           type="application/x-ppapi-postMessage-example"/>
-  ///   <script type="text/javascript">
-  ///     document.getElementById('plugin').postMessage("Hello world!");
-  ///   </script>
-  /// </body>
-  ///
-  /// @endcode
-  ///
-  /// Refer to PostMessage() for sending messages to JavaScript.
-  ///
-  /// @param[in] message A <code>Var</code> which has been converted from a
-  /// JavaScript value. JavaScript array/object types are supported from Chrome
-  /// M29 onward. All JavaScript values are copied when passing them to the
-  /// plugin.
-  virtual void HandleMessage(const Var& message);
-
-  /// @}
-
-  /// @{
-  /// @name PPB_Instance methods for querying the browser:
-
-  /// BindGraphics() binds the given graphics as the current display surface.
-  /// The contents of this device is what will be displayed in the instance's
-  /// area on the web page. The device must be a 2D or a 3D device.
-  ///
-  /// You can pass an <code>is_null()</code> (default constructed) Graphics2D
-  /// as the device parameter to unbind all devices from the given instance.
-  /// The instance will then appear transparent. Re-binding the same device
-  /// will return <code>true</code> and will do nothing.
-  ///
-  /// Any previously-bound device will be released. It is an error to bind
-  /// a device when it is already bound to another instance. If you want
-  /// to move a device between instances, first unbind it from the old one, and
-  /// then rebind it to the new one.
-  ///
-  /// Binding a device will invalidate that portion of the web page to flush the
-  /// contents of the new device to the screen.
-  ///
-  /// @param[in] graphics A <code>Graphics2D</code> to bind.
-  ///
-  /// @return true if bind was successful or false if the device was not the
-  /// correct type. On success, a reference to the device will be held by the
-  /// instance, so the caller can release its reference if it chooses.
-  bool BindGraphics(const Graphics2D& graphics);
-
-  /// Binds the given Graphics3D as the current display surface.
-  /// Refer to <code>BindGraphics(const Graphics2D& graphics)</code> for
-  /// further information.
-  ///
-  /// @param[in] graphics A <code>Graphics3D</code> to bind.
-  ///
-  /// @return true if bind was successful or false if the device was not the
-  /// correct type. On success, a reference to the device will be held by the
-  /// instance, so the caller can release its reference if it chooses.
-  bool BindGraphics(const Graphics3D& graphics);
-
-  /// IsFullFrame() determines if the instance is full-frame (repr).
-  /// Such an instance represents the entire document in a frame rather than an
-  /// embedded resource. This can happen if the user does a top-level
-  /// navigation or the page specifies an iframe to a resource with a MIME
-  /// type registered by the module.
-  ///
-  /// @return true if the instance is full-frame, false if not.
-  bool IsFullFrame();
-
-  /// RequestInputEvents() requests that input events corresponding to the
-  /// given input events are delivered to the instance.
-  ///
-  /// By default, no input events are delivered. Call this function with the
-  /// classes of events you are interested in to have them be delivered to
-  /// the instance. Calling this function will override any previous setting for
-  /// each specified class of input events (for example, if you previously
-  /// called RequestFilteringInputEvents(), this function will set those events
-  /// to non-filtering mode).
-  ///
-  /// Input events may have high overhead, so you should only request input
-  /// events that your plugin will actually handle. For example, the browser may
-  /// do optimizations for scroll or touch events that can be processed
-  /// substantially faster if it knows there are no non-default receivers for
-  /// that message. Requesting that such messages be delivered, even if they are
-  /// processed very quickly, may have a noticeable effect on the performance of
-  /// the page.
-  ///
-  /// When requesting input events through this function, the events will be
-  /// delivered and <em>not</em> bubbled to the page. This means that even if
-  /// you aren't interested in the message, no other parts of the page will get
-  /// the message.
-  ///
-  /// <strong>Example:</strong>
-  ///
-  /// @code
-  ///   RequestInputEvents(PP_INPUTEVENT_CLASS_MOUSE);
-  ///   RequestFilteringInputEvents(
-  ///       PP_INPUTEVENT_CLASS_WHEEL | PP_INPUTEVENT_CLASS_KEYBOARD);
-  ///
-  /// @endcode
-  ///
-  /// @param event_classes A combination of flags from
-  /// <code>PP_InputEvent_Class</code> that identifies the classes of events
-  /// the instance is requesting. The flags are combined by logically ORing
-  /// their values.
-  ///
-  /// @return <code>PP_OK</code> if the operation succeeded,
-  /// <code>PP_ERROR_BADARGUMENT</code> if instance is invalid, or
-  /// <code>PP_ERROR_NOTSUPPORTED</code> if one of the event class bits were
-  /// illegal. In the case of an invalid bit, all valid bits will be applied
-  /// and only the illegal bits will be ignored.
-  int32_t RequestInputEvents(uint32_t event_classes);
-
-  /// RequestFilteringInputEvents() requests that input events corresponding
-  /// to the given input events are delivered to the instance for filtering.
-  ///
-  /// By default, no input events are delivered. In most cases you would
-  /// register to receive events by calling RequestInputEvents(). In some cases,
-  /// however, you may wish to filter events such that they can be bubbled up
-  /// to the DOM. In this case, register for those classes of events using
-  /// this function instead of RequestInputEvents(). Keyboard events must always
-  /// be registered in filtering mode.
-  ///
-  /// Filtering input events requires significantly more overhead than just
-  /// delivering them to the instance. As such, you should only request
-  /// filtering in those cases where it's absolutely necessary. The reason is
-  /// that it requires the browser to stop and block for the instance to handle
-  /// the input event, rather than sending the input event asynchronously. This
-  /// can have significant overhead.
-  ///
-  /// <strong>Example:</strong>
-  ///
-  /// @code
-  ///
-  ///   RequestInputEvents(PP_INPUTEVENT_CLASS_MOUSE);
-  ///   RequestFilteringInputEvents(
-  ///       PP_INPUTEVENT_CLASS_WHEEL | PP_INPUTEVENT_CLASS_KEYBOARD);
-  ///
-  /// @endcode
-  ///
-  /// @param event_classes A combination of flags from
-  /// <code>PP_InputEvent_Class</code> that identifies the classes of events
-  /// the instance is requesting. The flags are combined by logically ORing
-  /// their values.
-  ///
-  /// @return <code>PP_OK</code> if the operation succeeded,
-  /// <code>PP_ERROR_BADARGUMENT</code> if instance is invalid, or
-  /// <code>PP_ERROR_NOTSUPPORTED</code> if one of the event class bits were
-  /// illegal. In the case of an invalid bit, all valid bits will be applied
-  /// and only the illegal bits will be ignored.
-  int32_t RequestFilteringInputEvents(uint32_t event_classes);
-
-  /// ClearInputEventRequest() requests that input events corresponding to the
-  /// given input classes no longer be delivered to the instance.
-  ///
-  /// By default, no input events are delivered. If you have previously
-  /// requested input events using RequestInputEvents() or
-  /// RequestFilteringInputEvents(), this function will unregister handling
-  /// for the given instance. This will allow greater browser performance for
-  /// those events.
-  ///
-  /// <strong>Note: </strong> You may still get some input events after
-  /// clearing the flag if they were dispatched before the request was cleared.
-  /// For example, if there are 3 mouse move events waiting to be delivered,
-  /// and you clear the mouse event class during the processing of the first
-  /// one, you'll still receive the next two. You just won't get more events
-  /// generated.
-  ///
-  /// @param[in] event_classes A combination of flags from
-  /// <code>PP_InputEvent_Class</code> that identifies the classes of events the
-  /// instance is no longer interested in.
-  void ClearInputEventRequest(uint32_t event_classes);
-
-  /// PostMessage() asynchronously invokes any listeners for message events on
-  /// the DOM element for the given instance. A call to PostMessage() will
-  /// not block while the message is processed.
-  ///
-  /// <strong>Example:</strong>
-  ///
-  /// @code{.html}
-  ///
-  /// <body>
-  ///   <object id="plugin"
-  ///           type="application/x-ppapi-postMessage-example"/>
-  ///   <script type="text/javascript">
-  ///     var plugin = document.getElementById('plugin');
-  ///     plugin.addEventListener("message",
-  ///                             function(message) { alert(message.data); },
-  ///                             false);
-  ///   </script>
-  /// </body>
-  ///
-  /// @endcode
-  ///
-  /// The instance then invokes PostMessage() as follows:
-  ///
-  /// @code
-  ///
-  ///  PostMessage(pp::Var("Hello world!"));
-  ///
-  /// @endcode
-  ///
-  /// The browser will pop-up an alert saying "Hello world!"
-  ///
-  /// When passing array or dictionary <code>PP_Var</code>s, the entire
-  /// reference graph will be converted and transferred. If the reference graph
-  /// has cycles, the message will not be sent and an error will be logged to
-  /// the console.
-  ///
-  /// Listeners for message events in JavaScript code will receive an object
-  /// conforming to the HTML 5 <code>MessageEvent</code> interface.
-  /// Specifically, the value of message will be contained as a property called
-  /// data in the received <code>MessageEvent</code>.
-  ///
-  /// This messaging system is similar to the system used for listening for
-  /// messages from Web Workers. Refer to
-  /// <code>http://www.whatwg.org/specs/web-workers/current-work/</code> for
-  /// further information.
-  ///
-  /// Refer to HandleMessage() for receiving events from JavaScript.
-  ///
-  /// @param[in] message A <code>Var</code> containing the data to be sent to
-  /// JavaScript. Message can have a numeric, boolean, or string value.
-  /// Array/Dictionary types are supported from Chrome M29 onward.
-  /// All var types are copied when passing them to JavaScript.
-  void PostMessage(const Var& message);
-
-  /// Dev-Channel Only
-  ///
-  /// Registers a handler for receiving messages from JavaScript. If a handler
-  /// is registered this way, it will replace the Instance's HandleMessage
-  /// method, and all messages sent from JavaScript via postMessage and
-  /// postMessageAndAwaitResponse will be dispatched to
-  /// <code>message_handler</code>.
-  ///
-  /// The function calls will be dispatched via <code>message_loop</code>. This
-  /// means that the functions will be invoked on the thread to which
-  /// <code>message_loop</code> is attached, when <code>message_loop</code> is
-  /// run. It is illegal to pass the main thread message loop;
-  /// RegisterMessageHandler will return PP_ERROR_WRONG_THREAD in that case.
-  /// If you quit <code>message_loop</code> before calling Unregister(),
-  /// the browser will not be able to call functions in the plugin's message
-  /// handler any more. That could mean missing some messages or could cause a
-  /// leak if you depend on Destroy() to free hander data. So you should,
-  /// whenever possible, Unregister() the handler prior to quitting its event
-  /// loop.
-  ///
-  /// Attempting to register a message handler when one is already registered
-  /// will cause the current MessageHandler to be unregistered and replaced. In
-  /// that case, no messages will be sent to the "default" message handler
-  /// (pp::Instance::HandleMessage()). Messages will stop arriving at the prior
-  /// message handler and will begin to be dispatched at the new message
-  /// handler.
-  ///
-  /// @param[in] message_handler The plugin-provided object for handling
-  /// messages. The instance does not take ownership of the pointer; it is up
-  /// to the plugin to ensure that |message_handler| lives until its
-  /// WasUnregistered() function is invoked.
-  /// @param[in] message_loop Represents the message loop on which
-  /// MessageHandler's functions should be invoked.
-  /// @return PP_OK on success, or an error from pp_errors.h.
-  int32_t RegisterMessageHandler(MessageHandler* message_handler,
-                                 const MessageLoop& message_loop);
-
-  /// Unregisters the current message handler for this instance if one is
-  /// registered. After this call, the message handler (if one was
-  /// registered) will have "WasUnregistered" called on it and will receive no
-  /// further messages. After that point, all messages sent from JavaScript
-  /// using postMessage() will be dispatched to pp::Instance::HandleMessage()
-  /// on the main thread. Attempts to call postMessageAndAwaitResponse() from
-  /// JavaScript after that point will fail.
-  ///
-  /// Attempting to unregister a message handler when none is registered has no
-  /// effect.
-  void UnregisterMessageHandler();
-
-  /// @}
-
-  /// @{
-  /// @name PPB_Console methods for logging to the console:
-
-  /// Logs the given message to the JavaScript console associated with the
-  /// given plugin instance with the given logging level. The name of the plugin
-  /// issuing the log message will be automatically prepended to the message.
-  /// The value may be any type of Var.
-  void LogToConsole(PP_LogLevel level, const Var& value);
-
-  /// Logs a message to the console with the given source information rather
-  /// than using the internal PPAPI plugin name. The name must be a string var.
-  ///
-  /// The regular log function will automatically prepend the name of your
-  /// plugin to the message as the "source" of the message. Some plugins may
-  /// wish to override this. For example, if your plugin is a Python
-  /// interpreter, you would want log messages to contain the source .py file
-  /// doing the log statement rather than have "python" show up in the console.
-  void LogToConsoleWithSource(PP_LogLevel level,
-                              const Var& source,
-                              const Var& value);
-
-  /// @}
-
-  /// AddPerInstanceObject() associates an instance with an interface,
-  /// creating an object.
-  ///
-  /// Many optional interfaces are associated with a plugin instance. For
-  /// example, the find in PPP_Find interface receives updates on a per-instance
-  /// basis. This "per-instance" tracking allows such objects to associate
-  /// themselves with an instance as "the" handler for that interface name.
-  ///
-  /// In the case of the find example, the find object registers with its
-  /// associated instance in its constructor and unregisters in its destructor.
-  /// Then whenever it gets updates with a PP_Instance parameter, it can
-  /// map back to the find object corresponding to that given PP_Instance by
-  /// calling GetPerInstanceObject.
-  ///
-  /// This lookup is done on a per-interface-name basis. This means you can
-  /// only have one object of a given interface name associated with an
-  /// instance.
-  ///
-  /// If you are adding a handler for an additional interface, be sure to
-  /// register with the module (AddPluginInterface) for your interface name to
-  /// get the C calls in the first place.
-  ///
-  /// Refer to RemovePerInstanceObject() and GetPerInstanceObject() for further
-  /// information.
-  ///
-  /// @param[in] interface_name The name of the interface to associate with the
-  /// instance
-  /// @param[in] object
-  void AddPerInstanceObject(const std::string& interface_name, void* object);
-
-  // {PENDING: summarize Remove method here}
-  ///
-  /// Refer to AddPerInstanceObject() for further information.
-  ///
-  /// @param[in] interface_name The name of the interface to associate with the
-  /// instance
-  /// @param[in] object
-  void RemovePerInstanceObject(const std::string& interface_name, void* object);
-
-  /// Static version of AddPerInstanceObject that takes an InstanceHandle. As
-  /// with all other instance functions, this must only be called on the main
-  /// thread.
-  static void RemovePerInstanceObject(const InstanceHandle& instance,
-                                      const std::string& interface_name,
-                                      void* object);
-
-  /// Look up an object previously associated with an instance. Returns NULL
-  /// if the instance is invalid or there is no object for the given interface
-  /// name on the instance.
-  ///
-  /// Refer to AddPerInstanceObject() for further information.
-  ///
-  /// @param[in] instance
-  /// @param[in] interface_name The name of the interface to associate with the
-  /// instance.
-  static void* GetPerInstanceObject(PP_Instance instance,
-                                    const std::string& interface_name);
-
- private:
-  PP_Instance pp_instance_;
-
-  typedef std::map<std::string, void*> InterfaceNameToObjectMap;
-  InterfaceNameToObjectMap interface_name_to_objects_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_INSTANCE_H_
diff --git a/cpp/instance_handle.cc b/cpp/instance_handle.cc
deleted file mode 100644
index eaa9a61..0000000
--- a/cpp/instance_handle.cc
+++ /dev/null
@@ -1,15 +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/cpp/instance_handle.h"
-
-#include "ppapi/cpp/instance.h"
-
-namespace pp {
-
-InstanceHandle::InstanceHandle(Instance* instance)
-    : pp_instance_(instance->pp_instance()) {
-}
-
-}  // namespace pp
diff --git a/cpp/instance_handle.h b/cpp/instance_handle.h
deleted file mode 100644
index 69763bd..0000000
--- a/cpp/instance_handle.h
+++ /dev/null
@@ -1,75 +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_CPP_INSTANCE_HANDLE_H_
-#define PPAPI_CPP_INSTANCE_HANDLE_H_
-
-#include "ppapi/c/pp_instance.h"
-
-
-/// @file
-/// This file defines an instance handle used to identify an instance in a
-/// constructor for a resource.
-namespace pp {
-
-class Instance;
-
-/// An instance handle identifies an instance in a constructor for a resource.
-/// This class solves two different problems:
-///
-/// 1. A pp::Instance object's lifetime is managed by the system on the main
-/// pepper thread of the module. This means that it may get destroyed at any
-/// time based on something that happens on the web page. Therefore, it's not
-/// safe to refer to a <code>pp::Instance</code> object on a background thread.
-/// Instead, we need to pass some kind of identifier to resource constructors
-/// so that they may safely be used on background threads. If the instance
-/// becomes invalid, the resource creation will fail on the background thread,
-/// but it won't crash.
-///
-/// 2. <code>PP_Instance</code> would be a good identifier to use for this case.
-/// However, using <code>PP_Instance</code> in the constructor to resources is
-/// problematic because it is just a typedef for an integer, as is a
-/// <code>PP_Resource</code>. Many resources have alternate constructors that
-/// just take an existing <code>PP_Resource</code>, so the constructors would
-/// be ambiguous. Having this wrapper around a <code>PP_Instance</code>
-/// prevents this ambiguity, and also provides a nice place to consolidate an
-/// implicit conversion from <code>pp::Instance*</code> for prettier code on
-/// the main thread (you can just pass "this" to resource constructors in your
-/// instance objects).
-///
-/// You should always pass an <code>InstanceHandle</code> to background threads
-/// instead of a <code>pp::Instance</code>, and use them in resource
-/// constructors and code that may be used from background threads.
-class InstanceHandle {
- public:
-  /// Implicit constructor for converting a <code>pp::Instance</code> to an
-  /// instance handle.
-  ///
-  /// @param[in] instance The instance with which this
-  /// <code>InstanceHandle</code> will be associated.
-  InstanceHandle(Instance* instance);
-
-  /// This constructor explicitly converts a <code>PP_Instance</code> to an
-  /// instance handle. This should not be implicit because it can make some
-  /// resource constructors ambiguous. <code>PP_Instance</code> is just a
-  /// typedef for an integer, as is <code>PP_Resource</code>, so the compiler
-  /// can get confused between the two.
-  ///
-  /// @param[in] pp_instance The instance with which this
-  /// <code>InstanceHandle</code> will be associated.
-  explicit InstanceHandle(PP_Instance pp_instance)
-      : pp_instance_(pp_instance) {}
-
-  /// The pp_instance() function returns the <code>PP_Instance</code>.
-  ///
-  /// @return A <code>PP_Instance</code> internal instance handle.
-  PP_Instance pp_instance() const { return pp_instance_; }
-
- private:
-  PP_Instance pp_instance_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_INSTANCE_HANDLE_H_
diff --git a/cpp/logging.h b/cpp/logging.h
deleted file mode 100644
index 86d9f7e..0000000
--- a/cpp/logging.h
+++ /dev/null
@@ -1,34 +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_CPP_LOGGING_H_
-#define PPAPI_CPP_LOGGING_H_
-
-/// @file
-/// This file defines two macro asserts.
-
-#include <cassert>
-
-/// This macro asserts that 'a' evaluates to true. In debug mode, this macro
-/// will crash the program if the assertion evaluates to false. It (typically)
-/// has no effect in release mode.
-#define PP_DCHECK(a) assert(a)
-
-/// This macro asserts false in debug builds. It's used in code paths that you
-/// don't expect to execute.
-///
-/// <strong>Example:</strong>
-///
-/// @code
-/// if (!pointer) {
-/// // Pointer wasn't valid! This shouldn't happen.
-/// PP_NOTREACHED();
-/// return;
-/// }
-/// // Do stuff to the pointer, since you know it's valid.
-/// pointer->DoSomething();
-/// @endcode
-#define PP_NOTREACHED() assert(false)
-
-#endif  // PPAPI_CPP_LOGGING_H_
diff --git a/cpp/media_stream_audio_track.cc b/cpp/media_stream_audio_track.cc
deleted file mode 100644
index 3811b4a..0000000
--- a/cpp/media_stream_audio_track.cc
+++ /dev/null
@@ -1,111 +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/cpp/media_stream_audio_track.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_media_stream_audio_track.h"
-#include "ppapi/cpp/audio_buffer.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_MediaStreamAudioTrack_0_1>() {
-  return PPB_MEDIASTREAMAUDIOTRACK_INTERFACE_0_1;
-}
-
-}  // namespace
-
-MediaStreamAudioTrack::MediaStreamAudioTrack() {
-}
-
-MediaStreamAudioTrack::MediaStreamAudioTrack(
-    const MediaStreamAudioTrack& other) : Resource(other) {
-}
-
-MediaStreamAudioTrack::MediaStreamAudioTrack(const Resource& resource)
-    : Resource(resource) {
-  PP_DCHECK(IsMediaStreamAudioTrack(resource));
-}
-
-MediaStreamAudioTrack::MediaStreamAudioTrack(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-MediaStreamAudioTrack::~MediaStreamAudioTrack() {
-}
-
-int32_t MediaStreamAudioTrack::Configure(
-    const int32_t attributes[],
-    const CompletionCallback& callback) {
-  if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
-    return get_interface<PPB_MediaStreamAudioTrack_0_1>()->Configure(
-        pp_resource(), attributes, callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t MediaStreamAudioTrack::GetAttrib(PP_MediaStreamAudioTrack_Attrib attrib,
-                                         int32_t* value) {
-  if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
-    return get_interface<PPB_MediaStreamAudioTrack_0_1>()->GetAttrib(
-        pp_resource(), attrib, value);
-  }
-  return PP_ERROR_NOINTERFACE;
-}
-
-std::string MediaStreamAudioTrack::GetId() const {
-  if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
-    pp::Var id(PASS_REF, get_interface<PPB_MediaStreamAudioTrack_0_1>()->GetId(
-        pp_resource()));
-    if (id.is_string())
-      return id.AsString();
-  }
-  return std::string();
-}
-
-bool MediaStreamAudioTrack::HasEnded() const {
-  if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
-    return PP_ToBool(get_interface<PPB_MediaStreamAudioTrack_0_1>()->HasEnded(
-        pp_resource()));
-  }
-  return true;
-}
-
-int32_t MediaStreamAudioTrack::GetBuffer(
-    const CompletionCallbackWithOutput<AudioBuffer>& callback) {
-  if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
-    return get_interface<PPB_MediaStreamAudioTrack_0_1>()->GetBuffer(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t MediaStreamAudioTrack::RecycleBuffer(const AudioBuffer& buffer) {
-  if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
-    return get_interface<PPB_MediaStreamAudioTrack_0_1>()->RecycleBuffer(
-        pp_resource(), buffer.pp_resource());
-  }
-  return PP_ERROR_NOINTERFACE;
-}
-
-void MediaStreamAudioTrack::Close() {
-  if (has_interface<PPB_MediaStreamAudioTrack_0_1>())
-    get_interface<PPB_MediaStreamAudioTrack_0_1>()->Close(pp_resource());
-}
-
-// static
-bool MediaStreamAudioTrack::IsMediaStreamAudioTrack(const Resource& resource) {
-  if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
-    return PP_ToBool(get_interface<PPB_MediaStreamAudioTrack_0_1>()->
-        IsMediaStreamAudioTrack(resource.pp_resource()));
-  }
-  return false;
-}
-
-}  // namespace pp
diff --git a/cpp/media_stream_audio_track.h b/cpp/media_stream_audio_track.h
deleted file mode 100644
index f76d948..0000000
--- a/cpp/media_stream_audio_track.h
+++ /dev/null
@@ -1,146 +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_CPP_MEDIA_STREAM_AUDIO_TRACK_H_
-#define PPAPI_CPP_MEDIA_STREAM_AUDIO_TRACK_H_
-
-#include <stdint.h>
-
-#include <string>
-
-#include "ppapi/c/ppb_media_stream_audio_track.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/var.h"
-
-/// @file
-/// This file defines the <code>MediaStreamAudioTrack</code> interface for an
-/// audio source resource, which receives audio buffers from a MediaStream audio
-/// track in the browser.
-
-namespace pp {
-
-class AudioBuffer;
-class CompletionCallback;
-template <typename T> class CompletionCallbackWithOutput;
-
-/// The <code>MediaStreamAudioTrack</code> class contains methods for
-/// receiving audio buffers from a MediaStream audio track in the browser.
-class MediaStreamAudioTrack : public Resource {
- public:
-  /// Default constructor for creating an is_null()
-  /// <code>MediaStreamAudioTrack</code> object.
-  MediaStreamAudioTrack();
-
-  /// The copy constructor for <code>MediaStreamAudioTrack</code>.
-  ///
-  /// @param[in] other A reference to a <code>MediaStreamAudioTrack</code>.
-  MediaStreamAudioTrack(const MediaStreamAudioTrack& other);
-
-  /// Constructs a <code>MediaStreamAudioTrack</code> from
-  /// a <code>Resource</code>.
-  ///
-  /// @param[in] resource A <code>PPB_MediaStreamAudioTrack</code> resource.
-  explicit MediaStreamAudioTrack(const Resource& resource);
-
-  /// A constructor used when you have received a <code>PP_Resource</code> as a
-  /// return value that has had 1 ref added for you.
-  ///
-  /// @param[in] resource A <code>PPB_MediaStreamAudioTrack</code> resource.
-  MediaStreamAudioTrack(PassRef, PP_Resource resource);
-
-  ~MediaStreamAudioTrack();
-
-  /// Configures underlying buffer buffers for incoming audio samples.
-  /// If the application doesn't want to drop samples, then the
-  /// <code>PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS</code> should be
-  /// chosen such that inter-buffer processing time variability won't overrun
-  /// all input buffers. If all buffers are filled, then samples will be
-  /// dropped. The application can detect this by examining the timestamp on
-  /// returned buffers. If <code>Configure()</code> is not called, default
-  /// settings will be used. Calls to Configure while the plugin holds
-  /// buffers will fail.
-  /// Example usage from plugin code:
-  /// @code
-  /// int32_t attribs[] = {
-  ///     PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS, 4,
-  ///     PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION, 10,
-  ///     PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE};
-  /// track.Configure(attribs, callback);
-  /// @endcode
-  ///
-  /// @param[in] attrib_list A list of attribute name-value pairs in which each
-  /// attribute is immediately followed by the corresponding desired value.
-  /// The list is terminated by
-  /// <code>PP_MEDIASTREAMAUDIOTRACK_AUDIO_NONE</code>.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion of <code>Configure()</code>.
-  ///
-  /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
-  int32_t Configure(const int32_t attributes[],
-                    const CompletionCallback& callback);
-
-  /// Gets attribute value for a given attribute name.
-  ///
-  /// @param[in] attrib A <code>PP_MediaStreamAudioTrack_Attrib</code> for
-  /// querying.
-  /// @param[out] value A int32_t for storing the attribute value.
-  ///
-  /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
-  int32_t GetAttrib(PP_MediaStreamAudioTrack_Attrib attrib,
-                    int32_t* value);
-
-  /// Returns the track ID of the underlying MediaStream audio track.
-  std::string GetId() const;
-
-  /// Checks whether the underlying MediaStream track has ended.
-  /// Calls to GetBuffer while the track has ended are safe to make and will
-  /// complete, but will fail.
-  bool HasEnded() const;
-
-  /// Gets the next audio buffer from the MediaStream track.
-  /// If internal processing is slower than the incoming buffer rate,
-  /// new buffers will be dropped from the incoming stream. Once all buffers
-  /// are full, audio samples will be dropped until <code>RecycleBuffer()</code>
-  /// is called to free a spot for another buffer.
-  /// If there are no audio data in the input buffer,
-  /// <code>PP_OK_COMPLETIONPENDING</code> will be returned immediately and the
-  /// <code>callback</code> will be called when a new buffer of audio samples
-  /// is received or some error happens.
-  ///
-  /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be
-  /// called upon completion of <code>GetBuffer()</code>. If success,
-  /// an AudioBuffer will be passed into the completion callback function.
-  ///
-  /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
-  int32_t GetBuffer(
-      const CompletionCallbackWithOutput<AudioBuffer>& callback);
-
-  /// Recycles a buffer returned by <code>GetBuffer()</code>, so the track can
-  /// reuse the buffer. And the buffer will become invalid. The caller should
-  /// release all references it holds to <code>buffer</code> and not use it
-  /// anymore.
-  ///
-  /// @param[in] buffer A AudioBuffer returned by <code>GetBuffer()</code>.
-  ///
-  /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
-  int32_t RecycleBuffer(const AudioBuffer& buffer);
-
-  /// Closes the MediaStream audio track, and disconnects it from the audio
-  /// source.
-  /// After calling <code>Close()</code>, no new buffers will be received.
-  void Close();
-
-  /// Checks whether a <code>Resource</code> is a MediaStream audio track,
-  /// to test whether it is appropriate for use with the
-  /// <code>MediaStreamAudioTrack</code> constructor.
-  ///
-  /// @param[in] resource A <code>Resource</code> to test.
-  ///
-  /// @return True if <code>resource</code> is a MediaStream audio track.
-  static bool IsMediaStreamAudioTrack(const Resource& resource);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_MEDIA_STREAM_AUDIO_TRACK_H_
diff --git a/cpp/media_stream_video_track.cc b/cpp/media_stream_video_track.cc
deleted file mode 100644
index c02c2ef..0000000
--- a/cpp/media_stream_video_track.cc
+++ /dev/null
@@ -1,167 +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/cpp/media_stream_video_track.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_media_stream_video_track.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/var.h"
-#include "ppapi/cpp/video_frame.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_MediaStreamVideoTrack_1_0>() {
-  return PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_1_0;
-}
-
-template <> const char* interface_name<PPB_MediaStreamVideoTrack_0_1>() {
-  return PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_0_1;
-}
-
-}  // namespace
-
-MediaStreamVideoTrack::MediaStreamVideoTrack() {
-}
-
-MediaStreamVideoTrack::MediaStreamVideoTrack(
-    const MediaStreamVideoTrack& other) : Resource(other) {
-}
-
-MediaStreamVideoTrack::MediaStreamVideoTrack(const Resource& resource)
-    : Resource(resource) {
-  PP_DCHECK(IsMediaStreamVideoTrack(resource));
-}
-
-MediaStreamVideoTrack::MediaStreamVideoTrack(const InstanceHandle& instance) {
-  if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_MediaStreamVideoTrack_1_0>()->Create(
-            instance.pp_instance()));
-    return;
-  }
-  PP_DCHECK(false);
-}
-
-MediaStreamVideoTrack::MediaStreamVideoTrack(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-MediaStreamVideoTrack::~MediaStreamVideoTrack() {
-}
-
-int32_t MediaStreamVideoTrack::Configure(
-    const int32_t attributes[],
-    const CompletionCallback& callback) {
-  if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
-    return get_interface<PPB_MediaStreamVideoTrack_1_0>()->Configure(
-        pp_resource(), attributes, callback.pp_completion_callback());
-  } else if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
-    return get_interface<PPB_MediaStreamVideoTrack_0_1>()->Configure(
-        pp_resource(), attributes, callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t MediaStreamVideoTrack::GetAttrib(PP_MediaStreamVideoTrack_Attrib attrib,
-                                         int32_t* value) {
-  if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
-    return get_interface<PPB_MediaStreamVideoTrack_1_0>()->GetAttrib(
-        pp_resource(), attrib, value);
-  } else if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
-    return get_interface<PPB_MediaStreamVideoTrack_0_1>()->GetAttrib(
-        pp_resource(), attrib, value);
-  }
-  return PP_ERROR_NOINTERFACE;
-}
-
-std::string MediaStreamVideoTrack::GetId() const {
-  if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
-    pp::Var id(PASS_REF, get_interface<PPB_MediaStreamVideoTrack_1_0>()->GetId(
-        pp_resource()));
-    if (id.is_string())
-      return id.AsString();
-  } else if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
-    pp::Var id(PASS_REF, get_interface<PPB_MediaStreamVideoTrack_0_1>()->GetId(
-        pp_resource()));
-    if (id.is_string())
-      return id.AsString();
-  }
-  return std::string();
-}
-
-bool MediaStreamVideoTrack::HasEnded() const {
-  if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
-    return PP_ToBool(get_interface<PPB_MediaStreamVideoTrack_1_0>()->HasEnded(
-        pp_resource()));
-  } else if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
-    return PP_ToBool(get_interface<PPB_MediaStreamVideoTrack_0_1>()->HasEnded(
-        pp_resource()));
-  }
-  return true;
-}
-
-int32_t MediaStreamVideoTrack::GetFrame(
-    const CompletionCallbackWithOutput<VideoFrame>& callback) {
-  if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
-    return get_interface<PPB_MediaStreamVideoTrack_1_0>()->GetFrame(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  } else if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
-    return get_interface<PPB_MediaStreamVideoTrack_0_1>()->GetFrame(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t MediaStreamVideoTrack::RecycleFrame(const VideoFrame& frame) {
-  if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
-    return get_interface<PPB_MediaStreamVideoTrack_1_0>()->RecycleFrame(
-        pp_resource(), frame.pp_resource());
-  } else if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
-    return get_interface<PPB_MediaStreamVideoTrack_0_1>()->RecycleFrame(
-        pp_resource(), frame.pp_resource());
-  }
-  return PP_ERROR_NOINTERFACE;
-}
-
-void MediaStreamVideoTrack::Close() {
-  if (has_interface<PPB_MediaStreamVideoTrack_1_0>())
-    get_interface<PPB_MediaStreamVideoTrack_1_0>()->Close(pp_resource());
-  else if (has_interface<PPB_MediaStreamVideoTrack_0_1>())
-    get_interface<PPB_MediaStreamVideoTrack_0_1>()->Close(pp_resource());
-
-}
-
-int32_t MediaStreamVideoTrack::GetEmptyFrame(
-    const CompletionCallbackWithOutput<VideoFrame>& callback) {
-  if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
-    return get_interface<PPB_MediaStreamVideoTrack_1_0>()->GetEmptyFrame(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t MediaStreamVideoTrack::PutFrame(const VideoFrame& frame) {
-  if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
-    return get_interface<PPB_MediaStreamVideoTrack_1_0>()->PutFrame(
-        pp_resource(), frame.pp_resource());
-  }
-  return PP_ERROR_NOINTERFACE;
-}
-
-bool MediaStreamVideoTrack::IsMediaStreamVideoTrack(const Resource& resource) {
-  if (has_interface<PPB_MediaStreamVideoTrack_1_0>()) {
-    return PP_ToBool(get_interface<PPB_MediaStreamVideoTrack_1_0>()->
-        IsMediaStreamVideoTrack(resource.pp_resource()));
-  } else if (has_interface<PPB_MediaStreamVideoTrack_0_1>()) {
-    return PP_ToBool(get_interface<PPB_MediaStreamVideoTrack_0_1>()->
-        IsMediaStreamVideoTrack(resource.pp_resource()));
-  }
-  return false;
-}
-
-}  // namespace pp
diff --git a/cpp/media_stream_video_track.h b/cpp/media_stream_video_track.h
deleted file mode 100644
index 8c845a2..0000000
--- a/cpp/media_stream_video_track.h
+++ /dev/null
@@ -1,166 +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_CPP_MEDIA_STREAM_VIDEO_TRACK_H_
-#define PPAPI_CPP_MEDIA_STREAM_VIDEO_TRACK_H_
-
-#include <stdint.h>
-
-#include <string>
-
-#include "ppapi/c/ppb_media_stream_video_track.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/var.h"
-
-/// @file
-/// This file defines the <code>MediaStreamVideoTrack</code> interface for a
-/// video source resource, which receives video frames from a MediaStream video
-/// track in the browser.
-
-namespace pp {
-
-class VideoFrame;
-class CompletionCallback;
-template <typename T> class CompletionCallbackWithOutput;
-
-/// The <code>MediaStreamVideoTrack</code> class contains methods for
-/// receiving video frames from a MediaStream video track in the browser.
-class MediaStreamVideoTrack : public Resource {
- public:
-  /// Default constructor for creating an is_null()
-  /// <code>MediaStreamVideoTrack</code> object.
-  MediaStreamVideoTrack();
-
-  /// The copy constructor for <code>MediaStreamVideoTrack</code>.
-  ///
-  /// @param[in] other A reference to a <code>MediaStreamVideoTrack</code>.
-  MediaStreamVideoTrack(const MediaStreamVideoTrack& other);
-
-  /// Constructs a <code>MediaStreamVideoTrack</code> from
-  /// a <code>Resource</code>.
-  ///
-  /// @param[in] resource A <code>PPB_MediaStreamVideoTrack</code> resource.
-  explicit MediaStreamVideoTrack(const Resource& resource);
-
-  /// Constructs a <code>MediaStreamVideoTrack</code> that outputs given frames
-  /// to a new video track, which will be consumed by Javascript.
-  explicit MediaStreamVideoTrack(const InstanceHandle& instance);
-
-  /// A constructor used when you have received a <code>PP_Resource</code> as a
-  /// return value that has had 1 ref added for you.
-  ///
-  /// @param[in] resource A <code>PPB_MediaStreamVideoTrack</code> resource.
-  MediaStreamVideoTrack(PassRef, PP_Resource resource);
-
-  ~MediaStreamVideoTrack();
-
-  /// Configures underlying frame buffers for incoming frames.
-  /// If the application doesn't want to drop frames, then the
-  /// <code>PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES</code> should be
-  /// chosen such that inter-frame processing time variability won't overrun the
-  /// input buffer. If the buffer is overfilled, then frames will be dropped.
-  /// The application can detect this by examining the timestamp on returned
-  /// frames. If some attributes are not specified, default values will be used
-  /// for those unspecified attributes. If <code>Configure()</code> is not
-  /// called, default settings will be used.
-  /// Example usage from plugin code:
-  /// @code
-  /// int32_t attribs[] = {
-  ///     PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES, 4,
-  ///     PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE};
-  /// track.Configure(attribs, callback);
-  /// @endcode
-  ///
-  /// @param[in] attrib_list A list of attribute name-value pairs in which each
-  /// attribute is immediately followed by the corresponding desired value.
-  /// The list is terminated by
-  /// <code>PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE</code>.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion of <code>Configure()</code>.
-  ///
-  /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
-  /// Returns <code>PP_ERROR_INPROGRESS</code> if there is a pending call of
-  /// <code>Configure()</code> or <code>GetFrame()</code>, or the plugin
-  /// holds some frames which are not recycled with <code>RecycleFrame()</code>.
-  /// If an error is returned, all attributes and the underlying buffer will not
-  /// be changed.
-  int32_t Configure(const int32_t attributes[],
-                    const CompletionCallback& callback);
-
-  /// Gets attribute value for a given attribute name.
-  ///
-  /// @param[in] attrib A <code>PP_MediaStreamVideoTrack_Attrib</code> for
-  /// querying.
-  /// @param[out] value A int32_t for storing the attribute value.
-  ///
-  /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
-  int32_t GetAttrib(PP_MediaStreamVideoTrack_Attrib attrib,
-                    int32_t* value);
-
-  /// Returns the track ID of the underlying MediaStream video track.
-  std::string GetId() const;
-
-  /// Checks whether the underlying MediaStream track has ended.
-  /// Calls to GetFrame while the track has ended are safe to make and will
-  /// complete, but will fail.
-  bool HasEnded() const;
-
-  /// Gets the next video frame from the MediaStream track.
-  /// If internal processing is slower than the incoming frame rate, new frames
-  /// will be dropped from the incoming stream. Once the input buffer is full,
-  /// frames will be dropped until <code>RecycleFrame()</code> is called to free
-  /// a spot for another frame to be buffered.
-  /// If there are no frames in the input buffer,
-  /// <code>PP_OK_COMPLETIONPENDING</code> will be returned immediately and the
-  /// <code>callback</code> will be called when a new frame is received or some
-  /// error happens.
-  ///
-  /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be
-  /// called upon completion of <code>GetFrame()</code>. If success,
-  /// a VideoFrame will be passed into the completion callback function.
-  ///
-  /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
-  /// Returns PP_ERROR_NOMEMORY if <code>max_buffered_frames</code> frames
-  /// buffer was not allocated successfully.
-  int32_t GetFrame(
-      const CompletionCallbackWithOutput<VideoFrame>& callback);
-
-  /// Recycles a frame returned by <code>GetFrame()</code>, so the track can
-  /// reuse the underlying buffer of this frame. And the frame will become
-  /// invalid. The caller should release all references it holds to
-  /// <code>frame</code> and not use it anymore.
-  ///
-  /// @param[in] frame A VideoFrame returned by <code>GetFrame()</code>.
-  ///
-  /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
-  int32_t RecycleFrame(const VideoFrame& frame);
-
-  /// Closes the MediaStream video track, and disconnects it from video source.
-  /// After calling <code>Close()</code>, no new frames will be received.
-  void Close();
-
-  // Gets a free frame for output. The frame is allocated by
-  // <code>Configure()</code>. The caller should fill it with frame data, and
-  // then use |PutFrame()| to send the frame back.
-  int32_t GetEmptyFrame(
-      const CompletionCallbackWithOutput<VideoFrame>& callback);
-
-  // Sends a frame returned by |GetEmptyFrame()| to the output track.
-  // After this function, the |frame| should not be used anymore and the
-  // caller should release the reference that it holds.
-  int32_t PutFrame(const VideoFrame& frame);
-
-  /// Checks whether a <code>Resource</code> is a MediaStream video track,
-  /// to test whether it is appropriate for use with the
-  /// <code>MediaStreamVideoTrack</code> constructor.
-  ///
-  /// @param[in] resource A <code>Resource</code> to test.
-  ///
-  /// @return True if <code>resource</code> is a MediaStream video track.
-  static bool IsMediaStreamVideoTrack(const Resource& resource);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_MEDIA_STREAM_VIDEO_TRACK_H_
diff --git a/cpp/message_handler.h b/cpp/message_handler.h
deleted file mode 100644
index 5752ba0..0000000
--- a/cpp/message_handler.h
+++ /dev/null
@@ -1,57 +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_CPP_MESSAGE_HANDLER_H_
-#define PPAPI_CPP_MESSAGE_HANDLER_H_
-
-namespace pp {
-
-/// <code>MessageHandler</code> is an abstract base class that the plugin may
-/// implement if it wants to receive messages from JavaScript on a background
-/// thread when JavaScript invokes  postMessage() or
-/// postMessageAndAwaitResponse(). See pp::Instance::RegisterMessageHandler()
-/// for usage.
-class MessageHandler {
- public:
-  virtual ~MessageHandler() {}
-
-  /// Invoked as a result of JavaScript invoking postMessage() on the plugin's
-  /// DOM element.
-  ///
-  /// @param[in] instance An <code>InstanceHandle</code> identifying one
-  /// instance of a module.
-  /// @param[in] message_data A copy of the parameter that JavaScript provided
-  /// to postMessage().
-  virtual void HandleMessage(pp::InstanceHandle instance,
-                             const Var& message_data) = 0;
-
-  /// Invoked as a result of JavaScript invoking postMessageAndAwaitResponse()
-  /// on the plugin's DOM element.
-  ///
-  /// NOTE: JavaScript execution is blocked during the duration of this call.
-  /// Hence, the plugin should respond as quickly as possible. For this reason,
-  /// blocking completion callbacks are disallowed while handling a blocking
-  /// message.
-  ///
-  /// @param[in] instance An <code>InstanceHandle</code> identifying one
-  /// instance of a module.
-  /// @param[in] message_data A copy of the parameter that JavaScript provided
-  /// to postMessage().
-  /// @return Returns a pp::Var that is then copied to a JavaScript object
-  /// which is returned as the result of JavaScript's call of
-  /// postMessageAndAwaitResponse().
-  virtual pp::Var HandleBlockingMessage(pp::InstanceHandle instance,
-                                        const Var& message_data) = 0;
-
-  /// Invoked when this MessageHandler is no longer needed. After this, no more
-  /// calls will be made to this object.
-  ///
-  /// @param[in] instance An <code>InstanceHandle</code> identifying one
-  /// instance of a module.
-  virtual void WasUnregistered(pp::InstanceHandle instance) = 0;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_MESSAGE_HANDLER_H_
diff --git a/cpp/message_loop.cc b/cpp/message_loop.cc
deleted file mode 100644
index 285a59d..0000000
--- a/cpp/message_loop.cc
+++ /dev/null
@@ -1,89 +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/cpp/message_loop.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_message_loop.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_MessageLoop>() {
-  return PPB_MESSAGELOOP_INTERFACE_1_0;
-}
-
-}  // namespace
-
-MessageLoop::MessageLoop() : Resource() {}
-
-MessageLoop::MessageLoop(const InstanceHandle& instance) : Resource() {
-  if (has_interface<PPB_MessageLoop>()) {
-    PassRefFromConstructor(get_interface<PPB_MessageLoop>()->Create(
-        instance.pp_instance()));
-  }
-}
-
-MessageLoop::MessageLoop(const MessageLoop& other) : Resource(other) {}
-
-MessageLoop& MessageLoop::operator=(const MessageLoop& other) {
-  Resource::operator=(other);
-  return *this;
-}
-
-MessageLoop::MessageLoop(PP_Resource pp_message_loop)
-    : Resource(pp_message_loop) {
-}
-
-// static
-MessageLoop MessageLoop::GetForMainThread() {
-  if (!has_interface<PPB_MessageLoop>())
-    return MessageLoop();
-  return MessageLoop(
-      get_interface<PPB_MessageLoop>()->GetForMainThread());
-}
-
-// static
-MessageLoop MessageLoop::GetCurrent() {
-  if (!has_interface<PPB_MessageLoop>())
-    return MessageLoop();
-  return MessageLoop(
-      get_interface<PPB_MessageLoop>()->GetCurrent());
-}
-
-int32_t MessageLoop::AttachToCurrentThread() {
-  if (!has_interface<PPB_MessageLoop>())
-    return PP_ERROR_NOINTERFACE;
-  return get_interface<PPB_MessageLoop>()->AttachToCurrentThread(
-      pp_resource());
-}
-
-int32_t MessageLoop::Run() {
-  if (!has_interface<PPB_MessageLoop>())
-    return PP_ERROR_NOINTERFACE;
-  return get_interface<PPB_MessageLoop>()->Run(pp_resource());
-}
-
-int32_t MessageLoop::PostWork(const CompletionCallback& callback,
-                                  int64_t delay_ms) {
-  if (!has_interface<PPB_MessageLoop>())
-    return PP_ERROR_NOINTERFACE;
-  return get_interface<PPB_MessageLoop>()->PostWork(
-      pp_resource(),
-      callback.pp_completion_callback(),
-      delay_ms);
-}
-
-int32_t MessageLoop::PostQuit(bool should_destroy) {
-  if (!has_interface<PPB_MessageLoop>())
-    return PP_ERROR_NOINTERFACE;
-  return get_interface<PPB_MessageLoop>()->PostQuit(
-      pp_resource(), PP_FromBool(should_destroy));
-}
-
-}  // namespace pp
diff --git a/cpp/message_loop.h b/cpp/message_loop.h
deleted file mode 100644
index 4350593..0000000
--- a/cpp/message_loop.h
+++ /dev/null
@@ -1,271 +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_CPP_MESSAGE_LOOP_H_
-#define PPAPI_CPP_MESSAGE_LOOP_H_
-
-#include <stdint.h>
-
-#include "ppapi/cpp/resource.h"
-
-/// @file
-/// This file defines the PPB_MessageLoop API.
-
-namespace pp {
-
-class CompletionCallback;
-class InstanceHandle;
-
-/// A message loop allows PPAPI calls to be issued on a thread. You may not
-/// issue any API calls on a thread without creating a message loop. It also
-/// allows you to post work to the message loop for a thread.
-///
-/// To process work posted to the message loop, as well as completion callbacks
-/// for asynchronous operations, you must run the message loop via Run().
-///
-/// Note the system manages the lifetime of the instance (and all associated
-/// resources). If the instance is deleted from the page, background threads may
-/// suddenly see their PP_Resource handles become invalid. In this case, calls
-/// will fail with PP_ERROR_BADRESOURCE. If you need to access data associated
-/// with your instance, you will probably want to create some kind of threadsafe
-/// proxy object that can handle asynchronous destruction of the instance
-/// object.
-///
-/// Typical usage:
-///   On the main thread:
-///    - Create the thread yourself (using pthreads).
-///    - Create the message loop resource.
-///    - Pass the message loop resource to your thread's main function.
-///    - Call PostWork() on the message loop to run functions on the thread.
-///
-///   From the background thread's main function:
-///    - Call AttachToCurrentThread() with the message loop resource.
-///    - Call Run() with the message loop resource.
-///
-///   Your callbacks should look like this:
-///   @code
-///   void DoMyWork(void* user_data, int32_t status) {
-///     if (status != PP_OK) {
-///       Cleanup();  // e.g. free user_data.
-///       return;
-///     }
-///     ... do your work...
-///   }
-///   @endcode
-/// For a C++ example, see ppapi/utility/threading/simple_thread.h
-///
-/// (You can also create the message loop resource on the background thread,
-/// but then the main thread will have no reference to it should you want to
-/// call PostWork()).
-///
-///
-/// THREAD HANDLING
-///
-/// The main thread has an implicitly created message loop. The main thread is
-/// the thread where PPP_InitializeModule and PPP_Instance functions are called.
-/// You can retrieve a reference to this message loop by calling
-/// GetForMainThread() or, if your code is on the main thread, GetCurrent() will
-/// also work.
-///
-/// Some special threads created by the system can not have message loops. In
-/// particular, the background thread created for audio processing has this
-/// requirement because it's intended to be highly responsive to keep up with
-/// the realtime requirements of audio processing. You can not make PPAPI calls
-/// from these threads.
-///
-/// Once you associate a message loop with a thread, you don't have to keep a
-/// reference to it. The system will hold a reference to the message loop for as
-/// long as the thread is running. The current message loop can be retrieved
-/// using the GetCurrent() function.
-///
-/// It is legal to create threads in your plugin without message loops, but
-/// PPAPI calls will fail unless explicitly noted in the documentation.
-///
-/// You can create a message loop object on a thread and never actually run the
-/// message loop. This will allow you to call blocking PPAPI calls (via
-/// PP_BlockUntilComplete()). If you make any asynchronous calls, the callbacks
-/// from those calls will be queued in the message loop and never run. The same
-/// thing will happen if work is scheduled after the message loop exits and
-/// the message loop is not run again.
-///
-///
-/// DESTRUCTION AND ERROR HANDLING
-///
-/// Often, your application will associate memory with completion callbacks. For
-/// example, the C++ CompletionCallbackFactory has a small amount of
-/// heap-allocated memory for each callback. This memory will be leaked if the
-/// callback is never run. To avoid this memory leak, you need to be careful
-/// about error handling and shutdown.
-///
-/// There are a number of cases where posted callbacks will never be run:
-///
-///  - You tear down the thread (via pthreads) without "destroying" the message
-///    loop (via PostQuit with should_destroy = PP_TRUE). In this case, any
-///    tasks in the message queue will be lost.
-///
-///  - You create a message loop, post callbacks to it, and never run it.
-///
-///  - You quit the message loop via PostQuit with should_destroy set to
-///    PP_FALSE. In this case, the system will assume the message loop will be
-///    run again later and keep your tasks.
-///
-/// To do proper shutdown, call PostQuit with should_destroy = PP_TRUE. This
-/// will prohibit future work from being posted, and will allow the message loop
-/// to run until all pending tasks are run.
-///
-/// If you post a callback to a message loop that's been destroyed, or to an
-/// invalid message loop, PostWork will return an error and will not run the
-/// callback. This is true even for callbacks with the "required" flag set,
-/// since the system may not even know what thread to issue the error callback
-/// on.
-///
-/// Therefore, you should check for errors from PostWork and destroy any
-/// associated memory to avoid leaks. If you're using the C++
-/// CompletionCallbackFactory, use the following pattern:
-/// @code
-/// pp::CompletionCallback callback = factory_.NewOptionalCallback(...);
-/// int32_t result = message_loop.PostWork(callback);
-/// if (result != PP_OK)
-///   callback.Run(result);
-/// @endcode
-/// This will run the callback with an error value, and assumes that the
-/// implementation of your callback checks the "result" argument and returns
-/// immediately on error.
-class MessageLoop : public Resource {
- public:
-  /// Creates an is_null() MessageLoop resource.
-  MessageLoop();
-
-  /// Creates a message loop associated with the given instance. The resource
-  /// will be is_null() on failure.
-  ///
-  /// This may be called from any thread. After your thread starts but before
-  /// issuing any other PPAPI calls on it, you must associate it with a message
-  /// loop by calling AttachToCurrentThread.
-  explicit MessageLoop(const InstanceHandle& instance);
-
-  MessageLoop(const MessageLoop& other);
-  MessageLoop& operator=(const MessageLoop& other);
-
-  /// Takes an additional ref to the resource.
-  explicit MessageLoop(PP_Resource pp_message_loop);
-
-  static MessageLoop GetForMainThread();
-  static MessageLoop GetCurrent();
-
-  /// Sets the given message loop resource as being the associated message loop
-  /// for the currently running thread.
-  ///
-  /// You must call this function exactly once on a thread before making any
-  /// PPAPI calls. A message loop can only be attached to one thread, and the
-  /// message loop can not be changed later. The message loop will be attached
-  /// as long as the thread is running or until you quit with should_destroy
-  /// set to PP_TRUE.
-  ///
-  /// If this function fails, attempting to run the message loop will fail.
-  /// Note that you can still post work to the message loop: it will get queued
-  /// up should the message loop eventually be successfully attached and run.
-  ///
-  /// @return
-  ///   - PP_OK: The message loop was successfully attached to the thread and is
-  ///     ready to use.
-  ///   - PP_ERROR_BADRESOURCE: The given message loop resource is invalid.
-  ///   - PP_ERROR_INPROGRESS: The current thread already has a message loop
-  ///     attached. This will always be the case for the main thread, which has
-  ///     an implicit system-created message loop attached.
-  ///   - PP_ERROR_WRONG_THREAD: The current thread type can not have a message
-  ///     loop attached to it. See the interface level discussion about these
-  ///     special threads, which include realtime audio threads.
-  int32_t AttachToCurrentThread();
-
-  /// Runs the thread message loop. Running the message loop is required for
-  /// you to get issued completion callbacks on the thread.
-  ///
-  /// The message loop identified by the argument must have been previously
-  /// successfully attached to the current thread.
-  ///
-  /// You may not run nested run loops. Since the main thread has an
-  /// implicit message loop that the system runs, you may not call Run on the
-  /// main thread.
-  ///
-  /// @return
-  ///   - PP_OK: The message loop was successfully run. Note that on
-  ///     success, the message loop will only exit when you call PostQuit().
-  ///   - PP_ERROR_BADRESOURCE: The given message loop resource is invalid.
-  ///   - PP_ERROR_WRONG_THREAD: You are attempting to run a message loop that
-  ///     has not been successfully attached to the current thread. Call
-  ///     AttachToCurrentThread().
-  ///   - PP_ERROR_INPROGRESS: You are attempting to call Run in a nested
-  ///     fashion (Run is already on the stack). This will occur if you attempt
-  ///     to call run on the main thread's message loop (see above).
-  int32_t Run();
-
-  /// Schedules work to run on the given message loop. This may be called from
-  /// any thread. Posted work will be executed in the order it was posted when
-  /// the message loop is Run().
-  ///
-  /// @param callback A pointer to the completion callback to execute from the
-  /// message loop.
-  ///
-  /// @param delay_ms The number of milliseconds to delay execution of the given
-  /// completion callback. Passing 0 means it will get queued normally and
-  /// executed in order.
-  ///
-  ///
-  /// The completion callback will be called with PP_OK as the "result"
-  /// parameter if it is run normally. It is good practice to check for PP_OK
-  /// and return early otherwise.
-  ///
-  /// The "required" flag on the completion callback is ignored. If there is an
-  /// error posting your callback, the error will be returned from PostWork and
-  /// the callback will never be run (because there is no appropriate place to
-  /// run your callback with an error without causing unexpected threading
-  /// problems). If you associate memory with the completion callback (for
-  /// example, you're using the C++ CompletionCallbackFactory), you will need to
-  /// free this or manually run the callback. See "Desctruction and error
-  /// handling" above.
-  ///
-  ///
-  /// You can call this function before the message loop has started and the
-  /// work will get queued until the message loop is run. You can also post
-  /// work after the message loop has exited as long as should_destroy was
-  /// PP_FALSE. It will be queued until the next invocation of Run().
-  ///
-  /// @return
-  ///   - PP_OK: The work was posted to the message loop's queue. As described
-  ///     above, this does not mean that the work has been or will be executed
-  ///     (if you never run the message loop after posting).
-  ///   - PP_ERROR_BADRESOURCE: The given message loop resource is invalid.
-  ///   - PP_ERROR_BADARGUMENT: The function pointer for the completion callback
-  ///     is null (this will be the case if you pass PP_BlockUntilComplete()).
-  ///   - PP_ERROR_FAILED: The message loop has been destroyed.
-  int32_t PostWork(const CompletionCallback& callback,
-                   int64_t delay_ms = 0);
-
-  /// Posts a quit message to the given message loop's work queue. Work posted
-  /// before that point will be processed before quitting.
-  ///
-  /// This may be called on the message loop registered for the current thread,
-  /// or it may be called on the message loop registered for another thread. It
-  /// is an error to attempt to quit the main thread loop.
-  ///
-  /// @param should_destroy Marks the message loop as being in a destroyed
-  /// state and prevents further posting of messages.
-  ///
-  /// If you quit a message loop without setting should_destroy, it will still
-  /// be attached to the thread and you can still run it again by calling Run()
-  /// again. If you destroy it, it will be detached from the current thread.
-  ///
-  /// @return
-  ///   - PP_OK: The request to quit was successfully posted.
-  ///   - PP_ERROR_BADRESOURCE: The message loop was invalid.
-  ///   - PP_ERROR_WRONG_THREAD: You are attempting to quit the main thread.
-  ///     The main thread's message loop is managed by the system and can't be
-  ///     quit.
-  int32_t PostQuit(bool should_destroy);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_MESSAGE_LOOP_H_
diff --git a/cpp/module.cc b/cpp/module.cc
deleted file mode 100644
index e60741c..0000000
--- a/cpp/module.cc
+++ /dev/null
@@ -1,219 +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.
-
-// Note that the single accessor, Module::Get(), is not actually implemented
-// in this file.  This is an intentional hook that allows users of ppapi's
-// C++ wrapper objects to provide different semantics for how the singleton
-// object is accessed.
-//
-// In general, users of ppapi will also link in ppp_entrypoints.cc, which
-// provides a simple default implementation of Module::Get().
-//
-// A notable exception where the default ppp_entrypoints will not work is
-// when implementing "internal plugins" that are statically linked into the
-// browser. In this case, the process may actually have multiple Modules
-// loaded at once making a traditional "singleton" unworkable.  To get around
-// this, the users of ppapi need to get creative about how to properly
-// implement the Module::Get() so that ppapi's C++ wrappers can find the
-// right Module object.  One example solution is to use thread local storage
-// to change the Module* returned based on which thread is invoking the
-// function. Leaving Module::Get() unimplemented provides a hook for
-// implementing such behavior.
-
-#include "ppapi/cpp/module.h"
-
-#include <string.h>
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/ppp_input_event.h"
-#include "ppapi/c/ppp_instance.h"
-#include "ppapi/c/ppp_messaging.h"
-#include "ppapi/cpp/input_event.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/rect.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/url_loader.h"
-#include "ppapi/cpp/var.h"
-#include "ppapi/cpp/view.h"
-
-namespace pp {
-
-// PPP_InputEvent implementation -----------------------------------------------
-
-PP_Bool InputEvent_HandleEvent(PP_Instance pp_instance, PP_Resource resource) {
-  Module* module_singleton = Module::Get();
-  if (!module_singleton)
-    return PP_FALSE;
-  Instance* instance = module_singleton->InstanceForPPInstance(pp_instance);
-  if (!instance)
-    return PP_FALSE;
-
-  return PP_FromBool(instance->HandleInputEvent(InputEvent(resource)));
-}
-
-const PPP_InputEvent input_event_interface = {
-  &InputEvent_HandleEvent
-};
-
-// PPP_Instance implementation -------------------------------------------------
-
-PP_Bool Instance_DidCreate(PP_Instance pp_instance,
-                           uint32_t argc,
-                           const char* argn[],
-                           const char* argv[]) {
-  Module* module_singleton = Module::Get();
-  if (!module_singleton)
-    return PP_FALSE;
-
-  Instance* instance = module_singleton->CreateInstance(pp_instance);
-  if (!instance)
-    return PP_FALSE;
-  module_singleton->current_instances_[pp_instance] = instance;
-  return PP_FromBool(instance->Init(argc, argn, argv));
-}
-
-void Instance_DidDestroy(PP_Instance instance) {
-  Module* module_singleton = Module::Get();
-  if (!module_singleton)
-    return;
-  Module::InstanceMap::iterator found =
-      module_singleton->current_instances_.find(instance);
-  if (found == module_singleton->current_instances_.end())
-    return;
-
-  // Remove it from the map before deleting to try to catch reentrancy.
-  Instance* obj = found->second;
-  module_singleton->current_instances_.erase(found);
-  delete obj;
-}
-
-void Instance_DidChangeView(PP_Instance pp_instance,
-                            PP_Resource view_resource) {
-  Module* module_singleton = Module::Get();
-  if (!module_singleton)
-    return;
-  Instance* instance = module_singleton->InstanceForPPInstance(pp_instance);
-  if (!instance)
-    return;
-  instance->DidChangeView(View(view_resource));
-}
-
-void Instance_DidChangeFocus(PP_Instance pp_instance, PP_Bool has_focus) {
-  Module* module_singleton = Module::Get();
-  if (!module_singleton)
-    return;
-  Instance* instance = module_singleton->InstanceForPPInstance(pp_instance);
-  if (!instance)
-    return;
-  instance->DidChangeFocus(PP_ToBool(has_focus));
-}
-
-PP_Bool Instance_HandleDocumentLoad(PP_Instance pp_instance,
-                                    PP_Resource pp_url_loader) {
-  Module* module_singleton = Module::Get();
-  if (!module_singleton)
-    return PP_FALSE;
-  Instance* instance = module_singleton->InstanceForPPInstance(pp_instance);
-  if (!instance)
-    return PP_FALSE;
-  return PP_FromBool(instance->HandleDocumentLoad(URLLoader(pp_url_loader)));
-}
-
-static PPP_Instance instance_interface = {
-  &Instance_DidCreate,
-  &Instance_DidDestroy,
-  &Instance_DidChangeView,
-  &Instance_DidChangeFocus,
-  &Instance_HandleDocumentLoad
-};
-
-// PPP_Messaging implementation ------------------------------------------------
-
-void Messaging_HandleMessage(PP_Instance pp_instance, PP_Var var) {
-  Module* module_singleton = Module::Get();
-  if (!module_singleton)
-    return;
-  Instance* instance = module_singleton->InstanceForPPInstance(pp_instance);
-  if (!instance)
-    return;
-  instance->HandleMessage(Var(PASS_REF, var));
-}
-
-static PPP_Messaging instance_messaging_interface = {
-  &Messaging_HandleMessage
-};
-
-// Module ----------------------------------------------------------------------
-
-Module::Module() : pp_module_(0), get_browser_interface_(NULL), core_(NULL) {
-}
-
-Module::~Module() {
-  delete core_;
-  core_ = NULL;
-}
-
-bool Module::Init() {
-  return true;
-}
-
-const void* Module::GetPluginInterface(const char* interface_name) {
-  if (strcmp(interface_name, PPP_INPUT_EVENT_INTERFACE) == 0)
-    return &input_event_interface;
-  if (strcmp(interface_name, PPP_INSTANCE_INTERFACE) == 0)
-    return &instance_interface;
-  if (strcmp(interface_name, PPP_MESSAGING_INTERFACE) == 0)
-    return &instance_messaging_interface;
-
-  // Now see if anything was dynamically registered.
-  InterfaceMap::const_iterator found = additional_interfaces_.find(
-      std::string(interface_name));
-  if (found != additional_interfaces_.end())
-    return found->second;
-
-  return NULL;
-}
-
-const void* Module::GetBrowserInterface(const char* interface_name) {
-  return get_browser_interface_(interface_name);
-}
-
-Instance* Module::InstanceForPPInstance(PP_Instance instance) {
-  InstanceMap::iterator found = current_instances_.find(instance);
-  if (found == current_instances_.end())
-    return NULL;
-  return found->second;
-}
-
-void Module::AddPluginInterface(const std::string& interface_name,
-                                const void* vtable) {
-  // Verify that we're not trying to register an interface that's already
-  // handled, and if it is, that we're re-registering with the same vtable.
-  // Calling GetPluginInterface rather than looking it up in the map allows
-  // us to also catch "internal" ones in addition to just previously added ones.
-  const void* existing_interface = GetPluginInterface(interface_name.c_str());
-  if (existing_interface) {
-    PP_DCHECK(vtable == existing_interface);
-    return;
-  }
-  additional_interfaces_[interface_name] = vtable;
-}
-
-bool Module::InternalInit(PP_Module mod,
-                          PPB_GetInterface get_browser_interface) {
-  pp_module_ = mod;
-  get_browser_interface_ = get_browser_interface;
-
-  // Get the core interface which we require to run.
-  const PPB_Core* core = reinterpret_cast<const PPB_Core*>(
-      GetBrowserInterface(PPB_CORE_INTERFACE_1_0));
-  if (!core)
-    return false;
-  core_ = new Core(core);
-
-  return Init();
-}
-
-}  // namespace pp
diff --git a/cpp/module.h b/cpp/module.h
deleted file mode 100644
index 048fa3a..0000000
--- a/cpp/module.h
+++ /dev/null
@@ -1,173 +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_CPP_MODULE_H_
-#define PPAPI_CPP_MODULE_H_
-
-#include <map>
-#include <string>
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_module.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/ppb.h"
-#include "ppapi/c/ppb_core.h"
-#include "ppapi/cpp/core.h"
-
-
-/// @file
-/// This file defines a Module class.
-namespace pp {
-
-class Instance;
-
-/// The Module class.  The browser calls CreateInstance() to create
-/// an instance of your module on the web page.  The browser creates a new
-/// instance for each <code>\<embed></code> tag with
-/// <code>type="application/x-nacl"</code>
-class Module {
- public:
-  typedef std::map<PP_Instance, Instance*> InstanceMap;
-
-  // You may not call any other PP functions from the constructor, put them
-  // in Init instead. Various things will not be set up until the constructor
-  // completes.
-  Module();
-  virtual ~Module();
-
-  /// Get() returns the global instance of this module object, or NULL if the
-  /// module is not initialized yet.
-  ///
-  /// @return The global instance of the module object.
-  static Module* Get();
-
-  /// Init() is automatically called after the object is created. This is where
-  /// you can put functions that rely on other parts of the API, now that the
-  /// module has been created.
-  ///
-  /// @return true if successful, otherwise false.
-  virtual bool Init();
-
-  /// The pp_module() function returns the internal module handle.
-  ///
-  /// @return A <code>PP_Module</code> internal module handle.
-  PP_Module pp_module() const { return pp_module_; }
-
-  /// The get_browser_interface() function returns the internal
-  /// <code>get_browser_interface</code> pointer.
-  ///
-  /// @return A <code>PPB_GetInterface</code> internal pointer.
-  // TODO(sehr): This should be removed once the NaCl browser plugin no longer
-  // needs it.
-  PPB_GetInterface get_browser_interface() const {
-    return get_browser_interface_;
-  }
-
-  /// The core() function returns the core interface for doing basic
-  /// global operations. The return value is guaranteed to be non-NULL once the
-  /// module has successfully initialized and during the Init() call.
-  ///
-  /// It will be NULL before Init() has been called.
-  ///
-  /// @return The core interface for doing basic global operations.
-  Core* core() { return core_; }
-
-  /// GetPluginInterface() implements <code>GetInterface</code> for the browser
-  /// to get module interfaces. If you need to provide your own implementations
-  /// of new interfaces, use AddPluginInterface() which this function will use.
-  ///
-  /// @param[in] interface_name The module interface for the browser to get.
-  const void* GetPluginInterface(const char* interface_name);
-
-  /// GetBrowserInterface() returns interfaces which the browser implements
-  /// (i.e. PPB interfaces).
-  /// @param[in] interface_name The browser interface for the module to get.
-  const void* GetBrowserInterface(const char* interface_name);
-
-  /// InstanceForPPInstance() returns the object associated with this
-  /// <code>PP_Instance</code>, or NULL if one is not found. This should only
-  /// be called from the main thread! This instance object may be destroyed at
-  /// any time on the main thread, so using it on other threads may cause a
-  /// crash.
-  ///
-  /// @param[in] instance This <code>PP_Instance</code>.
-  ///
-  /// @return The object associated with this <code>PP_Instance</code>,
-  /// or NULL if one is not found.
-  Instance* InstanceForPPInstance(PP_Instance instance);
-
-  /// AddPluginInterface() adds a handler for a provided interface name. When
-  /// the browser requests that interface name, the provided
-  /// <code>vtable</code> will be returned.
-  ///
-  /// In general, modules will not need to call this directly. Instead, the
-  /// C++ wrappers for each interface will register themselves with this
-  /// function.
-  ///
-  /// This function may be called more than once with the same interface name
-  /// and vtable with no effect. However, it may not be used to register a
-  /// different vtable for an already-registered interface. It will assert for
-  /// a different registration for an already-registered interface in debug
-  /// mode, and just ignore the registration in release mode.
-  ///
-  /// @param[in] interface_name The interface name that will receive a handler.
-  /// @param[in,out] vtable The vtable to return for
-  /// <code>interface_name</code>.
-  void AddPluginInterface(const std::string& interface_name,
-                          const void* vtable);
-
-  // InternalInit() sets the browser interface and calls the regular Init()
-  /// function that can be overridden by the base classes.
-  ///
-  /// @param[in] mod A <code>PP_Module</code>.
-  /// @param[in] get_browser_interface The browser interface to set.
-  ///
-  /// @return true if successful, otherwise false.
-  // TODO(brettw) make this private when I can figure out how to make the
-  // initialize function a friend.
-  bool InternalInit(PP_Module mod,
-                    PPB_GetInterface get_browser_interface);
-
-  /// The current_instances() function allows iteration over the
-  /// current instances in the module.
-  ///
-  /// @return An <code>InstanceMap</code> of all instances in the module.
-  const InstanceMap& current_instances() const { return current_instances_; }
-
- protected:
-  /// CreateInstance() should be overridden to create your own module type.
-  ///
-  /// @param[in] instance A <code>PP_Instance</code>.
-  ///
-  /// @return The resulting instance.
-  virtual Instance* CreateInstance(PP_Instance instance) = 0;
-
- private:
-  friend PP_Bool Instance_DidCreate(PP_Instance pp_instance,
-                                    uint32_t argc,
-                                    const char* argn[],
-                                    const char* argv[]);
-  friend void Instance_DidDestroy(PP_Instance instance);
-
-  // Unimplemented (disallow copy and assign).
-  Module(const Module&);
-  Module& operator=(const Module&);
-
-  // Instance tracking.
-  InstanceMap current_instances_;
-
-  PP_Module pp_module_;
-  PPB_GetInterface get_browser_interface_;
-
-  Core* core_;
-
-  // All additional interfaces this plugin can handle as registered by
-  // AddPluginInterface.
-  typedef std::map<std::string, const void*> InterfaceMap;
-  InterfaceMap additional_interfaces_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_MODULE_H_
diff --git a/cpp/module_embedder.h b/cpp/module_embedder.h
deleted file mode 100644
index 82dad45..0000000
--- a/cpp/module_embedder.h
+++ /dev/null
@@ -1,27 +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_CPP_MODULE_EMBEDDER_H_
-#define PPAPI_CPP_MODULE_EMBEDDER_H_
-
-#include "ppapi/c/ppp.h"
-
-/// @file
-/// This file defines the APIs for creating a Module object.
-namespace pp {
-
-class Module;
-
-/// This function creates the <code>pp::Module</code> object associated with
-/// this module.
-///
-/// <strong>Note: </strong>NaCl module developers must implement this function.
-///
-/// @return Returns the module if it was successfully created, or NULL on
-/// failure. Upon failure, the module will be unloaded.
-pp::Module* CreateModule();
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_MODULE_EMBEDDER_H_
diff --git a/cpp/module_impl.h b/cpp/module_impl.h
deleted file mode 100644
index cc5142b..0000000
--- a/cpp/module_impl.h
+++ /dev/null
@@ -1,38 +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_CPP_MODULE_IMPL_H_
-#define PPAPI_CPP_MODULE_IMPL_H_
-
-/// @file
-/// This file defines some simple function templates that help the C++ wrappers
-/// (and are not for external developers to use).
-
-#include "ppapi/cpp/module.h"
-
-namespace pp {
-
-namespace {
-
-// Specialize this function to return the interface string corresponding to the
-// PP?_XXX structure.
-template <typename T>
-const char* interface_name();
-
-template <typename T> inline T const* get_interface() {
-  static T const* funcs = reinterpret_cast<T const*>(
-      pp::Module::Get()->GetBrowserInterface(interface_name<T>()));
-  return funcs;
-}
-
-template <typename T> inline bool has_interface() {
-  return get_interface<T>() != NULL;
-}
-
-}  // namespace
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_MODULE_IMPL_H_
-
diff --git a/cpp/mouse_cursor.cc b/cpp/mouse_cursor.cc
deleted file mode 100644
index baba92c..0000000
--- a/cpp/mouse_cursor.cc
+++ /dev/null
@@ -1,31 +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/cpp/mouse_cursor.h"
-
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_MouseCursor_1_0>() {
-  return PPB_MOUSECURSOR_INTERFACE_1_0;
-}
-
-}  // namespace
-
-// static
-bool MouseCursor::SetCursor(const InstanceHandle& instance,
-                            PP_MouseCursor_Type type,
-                            const ImageData& image,
-                            const Point& hot_spot) {
-  if (!has_interface<PPB_MouseCursor_1_0>())
-    return false;
-  return PP_ToBool(get_interface<PPB_MouseCursor_1_0>()->SetCursor(
-      instance.pp_instance(), type, image.pp_resource(),
-      &hot_spot.pp_point()));
-}
-
-}  // namespace pp
diff --git a/cpp/mouse_cursor.h b/cpp/mouse_cursor.h
deleted file mode 100644
index 0b753b8..0000000
--- a/cpp/mouse_cursor.h
+++ /dev/null
@@ -1,56 +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_CPP_MOUSE_CURSOR_H_
-#define PPAPI_CPP_MOUSE_CURSOR_H_
-
-#include "ppapi/c/ppb_mouse_cursor.h"
-#include "ppapi/cpp/image_data.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/point.h"
-
-namespace pp {
-
-class MouseCursor {
- public:
-  /// Sets the given mouse cursor. The mouse cursor will be in effect whenever
-  /// the mouse is over the given instance until it is set again by another
-  /// call. Note that you can hide the mouse cursor by setting it to the
-  /// <code>PP_MOUSECURSOR_TYPE_NONE</code> type.
-  ///
-  /// This function allows setting both system defined mouse cursors and
-  /// custom cursors. To set a system-defined cursor, pass the type you want
-  /// and set the custom image to a default-constructor ImageData object.
-  /// To set a custom cursor, set the type to
-  /// <code>PP_MOUSECURSOR_TYPE_CUSTOM</code> and specify your image and hot
-  /// spot.
-  ///
-  /// @param[in] instance A handle identifying the instance that the mouse
-  /// cursor will affect.
-  ///
-  /// @param[in] type A <code>PP_MouseCursor_Type</code> identifying the type
-  /// of mouse cursor to show. See <code>ppapi/c/ppb_mouse_cursor.h</code>.
-  ///
-  /// @param[in] image A <code>ImageData</code> object identifying the
-  /// custom image to set when the type is
-  /// <code>PP_MOUSECURSOR_TYPE_CUSTOM</code>. The image must be less than 32
-  /// pixels in each direction and must be of the system's native image format.
-  /// When you are specifying a predefined cursor, this parameter should be a
-  /// default-constructed ImageData.
-  ///
-  /// @param[in] hot_spot When setting a custom cursor, this identifies the
-  /// pixel position within the given image of the "hot spot" of the cursor.
-  /// When specifying a stock cursor, this parameter is ignored.
-  ///
-  /// @return true on success, or false if the instance or cursor type
-  /// was invalid or if the image was too large.
-  static bool SetCursor(const InstanceHandle& instance,
-                        PP_MouseCursor_Type type,
-                        const ImageData& image = ImageData(),
-                        const Point& hot_spot = Point(0, 0));
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_MOUSE_CURSOR_H_
diff --git a/cpp/mouse_lock.cc b/cpp/mouse_lock.cc
deleted file mode 100644
index 02f0e4a..0000000
--- a/cpp/mouse_lock.cc
+++ /dev/null
@@ -1,64 +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/cpp/mouse_lock.h"
-
-#include "ppapi/c/ppb_mouse_lock.h"
-#include "ppapi/c/ppp_mouse_lock.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-static const char kPPPMouseLockInterface[] = PPP_MOUSELOCK_INTERFACE;
-
-void MouseLockLost(PP_Instance instance) {
-  void* object =
-      Instance::GetPerInstanceObject(instance, kPPPMouseLockInterface);
-  if (!object)
-    return;
-  static_cast<MouseLock*>(object)->MouseLockLost();
-}
-
-const PPP_MouseLock ppp_mouse_lock = {
-  &MouseLockLost
-};
-
-template <> const char* interface_name<PPB_MouseLock_1_0>() {
-  return PPB_MOUSELOCK_INTERFACE_1_0;
-}
-
-}  // namespace
-
-MouseLock::MouseLock(Instance* instance)
-    : associated_instance_(instance) {
-  Module::Get()->AddPluginInterface(kPPPMouseLockInterface, &ppp_mouse_lock);
-  instance->AddPerInstanceObject(kPPPMouseLockInterface, this);
-}
-
-MouseLock::~MouseLock() {
-  Instance::RemovePerInstanceObject(associated_instance_,
-                                    kPPPMouseLockInterface, this);
-}
-
-int32_t MouseLock::LockMouse(const CompletionCallback& cc) {
-  if (!has_interface<PPB_MouseLock_1_0>())
-    return cc.MayForce(PP_ERROR_NOINTERFACE);
-  return get_interface<PPB_MouseLock_1_0>()->LockMouse(
-      associated_instance_.pp_instance(), cc.pp_completion_callback());
-}
-
-void MouseLock::UnlockMouse() {
-  if (has_interface<PPB_MouseLock_1_0>()) {
-    get_interface<PPB_MouseLock_1_0>()->UnlockMouse(
-        associated_instance_.pp_instance());
-  }
-}
-
-}  // namespace pp
diff --git a/cpp/mouse_lock.h b/cpp/mouse_lock.h
deleted file mode 100644
index e127435..0000000
--- a/cpp/mouse_lock.h
+++ /dev/null
@@ -1,98 +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_CPP_MOUSE_LOCK_H_
-#define PPAPI_CPP_MOUSE_LOCK_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/cpp/instance_handle.h"
-
-/// @file
-/// This file defines the API for locking the target of mouse events to a
-/// specific module instance.
-
-namespace pp {
-
-class CompletionCallback;
-class Instance;
-
-/// This class allows you to associate the <code>PPP_MouseLock</code> and
-/// <code>PPB_MouseLock</code> C-based interfaces with an object. It associates
-/// itself with the given instance, and registers as the global handler for
-/// handling the <code>PPP_MouseLock</code> interface that the browser calls.
-///
-/// You would typically use this class by inheritance on your instance or by
-/// composition.
-///
-/// <strong>Example (inheritance):</strong>
-/// @code
-///   class MyInstance : public pp::Instance, public pp::MouseLock {
-///     class MyInstance() : pp::MouseLock(this) {
-///     }
-///     ...
-///   };
-/// @endcode
-///
-/// <strong>Example (composition):</strong>
-/// @code
-///   class MyMouseLock : public pp::MouseLock {
-///     ...
-///   };
-///
-///   class MyInstance : public pp::Instance {
-///     MyInstance() : mouse_lock_(this) {
-///     }
-///
-///     MyMouseLock mouse_lock_;
-///   };
-/// @endcode
-class MouseLock {
- public:
-  /// A constructor for creating a <code>MouseLock</code>.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  explicit MouseLock(Instance* instance);
-
-  /// Destructor.
-  virtual ~MouseLock();
-
-  /// PPP_MouseLock functions exposed as virtual functions for you to override.
-  virtual void MouseLockLost() = 0;
-
-  /// LockMouse() requests the mouse to be locked.
-  ///
-  /// While the mouse is locked, the cursor is implicitly hidden from the user.
-  /// Any movement of the mouse will generate a
-  /// <code>PP_INPUTEVENT_TYPE_MOUSEMOVE</code> event. The
-  /// <code>GetPosition()</code> function in <code>InputEvent()</code>
-  /// reports the last known mouse position just as mouse lock was
-  /// entered. The <code>GetMovement()</code> function provides relative
-  /// movement information indicating what the change in position of the mouse
-  /// would be had it not been locked.
-  ///
-  /// The browser may revoke the mouse lock for reasons including (but not
-  /// limited to) the user pressing the ESC key, the user activating another
-  /// program using a reserved keystroke (e.g. ALT+TAB), or some other system
-  /// event.
-  ///
-  /// @param[in] cc A <code>CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  int32_t LockMouse(const CompletionCallback& cc);
-
-  /// UnlockMouse causes the mouse to be unlocked, allowing it to track user
-  /// movement again. This is an asynchronous operation. The module instance
-  /// will be notified using the <code>PPP_MouseLock</code> interface when it
-  /// has lost the mouse lock.
-  void UnlockMouse();
-
- private:
-  InstanceHandle associated_instance_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_MOUSE_LOCK_H_
diff --git a/cpp/net_address.cc b/cpp/net_address.cc
deleted file mode 100644
index aed7051..0000000
--- a/cpp/net_address.cc
+++ /dev/null
@@ -1,99 +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.
-
-#include "ppapi/cpp/net_address.h"
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_NetAddress_1_0>() {
-  return PPB_NETADDRESS_INTERFACE_1_0;
-}
-
-}  // namespace
-
-NetAddress::NetAddress() {
-}
-
-NetAddress::NetAddress(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-NetAddress::NetAddress(const InstanceHandle& instance,
-                       const PP_NetAddress_IPv4& ipv4_addr) {
-  if (has_interface<PPB_NetAddress_1_0>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_NetAddress_1_0>()->CreateFromIPv4Address(
-            instance.pp_instance(), &ipv4_addr));
-  }
-}
-
-NetAddress::NetAddress(const InstanceHandle& instance,
-                       const PP_NetAddress_IPv6& ipv6_addr) {
-  if (has_interface<PPB_NetAddress_1_0>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_NetAddress_1_0>()->CreateFromIPv6Address(
-            instance.pp_instance(), &ipv6_addr));
-  }
-}
-
-NetAddress::NetAddress(const NetAddress& other) : Resource(other) {
-}
-
-NetAddress::~NetAddress() {
-}
-
-NetAddress& NetAddress::operator=(const NetAddress& other) {
-  Resource::operator=(other);
-  return *this;
-}
-
-// static
-bool NetAddress::IsAvailable() {
-  return has_interface<PPB_NetAddress_1_0>();
-}
-
-PP_NetAddress_Family NetAddress::GetFamily() const {
-  if (has_interface<PPB_NetAddress_1_0>())
-    return get_interface<PPB_NetAddress_1_0>()->GetFamily(pp_resource());
-
-  return PP_NETADDRESS_FAMILY_UNSPECIFIED;
-}
-
-Var NetAddress::DescribeAsString(bool include_port) const {
-  if (has_interface<PPB_NetAddress_1_0>()) {
-    return Var(PASS_REF,
-               get_interface<PPB_NetAddress_1_0>()->DescribeAsString(
-                   pp_resource(), PP_FromBool(include_port)));
-  }
-
-  return Var();
-}
-
-bool NetAddress::DescribeAsIPv4Address(PP_NetAddress_IPv4* ipv4_addr) const {
-  if (has_interface<PPB_NetAddress_1_0>()) {
-    return PP_ToBool(
-        get_interface<PPB_NetAddress_1_0>()->DescribeAsIPv4Address(
-            pp_resource(), ipv4_addr));
-  }
-
-  return false;
-}
-
-bool NetAddress::DescribeAsIPv6Address(PP_NetAddress_IPv6* ipv6_addr) const {
-  if (has_interface<PPB_NetAddress_1_0>()) {
-    return PP_ToBool(
-        get_interface<PPB_NetAddress_1_0>()->DescribeAsIPv6Address(
-            pp_resource(), ipv6_addr));
-  }
-
-  return false;
-}
-
-}  // namespace pp
diff --git a/cpp/net_address.h b/cpp/net_address.h
deleted file mode 100644
index 567ae20..0000000
--- a/cpp/net_address.h
+++ /dev/null
@@ -1,114 +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.
-
-#ifndef PPAPI_CPP_NET_ADDRESS_H_
-#define PPAPI_CPP_NET_ADDRESS_H_
-
-#include "ppapi/c/ppb_net_address.h"
-#include "ppapi/cpp/pass_ref.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-class InstanceHandle;
-
-/// The <code>NetAddress</code> class represents a network address.
-class NetAddress : public Resource {
- public:
-  /// Default constructor for creating an is_null() <code>NetAddress</code>
-  /// object.
-  NetAddress();
-
-  /// A constructor used when you have received a <code>PP_Resource</code> as a
-  /// return value that has had 1 ref added for you.
-  ///
-  /// @param[in] resource A <code>PPB_NetAddress</code> resource.
-  NetAddress(PassRef, PP_Resource resource);
-
-  /// A constructor used to create a <code>NetAddress</code> object with the
-  /// specified IPv4 address.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  /// @param[in] ipv4_addr An IPv4 address.
-  NetAddress(const InstanceHandle& instance,
-             const PP_NetAddress_IPv4& ipv4_addr);
-
-  /// A constructor used to create a <code>NetAddress</code> object with the
-  /// specified IPv6 address.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  /// @param[in] ipv6_addr An IPv6 address.
-  NetAddress(const InstanceHandle& instance,
-             const PP_NetAddress_IPv6& ipv6_addr);
-
-  /// The copy constructor for <code>NetAddress</code>.
-  ///
-  /// @param[in] other A reference to another <code>NetAddress</code>.
-  NetAddress(const NetAddress& other);
-
-  /// The destructor.
-  virtual ~NetAddress();
-
-  /// The assignment operator for <code>NetAddress</code>.
-  ///
-  /// @param[in] other A reference to another <code>NetAddress</code>.
-  ///
-  /// @return A reference to this <code>NetAddress</code> object.
-  NetAddress& operator=(const NetAddress& other);
-
-  /// Static function for determining whether the browser supports the
-  /// <code>PPB_NetAddress</code> interface.
-  ///
-  /// @return true if the interface is available, false otherwise.
-  static bool IsAvailable();
-
-  /// Gets the address family.
-  ///
-  /// @return The address family on success;
-  /// <code>PP_NETADDRESS_FAMILY_UNSPECIFIED</code> on failure.
-  PP_NetAddress_Family GetFamily() const;
-
-  /// Returns a human-readable description of the network address. The
-  /// description is in the form of host [ ":" port ] and conforms to
-  /// http://tools.ietf.org/html/rfc3986#section-3.2 for IPv4 and IPv6 addresses
-  /// (e.g., "192.168.0.1", "192.168.0.1:99", or "[::1]:80").
-  ///
-  /// @param[in] include_port Whether to include the port number in the
-  /// description.
-  ///
-  /// @return A string <code>Var</code> on success; an undefined
-  /// <code>Var</code> on failure.
-  Var DescribeAsString(bool include_port) const;
-
-  /// Fills a <code>PP_NetAddress_IPv4</code> structure if the network address
-  /// is of <code>PP_NETADDRESS_FAMILY_IPV4</code> address family.
-  /// Note that passing a network address of
-  /// <code>PP_NETADDRESS_FAMILY_IPV6</code> address family will fail even if
-  /// the address is an IPv4-mapped IPv6 address.
-  ///
-  /// @param[out] ipv4_addr A <code>PP_NetAddress_IPv4</code> structure to store
-  /// the result.
-  ///
-  /// @return A boolean value indicating whether the operation succeeded.
-  bool DescribeAsIPv4Address(PP_NetAddress_IPv4* ipv4_addr) const;
-
-  /// Fills a <code>PP_NetAddress_IPv6</code> structure if the network address
-  /// is of <code>PP_NETADDRESS_FAMILY_IPV6</code> address family.
-  /// Note that passing a network address of
-  /// <code>PP_NETADDRESS_FAMILY_IPV4</code> address family will fail - this
-  /// method doesn't map it to an IPv6 address.
-  ///
-  /// @param[out] ipv6_addr A <code>PP_NetAddress_IPv6</code> structure to store
-  /// the result.
-  ///
-  /// @return A boolean value indicating whether the operation succeeded.
-  bool DescribeAsIPv6Address(PP_NetAddress_IPv6* ipv6_addr) const;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_NET_ADDRESS_H_
diff --git a/cpp/network_list.cc b/cpp/network_list.cc
deleted file mode 100644
index fa1d112..0000000
--- a/cpp/network_list.cc
+++ /dev/null
@@ -1,94 +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/cpp/network_list.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/array_output.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/net_address.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_NetworkList_1_0>() {
-  return PPB_NETWORKLIST_INTERFACE_1_0;
-}
-
-}  // namespace
-
-NetworkList::NetworkList() {
-}
-
-NetworkList::NetworkList(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-// static
-bool NetworkList::IsAvailable() {
-  return has_interface<PPB_NetworkList_1_0>();
-}
-
-uint32_t NetworkList::GetCount() const {
-  if (!has_interface<PPB_NetworkList_1_0>())
-    return 0;
-  return get_interface<PPB_NetworkList_1_0>()->GetCount(pp_resource());
-}
-
-std::string NetworkList::GetName(uint32_t index) const {
-  if (!has_interface<PPB_NetworkList_1_0>())
-    return std::string();
-  Var result(PASS_REF,
-             get_interface<PPB_NetworkList_1_0>()->GetName(
-                 pp_resource(), index));
-  return result.is_string() ? result.AsString() : std::string();
-}
-
-PP_NetworkList_Type NetworkList::GetType(uint32_t index) const {
-  if (!has_interface<PPB_NetworkList_1_0>())
-    return PP_NETWORKLIST_TYPE_ETHERNET;
-  return get_interface<PPB_NetworkList_1_0>()->GetType(
-      pp_resource(), index);
-}
-
-PP_NetworkList_State NetworkList::GetState(uint32_t index) const {
-  if (!has_interface<PPB_NetworkList_1_0>())
-    return PP_NETWORKLIST_STATE_DOWN;
-  return get_interface<PPB_NetworkList_1_0>()->GetState(
-      pp_resource(), index);
-}
-
-int32_t NetworkList::GetIpAddresses(
-    uint32_t index,
-    std::vector<NetAddress>* addresses) const {
-  if (!has_interface<PPB_NetworkList_1_0>())
-    return PP_ERROR_NOINTERFACE;
-  if (!addresses)
-    return PP_ERROR_BADARGUMENT;
-
-  ResourceArrayOutputAdapter<NetAddress> adapter(addresses);
-  return get_interface<PPB_NetworkList_1_0>()->GetIpAddresses(
-      pp_resource(), index, adapter.pp_array_output());
-}
-
-std::string NetworkList::GetDisplayName(uint32_t index) const {
-  if (!has_interface<PPB_NetworkList_1_0>())
-    return std::string();
-  Var result(PASS_REF,
-             get_interface<PPB_NetworkList_1_0>()->GetDisplayName(
-                 pp_resource(), index));
-  return result.is_string() ? result.AsString() : std::string();
-}
-
-uint32_t NetworkList::GetMTU(uint32_t index) const {
-  if (!has_interface<PPB_NetworkList_1_0>())
-    return 0;
-  return get_interface<PPB_NetworkList_1_0>()->GetMTU(
-      pp_resource(), index);
-}
-
-}  // namespace pp
diff --git a/cpp/network_list.h b/cpp/network_list.h
deleted file mode 100644
index 547545c..0000000
--- a/cpp/network_list.h
+++ /dev/null
@@ -1,62 +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_CPP_NETWORK_LIST_H_
-#define PPAPI_CPP_NETWORK_LIST_H_
-
-#include <stdint.h>
-
-#include <string>
-#include <vector>
-
-#include "ppapi/c/ppb_network_list.h"
-#include "ppapi/cpp/pass_ref.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class NetAddress;
-
-class NetworkList : public Resource {
- public:
-  NetworkList();
-  NetworkList(PassRef, PP_Resource resource);
-
-  /// Returns true if the required interface is available.
-  static bool IsAvailable();
-
-  /// @return Returns the number of available network interfaces or 0
-  /// if the list has never been updated.
-  uint32_t GetCount() const;
-
-  /// @return Returns the name for the network interface with the
-  /// specified <code>index</code>.
-  std::string GetName(uint32_t index) const;
-
-  /// @return Returns the type of the network interface with the
-  /// specified <code>index</code>.
-  PP_NetworkList_Type GetType(uint32_t index) const;
-
-  /// @return Returns the current state of the network interface with
-  /// the specified <code>index</code>.
-  PP_NetworkList_State GetState(uint32_t index) const;
-
-  /// Gets the list of IP addresses for the network interface with the
-  /// specified <code>index</code> and stores them in
-  /// <code>addresses</code>.
-  int32_t GetIpAddresses(uint32_t index,
-                         std::vector<NetAddress>* addresses) const;
-
-  /// @return Returns the display name for the network interface with
-  /// the specified <code>index</code>.
-  std::string GetDisplayName(uint32_t index) const;
-
-  /// @return Returns the MTU for the network interface with the
-  /// specified <code>index</code>.
-  uint32_t GetMTU(uint32_t index) const;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_NETWORK_LIST_H_
diff --git a/cpp/network_monitor.cc b/cpp/network_monitor.cc
deleted file mode 100644
index 139f289..0000000
--- a/cpp/network_monitor.cc
+++ /dev/null
@@ -1,44 +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/cpp/network_monitor.h"
-
-#include "ppapi/c/ppb_network_monitor.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/network_list.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_NetworkMonitor_1_0>() {
-  return PPB_NETWORKMONITOR_INTERFACE_1_0;
-}
-
-}  // namespace
-
-NetworkMonitor::NetworkMonitor(const InstanceHandle& instance) {
-  if (has_interface<PPB_NetworkMonitor_1_0>()) {
-    PassRefFromConstructor(get_interface<PPB_NetworkMonitor_1_0>()->Create(
-        instance.pp_instance()));
-  }
-}
-
-int32_t NetworkMonitor::UpdateNetworkList(
-    const CompletionCallbackWithOutput<NetworkList>& callback) {
-  if (has_interface<PPB_NetworkMonitor_1_0>()) {
-    return get_interface<PPB_NetworkMonitor_1_0>()->UpdateNetworkList(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-// static
-bool NetworkMonitor::IsAvailable() {
-  return has_interface<PPB_NetworkMonitor_1_0>();
-}
-
-}  // namespace pp
diff --git a/cpp/network_monitor.h b/cpp/network_monitor.h
deleted file mode 100644
index 2349369..0000000
--- a/cpp/network_monitor.h
+++ /dev/null
@@ -1,32 +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_CPP_NETWORK_MONITOR_H_
-#define PPAPI_CPP_NETWORK_MONITOR_H_
-
-#include <stdint.h>
-
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class NetworkList;
-
-template <typename T> class CompletionCallbackWithOutput;
-
-class NetworkMonitor : public Resource {
- public:
-  explicit NetworkMonitor(const InstanceHandle& instance);
-
-  int32_t UpdateNetworkList(
-      const CompletionCallbackWithOutput<NetworkList>& callback);
-
-  // Returns true if the required interface is available.
-  static bool IsAvailable();
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_NETWORK_MONITOR_H_
diff --git a/cpp/network_proxy.cc b/cpp/network_proxy.cc
deleted file mode 100644
index 7b938b2..0000000
--- a/cpp/network_proxy.cc
+++ /dev/null
@@ -1,38 +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.
-
-#include "ppapi/cpp/network_proxy.h"
-
-#include "ppapi/c/ppb_network_proxy.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_NetworkProxy_1_0>() {
-  return PPB_NETWORKPROXY_INTERFACE_1_0;
-}
-
-}  // namespace
-
-// static
-bool NetworkProxy::IsAvailable() {
-  return has_interface<PPB_NetworkProxy_1_0>();
-}
-
-// static
-int32_t NetworkProxy::GetProxyForURL(
-    const InstanceHandle& instance,
-    const Var& url,
-    const CompletionCallbackWithOutput<Var>& callback) {
-  if (!has_interface<PPB_NetworkProxy_1_0>())
-    return callback.MayForce(PP_ERROR_NOINTERFACE);
-
-  return get_interface<PPB_NetworkProxy_1_0>()->GetProxyForURL(
-      instance.pp_instance(), url.pp_var(),
-      callback.output(), callback.pp_completion_callback());
-}
-
-}  // namespace pp
diff --git a/cpp/network_proxy.h b/cpp/network_proxy.h
deleted file mode 100644
index 54e596f..0000000
--- a/cpp/network_proxy.h
+++ /dev/null
@@ -1,49 +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.
-
-#ifndef PPAPI_CPP_NETWORK_PROXY_H_
-#define PPAPI_CPP_NETWORK_PROXY_H_
-
-#include <stdint.h>
-
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-
-namespace pp {
-
-/// This class provides a way to determine the appropriate proxy settings for
-/// for a given URL.
-///
-/// Permissions: Apps permission <code>socket</code> with subrule
-/// <code>resolve-proxy</code> is required for using this API.
-/// For more details about network communication permissions, please see:
-/// http://developer.chrome.com/apps/app_network.html
-class NetworkProxy {
- public:
-  /// Returns true if the browser supports this API, false otherwise.
-  static bool IsAvailable();
-
-  /// Retrieves the proxy that will be used for the given URL. The result will
-  /// be a string in PAC format. For more details about PAC format, please see
-  /// http://en.wikipedia.org/wiki/Proxy_auto-config
-  ///
-  /// @param[in] instance An <code>InstanceHandle</code> identifying one
-  /// instance of a module.
-  ///
-  /// @param[in] url A string <code>Var</code> containing a URL.
-  ///
-  /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be
-  /// called upon completion. It will be passed a string <code>Var</code>
-  /// containing the appropriate PAC string for <code>url</code>.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  static int32_t GetProxyForURL(
-      const InstanceHandle& instance,
-      const Var& url,
-      const pp::CompletionCallbackWithOutput<Var>& callback);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_NETWORK_PROXY_H_
diff --git a/cpp/output_traits.h b/cpp/output_traits.h
deleted file mode 100644
index d513a0c..0000000
--- a/cpp/output_traits.h
+++ /dev/null
@@ -1,282 +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_CPP_OUTPUT_TRAITS_H_
-#define PPAPI_CPP_OUTPUT_TRAITS_H_
-
-#include <vector>
-
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/cpp/array_output.h"
-#include "ppapi/cpp/resource.h"
-
-/// @file
-/// This file defines internal templates for defining how data is passed to the
-/// browser via output parameters and how to convert that data to the
-/// corresponding C++ object types.
-///
-/// It is used by the callback system, it should not be necessary for end-users
-/// to use these templates directly.
-
-struct PP_Var;
-
-namespace pp {
-
-class Var;
-
-namespace internal {
-
-// This goop is a trick used to implement a template that can be used to
-// determine if a given class is the base class of another given class. It is
-// used in the resource object partial specialization below.
-template<typename, typename> struct IsSame {
-  static bool const value = false;
-};
-template<typename A> struct IsSame<A, A> {
-  static bool const value = true;
-};
-template<typename Base, typename Derived> struct IsBaseOf {
- private:
-  // This class doesn't work correctly with forward declarations.
-  // Because sizeof cannot be applied to incomplete types, this line prevents us
-  // from passing in forward declarations.
-  typedef char (*EnsureTypesAreComplete)[sizeof(Base) + sizeof(Derived)];
-
-  static Derived* CreateDerived();
-  static char (&Check(Base*))[1];
-  static char (&Check(...))[2];
-
- public:
-  static bool const value = sizeof Check(CreateDerived()) == 1 &&
-                            !IsSame<Base const, void const>::value;
-};
-
-// Template to optionally derive from a given base class T if the given
-// predicate P is true.
-template <class T, bool P> struct InheritIf {};
-template <class T> struct InheritIf<T, true> : public T {};
-
-// Single output parameters ----------------------------------------------------
-
-// Output traits for all "plain old data" (POD) types. It is implemented to
-// pass a pointer to the browser as an output parameter.
-//
-// This is used as a base class for the general CallbackOutputTraits below in
-// the case where T is not a resource.
-template<typename T>
-struct GenericCallbackOutputTraits {
-  // The type passed to the PPAPI C API for this parameter. For normal out
-  // params, we pass a pointer to the object so the browser can write into it.
-  typedef T* APIArgType;
-
-  // The type used to store the value. This is used internally in asynchronous
-  // callbacks by the CompletionCallbackFactory to have the browser write into
-  // a temporary value associated with the callback, which is passed to the
-  // plugin code when the callback is issued.
-  typedef T StorageType;
-
-  // Converts a "storage type" to a value that can be passed to the browser as
-  // an output parameter. This just takes the address to convert the value to
-  // a pointer.
-  static inline APIArgType StorageToAPIArg(StorageType& t) { return &t; }
-
-  // Converts the "storage type" to the value we pass to the plugin for
-  // callbacks. This doesn't actually need to do anything in this case,
-  // it's needed for some of more complex template specializations below.
-  static inline T& StorageToPluginArg(StorageType& t) { return t; }
-
-  // Initializes the "storage type" to a default value, if necessary. Here,
-  // we do nothing, assuming that the default constructor for T suffices.
-  static inline void Initialize(StorageType* /* t */) {}
-};
-
-// Output traits for all resource types. It is implemented to pass a
-// PP_Resource* as an output parameter to the browser, and convert to the
-// given resource object type T when passing to the plugin.
-//
-// Note that this class is parameterized by the resource object, for example
-// ResourceCallbackOutputTraits<pp::FileRef>. This is used as a base class for
-// CallbackOutputTraits below for the case where T is a derived class of
-// pp::Resource.
-template<typename T>
-struct ResourceCallbackOutputTraits {
-  // To call the browser, we just pass a PP_Resource pointer as the out param.
-  typedef PP_Resource* APIArgType;
-  typedef PP_Resource StorageType;
-
-  static inline APIArgType StorageToAPIArg(StorageType& t) {
-    return &t;
-  }
-
-  // Converts the PP_Resource to a pp::* object, passing any reference counted
-  // object along with it. This must only be called once since there will only
-  // be one reference that the browser has assigned to us for the out param!
-  // When calling into the plugin, convert the PP_Resource into the requested
-  // resource object type.
-  static inline T StorageToPluginArg(StorageType& t) {
-    return T(PASS_REF, t);
-  }
-
-  static inline void Initialize(StorageType* t) {
-    *t = 0;
-  }
-};
-
-// The general templatized base class for all CallbackOutputTraits. This class
-// covers both resources and POD (ints, structs, etc.) by inheriting from the
-// appropriate base class depending on whether the given type derives from
-// pp::Resource. This trick allows us to do this once rather than writing
-// specializations for every resource object type.
-template<typename T>
-struct CallbackOutputTraits
-    : public InheritIf<GenericCallbackOutputTraits<T>,
-                       !IsBaseOf<Resource, T>::value>,
-      public InheritIf<ResourceCallbackOutputTraits<T>,
-                       IsBaseOf<Resource, T>::value> {
-};
-
-// A specialization of CallbackOutputTraits for pp::Var output parameters.
-// It passes a PP_Var* to the browser and converts to a pp::Var when passing
-// to the plugin.
-template<>
-struct CallbackOutputTraits<Var> {
-  // To call the browser, we just pass a PP_Var* as an output param.
-  typedef PP_Var* APIArgType;
-  typedef PP_Var StorageType;
-
-  static inline APIArgType StorageToAPIArg(StorageType& t) {
-    return &t;
-  }
-
-  // Converts the PP_Var to a pp::Var object, passing any reference counted
-  // object along with it. This must only be called once since there will only
-  // be one reference that the browser has assigned to us for the out param!
-  static inline pp::Var StorageToPluginArg(StorageType& t) {
-    return Var(PASS_REF, t);
-  }
-
-  static inline void Initialize(StorageType* t) {
-    *t = PP_MakeUndefined();
-  }
-};
-
-// A specialization of CallbackOutputTraits for bool output parameters.
-// It passes a PP_Bool* to the browser and converts to a bool when passing
-// to the plugin.
-template<>
-struct CallbackOutputTraits<bool> {
-  // To call the browser, we just pass a PP_Bool* as an output param.
-  typedef PP_Bool* APIArgType;
-  typedef PP_Bool StorageType;
-
-  static inline APIArgType StorageToAPIArg(StorageType& t) {
-    return &t;
-  }
-
-  // Converts the PP_Bool to a bool object.
-  static inline bool StorageToPluginArg(StorageType& t) {
-    return PP_ToBool(t);
-  }
-
-  static inline void Initialize(StorageType* t) {
-    *t = PP_FALSE;
-  }
-};
-
-// Array output parameters -----------------------------------------------------
-
-// Output traits for vectors of all "plain old data" (POD) types. It is
-// implemented to pass a pointer to the browser as an output parameter.
-//
-// This is used as a base class for the general vector CallbackOutputTraits
-// below in the case where T is not a resource.
-template<typename T>
-struct GenericVectorCallbackOutputTraits {
-  // All arrays are output via a PP_ArrayOutput type.
-  typedef PP_ArrayOutput APIArgType;
-
-  // We store the array as this adapter which combines the PP_ArrayOutput
-  // structure with the underlying std::vector that it will write into.
-  typedef ArrayOutputAdapterWithStorage<T> StorageType;
-
-  // Retrieves the PP_ArrayOutput interface for our vector object that the
-  // browser will use to write into our code.
-  static inline APIArgType StorageToAPIArg(StorageType& t) {
-    return t.pp_array_output();
-  }
-
-  // Retrieves the underlying vector that can be passed to the plugin.
-  static inline std::vector<T>& StorageToPluginArg(StorageType& t) {
-    return t.output();
-  }
-
-  static inline void Initialize(StorageType* /* t */) {}
-};
-
-// Output traits for all vectors of resource types. It is implemented to pass
-// a PP_ArrayOutput parameter to the browser, and convert the returned resources
-// to a vector of the given resource object type T when passing to the plugin.
-//
-// Note that this class is parameterized by the resource object, for example
-// ResourceVectorCallbackOutputTraits<pp::FileRef>. This is used as a base
-// class for CallbackOutputTraits below for the case where T is a derived
-// class of pp::Resource.
-template<typename T>
-struct ResourceVectorCallbackOutputTraits {
-  typedef PP_ArrayOutput APIArgType;
-  typedef ResourceArrayOutputAdapterWithStorage<T> StorageType;
-
-  static inline APIArgType StorageToAPIArg(StorageType& t) {
-    return t.pp_array_output();
-  }
-  static inline std::vector<T>& StorageToPluginArg(StorageType& t) {
-    return t.output();
-  }
-
-  static inline void Initialize(StorageType* /* t */) {}
-};
-
-// Specialization of CallbackOutputTraits for vectors. This struct covers both
-// arrays of resources and arrays of POD (ints, structs, etc.) by inheriting
-// from the appropriate base class depending on whether the given type derives
-// from pp::Resource. This trick allows us to do this once rather than writing
-// specializations for every resource object type.
-template<typename T>
-struct CallbackOutputTraits< std::vector<T> >
-    : public InheritIf<GenericVectorCallbackOutputTraits<T>,
-                       !IsBaseOf<Resource, T>::value>,
-      public InheritIf<ResourceVectorCallbackOutputTraits<T>,
-                       IsBaseOf<Resource, T>::value> {
-};
-
-// A specialization of CallbackOutputTraits to provide the callback system
-// the information on how to handle vectors of pp::Var. Vectors of resources
-// and plain data are handled separately. See the above definition for more.
-template<>
-struct CallbackOutputTraits< std::vector<pp::Var> > {
-  // All arrays are output via a PP_ArrayOutput type.
-  typedef PP_ArrayOutput APIArgType;
-
-  // We store the array as this adapter which combines the PP_ArrayOutput
-  // structure with the underlying std::vector that it will write into.
-  typedef VarArrayOutputAdapterWithStorage StorageType;
-
-  // Retrieves the PP_ArrayOutput interface for our vector object that the
-  // browser will use to write into our code.
-  static inline APIArgType StorageToAPIArg(StorageType& t) {
-    return t.pp_array_output();
-  }
-
-  // Retrieves the underlying vector that can be passed to the plugin.
-  static inline std::vector<pp::Var>& StorageToPluginArg(StorageType& t) {
-    return t.output();
-  }
-
-  static inline void Initialize(StorageType* /* t */) {}
-};
-
-}  // namespace internal
-}  // namespace pp
-
-#endif  // PPAPI_CPP_OUTPUT_TRAITS_H_
diff --git a/cpp/pass_ref.h b/cpp/pass_ref.h
deleted file mode 100644
index 733ede0..0000000
--- a/cpp/pass_ref.h
+++ /dev/null
@@ -1,21 +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_CPP_PASS_REF_H_
-#define PPAPI_CPP_PASS_REF_H_
-
-/// @file
-/// This file defines an annotation for constructors and other functions that
-/// take ownership of a pointer.
-namespace pp {
-
-/// An annotation for constructors and other functions that take ownership of
-/// a pointer. For example, a resource constructor that takes ownership of a
-/// provided <code>PP_Resource</code> ref count would take this enumeration to
-/// differentiate from the more typical use case of taking its own reference.
-enum PassRef { PASS_REF };
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PASS_REF_H_
diff --git a/cpp/point.h b/cpp/point.h
deleted file mode 100644
index c0ffbac..0000000
--- a/cpp/point.h
+++ /dev/null
@@ -1,338 +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_CPP_POINT_H_
-#define PPAPI_CPP_POINT_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_point.h"
-
-/// @file
-/// This file defines the API to create a 2 dimensional point.
-
-namespace pp {
-
-/// A 2 dimensional point with 0,0 being the upper-left starting coordinate.
-class Point {
- public:
-  /// The default constructor for a point at 0,0.
-  Point() {
-    point_.x = 0;
-    point_.y = 0;
-  }
-
-  /// A constructor accepting two int32_t values for x and y and converting
-  /// them to a Point.
-  ///
-  /// @param[in] in_x An int32_t value representing a horizontal coordinate
-  /// of a point, starting with 0 as the left-most coordinate.
-  /// @param[in] in_y An int32_t value representing a vertical coordinate
-  /// of a point, starting with 0 as the top-most coordinate.
-  Point(int32_t in_x, int32_t in_y) {
-    point_.x = in_x;
-    point_.y = in_y;
-  }
-
-  /// A constructor accepting a pointer to a PP_Point and converting the
-  /// PP_Point to a Point. This is an implicit conversion constructor.
-  ///
-  /// @param[in] point A pointer to a PP_Point.
-  Point(const PP_Point& point) {  // Implicit.
-    point_.x = point.x;
-    point_.y = point.y;
-  }
-
-  /// Destructor.
-  ~Point() {
-  }
-
-  /// A function allowing implicit conversion of a Point to a PP_Point.
-  /// @return A Point.
-  operator PP_Point() const {
-    return point_;
-  }
-
-  /// Getter function for returning the internal PP_Point struct.
-  ///
-  /// @return A const reference to the internal PP_Point struct.
-  const PP_Point& pp_point() const {
-    return point_;
-  }
-
-  /// Getter function for returning the internal PP_Point struct.
-  ///
-  /// @return A mutable reference to the PP_Point struct.
-  PP_Point& pp_point() {
-    return point_;
-  }
-
-  /// Getter function for returning the value of x.
-  ///
-  /// @return The value of x for this Point.
-  int32_t x() const { return point_.x; }
-
-  /// Setter function for setting the value of x.
-  ///
-  /// @param[in] in_x A new x value.
-  void set_x(int32_t in_x) {
-    point_.x = in_x;
-  }
-
-  /// Getter function for returning the value of y.
-  ///
-  /// @return The value of y for this Point.
-  int32_t y() const { return point_.y; }
-
-  /// Setter function for setting the value of y.
-  ///
-  /// @param[in] in_y A new y value.
-  void set_y(int32_t in_y) {
-    point_.y = in_y;
-  }
-
-  /// Adds two Points (this and other) together by adding their x values and
-  /// y values.
-  ///
-  /// @param[in] other A Point.
-  ///
-  /// @return A new Point containing the result.
-  Point operator+(const Point& other) const {
-    return Point(x() + other.x(), y() + other.y());
-  }
-
-  /// Subtracts one Point from another Point by subtracting their x values
-  /// and y values. Returns a new point with the result.
-  ///
-  /// @param[in] other A Point.
-  ///
-  /// @return A new Point containing the result.
-  Point operator-(const Point& other) const {
-    return Point(x() - other.x(), y() - other.y());
-  }
-
-  /// Adds two Points (this and other) together by adding their x and y
-  /// values. Returns this point as the result.
-  ///
-  /// @param[in] other A Point.
-  ///
-  /// @return This Point containing the result.
-  Point& operator+=(const Point& other) {
-    point_.x += other.x();
-    point_.y += other.y();
-    return *this;
-  }
-
-  /// Subtracts one Point from another Point by subtracting their x values
-  /// and y values. Returns this point as the result.
-  ///
-  /// @param[in] other A Point.
-  ///
-  /// @return This Point containing the result.
-  Point& operator-=(const Point& other) {
-    point_.x -= other.x();
-    point_.y -= other.y();
-    return *this;
-  }
-
-  /// Swaps the coordinates of two Points.
-  ///
-  /// @param[in] other A Point.
-  void swap(Point& other) {
-    int32_t x = point_.x;
-    int32_t y = point_.y;
-    point_.x = other.point_.x;
-    point_.y = other.point_.y;
-    other.point_.x = x;
-    other.point_.y = y;
-  }
-
- private:
-  PP_Point point_;
-};
-
-/// A 2 dimensional floating-point point with 0,0 being the upper-left starting
-/// coordinate.
-class FloatPoint {
- public:
-  /// A constructor for a point at 0,0.
-  FloatPoint() {
-    float_point_.x = 0.0f;
-    float_point_.y = 0.0f;
-  }
-
-  /// A constructor accepting two values for x and y and converting them to a
-  /// FloatPoint.
-  ///
-  /// @param[in] in_x An value representing a horizontal coordinate of a
-  /// point, starting with 0 as the left-most coordinate.
-  ///
-  /// @param[in] in_y An value representing a vertical coordinate of a point,
-  /// starting with 0 as the top-most coordinate.
-  FloatPoint(float in_x, float in_y) {
-    float_point_.x = in_x;
-    float_point_.y = in_y;
-  }
-
-  /// A constructor accepting a pointer to a PP_FloatPoint and converting the
-  /// PP_Point to a Point. This is an implicit conversion constructor.
-  ///
-  /// @param[in] point A PP_FloatPoint.
-  FloatPoint(const PP_FloatPoint& point) {  // Implicit.
-    float_point_.x = point.x;
-    float_point_.y = point.y;
-  }
-  /// Destructor.
-  ~FloatPoint() {
-  }
-
-  /// A function allowing implicit conversion of a FloatPoint to a
-  /// PP_FloatPoint.
-  operator PP_FloatPoint() const {
-    return float_point_;
-  }
-
-  /// Getter function for returning the internal PP_FloatPoint struct.
-  ///
-  /// @return A const reference to the internal PP_FloatPoint struct.
-  const PP_FloatPoint& pp_float_point() const {
-    return float_point_;
-  }
-
-  /// Getter function for returning the internal PP_Point struct.
-  ///
-  /// @return A mutable reference to the PP_Point struct.
-  PP_FloatPoint& pp_float_point() {
-    return float_point_;
-  }
-
-  /// Getter function for returning the value of x.
-  ///
-  /// @return The value of x for this Point.
-  float x() const { return float_point_.x; }
-
-  /// Setter function for setting the value of x.
-  ///
-  /// @param[in] in_x A new x value.
-  void set_x(float in_x) {
-    float_point_.x = in_x;
-  }
-
-  /// Getter function for returning the value of y.
-  ///
-  /// @return The value of y for this Point.
-  float y() const { return float_point_.y; }
-
-  /// Setter function for setting the value of y.
-  ///
-  /// @param[in] in_y A new y value.
-  void set_y(float in_y) {
-    float_point_.y = in_y;
-  }
-
-  /// Adds two Points (this and other) together by adding their x values and
-  /// y values.
-  ///
-  /// @param[in] other A Point.
-  ///
-  /// @return A new Point containing the result.
-  FloatPoint operator+(const FloatPoint& other) const {
-    return FloatPoint(x() + other.x(), y() + other.y());
-  }
-
-  /// Subtracts one Point from another Point by subtracting their x values
-  /// and y values. Returns a new point with the result.
-  ///
-  /// @param[in] other A FloatPoint.
-  ///
-  /// @return A new Point containing the result.
-  FloatPoint operator-(const FloatPoint& other) const {
-    return FloatPoint(x() - other.x(), y() - other.y());
-  }
-
-  /// Adds two Points (this and other) together by adding their x and y
-  /// values. Returns this point as the result.
-  ///
-  /// @param[in] other A Point.
-  ///
-  /// @return This Point containing the result.
-  FloatPoint& operator+=(const FloatPoint& other) {
-    float_point_.x += other.x();
-    float_point_.y += other.y();
-    return *this;
-  }
-
-  /// Subtracts one Point from another Point by subtracting their x values
-  /// and y values. Returns this point as the result.
-  ///
-  /// @param[in] other A Point.
-  ///
-  /// @return This Point containing the result.
-  FloatPoint& operator-=(const FloatPoint& other) {
-    float_point_.x -= other.x();
-    float_point_.y -= other.y();
-    return *this;
-  }
-
-  /// Swaps the coordinates of two Points.
-  ///
-  /// @param[in] other A Point.
-  void swap(FloatPoint& other) {
-    float x = float_point_.x;
-    float y = float_point_.y;
-    float_point_.x = other.float_point_.x;
-    float_point_.y = other.float_point_.y;
-    other.float_point_.x = x;
-    other.float_point_.y = y;
-  }
-
- private:
-  PP_FloatPoint float_point_;
-};
-
-}  // namespace pp
-
-/// Determines whether the x and y values of two Points are equal.
-///
-/// @param[in] lhs The Point on the left-hand side of the equation.
-/// @param[in] rhs The Point on the right-hand side of the equation.
-///
-/// @return true if they are equal, false if unequal.
-inline bool operator==(const pp::Point& lhs, const pp::Point& rhs) {
-  return lhs.x() == rhs.x() && lhs.y() == rhs.y();
-}
-
-/// Determines whether two Points have different coordinates.
-///
-/// @param[in] lhs The Point on the left-hand side of the equation.
-/// @param[in] rhs The Point on the right-hand side of the equation.
-///
-/// @return true if the coordinates of lhs are equal to the coordinates
-/// of rhs, otherwise false.
-inline bool operator!=(const pp::Point& lhs, const pp::Point& rhs) {
-  return !(lhs == rhs);
-}
-
-/// Determines whether the x and y values of two FloatPoints are equal.
-///
-/// @param[in] lhs The Point on the left-hand side of the equation.
-/// @param[in] rhs The Point on the right-hand side of the equation.
-///
-/// @return true if they are equal, false if unequal.
-inline bool operator==(const pp::FloatPoint& lhs, const pp::FloatPoint& rhs) {
-  return lhs.x() == rhs.x() && lhs.y() == rhs.y();
-}
-
-/// Determines whether two Points have different coordinates.
-///
-/// @param[in] lhs The Point on the left-hand side of the equation.
-/// @param[in] rhs The Point on the right-hand side of the equation.
-///
-/// @return true if the coordinates of lhs are equal to the coordinates
-/// of rhs, otherwise false.
-inline bool operator!=(const pp::FloatPoint& lhs, const pp::FloatPoint& rhs) {
-  return !(lhs == rhs);
-}
-
-#endif  // PPAPI_CPP_POINT_H_
diff --git a/cpp/ppp_entrypoints.cc b/cpp/ppp_entrypoints.cc
deleted file mode 100644
index 4e8bbbb..0000000
--- a/cpp/ppp_entrypoints.cc
+++ /dev/null
@@ -1,61 +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.
-
-// When used in conjunction with module_embedder.h, this gives a default
-// implementation of ppp.h for clients of the ppapi C++ interface.  Most
-// plugin implementors can export their derivation of Module by just
-// linking to this implementation.
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb.h"
-#include "ppapi/c/ppp.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_embedder.h"
-
-static pp::Module* g_module_singleton = NULL;
-static PP_GetInterface_Func g_broker_get_interface = NULL;
-
-namespace pp {
-
-// Give a default implementation of Module::Get().  See module.cc for details.
-pp::Module* Module::Get() {
-  return g_module_singleton;
-}
-
-void SetBrokerGetInterfaceFunc(PP_GetInterface_Func broker_get_interface) {
-  g_broker_get_interface = broker_get_interface;
-}
-
-}  // namespace pp
-
-// Global PPP functions --------------------------------------------------------
-
-PP_EXPORT int32_t PPP_InitializeModule(PP_Module module_id,
-                                       PPB_GetInterface get_browser_interface) {
-  pp::Module* module = pp::CreateModule();
-  if (!module)
-    return PP_ERROR_FAILED;
-
-  if (!module->InternalInit(module_id, get_browser_interface)) {
-    delete module;
-    return PP_ERROR_FAILED;
-  }
-  g_module_singleton = module;
-  return PP_OK;
-}
-
-PP_EXPORT void PPP_ShutdownModule() {
-  delete g_module_singleton;
-  g_module_singleton = NULL;
-}
-
-PP_EXPORT const void* PPP_GetInterface(const char* interface_name) {
-  if (g_module_singleton)
-    return g_module_singleton->GetPluginInterface(interface_name);
-  if (g_broker_get_interface)
-    return g_broker_get_interface(interface_name);
-  return NULL;
-}
diff --git a/cpp/private/BUILD.gn b/cpp/private/BUILD.gn
deleted file mode 100644
index 6f63f03..0000000
--- a/cpp/private/BUILD.gn
+++ /dev/null
@@ -1,12 +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.
-
-source_set("internal_module") {
-  sources = [
-    "internal_module.cc",
-    "internal_module.h",
-  ]
-
-  deps = [ "//ppapi/cpp:objects" ]
-}
diff --git a/cpp/private/DEPS b/cpp/private/DEPS
deleted file mode 100644
index 89916e4..0000000
--- a/cpp/private/DEPS
+++ /dev/null
@@ -1,5 +0,0 @@
-include_rules = [
-  "+ppapi/c/private",
-  "+ppapi/c/trusted",
-  "+ppapi/cpp/trusted",
-]
diff --git a/cpp/private/camera_capabilities_private.cc b/cpp/private/camera_capabilities_private.cc
deleted file mode 100644
index 8a933cc..0000000
--- a/cpp/private/camera_capabilities_private.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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/cpp/private/camera_capabilities_private.h"
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <>
-const char* interface_name<PPB_CameraCapabilities_Private_0_1>() {
-  return PPB_CAMERACAPABILITIES_PRIVATE_INTERFACE_0_1;
-}
-
-}  // namespace
-
-CameraCapabilities_Private::CameraCapabilities_Private() {
-}
-
-CameraCapabilities_Private::CameraCapabilities_Private(
-    const CameraCapabilities_Private& other)
-    : Resource(other) {
-}
-
-CameraCapabilities_Private::CameraCapabilities_Private(const Resource& resource)
-    : Resource(resource) {
-  PP_DCHECK(IsCameraCapabilities(resource));
-}
-
-CameraCapabilities_Private::CameraCapabilities_Private(PassRef,
-                                                       PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-CameraCapabilities_Private::~CameraCapabilities_Private() {
-}
-
-void CameraCapabilities_Private::GetSupportedVideoCaptureFormats(
-    std::vector<PP_VideoCaptureFormat>* formats) {
-  if (!has_interface<PPB_CameraCapabilities_Private_0_1>()) {
-    PP_DCHECK(false);
-    return;
-  }
-
-  uint32_t array_size;
-  PP_VideoCaptureFormat* array;
-  get_interface<PPB_CameraCapabilities_Private_0_1>()
-      ->GetSupportedVideoCaptureFormats(pp_resource(), &array_size, &array);
-  formats->clear();
-  formats->reserve(array_size);
-  for (uint32_t i = 0; i < array_size; i++) {
-    formats->push_back(array[i]);
-  }
-}
-
-// static
-bool CameraCapabilities_Private::IsCameraCapabilities(
-    const Resource& resource) {
-  if (!has_interface<PPB_CameraCapabilities_Private_0_1>())
-    return false;
-
-  return PP_ToBool(
-      get_interface<PPB_CameraCapabilities_Private_0_1>()->IsCameraCapabilities(
-          resource.pp_resource()));
-}
-
-}  // namespace pp
diff --git a/cpp/private/camera_capabilities_private.h b/cpp/private/camera_capabilities_private.h
deleted file mode 100644
index 2430b50..0000000
--- a/cpp/private/camera_capabilities_private.h
+++ /dev/null
@@ -1,73 +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_CPP_PRIVATE_CAMERA_CAPABILITIES_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_CAMERA_CAPABILITIES_PRIVATE_H_
-
-#include <vector>
-
-#include "ppapi/c/private/ppb_camera_capabilities_private.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/size.h"
-
-/// @file
-/// This file defines the CameraCapabilities_Private interface for
-/// establishing an image capture configuration resource within the browser.
-namespace pp {
-
-/// The <code>CameraCapabilities_Private</code> interface contains methods for
-/// getting the image capture capabilities within the browser.
-class CameraCapabilities_Private : public Resource {
- public:
-  /// Default constructor for creating an is_null()
-  /// <code>CameraCapabilities_Private</code> object.
-  CameraCapabilities_Private();
-
-  /// The copy constructor for <code>CameraCapabilities_Private</code>.
-  ///
-  /// @param[in] other A reference to a <code>CameraCapabilities_Private
-  /// </code>.
-  CameraCapabilities_Private(const CameraCapabilities_Private& other);
-
-  /// Constructs a <code>CameraCapabilities_Private</code> from a <code>
-  /// Resource</code>.
-  ///
-  /// @param[in] resource A <code>PPB_CameraCapabilities_Private</code>
-  /// resource.
-  explicit CameraCapabilities_Private(const Resource& resource);
-
-  /// A constructor used when you have received a <code>PP_Resource</code> as a
-  /// return value that has had 1 ref added for you.
-  ///
-  /// @param[in] resource A <code>PPB_CameraCapabilities_Private</code>
-  /// resource.
-  CameraCapabilities_Private(PassRef, PP_Resource resource);
-
-  // Destructor.
-  ~CameraCapabilities_Private();
-
-  /// GetSupportedVideoCaptureFormats() returns the supported video capture
-  /// formats.
-  ///
-  /// @param[out] formats A vector of <code>PP_VideoCaptureFormat</code>
-  /// corresponding to the supported video capture formats. This output vector
-  /// must be prepared by the caller beforehand.
-  void GetSupportedVideoCaptureFormats(
-      std::vector<PP_VideoCaptureFormat>* formats);
-
-  /// IsCameraCapabilities() determines if the given resource is a
-  /// <code>CameraCapabilities_Private</code>.
-  ///
-  /// @param[in] resource A <code>Resource</code> corresponding to an image
-  /// capture capabilities resource.
-  ///
-  /// @return true if the given resource is an <code>
-  /// CameraCapabilities_Private</code> resource, otherwise false.
-  static bool IsCameraCapabilities(const Resource& resource);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_CAMERA_CAPABILITIES_PRIVATE_H_
diff --git a/cpp/private/camera_device_private.cc b/cpp/private/camera_device_private.cc
deleted file mode 100644
index 4a177de..0000000
--- a/cpp/private/camera_device_private.cc
+++ /dev/null
@@ -1,87 +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/cpp/private/camera_device_private.h"
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/private/camera_capabilities_private.h"
-
-namespace pp {
-
-namespace {
-
-template <>
-const char* interface_name<PPB_CameraDevice_Private_0_1>() {
-  return PPB_CAMERADEVICE_PRIVATE_INTERFACE_0_1;
-}
-
-}  // namespace
-
-CameraDevice_Private::CameraDevice_Private() {
-}
-
-CameraDevice_Private::CameraDevice_Private(const CameraDevice_Private& other)
-    : Resource(other) {
-}
-
-CameraDevice_Private::CameraDevice_Private(const Resource& resource)
-    : Resource(resource) {
-  PP_DCHECK(IsCameraDevice(resource));
-}
-
-CameraDevice_Private::CameraDevice_Private(const InstanceHandle& instance) {
-  if (has_interface<PPB_CameraDevice_Private_0_1>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_CameraDevice_Private_0_1>()->Create(
-            instance.pp_instance()));
-    return;
-  }
-  PP_DCHECK(false);
-}
-
-CameraDevice_Private::CameraDevice_Private(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-CameraDevice_Private::~CameraDevice_Private() {
-}
-
-int32_t CameraDevice_Private::Open(const Var& device_id,
-                                   const CompletionCallback& callback) {
-  if (!has_interface<PPB_CameraDevice_Private_0_1>())
-    return callback.MayForce(PP_ERROR_NOINTERFACE);
-
-  return get_interface<PPB_CameraDevice_Private_0_1>()->Open(
-      pp_resource(), device_id.pp_var(), callback.pp_completion_callback());
-}
-
-void CameraDevice_Private::Close() {
-  if (has_interface<PPB_CameraDevice_Private_0_1>())
-    get_interface<PPB_CameraDevice_Private_0_1>()->Close(pp_resource());
-}
-
-int32_t CameraDevice_Private::GetCameraCapabilities(
-    const CompletionCallbackWithOutput<CameraCapabilities_Private>& callback) {
-  if (!has_interface<PPB_CameraDevice_Private_0_1>())
-    return callback.MayForce(PP_ERROR_NOINTERFACE);
-
-  return get_interface<PPB_CameraDevice_Private_0_1>()->GetCameraCapabilities(
-      pp_resource(), callback.output(), callback.pp_completion_callback());
-}
-
-// static
-bool CameraDevice_Private::IsCameraDevice(const Resource& resource) {
-  if (!has_interface<PPB_CameraDevice_Private_0_1>())
-    return false;
-
-  return PP_ToBool(
-      get_interface<PPB_CameraDevice_Private_0_1>()->IsCameraDevice(
-          resource.pp_resource()));
-}
-
-}  // namespace pp
diff --git a/cpp/private/camera_device_private.h b/cpp/private/camera_device_private.h
deleted file mode 100644
index c1f8306..0000000
--- a/cpp/private/camera_device_private.h
+++ /dev/null
@@ -1,105 +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_CPP_PRIVATE_CAMERA_DEVICE_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_CAMERA_DEVICE_PRIVATE_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/private/ppb_camera_device_private.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/var.h"
-
-/// @file
-/// Defines the <code>CameraDevice_Private</code> interface. Used for
-/// manipulating a camera device.
-namespace pp {
-
-class CameraCapabilities_Private;
-class CompletionCallback;
-class InstanceHandle;
-
-template <typename T>
-class CompletionCallbackWithOutput;
-
-/// To query camera capabilities:
-/// 1. Create a CameraDevice_Private object.
-/// 2. Open() camera device with track id of MediaStream video track.
-/// 3. Call GetCameraCapabilities() to get a
-///    <code>CameraCapabilities_Private</code> object, which can be used to
-///    query camera capabilities.
-class CameraDevice_Private : public Resource {
- public:
-  /// Default constructor for creating an is_null()
-  /// <code>CameraDevice_Private</code> object.
-  CameraDevice_Private();
-
-  /// The copy constructor for <code>CameraDevice_Private</code>.
-  ///
-  /// @param[in] other A reference to a <code>CameraDevice_Private</code>.
-  CameraDevice_Private(const CameraDevice_Private& other);
-
-  /// Constructs a <code>CameraDevice_Private</code> from a
-  /// <code>Resource</code>.
-  ///
-  /// @param[in] resource A <code>PPB_CameraDevice_Private</code> resource.
-  explicit CameraDevice_Private(const Resource& resource);
-
-  /// Constructs a CameraDevice_Private resource.
-  ///
-  /// @param[in] instance A <code>PP_Instance</code> identifying one instance
-  /// of a module.
-  explicit CameraDevice_Private(const InstanceHandle& instance);
-
-  /// A constructor used when you have received a <code>PP_Resource</code> as a
-  /// return value that has had 1 ref added for you.
-  ///
-  /// @param[in] resource A <code>PPB_CameraDevice_Private</code> resource.
-  CameraDevice_Private(PassRef, PP_Resource resource);
-
-  // Destructor.
-  ~CameraDevice_Private();
-
-  /// Opens a camera device.
-  ///
-  /// @param[in] device_id A <code>Var</code> identifying a camera
-  /// device. The type is string. The ID can be obtained from
-  /// navigator.mediaDevices.enumerateDevices() or MediaStreamVideoTrack.id.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion of <code>Open()</code>.
-  ///
-  /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
-  int32_t Open(const Var& device_id, const CompletionCallback& callback);
-
-  /// Disconnects from the camera and cancels all pending requests.
-  /// After this returns, no callbacks will be called. If <code>
-  /// CameraDevice_Private</code> is destroyed and is not closed yet, this
-  /// function will be automatically called. Calling this more than once has no
-  /// effect.
-  void Close();
-
-  /// Gets the camera capabilities.
-  ///
-  /// The camera capabilities do not change for a given camera source.
-  ///
-  /// @param[in] callback A <code>CompletionCallbackWithOutput</code>
-  /// to be called upon completion.
-  ///
-  /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
-  int32_t GetCameraCapabilities(
-      const CompletionCallbackWithOutput<CameraCapabilities_Private>& callback);
-
-  /// Determines if a resource is a camera device resource.
-  ///
-  /// @param[in] resource The <code>Resource</code> to test.
-  ///
-  /// @return true if the given resource is a camera device resource or false
-  /// otherwise.
-  static bool IsCameraDevice(const Resource& resource);
-};
-
-} // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_CAMERA_DEVICE_PRIVATE_H_
diff --git a/cpp/private/ext_crx_file_system_private.cc b/cpp/private/ext_crx_file_system_private.cc
deleted file mode 100644
index 1621b8a..0000000
--- a/cpp/private/ext_crx_file_system_private.cc
+++ /dev/null
@@ -1,38 +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.
-
-#include "ppapi/cpp/private/ext_crx_file_system_private.h"
-
-#include "ppapi/c/private/ppb_ext_crx_file_system_private.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Ext_CrxFileSystem_Private_0_1>() {
-  return PPB_EXT_CRXFILESYSTEM_PRIVATE_INTERFACE_0_1;
-}
-
-}  // namespace
-
-ExtCrxFileSystemPrivate::ExtCrxFileSystemPrivate() {
-}
-
-ExtCrxFileSystemPrivate::ExtCrxFileSystemPrivate(
-    const InstanceHandle& instance) : instance_(instance.pp_instance()) {
-}
-
-ExtCrxFileSystemPrivate::~ExtCrxFileSystemPrivate() {
-}
-
-int32_t ExtCrxFileSystemPrivate::Open(
-    const CompletionCallbackWithOutput<pp::FileSystem>& cc) {
-  if (!has_interface<PPB_Ext_CrxFileSystem_Private_0_1>())
-    return cc.MayForce(PP_ERROR_NOINTERFACE);
-  return get_interface<PPB_Ext_CrxFileSystem_Private_0_1>()->
-      Open(instance_, cc.output(), cc.pp_completion_callback());
-}
-
-}  // namespace pp
diff --git a/cpp/private/ext_crx_file_system_private.h b/cpp/private/ext_crx_file_system_private.h
deleted file mode 100644
index cf80e67..0000000
--- a/cpp/private/ext_crx_file_system_private.h
+++ /dev/null
@@ -1,31 +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.
-
-#ifndef PPAPI_CPP_PRIVATE_EXT_CRX_FILE_SYSTEM_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_EXT_CRX_FILE_SYSTEM_PRIVATE_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/file_system.h"
-#include "ppapi/cpp/instance_handle.h"
-
-namespace pp {
-
-class ExtCrxFileSystemPrivate {
- public:
-  ExtCrxFileSystemPrivate();
-  explicit ExtCrxFileSystemPrivate(const InstanceHandle& instance);
-  virtual ~ExtCrxFileSystemPrivate();
-
-  int32_t Open(const CompletionCallbackWithOutput<pp::FileSystem>& cc);
-
- private:
-  PP_Instance instance_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_EXT_CRX_FILE_SYSTEM_PRIVATE_H_
diff --git a/cpp/private/file_io_private.cc b/cpp/private/file_io_private.cc
deleted file mode 100644
index 96d951c..0000000
--- a/cpp/private/file_io_private.cc
+++ /dev/null
@@ -1,40 +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.
-
-#include "ppapi/cpp/private/file_io_private.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/private/ppb_file_io_private.h"
-#include "ppapi/cpp/file_io.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_FileIO_Private>() {
-  return PPB_FILEIO_PRIVATE_INTERFACE_0_1;
-}
-
-}  // namespace
-
-FileIO_Private::FileIO_Private()
-    : FileIO() {
-}
-
-FileIO_Private::FileIO_Private(const InstanceHandle& instance)
-    : FileIO(instance) {
-}
-
-int32_t FileIO_Private::RequestOSFileHandle(
-    const CompletionCallbackWithOutput<PassFileHandle>& cc) {
-  if (has_interface<PPB_FileIO_Private>())
-    return get_interface<PPB_FileIO_Private>()->RequestOSFileHandle(
-        pp_resource(),
-        cc.output(),
-        cc.pp_completion_callback());
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-}  // namespace pp
diff --git a/cpp/private/file_io_private.h b/cpp/private/file_io_private.h
deleted file mode 100644
index 8ef06f5..0000000
--- a/cpp/private/file_io_private.h
+++ /dev/null
@@ -1,29 +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.
-
-#ifndef PPAPI_CPP_PRIVATE_FILE_IO_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_FILE_IO_PRIVATE_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/private/pp_file_handle.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/file_io.h"
-#include "ppapi/cpp/private/pass_file_handle.h"
-
-namespace pp {
-
-class FileIO;
-
-class FileIO_Private : public FileIO {
- public:
-  FileIO_Private();
-  explicit FileIO_Private(const InstanceHandle& instance);
-
-  int32_t RequestOSFileHandle(
-      const CompletionCallbackWithOutput<PassFileHandle>& cc);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_FILE_IO_PRIVATE_H_
diff --git a/cpp/private/host_resolver_private.cc b/cpp/private/host_resolver_private.cc
deleted file mode 100644
index 7e100c7..0000000
--- a/cpp/private/host_resolver_private.cc
+++ /dev/null
@@ -1,77 +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/cpp/private/host_resolver_private.h"
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/pass_ref.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_HostResolver_Private_0_1>() {
-  return PPB_HOSTRESOLVER_PRIVATE_INTERFACE_0_1;
-}
-
-}  // namespace
-
-HostResolverPrivate::HostResolverPrivate(const InstanceHandle& instance) {
-  if (has_interface<PPB_HostResolver_Private_0_1>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_HostResolver_Private_0_1>()->Create(
-        instance.pp_instance()));
-  }
-}
-
-// static
-bool HostResolverPrivate::IsAvailable() {
-  return has_interface<PPB_HostResolver_Private_0_1>();
-}
-
-int32_t HostResolverPrivate::Resolve(const std::string& host,
-                                     uint16_t port,
-                                     const PP_HostResolver_Private_Hint& hint,
-                                     const CompletionCallback& callback) {
-  if (!has_interface<PPB_HostResolver_Private_0_1>())
-    return callback.MayForce(PP_ERROR_NOINTERFACE);
-  return get_interface<PPB_HostResolver_Private_0_1>()->Resolve(
-      pp_resource(),
-      host.c_str(),
-      port,
-      &hint,
-      callback.pp_completion_callback());
-}
-
-Var HostResolverPrivate::GetCanonicalName() {
-  if (!has_interface<PPB_HostResolver_Private_0_1>())
-    return Var(Var::Null());
-
-  PP_Var pp_canonical_name =
-      get_interface<PPB_HostResolver_Private_0_1>()->GetCanonicalName(
-          pp_resource());
-  return Var(PASS_REF, pp_canonical_name);
-}
-
-uint32_t HostResolverPrivate::GetSize() {
-  if (!has_interface<PPB_HostResolver_Private_0_1>())
-    return 0;
-  return get_interface<PPB_HostResolver_Private_0_1>()->GetSize(pp_resource());
-}
-
-bool HostResolverPrivate::GetNetAddress(uint32_t index,
-                                        PP_NetAddress_Private* address) {
-  if (!has_interface<PPB_HostResolver_Private_0_1>())
-    return false;
-  PP_Bool result = get_interface<PPB_HostResolver_Private_0_1>()->GetNetAddress(
-      pp_resource(), index, address);
-  return PP_ToBool(result);
-}
-
-}  // namespace pp
diff --git a/cpp/private/host_resolver_private.h b/cpp/private/host_resolver_private.h
deleted file mode 100644
index ec50a2b..0000000
--- a/cpp/private/host_resolver_private.h
+++ /dev/null
@@ -1,40 +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_CPP_PRIVATE_HOST_RESOLVER_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_HOST_RESOLVER_PRIVATE_H_
-
-#include <string>
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/private/ppb_host_resolver_private.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/var.h"
-
-struct PP_NetAddress_Private;
-
-namespace pp {
-
-class CompletionCallback;
-class InstanceHandle;
-
-class HostResolverPrivate : public Resource {
- public:
-  explicit HostResolverPrivate(const InstanceHandle& instance);
-
-  // Returns true if the required interface is available.
-  static bool IsAvailable();
-
-  int32_t Resolve(const std::string& host,
-                  uint16_t port,
-                  const PP_HostResolver_Private_Hint& hint,
-                  const CompletionCallback& callback);
-  Var GetCanonicalName();
-  uint32_t GetSize();
-  bool GetNetAddress(uint32_t index, PP_NetAddress_Private* address);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_HOST_RESOLVER_PRIVATE_H_
diff --git a/cpp/private/instance_private.cc b/cpp/private/instance_private.cc
deleted file mode 100644
index 9cb9a0e..0000000
--- a/cpp/private/instance_private.cc
+++ /dev/null
@@ -1,75 +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/cpp/private/instance_private.h"
-
-#include "ppapi/c/private/ppb_instance_private.h"
-#include "ppapi/c/private/ppp_instance_private.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/private/var_private.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Instance_Private>() {
-  return PPB_INSTANCE_PRIVATE_INTERFACE;
-}
-
-PP_Var GetInstanceObject(PP_Instance pp_instance) {
-  Module* module_singleton = Module::Get();
-  if (!module_singleton)
-    return Var().Detach();
-  InstancePrivate* instance_private = static_cast<InstancePrivate*>(
-      module_singleton->InstanceForPPInstance(pp_instance));
-  if (!instance_private)
-    return Var().Detach();
-  return instance_private->GetInstanceObject().Detach();
-}
-
-const PPP_Instance_Private ppp_instance_private = {
-  &GetInstanceObject
-};
-
-}  // namespace
-
-InstancePrivate::InstancePrivate(PP_Instance instance) : Instance(instance) {
-  // If at least 1 InstancePrivate is created, register the PPP_INSTANCE_PRIVATE
-  // interface.
-  Module::Get()->AddPluginInterface(PPP_INSTANCE_PRIVATE_INTERFACE,
-                                    &ppp_instance_private);
-}
-
-InstancePrivate::~InstancePrivate() {}
-
-Var InstancePrivate::GetInstanceObject() {
-  return Var();
-}
-
-VarPrivate InstancePrivate::GetWindowObject() {
-  if (!has_interface<PPB_Instance_Private>())
-    return VarPrivate();
-  return VarPrivate(PASS_REF,
-      get_interface<PPB_Instance_Private>()->GetWindowObject(pp_instance()));
-}
-
-VarPrivate InstancePrivate::GetOwnerElementObject() {
-  if (!has_interface<PPB_Instance_Private>())
-    return VarPrivate();
-  return VarPrivate(PASS_REF,
-      get_interface<PPB_Instance_Private>()->GetOwnerElementObject(
-          pp_instance()));
-}
-
-VarPrivate InstancePrivate::ExecuteScript(const Var& script, Var* exception) {
-  if (!has_interface<PPB_Instance_Private>())
-    return VarPrivate();
-  return VarPrivate(PASS_REF,
-      get_interface<PPB_Instance_Private>()->ExecuteScript(
-          pp_instance(),
-          script.pp_var(),
-          VarPrivate::OutException(exception).get()));
-}
-
-}  // namespace pp
diff --git a/cpp/private/instance_private.h b/cpp/private/instance_private.h
deleted file mode 100644
index 1ee2d94..0000000
--- a/cpp/private/instance_private.h
+++ /dev/null
@@ -1,59 +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_CPP_PRIVATE_INSTANCE_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_INSTANCE_PRIVATE_H_
-
-/**
- * @file
- * Defines the API ...
- *
- * @addtogroup CPP
- * @{
- */
-
-#include "ppapi/c/ppb_console.h"
-#include "ppapi/cpp/instance.h"
-
-/** The C++ interface to the Pepper API. */
-namespace pp {
-
-class Var;
-class VarPrivate;
-
-class InstancePrivate : public Instance {
- public:
-  explicit InstancePrivate(PP_Instance instance);
-  virtual ~InstancePrivate();
-
-  // @{
-  /// @name PPP_Instance_Private methods for the plugin to override:
-
-  /// See PPP_Instance_Private.GetInstanceObject.
-  virtual Var GetInstanceObject();
-
-  // @}
-
-  // @{
-  /// @name PPB_Instance_Private methods for querying the browser:
-
-  /// See PPB_Instance_Private.GetWindowObject.
-  VarPrivate GetWindowObject();
-
-  /// See PPB_Instance_Private.GetOwnerElementObject.
-  VarPrivate GetOwnerElementObject();
-
-  /// See PPB_Instance.ExecuteScript.
-  VarPrivate ExecuteScript(const Var& script, Var* exception = NULL);
-
-  // @}
-};
-
-}  // namespace pp
-
-/**
- * @}
- * End addtogroup CPP
- */
-#endif  // PPAPI_CPP_PRIVATE_INSTANCE_PRIVATE_H_
diff --git a/cpp/private/internal_module.cc b/cpp/private/internal_module.cc
deleted file mode 100644
index 4e86020..0000000
--- a/cpp/private/internal_module.cc
+++ /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.
-
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/private/internal_module.h"
-
-namespace pp {
-namespace {
-static Module* g_module_singleton = NULL;
-}  // namespace
-
-Module* Module::Get() {
-  return g_module_singleton;
-}
-
-void InternalSetModuleSingleton(Module* module) {
-  g_module_singleton = module;
-}
-
-}  // namespace pp
diff --git a/cpp/private/internal_module.h b/cpp/private/internal_module.h
deleted file mode 100644
index aab30f9..0000000
--- a/cpp/private/internal_module.h
+++ /dev/null
@@ -1,16 +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_CPP_PRIVATE_INTERNAL_MODULE_H_
-#define PPAPI_CPP_PRIVATE_INTERNAL_MODULE_H_
-
-namespace pp {
-class Module;
-
-// Forcibly sets the value returned by pp::Module::Get(). Do not call this
-// function except to support the trusted plugin or the remoting plugin!
-void InternalSetModuleSingleton(Module* module);
-}
-
-#endif  // PPAPI_CPP_PRIVATE_INTERNAL_MODULE_H_
diff --git a/cpp/private/isolated_file_system_private.cc b/cpp/private/isolated_file_system_private.cc
deleted file mode 100644
index e4acaa9..0000000
--- a/cpp/private/isolated_file_system_private.cc
+++ /dev/null
@@ -1,40 +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.
-
-#include "ppapi/cpp/private/isolated_file_system_private.h"
-
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_IsolatedFileSystem_Private_0_2>() {
-  return PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE_0_2;
-}
-
-}  // namespace
-
-IsolatedFileSystemPrivate::IsolatedFileSystemPrivate()
-    : instance_(0), type_(PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_INVALID) {
-}
-
-IsolatedFileSystemPrivate::IsolatedFileSystemPrivate(
-    const InstanceHandle& instance,
-    PP_IsolatedFileSystemType_Private type)
-    : instance_(instance.pp_instance()), type_(type) {
-}
-
-IsolatedFileSystemPrivate::~IsolatedFileSystemPrivate() {
-}
-
-int32_t IsolatedFileSystemPrivate::Open(
-    const CompletionCallbackWithOutput<pp::FileSystem>& cc) {
-  if (!has_interface<PPB_IsolatedFileSystem_Private_0_2>())
-    return cc.MayForce(PP_ERROR_NOINTERFACE);
-  return get_interface<PPB_IsolatedFileSystem_Private_0_2>()->
-      Open(instance_, type_, cc.output(), cc.pp_completion_callback());
-}
-
-}  // namespace pp
diff --git a/cpp/private/isolated_file_system_private.h b/cpp/private/isolated_file_system_private.h
deleted file mode 100644
index c9355ed..0000000
--- a/cpp/private/isolated_file_system_private.h
+++ /dev/null
@@ -1,34 +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.
-
-#ifndef PPAPI_CPP_PRIVATE_ISOLATED_FILE_SYSTEM_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_ISOLATED_FILE_SYSTEM_PRIVATE_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/private/ppb_isolated_file_system_private.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/file_system.h"
-#include "ppapi/cpp/instance_handle.h"
-
-namespace pp {
-
-class IsolatedFileSystemPrivate {
- public:
-  IsolatedFileSystemPrivate();
-  IsolatedFileSystemPrivate(const InstanceHandle& instance,
-                            PP_IsolatedFileSystemType_Private type);
-  virtual ~IsolatedFileSystemPrivate();
-
-  int32_t Open(const CompletionCallbackWithOutput<pp::FileSystem>& cc);
-
- private:
-  PP_Instance instance_;
-  PP_IsolatedFileSystemType_Private type_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_ISOLATED_FILE_SYSTEM_PRIVATE_H_
diff --git a/cpp/private/net_address_private.cc b/cpp/private/net_address_private.cc
deleted file mode 100644
index a05ff6d..0000000
--- a/cpp/private/net_address_private.cc
+++ /dev/null
@@ -1,218 +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/cpp/private/net_address_private.h"
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_NetAddress_Private_1_1>() {
-  return PPB_NETADDRESS_PRIVATE_INTERFACE_1_1;
-}
-
-template <> const char* interface_name<PPB_NetAddress_Private_1_0>() {
-  return PPB_NETADDRESS_PRIVATE_INTERFACE_1_0;
-}
-
-template <> const char* interface_name<PPB_NetAddress_Private_0_1>() {
-  return PPB_NETADDRESS_PRIVATE_INTERFACE_0_1;
-}
-
-}  // namespace
-
-// static
-bool NetAddressPrivate::IsAvailable() {
-  return has_interface<PPB_NetAddress_Private_1_1>() ||
-      has_interface<PPB_NetAddress_Private_1_0>() ||
-      has_interface<PPB_NetAddress_Private_0_1>();
-}
-
-// static
-bool NetAddressPrivate::AreEqual(const PP_NetAddress_Private& addr1,
-                                 const PP_NetAddress_Private& addr2) {
-  if (has_interface<PPB_NetAddress_Private_1_1>()) {
-    return !!get_interface<PPB_NetAddress_Private_1_1>()->AreEqual(&addr1,
-                                                                   &addr2);
-  }
-  if (has_interface<PPB_NetAddress_Private_1_0>()) {
-    return !!get_interface<PPB_NetAddress_Private_1_0>()->AreEqual(&addr1,
-                                                                   &addr2);
-  }
-  if (has_interface<PPB_NetAddress_Private_0_1>()) {
-    return !!get_interface<PPB_NetAddress_Private_0_1>()->AreEqual(&addr1,
-                                                                   &addr2);
-  }
-  return false;
-}
-
-// static
-bool NetAddressPrivate::AreHostsEqual(const PP_NetAddress_Private& addr1,
-                                      const PP_NetAddress_Private& addr2) {
-  if (has_interface<PPB_NetAddress_Private_1_1>()) {
-    return !!get_interface<PPB_NetAddress_Private_1_1>()->AreHostsEqual(&addr1,
-                                                                        &addr2);
-  }
-  if (has_interface<PPB_NetAddress_Private_1_0>()) {
-    return !!get_interface<PPB_NetAddress_Private_1_0>()->AreHostsEqual(&addr1,
-                                                                        &addr2);
-  }
-  if (has_interface<PPB_NetAddress_Private_0_1>()) {
-    return !!get_interface<PPB_NetAddress_Private_0_1>()->AreHostsEqual(&addr1,
-                                                                        &addr2);
-  }
-  return false;
-}
-
-// static
-std::string NetAddressPrivate::Describe(const PP_NetAddress_Private& addr,
-                                        bool include_port) {
-  Module* module = Module::Get();
-  if (!module)
-    return std::string();
-
-  PP_Var result_pp_var = PP_MakeUndefined();
-  if (has_interface<PPB_NetAddress_Private_1_1>()) {
-    result_pp_var = get_interface<PPB_NetAddress_Private_1_1>()->Describe(
-        module->pp_module(),
-        &addr,
-        PP_FromBool(include_port));
-  } else if (has_interface<PPB_NetAddress_Private_1_0>()) {
-    result_pp_var = get_interface<PPB_NetAddress_Private_1_0>()->Describe(
-        module->pp_module(),
-        &addr,
-        PP_FromBool(include_port));
-  } else if (has_interface<PPB_NetAddress_Private_0_1>()) {
-    result_pp_var = get_interface<PPB_NetAddress_Private_0_1>()->Describe(
-        module->pp_module(),
-        &addr,
-        PP_FromBool(include_port));
-  }
-
-  Var result(PASS_REF, result_pp_var);
-  return result.is_string() ? result.AsString() : std::string();
-}
-
-// static
-bool NetAddressPrivate::ReplacePort(const PP_NetAddress_Private& addr_in,
-                                    uint16_t port,
-                                    PP_NetAddress_Private* addr_out) {
-  if (has_interface<PPB_NetAddress_Private_1_1>()) {
-    return !!get_interface<PPB_NetAddress_Private_1_1>()->ReplacePort(&addr_in,
-                                                                      port,
-                                                                      addr_out);
-  }
-  if (has_interface<PPB_NetAddress_Private_1_0>()) {
-    return !!get_interface<PPB_NetAddress_Private_1_0>()->ReplacePort(&addr_in,
-                                                                      port,
-                                                                      addr_out);
-  }
-  if (has_interface<PPB_NetAddress_Private_0_1>()) {
-    return !!get_interface<PPB_NetAddress_Private_0_1>()->ReplacePort(&addr_in,
-                                                                      port,
-                                                                      addr_out);
-  }
-  return false;
-}
-
-// static
-bool NetAddressPrivate::GetAnyAddress(bool is_ipv6,
-                                      PP_NetAddress_Private* addr) {
-  if (has_interface<PPB_NetAddress_Private_1_1>()) {
-    get_interface<PPB_NetAddress_Private_1_1>()->GetAnyAddress(
-        PP_FromBool(is_ipv6),
-        addr);
-    return true;
-  } else if (has_interface<PPB_NetAddress_Private_1_0>()) {
-    get_interface<PPB_NetAddress_Private_1_0>()->GetAnyAddress(
-        PP_FromBool(is_ipv6),
-        addr);
-    return true;
-  } else if (has_interface<PPB_NetAddress_Private_0_1>()) {
-    get_interface<PPB_NetAddress_Private_0_1>()->GetAnyAddress(
-        PP_FromBool(is_ipv6),
-        addr);
-    return true;
-  }
-  return false;
-}
-
-// static
-PP_NetAddressFamily_Private NetAddressPrivate::GetFamily(
-    const PP_NetAddress_Private& addr) {
-  if (has_interface<PPB_NetAddress_Private_1_1>())
-    return get_interface<PPB_NetAddress_Private_1_1>()->GetFamily(&addr);
-  if (has_interface<PPB_NetAddress_Private_1_0>())
-    return get_interface<PPB_NetAddress_Private_1_0>()->GetFamily(&addr);
-  return PP_NETADDRESSFAMILY_PRIVATE_UNSPECIFIED;
-}
-
-// static
-uint16_t NetAddressPrivate::GetPort(const PP_NetAddress_Private& addr) {
-  if (has_interface<PPB_NetAddress_Private_1_1>())
-    return get_interface<PPB_NetAddress_Private_1_1>()->GetPort(&addr);
-  if (has_interface<PPB_NetAddress_Private_1_0>())
-    return get_interface<PPB_NetAddress_Private_1_0>()->GetPort(&addr);
-  return 0;
-}
-
-// static
-bool NetAddressPrivate::GetAddress(const PP_NetAddress_Private& addr,
-                                   void* address,
-                                   uint16_t address_size) {
-  if (has_interface<PPB_NetAddress_Private_1_1>()) {
-    return PP_ToBool(get_interface<PPB_NetAddress_Private_1_1>()->GetAddress(
-        &addr,
-        address,
-        address_size));
-  }
-  if (has_interface<PPB_NetAddress_Private_1_0>()) {
-    return PP_ToBool(get_interface<PPB_NetAddress_Private_1_0>()->GetAddress(
-        &addr,
-        address,
-        address_size));
-  }
-  return false;
-}
-
-// static
-uint32_t NetAddressPrivate::GetScopeID(const PP_NetAddress_Private& addr) {
-  if (has_interface<PPB_NetAddress_Private_1_1>())
-    return get_interface<PPB_NetAddress_Private_1_1>()->GetScopeID(&addr);
-  return 0;
-}
-
-// static
-bool NetAddressPrivate::CreateFromIPv4Address(
-    const uint8_t ip[4],
-    uint16_t port,
-    struct PP_NetAddress_Private* addr_out) {
-  if (has_interface<PPB_NetAddress_Private_1_1>()) {
-    get_interface<PPB_NetAddress_Private_1_1>()->CreateFromIPv4Address(
-        ip, port, addr_out);
-    return true;
-  }
-  return false;
-}
-
-// static
-bool NetAddressPrivate::CreateFromIPv6Address(
-    const uint8_t ip[16],
-    uint32_t scope_id,
-    uint16_t port,
-    struct PP_NetAddress_Private* addr_out) {
-  if (has_interface<PPB_NetAddress_Private_1_1>()) {
-    get_interface<PPB_NetAddress_Private_1_1>()->CreateFromIPv6Address(
-        ip, scope_id, port, addr_out);
-    return true;
-  }
-  return false;
-}
-
-}  // namespace pp
diff --git a/cpp/private/net_address_private.h b/cpp/private/net_address_private.h
deleted file mode 100644
index 123807b..0000000
--- a/cpp/private/net_address_private.h
+++ /dev/null
@@ -1,48 +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_CPP_PRIVATE_NET_ADDRESS_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_NET_ADDRESS_PRIVATE_H_
-
-#include <string>
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-
-namespace pp {
-
-class NetAddressPrivate {
- public:
-  // Returns true if the required interface is available.
-  static bool IsAvailable();
-
-  static bool AreEqual(const PP_NetAddress_Private& addr1,
-                       const PP_NetAddress_Private& addr2);
-  static bool AreHostsEqual(const PP_NetAddress_Private& addr1,
-                            const PP_NetAddress_Private& addr2);
-  static std::string Describe(const PP_NetAddress_Private& addr,
-                              bool include_port);
-  static bool ReplacePort(const PP_NetAddress_Private& addr_in,
-                          uint16_t port,
-                          PP_NetAddress_Private* addr_out);
-  static bool GetAnyAddress(bool is_ipv6, PP_NetAddress_Private* addr);
-  static PP_NetAddressFamily_Private GetFamily(
-      const PP_NetAddress_Private& addr);
-  static uint16_t GetPort(const PP_NetAddress_Private& addr);
-  static bool GetAddress(const PP_NetAddress_Private& addr,
-                         void* address,
-                         uint16_t address_size);
-  static uint32_t GetScopeID(const PP_NetAddress_Private& addr);
-  static bool CreateFromIPv4Address(const uint8_t ip[4],
-                                    uint16_t port,
-                                    struct PP_NetAddress_Private* addr_out);
-  static bool CreateFromIPv6Address(const uint8_t ip[16],
-                                    uint32_t scope_id,
-                                    uint16_t port,
-                                    struct PP_NetAddress_Private* addr_out);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_NET_ADDRESS_PRIVATE_H_
diff --git a/cpp/private/pass_file_handle.cc b/cpp/private/pass_file_handle.cc
deleted file mode 100644
index 3fcd57e..0000000
--- a/cpp/private/pass_file_handle.cc
+++ /dev/null
@@ -1,48 +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.
-
-#include "ppapi/cpp/private/pass_file_handle.h"
-
-#ifdef _WIN32
-# include <windows.h>
-#else
-# include <unistd.h>
-#endif
-
-namespace pp {
-
-PassFileHandle::PassFileHandle()
-    : handle_(PP_kInvalidFileHandle) {
-}
-
-PassFileHandle::PassFileHandle(PP_FileHandle handle)
-    : handle_(handle) {
-}
-
-PassFileHandle::PassFileHandle(PassFileHandle& handle)
-    : handle_(handle.Release()) {
-}
-
-PassFileHandle::~PassFileHandle() {
-  Close();
-}
-
-PP_FileHandle PassFileHandle::Release() {
-  PP_FileHandle released = handle_;
-  handle_ = PP_kInvalidFileHandle;
-  return released;
-}
-
-void PassFileHandle::Close() {
-  if (handle_ != PP_kInvalidFileHandle) {
-#ifdef _WIN32
-    CloseHandle(handle_);
-#else
-    close(handle_);
-#endif
-    handle_ = PP_kInvalidFileHandle;
-  }
-}
-
-}  // namespace pp
diff --git a/cpp/private/pass_file_handle.h b/cpp/private/pass_file_handle.h
deleted file mode 100644
index b5353dc..0000000
--- a/cpp/private/pass_file_handle.h
+++ /dev/null
@@ -1,86 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
-#pragma allow_unsafe_libc_calls
-#endif
-
-#ifndef PPAPI_CPP_PRIVATE_PASS_FILE_HANDLE_H_
-#define PPAPI_CPP_PRIVATE_PASS_FILE_HANDLE_H_
-
-#include <string.h>
-
-#include "ppapi/c/private/pp_file_handle.h"
-#include "ppapi/cpp/output_traits.h"
-
-namespace pp {
-
-// A wrapper class for PP_FileHandle to make sure a file handle is
-// closed. This object takes the ownership of the file handle when it
-// is constructed. This loses the ownership when this object is
-// assigned to another object, just like auto_ptr.
-class PassFileHandle {
- public:
-  PassFileHandle();
-  // This constructor takes the ownership of |handle|.
-  explicit PassFileHandle(PP_FileHandle handle);
-  // Moves the ownership of |handle| to this object.
-  PassFileHandle(PassFileHandle& handle);
-  ~PassFileHandle();
-
-  // Releases |handle_|. The caller must close the file handle returned.
-  PP_FileHandle Release();
-
- private:
-  // PassFileHandleRef allows users to return PassFileHandle as a
-  // value. This technique is also used by auto_ptr_ref.
-  struct PassFileHandleRef {
-    PP_FileHandle handle;
-    explicit PassFileHandleRef(PP_FileHandle h)
-        : handle(h) {
-    }
-  };
-
- public:
-  PassFileHandle(PassFileHandleRef ref)
-      : handle_(ref.handle) {
-  }
-
-  operator PassFileHandleRef() {
-    return PassFileHandleRef(Release());
-  }
-
- private:
-  void operator=(const PassFileHandle&);
-
-  void Close();
-
-  PP_FileHandle handle_;
-};
-
-namespace internal {
-
-template<>
-struct CallbackOutputTraits<PassFileHandle> {
-  typedef PP_FileHandle* APIArgType;
-  typedef PP_FileHandle StorageType;
-
-  static inline APIArgType StorageToAPIArg(StorageType& t) {
-    return &t;
-  }
-
-  static inline PassFileHandle StorageToPluginArg(StorageType& t) {
-    return PassFileHandle(t);
-  }
-
-  static inline void Initialize(StorageType* t) {
-    memset(t, 0, sizeof(*t));
-  }
-};
-
-}  // namespace internal
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_PASS_FILE_HANDLE_H_
diff --git a/cpp/private/tcp_server_socket_private.cc b/cpp/private/tcp_server_socket_private.cc
deleted file mode 100644
index beafadf..0000000
--- a/cpp/private/tcp_server_socket_private.cc
+++ /dev/null
@@ -1,91 +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/cpp/private/tcp_server_socket_private.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_TCPServerSocket_Private_0_2>() {
-  return PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_2;
-}
-
-template <> const char* interface_name<PPB_TCPServerSocket_Private_0_1>() {
-  return PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_1;
-}
-
-}  // namespace
-
-TCPServerSocketPrivate::TCPServerSocketPrivate(const InstanceHandle& instance) {
-  if (has_interface<PPB_TCPServerSocket_Private_0_2>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_TCPServerSocket_Private_0_2>()->Create(
-            instance.pp_instance()));
-  } else if (has_interface<PPB_TCPServerSocket_Private_0_1>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_TCPServerSocket_Private_0_1>()->Create(
-            instance.pp_instance()));
-  }
-}
-
-// static
-bool TCPServerSocketPrivate::IsAvailable() {
-  return has_interface<PPB_TCPServerSocket_Private_0_2>() ||
-      has_interface<PPB_TCPServerSocket_Private_0_1>();
-}
-
-int32_t TCPServerSocketPrivate::Listen(const PP_NetAddress_Private* addr,
-                                       int32_t backlog,
-                                       const CompletionCallback& callback) {
-  if (has_interface<PPB_TCPServerSocket_Private_0_2>()) {
-    return get_interface<PPB_TCPServerSocket_Private_0_2>()->Listen(
-        pp_resource(), addr, backlog, callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPServerSocket_Private_0_1>()) {
-    return get_interface<PPB_TCPServerSocket_Private_0_1>()->Listen(
-        pp_resource(), addr, backlog, callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t TCPServerSocketPrivate::Accept(PP_Resource* tcp_socket,
-                                       const CompletionCallback& callback) {
-  if (has_interface<PPB_TCPServerSocket_Private_0_2>()) {
-    return get_interface<PPB_TCPServerSocket_Private_0_2>()->Accept(
-        pp_resource(), tcp_socket, callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPServerSocket_Private_0_1>()) {
-    return get_interface<PPB_TCPServerSocket_Private_0_1>()->Accept(
-        pp_resource(), tcp_socket, callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t TCPServerSocketPrivate::GetLocalAddress(PP_NetAddress_Private* addr) {
-  if (has_interface<PPB_TCPServerSocket_Private_0_2>()) {
-    return get_interface<PPB_TCPServerSocket_Private_0_2>()->GetLocalAddress(
-        pp_resource(), addr);
-  }
-  return PP_ERROR_NOINTERFACE;
-}
-
-void TCPServerSocketPrivate::StopListening() {
-  if (has_interface<PPB_TCPServerSocket_Private_0_2>()) {
-    return get_interface<PPB_TCPServerSocket_Private_0_2>()->StopListening(
-        pp_resource());
-  }
-  if (has_interface<PPB_TCPServerSocket_Private_0_1>()) {
-    return get_interface<PPB_TCPServerSocket_Private_0_1>()->StopListening(
-        pp_resource());
-  }
-}
-
-}  // namespace pp
diff --git a/cpp/private/tcp_server_socket_private.h b/cpp/private/tcp_server_socket_private.h
deleted file mode 100644
index 0b5ba77..0000000
--- a/cpp/private/tcp_server_socket_private.h
+++ /dev/null
@@ -1,39 +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_CPP_PRIVATE_TCP_SERVER_SOCKET_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_TCP_SERVER_SOCKET_PRIVATE_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/private/ppb_tcp_server_socket_private.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class CompletionCallback;
-class InstanceHandle;
-
-class TCPServerSocketPrivate : public Resource {
- public:
-  explicit TCPServerSocketPrivate(const InstanceHandle& instance);
-
-  // Returns true if the required interface is available.
-  static bool IsAvailable();
-
-  int32_t Listen(const PP_NetAddress_Private* addr,
-                 int32_t backlog,
-                 const CompletionCallback& callback);
-  // Accepts incoming connection and stores resource of accepted
-  // socket into |socket|. If Accept returns PP_OK_COMPLETIONPENDING,
-  // the memory pointed by |socket| should stay valid until the
-  // |callback| is called or StopListening method is called.
-  int32_t Accept(PP_Resource* socket,
-                 const CompletionCallback& callback);
-  int32_t GetLocalAddress(PP_NetAddress_Private* addr);
-  void StopListening();
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_TCP_SERVER_SOCKET_PRIVATE_H_
diff --git a/cpp/private/tcp_socket_private.cc b/cpp/private/tcp_socket_private.cc
deleted file mode 100644
index b3f21fc..0000000
--- a/cpp/private/tcp_socket_private.cc
+++ /dev/null
@@ -1,248 +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/cpp/private/tcp_socket_private.h"
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_TCPSocket_Private_0_5>() {
-  return PPB_TCPSOCKET_PRIVATE_INTERFACE_0_5;
-}
-
-template <> const char* interface_name<PPB_TCPSocket_Private_0_4>() {
-  return PPB_TCPSOCKET_PRIVATE_INTERFACE_0_4;
-}
-
-template <> const char* interface_name<PPB_TCPSocket_Private_0_3>() {
-  return PPB_TCPSOCKET_PRIVATE_INTERFACE_0_3;
-}
-
-}  // namespace
-
-TCPSocketPrivate::TCPSocketPrivate(const InstanceHandle& instance) {
-  if (has_interface<PPB_TCPSocket_Private_0_5>()) {
-    PassRefFromConstructor(get_interface<PPB_TCPSocket_Private_0_5>()->Create(
-        instance.pp_instance()));
-  } else if (has_interface<PPB_TCPSocket_Private_0_4>()) {
-    PassRefFromConstructor(get_interface<PPB_TCPSocket_Private_0_4>()->Create(
-        instance.pp_instance()));
-  } else if (has_interface<PPB_TCPSocket_Private_0_3>()) {
-    PassRefFromConstructor(get_interface<PPB_TCPSocket_Private_0_3>()->Create(
-        instance.pp_instance()));
-  }
-}
-
-TCPSocketPrivate::TCPSocketPrivate(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-// static
-bool TCPSocketPrivate::IsAvailable() {
-  return has_interface<PPB_TCPSocket_Private_0_5>() ||
-      has_interface<PPB_TCPSocket_Private_0_4>() ||
-      has_interface<PPB_TCPSocket_Private_0_3>();
-}
-
-int32_t TCPSocketPrivate::Connect(const char* host,
-                                  uint16_t port,
-                                  const CompletionCallback& callback) {
-  if (has_interface<PPB_TCPSocket_Private_0_5>()) {
-    return get_interface<PPB_TCPSocket_Private_0_5>()->Connect(
-        pp_resource(), host, port, callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_4>()) {
-    return get_interface<PPB_TCPSocket_Private_0_4>()->Connect(
-        pp_resource(), host, port, callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_3>()) {
-    return get_interface<PPB_TCPSocket_Private_0_3>()->Connect(
-        pp_resource(), host, port, callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t TCPSocketPrivate::ConnectWithNetAddress(
-    const PP_NetAddress_Private* addr,
-    const CompletionCallback& callback) {
-  if (has_interface<PPB_TCPSocket_Private_0_5>()) {
-    return get_interface<PPB_TCPSocket_Private_0_5>()->ConnectWithNetAddress(
-        pp_resource(), addr, callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_4>()) {
-    return get_interface<PPB_TCPSocket_Private_0_4>()->ConnectWithNetAddress(
-        pp_resource(), addr, callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_3>()) {
-    return get_interface<PPB_TCPSocket_Private_0_3>()->ConnectWithNetAddress(
-        pp_resource(), addr, callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-bool TCPSocketPrivate::GetLocalAddress(PP_NetAddress_Private* local_addr) {
-  if (has_interface<PPB_TCPSocket_Private_0_5>()) {
-    PP_Bool result = get_interface<PPB_TCPSocket_Private_0_5>()->
-        GetLocalAddress(pp_resource(), local_addr);
-    return PP_ToBool(result);
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_4>()) {
-    PP_Bool result = get_interface<PPB_TCPSocket_Private_0_4>()->
-        GetLocalAddress(pp_resource(), local_addr);
-    return PP_ToBool(result);
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_3>()) {
-    PP_Bool result = get_interface<PPB_TCPSocket_Private_0_3>()->
-        GetLocalAddress(pp_resource(), local_addr);
-    return PP_ToBool(result);
-  }
-  return false;
-}
-
-bool TCPSocketPrivate::GetRemoteAddress(PP_NetAddress_Private* remote_addr) {
-  if (has_interface<PPB_TCPSocket_Private_0_5>()) {
-    PP_Bool result = get_interface<PPB_TCPSocket_Private_0_5>()->
-        GetRemoteAddress(pp_resource(), remote_addr);
-    return PP_ToBool(result);
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_4>()) {
-    PP_Bool result = get_interface<PPB_TCPSocket_Private_0_4>()->
-        GetRemoteAddress(pp_resource(), remote_addr);
-    return PP_ToBool(result);
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_3>()) {
-    PP_Bool result = get_interface<PPB_TCPSocket_Private_0_3>()->
-        GetRemoteAddress(pp_resource(), remote_addr);
-    return PP_ToBool(result);
-  }
-  return false;
-}
-
-int32_t TCPSocketPrivate::SSLHandshake(const char* server_name,
-                                       uint16_t server_port,
-                                       const CompletionCallback& callback) {
-  if (has_interface<PPB_TCPSocket_Private_0_5>()) {
-    return get_interface<PPB_TCPSocket_Private_0_5>()->SSLHandshake(
-        pp_resource(), server_name, server_port,
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_4>()) {
-    return get_interface<PPB_TCPSocket_Private_0_4>()->SSLHandshake(
-        pp_resource(), server_name, server_port,
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_3>()) {
-    return get_interface<PPB_TCPSocket_Private_0_3>()->SSLHandshake(
-        pp_resource(), server_name, server_port,
-        callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-X509CertificatePrivate TCPSocketPrivate::GetServerCertificate() {
-  if (has_interface<PPB_TCPSocket_Private_0_5>()) {
-    return X509CertificatePrivate(PASS_REF,
-        get_interface<PPB_TCPSocket_Private_0_5>()->GetServerCertificate(
-            pp_resource()));
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_4>()) {
-    return X509CertificatePrivate(PASS_REF,
-        get_interface<PPB_TCPSocket_Private_0_4>()->GetServerCertificate(
-            pp_resource()));
-  }
-  return X509CertificatePrivate();
-}
-
-bool TCPSocketPrivate::AddChainBuildingCertificate(
-    const X509CertificatePrivate& cert,
-    bool trusted) {
-  if (has_interface<PPB_TCPSocket_Private_0_5>()) {
-    return PP_ToBool(get_interface<PPB_TCPSocket_Private_0_5>()->
-        AddChainBuildingCertificate(pp_resource(), cert.pp_resource(),
-                                    PP_FromBool(trusted)));
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_4>()) {
-    return PP_ToBool(get_interface<PPB_TCPSocket_Private_0_4>()->
-        AddChainBuildingCertificate(pp_resource(), cert.pp_resource(),
-                                    PP_FromBool(trusted)));
-  }
-  return false;
-}
-
-int32_t TCPSocketPrivate::Read(char* buffer,
-                               int32_t bytes_to_read,
-                               const CompletionCallback& callback) {
-  if (has_interface<PPB_TCPSocket_Private_0_5>()) {
-    return get_interface<PPB_TCPSocket_Private_0_5>()->Read(
-        pp_resource(), buffer, bytes_to_read,
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_4>()) {
-    return get_interface<PPB_TCPSocket_Private_0_4>()->Read(
-        pp_resource(), buffer, bytes_to_read,
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_3>()) {
-    return get_interface<PPB_TCPSocket_Private_0_3>()->Read(
-        pp_resource(), buffer, bytes_to_read,
-        callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t TCPSocketPrivate::Write(const char* buffer,
-                                int32_t bytes_to_write,
-                                const CompletionCallback& callback) {
-  if (has_interface<PPB_TCPSocket_Private_0_5>()) {
-    return get_interface<PPB_TCPSocket_Private_0_5>()->Write(
-        pp_resource(), buffer, bytes_to_write,
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_4>()) {
-    return get_interface<PPB_TCPSocket_Private_0_4>()->Write(
-        pp_resource(), buffer, bytes_to_write,
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_3>()) {
-    return get_interface<PPB_TCPSocket_Private_0_3>()->Write(
-        pp_resource(), buffer, bytes_to_write,
-        callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-void TCPSocketPrivate::Disconnect() {
-  if (has_interface<PPB_TCPSocket_Private_0_5>()) {
-    return get_interface<PPB_TCPSocket_Private_0_5>()->Disconnect(
-        pp_resource());
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_4>()) {
-    return get_interface<PPB_TCPSocket_Private_0_4>()->Disconnect(
-        pp_resource());
-  }
-  if (has_interface<PPB_TCPSocket_Private_0_3>()) {
-    return get_interface<PPB_TCPSocket_Private_0_3>()->Disconnect(
-        pp_resource());
-  }
-}
-
-int32_t TCPSocketPrivate::SetOption(PP_TCPSocketOption_Private name,
-                                    const Var& value,
-                                    const CompletionCallback& callback) {
-  if (has_interface<PPB_TCPSocket_Private_0_5>()) {
-    return get_interface<PPB_TCPSocket_Private_0_5>()->SetOption(
-        pp_resource(), name, value.pp_var(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-}  // namespace pp
diff --git a/cpp/private/tcp_socket_private.h b/cpp/private/tcp_socket_private.h
deleted file mode 100644
index 086ed4a..0000000
--- a/cpp/private/tcp_socket_private.h
+++ /dev/null
@@ -1,56 +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_CPP_PRIVATE_TCP_SOCKET_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_TCP_SOCKET_PRIVATE_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/private/ppb_tcp_socket_private.h"
-#include "ppapi/cpp/pass_ref.h"
-#include "ppapi/cpp/private/x509_certificate_private.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class CompletionCallback;
-class InstanceHandle;
-
-class TCPSocketPrivate : public Resource {
- public:
-  explicit TCPSocketPrivate(const InstanceHandle& instance);
-
-  TCPSocketPrivate(PassRef, PP_Resource resource);
-
-  // Returns true if the required interface is available.
-  static bool IsAvailable();
-
-  int32_t Connect(const char* host,
-                  uint16_t port,
-                  const CompletionCallback& callback);
-  int32_t ConnectWithNetAddress(const PP_NetAddress_Private* addr,
-                                const CompletionCallback& callback);
-  bool GetLocalAddress(PP_NetAddress_Private* local_addr);
-  bool GetRemoteAddress(PP_NetAddress_Private* remote_addr);
-  int32_t SSLHandshake(const char* server_name,
-                       uint16_t server_port,
-                       const CompletionCallback& callback);
-  X509CertificatePrivate GetServerCertificate();
-  bool AddChainBuildingCertificate(const X509CertificatePrivate& cert,
-                                   bool trusted);
-
-  int32_t Read(char* buffer,
-               int32_t bytes_to_read,
-               const CompletionCallback& callback);
-  int32_t Write(const char* buffer,
-                int32_t bytes_to_write,
-                const CompletionCallback& callback);
-  void Disconnect();
-  int32_t SetOption(PP_TCPSocketOption_Private name,
-                    const Var& value,
-                    const CompletionCallback& callback);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_TCP_SOCKET_PRIVATE_H_
diff --git a/cpp/private/udp_socket_private.cc b/cpp/private/udp_socket_private.cc
deleted file mode 100644
index 22c2683..0000000
--- a/cpp/private/udp_socket_private.cc
+++ /dev/null
@@ -1,137 +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/cpp/private/udp_socket_private.h"
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_UDPSocket_Private_0_4>() {
-  return PPB_UDPSOCKET_PRIVATE_INTERFACE_0_4;
-}
-
-template <> const char* interface_name<PPB_UDPSocket_Private_0_3>() {
-  return PPB_UDPSOCKET_PRIVATE_INTERFACE_0_3;
-}
-
-}  // namespace
-
-UDPSocketPrivate::UDPSocketPrivate(const InstanceHandle& instance) {
-  if (has_interface<PPB_UDPSocket_Private_0_4>()) {
-    PassRefFromConstructor(get_interface<PPB_UDPSocket_Private_0_4>()->Create(
-        instance.pp_instance()));
-  } else if (has_interface<PPB_UDPSocket_Private_0_3>()) {
-    PassRefFromConstructor(get_interface<PPB_UDPSocket_Private_0_3>()->Create(
-        instance.pp_instance()));
-  }
-}
-
-// static
-bool UDPSocketPrivate::IsAvailable() {
-  return has_interface<PPB_UDPSocket_Private_0_4>() ||
-      has_interface<PPB_UDPSocket_Private_0_3>();
-}
-
-int32_t UDPSocketPrivate::SetSocketFeature(PP_UDPSocketFeature_Private name,
-                                           const Var& value) {
-  if (has_interface<PPB_UDPSocket_Private_0_4>()) {
-    return get_interface<PPB_UDPSocket_Private_0_4>()->SetSocketFeature(
-        pp_resource(), name, value.pp_var());
-  }
-  return PP_ERROR_NOINTERFACE;
-}
-
-int32_t UDPSocketPrivate::Bind(const PP_NetAddress_Private* addr,
-                               const CompletionCallback& callback) {
-  if (has_interface<PPB_UDPSocket_Private_0_4>()) {
-    return get_interface<PPB_UDPSocket_Private_0_4>()->Bind(
-        pp_resource(), addr, callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_UDPSocket_Private_0_3>()) {
-    return get_interface<PPB_UDPSocket_Private_0_3>()->Bind(
-        pp_resource(), addr, callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-bool UDPSocketPrivate::GetBoundAddress(PP_NetAddress_Private* addr) {
-  if (has_interface<PPB_UDPSocket_Private_0_4>()) {
-    PP_Bool result =
-        get_interface<PPB_UDPSocket_Private_0_4>()->GetBoundAddress(
-            pp_resource(), addr);
-    return PP_ToBool(result);
-  }
-  if (has_interface<PPB_UDPSocket_Private_0_3>()) {
-    PP_Bool result =
-        get_interface<PPB_UDPSocket_Private_0_3>()->GetBoundAddress(
-            pp_resource(), addr);
-    return PP_ToBool(result);
-  }
-  return false;
-}
-
-int32_t UDPSocketPrivate::RecvFrom(char* buffer,
-                                   int32_t num_bytes,
-                                   const CompletionCallback& callback) {
-  if (has_interface<PPB_UDPSocket_Private_0_4>()) {
-    return get_interface<PPB_UDPSocket_Private_0_4>()->RecvFrom(
-        pp_resource(), buffer, num_bytes, callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_UDPSocket_Private_0_3>()) {
-    return get_interface<PPB_UDPSocket_Private_0_3>()->RecvFrom(
-        pp_resource(), buffer, num_bytes, callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-bool UDPSocketPrivate::GetRecvFromAddress(PP_NetAddress_Private* addr) {
-  if (has_interface<PPB_UDPSocket_Private_0_4>()) {
-    PP_Bool result =
-        get_interface<PPB_UDPSocket_Private_0_4>()->GetRecvFromAddress(
-            pp_resource(), addr);
-    return PP_ToBool(result);
-  }
-  if (has_interface<PPB_UDPSocket_Private_0_3>()) {
-    PP_Bool result =
-        get_interface<PPB_UDPSocket_Private_0_3>()->GetRecvFromAddress(
-            pp_resource(), addr);
-    return PP_ToBool(result);
-  }
-  return false;
-}
-
-int32_t UDPSocketPrivate::SendTo(const char* buffer,
-                                 int32_t num_bytes,
-                                 const PP_NetAddress_Private* addr,
-                                 const CompletionCallback& callback) {
-  if (has_interface<PPB_UDPSocket_Private_0_4>()) {
-    return get_interface<PPB_UDPSocket_Private_0_4>()->SendTo(
-        pp_resource(), buffer, num_bytes, addr,
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_UDPSocket_Private_0_3>()) {
-    return get_interface<PPB_UDPSocket_Private_0_3>()->SendTo(
-        pp_resource(), buffer, num_bytes, addr,
-        callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-void UDPSocketPrivate::Close() {
-  if (has_interface<PPB_UDPSocket_Private_0_4>())
-    return get_interface<PPB_UDPSocket_Private_0_4>()->Close(pp_resource());
-  if (has_interface<PPB_UDPSocket_Private_0_3>())
-    return get_interface<PPB_UDPSocket_Private_0_3>()->Close(pp_resource());
-}
-
-}  // namespace pp
diff --git a/cpp/private/udp_socket_private.h b/cpp/private/udp_socket_private.h
deleted file mode 100644
index 3b0d4a6..0000000
--- a/cpp/private/udp_socket_private.h
+++ /dev/null
@@ -1,42 +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_CPP_PRIVATE_UDP_SOCKET_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_UDP_SOCKET_PRIVATE_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/private/ppb_udp_socket_private.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class CompletionCallback;
-class InstanceHandle;
-class Var;
-
-class UDPSocketPrivate : public Resource {
- public:
-  explicit UDPSocketPrivate(const InstanceHandle& instance);
-
-  // Returns true if the required interface is available.
-  static bool IsAvailable();
-
-  int32_t SetSocketFeature(PP_UDPSocketFeature_Private name, const Var& value);
-  int32_t Bind(const PP_NetAddress_Private* addr,
-               const CompletionCallback& callback);
-  bool GetBoundAddress(PP_NetAddress_Private* addr);
-  int32_t RecvFrom(char* buffer,
-                   int32_t num_bytes,
-                   const CompletionCallback& callback);
-  bool GetRecvFromAddress(PP_NetAddress_Private* addr);
-  int32_t SendTo(const char* buffer,
-                 int32_t num_bytes,
-                 const PP_NetAddress_Private* addr,
-                 const CompletionCallback& callback);
-  void Close();
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_UDP_SOCKET_PRIVATE_H_
diff --git a/cpp/private/uma_private.cc b/cpp/private/uma_private.cc
deleted file mode 100644
index 6ee4179..0000000
--- a/cpp/private/uma_private.cc
+++ /dev/null
@@ -1,79 +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/cpp/private/uma_private.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/private/ppb_uma_private.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_UMA_Private_0_3>() {
-  return PPB_UMA_PRIVATE_INTERFACE_0_3;
-}
-
-}  // namespace
-
-UMAPrivate::UMAPrivate() {
-}
-
-UMAPrivate::UMAPrivate(
-    const InstanceHandle& instance) : instance_(instance.pp_instance()) {
-}
-
-UMAPrivate::~UMAPrivate() {
-}
-
-bool UMAPrivate::IsAvailable() {
-  return has_interface<PPB_UMA_Private_0_3>();
-}
-
-void UMAPrivate::HistogramCustomTimes(const std::string& name,
-                                      int64_t sample,
-                                      int64_t min,
-                                      int64_t max,
-                                      uint32_t bucket_count) {
-  if (!IsAvailable())
-    return;
-  get_interface<PPB_UMA_Private_0_3>()->
-      HistogramCustomTimes(instance_, pp::Var(name).pp_var(),
-                           sample, min, max, bucket_count);
-}
-
-void UMAPrivate::HistogramCustomCounts(const std::string& name,
-                                       int32_t sample,
-                                       int32_t min,
-                                       int32_t max,
-                                       uint32_t bucket_count) {
-  if (!IsAvailable())
-    return;
-  get_interface<PPB_UMA_Private_0_3>()->
-      HistogramCustomCounts(instance_, pp::Var(name).pp_var(),
-                            sample, min, max, bucket_count);
-}
-
-void UMAPrivate::HistogramEnumeration(const std::string& name,
-                                      int32_t sample,
-                                      int32_t boundary_value) {
-  if (!IsAvailable())
-    return;
-  get_interface<PPB_UMA_Private_0_3>()->
-      HistogramEnumeration(instance_, pp::Var(name).pp_var(),
-                           sample, boundary_value);
-}
-
-int32_t UMAPrivate::IsCrashReportingEnabled(const CompletionCallback& cc) {
-  if (!IsAvailable())
-    return PP_ERROR_NOINTERFACE;
-
-  return get_interface<PPB_UMA_Private_0_3>()->
-      IsCrashReportingEnabled(instance_, cc.pp_completion_callback());
-}
-
-}  // namespace pp
diff --git a/cpp/private/uma_private.h b/cpp/private/uma_private.h
deleted file mode 100644
index 1e89568..0000000
--- a/cpp/private/uma_private.h
+++ /dev/null
@@ -1,51 +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_CPP_PRIVATE_UMA_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_UMA_PRIVATE_H_
-
-#include <stdint.h>
-
-#include <string>
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/cpp/instance_handle.h"
-
-namespace pp {
-
-class CompletionCallback;
-
-class UMAPrivate {
- public:
-  UMAPrivate();
-  explicit UMAPrivate(const InstanceHandle& instance);
-  ~UMAPrivate();
-
-  static bool IsAvailable();
-
-  void HistogramCustomTimes(const std::string& name,
-                            int64_t sample,
-                            int64_t min,
-                            int64_t max,
-                            uint32_t bucket_count);
-
-  void HistogramCustomCounts(const std::string& name,
-                             int32_t sample,
-                             int32_t min,
-                             int32_t max,
-                             uint32_t bucket_count);
-
-  void HistogramEnumeration(const std::string& name,
-                            int32_t sample,
-                            int32_t boundary_value);
-
-  int32_t IsCrashReportingEnabled(const CompletionCallback& cc);
-
- private:
-  PP_Instance instance_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_UMA_PRIVATE_H_
diff --git a/cpp/private/var_private.cc b/cpp/private/var_private.cc
deleted file mode 100644
index 0167bd8..0000000
--- a/cpp/private/var_private.cc
+++ /dev/null
@@ -1,195 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/cpp/private/var_private.h"
-
-#include <stddef.h>
-
-#include "ppapi/c/dev/ppb_memory_dev.h"
-#include "ppapi/c/dev/ppb_var_deprecated.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/private/instance_private.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/dev/scriptable_object_deprecated.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Var_Deprecated>() {
-  return PPB_VAR_DEPRECATED_INTERFACE;
-}
-
-}  // namespace
-
-VarPrivate::VarPrivate(const InstanceHandle& instance,
-                       deprecated::ScriptableObject* object) {
-  if (has_interface<PPB_Var_Deprecated>()) {
-    var_ = get_interface<PPB_Var_Deprecated>()->CreateObject(
-        instance.pp_instance(), object->GetClass(), object);
-  } else {
-    var_.type = PP_VARTYPE_NULL;
-    var_.padding = 0;
-  }
-  is_managed_ = true;
-}
-
-deprecated::ScriptableObject* VarPrivate::AsScriptableObject() const {
-  if (!is_object()) {
-    PP_NOTREACHED();
-  } else if (has_interface<PPB_Var_Deprecated>()) {
-    void* object = NULL;
-    if (get_interface<PPB_Var_Deprecated>()->IsInstanceOf(
-            var_, deprecated::ScriptableObject::GetClass(), &object)) {
-      return reinterpret_cast<deprecated::ScriptableObject*>(object);
-    }
-  }
-  return NULL;
-}
-
-bool VarPrivate::HasProperty(const Var& name, Var* exception) const {
-  if (!has_interface<PPB_Var_Deprecated>())
-    return false;
-  return get_interface<PPB_Var_Deprecated>()->HasProperty(
-      var_, name.pp_var(), OutException(exception).get());
-}
-
-bool VarPrivate::HasMethod(const Var& name, Var* exception) const {
-  if (!has_interface<PPB_Var_Deprecated>())
-    return false;
-  return get_interface<PPB_Var_Deprecated>()->HasMethod(
-      var_, name.pp_var(), OutException(exception).get());
-}
-
-VarPrivate VarPrivate::GetProperty(const Var& name, Var* exception) const {
-  if (!has_interface<PPB_Var_Deprecated>())
-    return Var();
-  return Var(PassRef(), get_interface<PPB_Var_Deprecated>()->GetProperty(
-      var_, name.pp_var(), OutException(exception).get()));
-}
-
-void VarPrivate::GetAllPropertyNames(std::vector<Var>* properties,
-                                     Var* exception) const {
-  if (!has_interface<PPB_Var_Deprecated>())
-    return;
-  PP_Var* props = NULL;
-  uint32_t prop_count = 0;
-  get_interface<PPB_Var_Deprecated>()->GetAllPropertyNames(
-      var_, &prop_count, &props, OutException(exception).get());
-  if (!prop_count)
-    return;
-  properties->resize(prop_count);
-  for (uint32_t i = 0; i < prop_count; ++i) {
-    Var temp(PassRef(), props[i]);
-    (*properties)[i] = temp;
-  }
-  const PPB_Memory_Dev* memory_if = static_cast<const PPB_Memory_Dev*>(
-      pp::Module::Get()->GetBrowserInterface(PPB_MEMORY_DEV_INTERFACE));
-  memory_if->MemFree(props);
-}
-
-void VarPrivate::SetProperty(const Var& name, const Var& value,
-                             Var* exception) {
-  if (!has_interface<PPB_Var_Deprecated>())
-    return;
-  get_interface<PPB_Var_Deprecated>()->SetProperty(
-      var_, name.pp_var(), value.pp_var(), OutException(exception).get());
-}
-
-void VarPrivate::RemoveProperty(const Var& name, Var* exception) {
-  if (!has_interface<PPB_Var_Deprecated>())
-    return;
-  get_interface<PPB_Var_Deprecated>()->RemoveProperty(
-      var_, name.pp_var(), OutException(exception).get());
-}
-
-VarPrivate VarPrivate::Call(const Var& method_name, uint32_t argc, Var* argv,
-                            Var* exception) {
-  if (!has_interface<PPB_Var_Deprecated>())
-    return Var();
-  if (argc > 0) {
-    std::vector<PP_Var> args;
-    args.reserve(argc);
-    for (size_t i = 0; i < argc; i++)
-      args.push_back(argv[i].pp_var());
-    return Var(PassRef(), get_interface<PPB_Var_Deprecated>()->Call(
-        var_, method_name.pp_var(), argc, &args[0],
-        OutException(exception).get()));
-  } else {
-    // Don't try to get the address of a vector if it's empty.
-    return Var(PassRef(), get_interface<PPB_Var_Deprecated>()->Call(
-        var_, method_name.pp_var(), 0, NULL,
-        OutException(exception).get()));
-  }
-}
-
-VarPrivate VarPrivate::Construct(uint32_t argc, Var* argv,
-                                 Var* exception) const {
-  if (!has_interface<PPB_Var_Deprecated>())
-    return Var();
-  if (argc > 0) {
-    std::vector<PP_Var> args;
-    args.reserve(argc);
-    for (size_t i = 0; i < argc; i++)
-      args.push_back(argv[i].pp_var());
-    return Var(PassRef(), get_interface<PPB_Var_Deprecated>()->Construct(
-        var_, argc, &args[0], OutException(exception).get()));
-  } else {
-    // Don't try to get the address of a vector if it's empty.
-    return Var(PassRef(), get_interface<PPB_Var_Deprecated>()->Construct(
-        var_, 0, NULL, OutException(exception).get()));
-  }
-}
-
-VarPrivate VarPrivate::Call(const Var& method_name, Var* exception) {
-  if (!has_interface<PPB_Var_Deprecated>())
-    return Var();
-  return Var(PassRef(), get_interface<PPB_Var_Deprecated>()->Call(
-      var_, method_name.pp_var(), 0, NULL, OutException(exception).get()));
-}
-
-VarPrivate VarPrivate::Call(const Var& method_name, const Var& arg1,
-                            Var* exception) {
-  if (!has_interface<PPB_Var_Deprecated>())
-    return Var();
-  PP_Var args[1] = {arg1.pp_var()};
-  return Var(PassRef(), get_interface<PPB_Var_Deprecated>()->Call(
-      var_, method_name.pp_var(), 1, args, OutException(exception).get()));
-}
-
-VarPrivate VarPrivate::Call(const Var& method_name, const Var& arg1,
-                            const Var& arg2, Var* exception) {
-  if (!has_interface<PPB_Var_Deprecated>())
-    return Var();
-  PP_Var args[2] = {arg1.pp_var(), arg2.pp_var()};
-  return Var(PassRef(), get_interface<PPB_Var_Deprecated>()->Call(
-      var_, method_name.pp_var(), 2, args, OutException(exception).get()));
-}
-
-VarPrivate VarPrivate::Call(const Var& method_name, const Var& arg1,
-                            const Var& arg2, const Var& arg3, Var* exception) {
-  if (!has_interface<PPB_Var_Deprecated>())
-    return Var();
-  PP_Var args[3] = {arg1.pp_var(), arg2.pp_var(), arg3.pp_var()};
-  return Var(PassRef(), get_interface<PPB_Var_Deprecated>()->Call(
-      var_, method_name.pp_var(), 3, args, OutException(exception).get()));
-}
-
-VarPrivate VarPrivate::Call(const Var& method_name, const Var& arg1,
-                            const Var& arg2, const Var& arg3, const Var& arg4,
-                            Var* exception) {
-  if (!has_interface<PPB_Var_Deprecated>())
-    return Var();
-  PP_Var args[4] = {arg1.pp_var(), arg2.pp_var(), arg3.pp_var(), arg4.pp_var()};
-  return Var(PassRef(), get_interface<PPB_Var_Deprecated>()->Call(
-      var_, method_name.pp_var(), 4, args, OutException(exception).get()));
-}
-
-}  // namespace pp
diff --git a/cpp/private/var_private.h b/cpp/private/var_private.h
deleted file mode 100644
index 96e929e..0000000
--- a/cpp/private/var_private.h
+++ /dev/null
@@ -1,129 +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_CPP_PRIVATE_VAR_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_VAR_PRIVATE_H_
-
-#include <stdint.h>
-
-#include <string>
-#include <vector>
-
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-class InstanceHandle;
-
-namespace deprecated {
-class ScriptableObject;
-}
-
-// VarPrivate is a version of Var that exposes the private scripting API.
-// It's designed to be mostly interchangeable with Var since most callers will
-// be dealing with Vars from various places.
-class VarPrivate : public Var {
- public:
-  VarPrivate() : Var() {}
-  VarPrivate(Null) : Var(Null()) {}
-  VarPrivate(bool b) : Var(b) {}
-  VarPrivate(int32_t i) : Var(i) {}
-  VarPrivate(double d) : Var(d) {}
-  VarPrivate(const char* utf8_str) : Var(utf8_str) {}
-  VarPrivate(const std::string& utf8_str) : Var(utf8_str) {}
-  VarPrivate(PassRef, PP_Var var) : Var(PassRef(), var) {}
-  VarPrivate(DontManage, PP_Var var) : Var(DontManage(), var) {}
-  VarPrivate(const InstanceHandle& instance,
-             deprecated::ScriptableObject* object);
-  VarPrivate(const Var& other) : Var(other) {}
-
-  virtual ~VarPrivate() {}
-
-  // This assumes the object is of type object. If it's not, it will assert in
-  // debug mode. If it is not an object or not a ScriptableObject type, returns
-  // NULL.
-  deprecated::ScriptableObject* AsScriptableObject() const;
-
-  bool HasProperty(const Var& name, Var* exception = NULL) const;
-  bool HasMethod(const Var& name, Var* exception = NULL) const;
-  VarPrivate GetProperty(const Var& name, Var* exception = NULL) const;
-  void GetAllPropertyNames(std::vector<Var>* properties,
-                           Var* exception = NULL) const;
-  void SetProperty(const Var& name, const Var& value, Var* exception = NULL);
-  void RemoveProperty(const Var& name, Var* exception = NULL);
-  VarPrivate Call(const Var& method_name, uint32_t argc, Var* argv,
-           Var* exception = NULL);
-  VarPrivate Construct(uint32_t argc, Var* argv, Var* exception = NULL) const;
-
-  // Convenience functions for calling functions with small # of args.
-  VarPrivate Call(const Var& method_name, Var* exception = NULL);
-  VarPrivate Call(const Var& method_name, const Var& arg1,
-                  Var* exception = NULL);
-  VarPrivate Call(const Var& method_name, const Var& arg1, const Var& arg2,
-                  Var* exception = NULL);
-  VarPrivate Call(const Var& method_name, const Var& arg1, const Var& arg2,
-                  const Var& arg3, Var* exception = NULL);
-  VarPrivate Call(const Var& method_name, const Var& arg1, const Var& arg2,
-                  const Var& arg3, const Var& arg4, Var* exception = NULL);
-
-  // For use when calling the raw C PPAPI when using the C++ Var as a possibly
-  // NULL exception. This will handle getting the address of the internal value
-  // out if it's non-NULL and fixing up the reference count.
-  //
-  // Danger: this will only work for things with exception semantics, i.e. that
-  // the value will not be changed if it's a non-undefined exception. Otherwise,
-  // this class will mess up the refcounting.
-  //
-  // This is a bit subtle:
-  // - If NULL is passed, we return NULL from get() and do nothing.
-  //
-  // - If a undefined value is passed, we return the address of a undefined var
-  //   from get and have the output value take ownership of that var.
-  //
-  // - If a non-undefined value is passed, we return the address of that var
-  //   from get, and nothing else should change.
-  //
-  // Example:
-  //   void FooBar(a, b, Var* exception = NULL) {
-  //     foo_interface->Bar(a, b, VarPrivate::OutException(exception).get());
-  //   }
-  class OutException {
-   public:
-    OutException(Var* v)
-        : output_(v),
-          originally_had_exception_(v && !v->is_undefined()) {
-      if (output_) {
-        temp_ = output_->pp_var();
-      } else {
-        temp_.padding = 0;
-        temp_.type = PP_VARTYPE_UNDEFINED;
-      }
-    }
-    ~OutException() {
-      if (output_ && !originally_had_exception_)
-        *output_ = Var(PassRef(), temp_);
-    }
-
-    PP_Var* get() {
-      if (output_)
-        return &temp_;
-      return NULL;
-    }
-
-   private:
-    Var* output_;
-    bool originally_had_exception_;
-    PP_Var temp_;
-  };
-
- private:
-  // Prevent an arbitrary pointer argument from being implicitly converted to
-  // a bool at Var construction. If somebody makes such a mistake, they will
-  // get a compilation error.
-  VarPrivate(void* non_scriptable_object_pointer);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_VAR_PRIVATE_H_
diff --git a/cpp/private/video_frame_private.cc b/cpp/private/video_frame_private.cc
deleted file mode 100644
index fba023f..0000000
--- a/cpp/private/video_frame_private.cc
+++ /dev/null
@@ -1,49 +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.
-
-#include "ppapi/cpp/private/video_frame_private.h"
-
-namespace pp {
-
-VideoFrame_Private::VideoFrame_Private()
-    : video_frame_() {
-  video_frame_.image_data = image_data_.pp_resource();
-}
-
-VideoFrame_Private::VideoFrame_Private(const ImageData& image_data,
-                                       PP_TimeTicks timestamp)
-    : image_data_(image_data), video_frame_() {
-  video_frame_.timestamp = timestamp;
-  video_frame_.image_data = image_data_.pp_resource();
-}
-
-VideoFrame_Private::VideoFrame_Private(
-    PassRef,
-    const PP_VideoFrame_Private& pp_video_frame)
-    : video_frame_(pp_video_frame) {
-  // Take over the image_data resource in the frame.
-  image_data_ = ImageData(PASS_REF, video_frame_.image_data);
-}
-
-VideoFrame_Private::VideoFrame_Private(const VideoFrame_Private& other)
-    : video_frame_() {
-  set_image_data(other.image_data());
-  set_timestamp(other.timestamp());
-}
-
-VideoFrame_Private::~VideoFrame_Private() {
-}
-
-VideoFrame_Private& VideoFrame_Private::operator=(
-    const VideoFrame_Private& other) {
-  if (this == &other)
-    return *this;
-
-  set_image_data(other.image_data());
-  set_timestamp(other.timestamp());
-
-  return *this;
-}
-
-}  // namespace pp
diff --git a/cpp/private/video_frame_private.h b/cpp/private/video_frame_private.h
deleted file mode 100644
index 49ba232..0000000
--- a/cpp/private/video_frame_private.h
+++ /dev/null
@@ -1,103 +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.
-
-#ifndef PPAPI_CPP_PRIVATE_VIDEO_FRAME_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_VIDEO_FRAME_PRIVATE_H_
-
-#include <string.h>
-
-#include "ppapi/c/pp_time.h"
-#include "ppapi/c/private/pp_video_frame_private.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/image_data.h"
-#include "ppapi/cpp/pass_ref.h"
-
-/// @file
-/// This file defines the struct used to hold a video frame.
-
-namespace pp {
-
-/// The <code>PP_VideoFrame_Private</code> struct represents a video frame.
-/// Video sources and destinations use frames to transfer video to and from
-/// the browser.
-class VideoFrame_Private {
- public:
-  /// Default constructor for creating a <code>VideoFrame_Private</code> object.
-  VideoFrame_Private();
-
-  /// Constructor that takes an existing <code>PP_VideoFrame_Private</code>
-  /// structure. The 'image_data' PP_Resource field in the structure will be
-  /// managed by this instance.
-  VideoFrame_Private(PassRef, const PP_VideoFrame_Private& pp_video_frame);
-
-  /// Constructor that takes an existing <code>ImageData</code> instance and
-  /// a timestamp.
-  VideoFrame_Private(const ImageData& image_data, PP_TimeTicks timestamp);
-
-  /// The copy constructor for <code>VideoFrame_Private</code>.
-  ///
-  /// @param[in] other A reference to a <code>VideoFrame_Private</code>.
-  VideoFrame_Private(const VideoFrame_Private& other);
-
-  ~VideoFrame_Private();
-
-  /// The assignment operator for <code>VideoFrame_Private</code>.
-  ///
-  /// @param[in] other A reference to a <code>VideoFrame_Private</code>.
-  VideoFrame_Private& operator=(const VideoFrame_Private& other);
-
-  const PP_VideoFrame_Private& pp_video_frame() const {
-    return video_frame_;
-  }
-
-  ImageData image_data() const {
-    return image_data_;
-  }
-  void set_image_data(const ImageData& image_data) {
-    image_data_ = image_data;
-    // The assignment above manages the underlying PP_Resources. Copy the new
-    // one into our internal video frame struct.
-    video_frame_.image_data = image_data_.pp_resource();
-  }
-
-  PP_TimeTicks timestamp() const { return video_frame_.timestamp; }
-  void set_timestamp(PP_TimeTicks timestamp) {
-    video_frame_.timestamp = timestamp;
-  }
-
- private:
-  ImageData image_data_;  // This manages the PP_Resource in video_frame_.
-  PP_VideoFrame_Private video_frame_;
-};
-
-namespace internal {
-
-// A specialization of CallbackOutputTraits to provide the callback system the
-// information on how to handle pp::VideoFrame_Private. This converts
-// PP_VideoFrame_Private to pp::VideoFrame_Private when passing to the plugin,
-// and specifically manages the PP_Resource embedded in the video_frame_ field.
-template<>
-struct CallbackOutputTraits<pp::VideoFrame_Private> {
-  typedef PP_VideoFrame_Private* APIArgType;
-  typedef PP_VideoFrame_Private StorageType;
-
-  static inline APIArgType StorageToAPIArg(StorageType& t) {
-    return &t;
-  }
-
-  static inline pp::VideoFrame_Private StorageToPluginArg(StorageType& t) {
-    return pp::VideoFrame_Private(PASS_REF, t);
-  }
-
-  static inline void Initialize(StorageType* t) {
-    VideoFrame_Private dummy;
-    *t = dummy.pp_video_frame();
-  }
-};
-
-}  // namespace internal
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_VIDEO_FRAME_PRIVATE_H_
diff --git a/cpp/private/x509_certificate_private.cc b/cpp/private/x509_certificate_private.cc
deleted file mode 100644
index 4f40632..0000000
--- a/cpp/private/x509_certificate_private.cc
+++ /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 "ppapi/cpp/private/x509_certificate_private.h"
-
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/pass_ref.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_X509Certificate_Private_0_1>() {
-  return PPB_X509CERTIFICATE_PRIVATE_INTERFACE_0_1;
-}
-
-}  // namespace
-
-X509CertificatePrivate::X509CertificatePrivate() : Resource() {}
-
-X509CertificatePrivate::X509CertificatePrivate(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-X509CertificatePrivate::X509CertificatePrivate(const InstanceHandle& instance) {
-  if (has_interface<PPB_X509Certificate_Private_0_1>()) {
-    PassRefFromConstructor(get_interface<PPB_X509Certificate_Private_0_1>()->
-        Create(instance.pp_instance()));
-  }
-}
-
-// static
-bool X509CertificatePrivate::IsAvailable() {
-  return has_interface<PPB_X509Certificate_Private_0_1>();
-}
-
-bool X509CertificatePrivate::Initialize(const char* bytes, uint32_t length) {
-  if (!has_interface<PPB_X509Certificate_Private_0_1>())
-    return false;
-  PP_Bool result = get_interface<PPB_X509Certificate_Private_0_1>()->Initialize(
-      pp_resource(),
-      bytes,
-      length);
-  return PP_ToBool(result);
-}
-
-Var X509CertificatePrivate::GetField(
-    PP_X509Certificate_Private_Field field) const {
-  if (!has_interface<PPB_X509Certificate_Private_0_1>())
-    return Var();
-  return Var(PassRef(),
-      get_interface<PPB_X509Certificate_Private_0_1>()->GetField(pp_resource(),
-                                                                 field));
-}
-
-}  // namespace pp
diff --git a/cpp/private/x509_certificate_private.h b/cpp/private/x509_certificate_private.h
deleted file mode 100644
index c985020..0000000
--- a/cpp/private/x509_certificate_private.h
+++ /dev/null
@@ -1,35 +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_CPP_PRIVATE_X509_CERTIFICATE_PRIVATE_H_
-#define PPAPI_CPP_PRIVATE_X509_CERTIFICATE_PRIVATE_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/private/ppb_x509_certificate_private.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class Var;
-
-class X509CertificatePrivate : public Resource {
- public:
-  // Creates an is_null() object.
-  X509CertificatePrivate();
-  X509CertificatePrivate(PassRef, PP_Resource resource);
-  explicit X509CertificatePrivate(const InstanceHandle& instance);
-
-  // Returns true if the required interface is available.
-  static bool IsAvailable();
-
-  // Creates a new certificate from a DER-encoded representation. Returns true
-  // if the certificate was successfully created.
-  bool Initialize(const char* bytes, uint32_t length);
-  // Returns the specified field as a |Var|.
-  Var GetField(PP_X509Certificate_Private_Field field) const;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_PRIVATE_X509_CERTIFICATE_PRIVATE_H_
diff --git a/cpp/rect.cc b/cpp/rect.cc
deleted file mode 100644
index 5890f19..0000000
--- a/cpp/rect.cc
+++ /dev/null
@@ -1,235 +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/cpp/rect.h"
-
-#include <algorithm>
-
-namespace {
-
-template<typename T>
-void AdjustAlongAxis(T dst_origin, T dst_size,
-                     T* origin, T* size) {
-  if (*origin < dst_origin) {
-    *origin = dst_origin;
-    *size = std::min(dst_size, *size);
-  } else {
-    *size = std::min(dst_size, *size);
-    *origin = std::min(dst_origin + dst_size, *origin + *size) - *size;
-  }
-}
-
-}  // namespace
-
-namespace pp {
-
-void Rect::Inset(int32_t left, int32_t top, int32_t right, int32_t bottom) {
-  Offset(left, top);
-  set_width(std::max<int32_t>(width() - left - right, 0));
-  set_height(std::max<int32_t>(height() - top - bottom, 0));
-}
-
-void Rect::Offset(int32_t horizontal, int32_t vertical) {
-  rect_.point.x += horizontal;
-  rect_.point.y += vertical;
-}
-
-bool Rect::Contains(int32_t point_x, int32_t point_y) const {
-  return (point_x >= x()) && (point_x < right()) &&
-         (point_y >= y()) && (point_y < bottom());
-}
-
-bool Rect::Contains(const Rect& rect) const {
-  return (rect.x() >= x() && rect.right() <= right() &&
-          rect.y() >= y() && rect.bottom() <= bottom());
-}
-
-bool Rect::Intersects(const Rect& rect) const {
-  return !(rect.x() >= right() || rect.right() <= x() ||
-           rect.y() >= bottom() || rect.bottom() <= y());
-}
-
-Rect Rect::Intersect(const Rect& rect) const {
-  int32_t rx = std::max(x(), rect.x());
-  int32_t ry = std::max(y(), rect.y());
-  int32_t rr = std::min(right(), rect.right());
-  int32_t rb = std::min(bottom(), rect.bottom());
-
-  if (rx >= rr || ry >= rb)
-    rx = ry = rr = rb = 0;  // non-intersecting
-
-  return Rect(rx, ry, rr - rx, rb - ry);
-}
-
-Rect Rect::Union(const Rect& rect) const {
-  // special case empty rects...
-  if (IsEmpty())
-    return rect;
-  if (rect.IsEmpty())
-    return *this;
-
-  int32_t rx = std::min(x(), rect.x());
-  int32_t ry = std::min(y(), rect.y());
-  int32_t rr = std::max(right(), rect.right());
-  int32_t rb = std::max(bottom(), rect.bottom());
-
-  return Rect(rx, ry, rr - rx, rb - ry);
-}
-
-Rect Rect::Subtract(const Rect& rect) const {
-  // boundary cases:
-  if (!Intersects(rect))
-    return *this;
-  if (rect.Contains(*this))
-    return Rect();
-
-  int32_t rx = x();
-  int32_t ry = y();
-  int32_t rr = right();
-  int32_t rb = bottom();
-
-  if (rect.y() <= y() && rect.bottom() >= bottom()) {
-    // complete intersection in the y-direction
-    if (rect.x() <= x()) {
-      rx = rect.right();
-    } else {
-      rr = rect.x();
-    }
-  } else if (rect.x() <= x() && rect.right() >= right()) {
-    // complete intersection in the x-direction
-    if (rect.y() <= y()) {
-      ry = rect.bottom();
-    } else {
-      rb = rect.y();
-    }
-  }
-  return Rect(rx, ry, rr - rx, rb - ry);
-}
-
-Rect Rect::AdjustToFit(const Rect& rect) const {
-  int32_t new_x = x();
-  int32_t new_y = y();
-  int32_t new_width = width();
-  int32_t new_height = height();
-  AdjustAlongAxis(rect.x(), rect.width(), &new_x, &new_width);
-  AdjustAlongAxis(rect.y(), rect.height(), &new_y, &new_height);
-  return Rect(new_x, new_y, new_width, new_height);
-}
-
-Point Rect::CenterPoint() const {
-  return Point(x() + (width() + 1) / 2, y() + (height() + 1) / 2);
-}
-
-bool Rect::SharesEdgeWith(const Rect& rect) const {
-  return (y() == rect.y() && height() == rect.height() &&
-             (x() == rect.right() || right() == rect.x())) ||
-         (x() == rect.x() && width() == rect.width() &&
-             (y() == rect.bottom() || bottom() == rect.y()));
-}
-
-void FloatRect::Inset(float left, float top, float right, float bottom) {
-  Offset(left, top);
-  set_width(std::max<float>(width() - left - right, 0.0f));
-  set_height(std::max<float>(height() - top - bottom, 0.0f));
-}
-
-void FloatRect::Offset(float horizontal, float vertical) {
-  rect_.point.x += horizontal;
-  rect_.point.y += vertical;
-}
-
-bool FloatRect::Contains(float point_x, float point_y) const {
-  return (point_x >= x()) && (point_x < right()) &&
-         (point_y >= y()) && (point_y < bottom());
-}
-
-bool FloatRect::Contains(const FloatRect& rect) const {
-  return (rect.x() >= x() && rect.right() <= right() &&
-          rect.y() >= y() && rect.bottom() <= bottom());
-}
-
-bool FloatRect::Intersects(const FloatRect& rect) const {
-  return !(rect.x() >= right() || rect.right() <= x() ||
-           rect.y() >= bottom() || rect.bottom() <= y());
-}
-
-FloatRect FloatRect::Intersect(const FloatRect& rect) const {
-  float rx = std::max(x(), rect.x());
-  float ry = std::max(y(), rect.y());
-  float rr = std::min(right(), rect.right());
-  float rb = std::min(bottom(), rect.bottom());
-
-  if (rx >= rr || ry >= rb)
-    rx = ry = rr = rb = 0;  // non-intersecting
-
-  return FloatRect(rx, ry, rr - rx, rb - ry);
-}
-
-FloatRect FloatRect::Union(const FloatRect& rect) const {
-  // special case empty rects...
-  if (IsEmpty())
-    return rect;
-  if (rect.IsEmpty())
-    return *this;
-
-  float rx = std::min(x(), rect.x());
-  float ry = std::min(y(), rect.y());
-  float rr = std::max(right(), rect.right());
-  float rb = std::max(bottom(), rect.bottom());
-
-  return FloatRect(rx, ry, rr - rx, rb - ry);
-}
-
-FloatRect FloatRect::Subtract(const FloatRect& rect) const {
-  // boundary cases:
-  if (!Intersects(rect))
-    return *this;
-  if (rect.Contains(*this))
-    return FloatRect();
-
-  float rx = x();
-  float ry = y();
-  float rr = right();
-  float rb = bottom();
-
-  if (rect.y() <= y() && rect.bottom() >= bottom()) {
-    // complete intersection in the y-direction
-    if (rect.x() <= x()) {
-      rx = rect.right();
-    } else {
-      rr = rect.x();
-    }
-  } else if (rect.x() <= x() && rect.right() >= right()) {
-    // complete intersection in the x-direction
-    if (rect.y() <= y()) {
-      ry = rect.bottom();
-    } else {
-      rb = rect.y();
-    }
-  }
-  return FloatRect(rx, ry, rr - rx, rb - ry);
-}
-
-FloatRect FloatRect::AdjustToFit(const FloatRect& rect) const {
-  float new_x = x();
-  float new_y = y();
-  float new_width = width();
-  float new_height = height();
-  AdjustAlongAxis(rect.x(), rect.width(), &new_x, &new_width);
-  AdjustAlongAxis(rect.y(), rect.height(), &new_y, &new_height);
-  return FloatRect(new_x, new_y, new_width, new_height);
-}
-
-FloatPoint FloatRect::CenterPoint() const {
-  return FloatPoint(x() + (width() + 1.0f) / 2.0f,
-                    y() + (height() + 1.0f) / 2.0f);
-}
-
-bool FloatRect::SharesEdgeWith(const FloatRect& rect) const {
-  return (y() == rect.y() && height() == rect.height() &&
-             (x() == rect.right() || right() == rect.x())) ||
-         (x() == rect.x() && width() == rect.width() &&
-             (y() == rect.bottom() || bottom() == rect.y()));
-}
-}  // namespace pp
diff --git a/cpp/rect.h b/cpp/rect.h
deleted file mode 100644
index b3a527e..0000000
--- a/cpp/rect.h
+++ /dev/null
@@ -1,843 +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_CPP_RECT_H_
-#define PPAPI_CPP_RECT_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/cpp/point.h"
-#include "ppapi/cpp/size.h"
-
-/// @file
-/// This file defines the APIs for creating a 2 dimensional rectangle.
-
-namespace pp {
-
-/// A 2 dimensional rectangle. A rectangle is represented by x and y (which
-/// identifies the upper-left corner of the rectangle), width, and height.
-class Rect {
- public:
-
-  /// The default constructor. Creates a <code>Rect</code> in the upper-left
-  /// at 0,0 with height and width of 0.
-  Rect() {
-    rect_.point.x = 0;
-    rect_.point.y = 0;
-    rect_.size.width = 0;
-    rect_.size.height = 0;
-  }
-
-  /// A constructor accepting a reference to a <code>PP_Rect and</code>
-  /// converting the <code>PP_Rect</code> to a <code>Rect</code>. This is an
-  /// implicit conversion constructor.
-  ///
-  /// @param[in] rect A <code>PP_Rect</code>.
-  Rect(const PP_Rect& rect) {  // Implicit.
-    set_x(rect.point.x);
-    set_y(rect.point.y);
-    set_width(rect.size.width);
-    set_height(rect.size.height);
-  }
-
-  /// A constructor accepting two int32_t values for width and height and
-  /// converting them to a <code>Rect</code> in the upper-left starting
-  /// coordinate of 0,0.
-  ///
-  /// @param[in] w An int32_t value representing a width.
-  /// @param[in] h An int32_t value representing a height.
-  Rect(int32_t w, int32_t h) {
-    set_x(0);
-    set_y(0);
-    set_width(w);
-    set_height(h);
-  }
-
-  /// A constructor accepting four int32_t values for width, height, x, and y.
-  ///
-  /// @param[in] x An int32_t value representing a horizontal coordinate
-  /// of a point, starting with 0 as the left-most coordinate.
-  /// @param[in] y An int32_t value representing a vertical coordinate
-  /// of a point, starting with 0 as the top-most coordinate.
-  /// @param[in] w An int32_t value representing a width.
-  /// @param[in] h An int32_t value representing a height.
-  Rect(int32_t x, int32_t y, int32_t w, int32_t h) {
-    set_x(x);
-    set_y(y);
-    set_width(w);
-    set_height(h);
-  }
-
-  /// A constructor accepting a pointer to a Size and converting the
-  /// <code>Size</code> to a <code>Rect</code> in the upper-left starting
-  /// coordinate of 0,0.
-  ///
-  /// @param[in] s A pointer to a <code>Size</code>.
-  explicit Rect(const Size& s) {
-    set_x(0);
-    set_y(0);
-    set_size(s);
-  }
-
-  /// A constructor accepting a pointer to a <code>Point</code> representing
-  /// the origin of the rectangle and a pointer to a <code>Size</code>
-  /// representing the height and width.
-  ///
-  /// @param[in] origin A pointer to a <code>Point</code> representing the
-  /// upper-left starting coordinate.
-  /// @param[in] size A pointer to a <code>Size</code> representing the height
-  /// and width.
-  Rect(const Point& origin, const Size& size) {
-    set_point(origin);
-    set_size(size);
-  }
-
-  /// Destructor.
-  ~Rect() {
-  }
-
-  /// PP_Rect() allows implicit conversion of a <code>Rect</code> to a
-  /// <code>PP_Rect</code>.
-  ///
-  /// @return A <code>Point</code>.
-  operator PP_Rect() const {
-    return rect_;
-  }
-
-  /// Getter function for returning the internal <code>PP_Rect</code> struct.
-  ///
-  /// @return A const reference to the internal <code>PP_Rect</code> struct.
-  const PP_Rect& pp_rect() const {
-    return rect_;
-  }
-
-  /// Getter function for returning the internal <code>PP_Rect</code> struct.
-  ///
-  /// @return A mutable reference to the <code>PP_Rect</code> struct.
-  PP_Rect& pp_rect() {
-    return rect_;
-  }
-
-
-  /// Getter function for returning the value of x.
-  ///
-  /// @return The value of x for this <code>Point</code>.
-  int32_t x() const {
-    return rect_.point.x;
-  }
-
-  /// Setter function for setting the value of x.
-  ///
-  /// @param[in] in_x A new x value.
-  void set_x(int32_t in_x) {
-    rect_.point.x = in_x;
-  }
-
-  /// Getter function for returning the value of y.
-  ///
-  /// @return The value of y for this <code>Point</code>.
-  int32_t y() const {
-    return rect_.point.y;
-  }
-
-  /// Setter function for setting the value of y.
-  ///
-  /// @param[in] in_y A new y value.
-  void set_y(int32_t in_y) {
-    rect_.point.y = in_y;
-  }
-
-  /// Getter function for returning the value of width.
-  ///
-  /// @return The value of width for this <code>Rect</code>.
-  int32_t width() const {
-    return rect_.size.width;
-  }
-
-  /// Setter function for setting the value of width.
-  ///
-  /// @param[in] w A new width value.
-  void set_width(int32_t w) {
-    if (w < 0) {
-      PP_DCHECK(w >= 0);
-      w = 0;
-    }
-    rect_.size.width = w;
-  }
-
-  /// Getter function for returning the value of height.
-  ///
-  /// @return The value of height for this <code>Rect</code>.
-  int32_t height() const {
-    return rect_.size.height;
-  }
-
-  /// Setter function for setting the value of height.
-  ///
-  /// @param[in] h A new width height.
-  void set_height(int32_t h) {
-    if (h < 0) {
-      PP_DCHECK(h >= 0);
-      h = 0;
-    }
-    rect_.size.height = h;
-  }
-
-  /// Getter function for returning the <code>Point</code>.
-  ///
-  /// @return A <code>Point</code>.
-  Point point() const {
-    return Point(rect_.point);
-  }
-
-  /// Setter function for setting the value of the <code>Point</code>.
-  ///
-  /// @param[in] origin A <code>Point</code> representing the upper-left
-  /// starting coordinate.
-  void set_point(const Point& origin) {
-    rect_.point = origin;
-  }
-
-  /// Getter function for returning the <code>Size</code>.
-  ///
-  /// @return The size of the rectangle.
-  Size size() const {
-    return Size(rect_.size);
-  }
-
-  /// Setter function for setting the <code>Size</code>.
-  ///
-  /// @param[in] s A pointer to a <code>Size</code> representing the height
-  /// and width.
-  void set_size(const Size& s) {
-    rect_.size.width = s.width();
-    rect_.size.height = s.height();
-  }
-
-  /// Getter function to get the upper-bound for the x-coordinates of the
-  /// rectangle.  Note that this coordinate value is one past the highest x
-  /// value of pixels in the rectangle.  This loop will access all the pixels
-  /// in a horizontal line in the rectangle:
-  /// <code>for (int32_t x = rect.x(); x < rect.right(); ++x) {}</code>
-  ///
-  /// @return The value of x + width for this point.
-  int32_t right() const {
-    return x() + width();
-  }
-
-  /// Getter function to get the upper-bound for the y-coordinates of the
-  /// rectangle.  Note that this coordinate value is one past the highest xy
-  /// value of pixels in the rectangle.  This loop will access all the pixels
-  /// in a horizontal line in the rectangle:
-  /// <code>for (int32_t y = rect.y(); y < rect.bottom(); ++y) {}</code>
-  ///
-  /// @return The value of y + height for this point.
-  int32_t bottom() const {
-    return y() + height();
-  }
-
-  /// Setter function for setting the value of the <code>Rect</code>.
-  ///
-  /// @param[in] x A new x value.
-  /// @param[in] y A new y value.
-  /// @param[in] w A new width value.
-  /// @param[in] h A new height value.
-  void SetRect(int32_t x, int32_t y, int32_t w, int32_t h) {
-    set_x(x);
-    set_y(y);
-    set_width(w);
-    set_height(h);
-  }
-
-  /// Setter function for setting the value of the <code>Rect</code>.
-  ///
-  /// @param[in] rect A pointer to a <code>PP_Rect</code>.
-  void SetRect(const PP_Rect& rect) {
-    rect_ = rect;
-  }
-
-  /// Inset() shrinks the rectangle by a horizontal and vertical
-  /// distance on all sides.
-  ///
-  /// @param[in] horizontal An int32_t value representing a horizontal
-  /// shrinking distance.
-  /// @param[in] vertical An int32_t value representing a vertical
-  /// shrinking distance.
-  void Inset(int32_t horizontal, int32_t vertical) {
-    Inset(horizontal, vertical, horizontal, vertical);
-  }
-
-  /// Inset() shrinks the rectangle by the specified amount on each
-  /// side.
-  ///
-  /// @param[in] left An int32_t value representing a left
-  /// shrinking distance.
-  /// @param[in] top An int32_t value representing a top
-  /// shrinking distance.
-  /// @param[in] right An int32_t value representing a right
-  /// shrinking distance.
-  /// @param[in] bottom An int32_t value representing a bottom
-  /// shrinking distance.
-  void Inset(int32_t left, int32_t top, int32_t right, int32_t bottom);
-
-  /// Offset() moves the rectangle by a horizontal and vertical distance.
-  ///
-  /// @param[in] horizontal An int32_t value representing a horizontal
-  /// move distance.
-  /// @param[in] vertical An int32_t value representing a vertical
-  /// move distance.
-  void Offset(int32_t horizontal, int32_t vertical);
-
-  /// Offset() moves the rectangle by a horizontal and vertical distance.
-  ///
-  /// @param[in] point A pointer to a <code>Point</code> representing the
-  /// horizontal and vertical move distances.
-  void Offset(const Point& point) {
-    Offset(point.x(), point.y());
-  }
-
-  /// IsEmpty() determines if the area of a rectangle is zero. Returns true if
-  /// the area of the rectangle is zero.
-  ///
-  /// @return true if the area of the rectangle is zero.
-  bool IsEmpty() const {
-    return rect_.size.width == 0 || rect_.size.height == 0;
-  }
-
-  /// Contains() determines if the point identified by point_x and point_y
-  /// falls inside this rectangle. The point (x, y) is inside the rectangle,
-  /// but the point (x + width, y + height) is not.
-  ///
-  /// @param[in] point_x An int32_t value representing a x value.
-  /// @param[in] point_y An int32_t value representing a y value.
-  ///
-  /// @return true if the point_x and point_y fall inside the rectangle.
-  bool Contains(int32_t point_x, int32_t point_y) const;
-
-  /// Contains() determines if the specified point is contained by this
-  /// rectangle.
-  ///
-  /// @param[in] point A pointer to a Point representing a 2D coordinate.
-  ///
-  /// @return true if the point_x and point_y fall inside the rectangle.
-  bool Contains(const Point& point) const {
-    return Contains(point.x(), point.y());
-  }
-
-  /// Contains() determines if this rectangle contains the specified rectangle.
-  ///
-  /// @param[in] rect A pointer to a <code>Rect</code>.
-  ///
-  /// @return true if the rectangle fall inside this rectangle.
-  bool Contains(const Rect& rect) const;
-
-  /// Intersects() determines if this rectangle intersects the specified
-  /// rectangle.
-  ///
-  /// @param[in] rect A pointer to a <code>Rect</code>.
-  ///
-  /// @return true if the rectangle intersects  this rectangle.
-  bool Intersects(const Rect& rect) const;
-
-  /// Intersect() computes the intersection of this rectangle with the given
-  /// rectangle.
-  ///
-  /// @param[in] rect A pointer to a <code>Rect</code>.
-  ///
-  /// @return A <code>Rect</code> representing the intersection.
-  Rect Intersect(const Rect& rect) const;
-
-  /// Union() computes the union of this rectangle with the given rectangle.
-  /// The union is the smallest rectangle containing both rectangles.
-  ///
-  /// @param[in] rect A pointer to a <code>Rect</code>.
-  ///
-  /// @return A <code>Rect</code> representing the union.
-  Rect Union(const Rect& rect) const;
-
-  /// Subtract() computes the rectangle resulting from subtracting
-  /// <code>rect</code> from this Rect.  If <code>rect</code>does not intersect
-  /// completely in either the x or y direction, then <code>*this</code> is
-  /// returned. If <code>rect</code> contains <code>this</code>, then an empty
-  /// <code>Rect</code> is returned.
-  ///
-  /// @param[in] rect A pointer to a <code>Rect</code>.
-  ///
-  /// @return A <code>Rect</code> representing the subtraction.
-  Rect Subtract(const Rect& rect) const;
-
-  /// AdjustToFit() fits as much of the receiving rectangle within
-  /// the supplied rectangle as possible, returning the result. For example,
-  /// if the receiver had a x-location of 2 and a width of 4, and the supplied
-  /// rectangle had an x-location of 0 with a width of 5, the returned
-  /// rectangle would have an x-location of 1 with a width of 4.
-  ///
-  /// @param[in] rect A pointer to a <code>Rect</code>.
-  ///
-  /// @return A <code>Rect</code> representing the difference between this
-  /// rectangle and the receiving rectangle.
-  Rect AdjustToFit(const Rect& rect) const;
-
-  /// CenterPoint() determines the center of this rectangle.
-  ///
-  /// @return A <code>Point</code> representing the center of this rectangle.
-  Point CenterPoint() const;
-
-  /// SharesEdgeWith() determines if this rectangle shares an entire edge
-  /// (same width or same height) with the given rectangle, and the
-  /// rectangles do not overlap.
-  ///
-  /// @param[in] rect A pointer to a <code>Rect</code>.
-  ///
-  /// @return true if this rectangle and supplied rectangle share an edge.
-  bool SharesEdgeWith(const Rect& rect) const;
-
- private:
-  PP_Rect rect_;
-};
-
-/// A 2 dimensional rectangle. A rectangle is represented by x and y (which
-/// identifies the upper-left corner of the rectangle), width, and height.
-class FloatRect {
- public:
-
-  /// The default constructor. Creates a <code>Rect</code> in the upper-left
-  /// at 0.0f,0.0f with height and width of 0.0f.
-  FloatRect() {
-    rect_.point.x = 0.0f;
-    rect_.point.y = 0.0f;
-    rect_.size.width = 0.0f;
-    rect_.size.height = 0.0f;
-  }
-
-  /// A constructor accepting a reference to a <code>PP_FloatRect and</code>
-  /// converting the <code>PP_FloatRect</code> to a <code>FloatRect</code>. This
-  /// is an implicit conversion constructor.
-  ///
-  /// @param[in] rect A <code>PP_FloatRect</code>.
-  FloatRect(const PP_FloatRect& rect) {  // Implicit.
-    set_x(rect.point.x);
-    set_y(rect.point.y);
-    set_width(rect.size.width);
-    set_height(rect.size.height);
-  }
-
-  /// A constructor accepting two float values for width and height and
-  /// converting them to a <code>FloatRect</code> in the upper-left starting
-  /// coordinate of 0.0f, 0.0f.
-  ///
-  /// @param[in] w An float value representing a width.
-  /// @param[in] h An float value representing a height.
-  FloatRect(float w, float h) {
-    set_x(0);
-    set_y(0);
-    set_width(w);
-    set_height(h);
-  }
-
-  /// A constructor accepting four float values for width, height, x, and y.
-  ///
-  /// @param[in] x An float value representing a horizontal coordinate
-  /// of a point, starting with 0.0f as the left-most coordinate.
-  /// @param[in] y An float value representing a vertical coordinate
-  /// of a point, starting with 0.0f as the top-most coordinate.
-  /// @param[in] w An float value representing a width.
-  /// @param[in] h An float value representing a height.
-  FloatRect(float x, float y, float w, float h) {
-    set_x(x);
-    set_y(y);
-    set_width(w);
-    set_height(h);
-  }
-
-  /// A constructor accepting a pointer to a FloatSize and converting the
-  /// <code>FloatSize</code> to a <code>FloatRect</code> in the upper-left
-  /// starting coordinate of 0.0f,0.0f.
-  ///
-  /// @param[in] s A pointer to a <code>FloatSize</code>.
-  explicit FloatRect(const FloatSize& s) {
-    set_x(0);
-    set_y(0);
-    set_size(s);
-  }
-
-  /// A constructor accepting a pointer to a <code>FloatPoint</code>
-  /// representing the origin of the rectangle and a pointer to a
-  /// <code>FloatSize</code> representing the height and width.
-  ///
-  /// @param[in] origin A pointer to a <code>FloatPoint</code> representing the
-  /// upper-left starting coordinate.
-  /// @param[in] size A pointer to a <code>FloatSize</code> representing the
-  /// height and width.
-  FloatRect(const FloatPoint& origin, const FloatSize& size) {
-    set_point(origin);
-    set_size(size);
-  }
-
-  /// Destructor.
-  ~FloatRect() {
-  }
-
-  /// PP_FloatRect() allows implicit conversion of a <code>FloatRect</code> to a
-  /// <code>PP_FloatRect</code>.
-  ///
-  /// @return A <code>Point</code>.
-  operator PP_FloatRect() const {
-    return rect_;
-  }
-
-  /// Getter function for returning the internal <code>PP_FloatRect</code>
-  /// struct.
-  ///
-  /// @return A const reference to the internal <code>PP_FloatRect</code>
-  /// struct.
-  const PP_FloatRect& pp_float_rect() const {
-    return rect_;
-  }
-
-  /// Getter function for returning the internal <code>PP_FloatRect</code>
-  /// struct.
-  ///
-  /// @return A mutable reference to the <code>PP_FloatRect</code> struct.
-  PP_FloatRect& pp_float_rect() {
-    return rect_;
-  }
-
-
-  /// Getter function for returning the value of x.
-  ///
-  /// @return The value of x for this <code>FloatPoint</code>.
-  float x() const {
-    return rect_.point.x;
-  }
-
-  /// Setter function for setting the value of x.
-  ///
-  /// @param[in] in_x A new x value.
-  void set_x(float in_x) {
-    rect_.point.x = in_x;
-  }
-
-  /// Getter function for returning the value of y.
-  ///
-  /// @return The value of y for this <code>FloatPoint</code>.
-  float y() const {
-    return rect_.point.y;
-  }
-
-  /// Setter function for setting the value of y.
-  ///
-  /// @param[in] in_y A new y value.
-  void set_y(float in_y) {
-    rect_.point.y = in_y;
-  }
-
-  /// Getter function for returning the value of width.
-  ///
-  /// @return The value of width for this <code>FloatRect</code>.
-  float width() const {
-    return rect_.size.width;
-  }
-
-  /// Setter function for setting the value of width.
-  ///
-  /// @param[in] w A new width value.
-  void set_width(float w) {
-    if (w < 0.0f) {
-      PP_DCHECK(w >= 0.0f);
-      w = 0.0f;
-    }
-    rect_.size.width = w;
-  }
-
-  /// Getter function for returning the value of height.
-  ///
-  /// @return The value of height for this <code>FloatRect</code>.
-  float height() const {
-    return rect_.size.height;
-  }
-
-  /// Setter function for setting the value of height.
-  ///
-  /// @param[in] h A new width height.
-  void set_height(float h) {
-    if (h < 0.0f) {
-      PP_DCHECK(h >= 0.0f);
-      h = 0.0f;
-    }
-    rect_.size.height = h;
-  }
-
-  /// Getter function for returning the <code>FloatPoint</code>.
-  ///
-  /// @return A <code>FloatPoint</code>.
-  FloatPoint point() const {
-    return FloatPoint(rect_.point);
-  }
-
-  /// Setter function for setting the value of the <code>FloatPoint</code>.
-  ///
-  /// @param[in] origin A <code>FloatPoint</code> representing the upper-left
-  /// starting coordinate.
-  void set_point(const FloatPoint& origin) {
-    rect_.point = origin;
-  }
-
-  /// Getter function for returning the <code>FloatSize</code>.
-  ///
-  /// @return The size of the rectangle.
-  FloatSize Floatsize() const {
-    return FloatSize(rect_.size);
-  }
-
-  /// Setter function for setting the <code>FloatSize</code>.
-  ///
-  /// @param[in] s A pointer to a <code>FloatSize</code> representing the height
-  /// and width.
-  void set_size(const FloatSize& s) {
-    rect_.size.width = s.width();
-    rect_.size.height = s.height();
-  }
-
-  /// Getter function to get the upper-bound for the x-coordinates of the
-  /// rectangle.  Note that this coordinate value is one past the highest x
-  /// value of pixels in the rectangle.  This loop will access all the pixels
-  /// in a horizontal line in the rectangle:
-  /// <code>for (float x = rect.x(); x < rect.right(); ++x) {}</code>
-  ///
-  /// @return The value of x + width for this point.
-  float right() const {
-    return x() + width();
-  }
-
-  /// Getter function to get the upper-bound for the y-coordinates of the
-  /// rectangle.  Note that this coordinate value is one past the highest xy
-  /// value of pixels in the rectangle.  This loop will access all the pixels
-  /// in a horizontal line in the rectangle:
-  /// <code>for (float y = rect.y(); y < rect.bottom(); ++y) {}</code>
-  ///
-  /// @return The value of y + height for this point.
-  float bottom() const {
-    return y() + height();
-  }
-
-  /// Setter function for setting the value of the <code>FloatRect</code>.
-  ///
-  /// @param[in] x A new x value.
-  /// @param[in] y A new y value.
-  /// @param[in] w A new width value.
-  /// @param[in] h A new height value.
-  void SetRect(float x, float y, float w, float h) {
-    set_x(x);
-    set_y(y);
-    set_width(w);
-    set_height(h);
-  }
-
-  /// Setter function for setting the value of the <code>FloatRect</code>.
-  ///
-  /// @param[in] rect A pointer to a <code>PP_FloatRect</code>.
-  void SetRect(const PP_FloatRect& rect) {
-    rect_ = rect;
-  }
-
-  /// Inset() shrinks the rectangle by a horizontal and vertical
-  /// distance on all sides.
-  ///
-  /// @param[in] horizontal An float value representing a horizontal
-  /// shrinking distance.
-  /// @param[in] vertical An float value representing a vertical
-  /// shrinking distance.
-  void Inset(float horizontal, float vertical) {
-    Inset(horizontal, vertical, horizontal, vertical);
-  }
-
-  /// Inset() shrinks the rectangle by the specified amount on each
-  /// side.
-  ///
-  /// @param[in] left An float value representing a left
-  /// shrinking distance.
-  /// @param[in] top An float value representing a top
-  /// shrinking distance.
-  /// @param[in] right An float value representing a right
-  /// shrinking distance.
-  /// @param[in] bottom An float value representing a bottom
-  /// shrinking distance.
-  void Inset(float left, float top, float right, float bottom);
-
-  /// Offset() moves the rectangle by a horizontal and vertical distance.
-  ///
-  /// @param[in] horizontal An float value representing a horizontal
-  /// move distance.
-  /// @param[in] vertical An float value representing a vertical
-  /// move distance.
-  void Offset(float horizontal, float vertical);
-
-  /// Offset() moves the rectangle by a horizontal and vertical distance.
-  ///
-  /// @param[in] point A pointer to a <code>FloatPoint</code> representing the
-  /// horizontal and vertical move distances.
-  void Offset(const FloatPoint& point) {
-    Offset(point.x(), point.y());
-  }
-
-  /// IsEmpty() determines if the area of a rectangle is zero. Returns true if
-  /// the area of the rectangle is zero.
-  ///
-  /// @return true if the area of the rectangle is zero.
-  bool IsEmpty() const {
-    return rect_.size.width == 0.0f || rect_.size.height == 0.0f;
-  }
-
-  /// Contains() determines if the point identified by point_x and point_y
-  /// falls inside this rectangle. The point (x, y) is inside the rectangle,
-  /// but the point (x + width, y + height) is not.
-  ///
-  /// @param[in] point_x An float value representing a x value.
-  /// @param[in] point_y An float value representing a y value.
-  ///
-  /// @return true if the point_x and point_y fall inside the rectangle.
-  bool Contains(float point_x, float point_y) const;
-
-  /// Contains() determines if the specified point is contained by this
-  /// rectangle.
-  ///
-  /// @param[in] point A pointer to a Point representing a 2D coordinate.
-  ///
-  /// @return true if the point_x and point_y fall inside the rectangle.
-  bool Contains(const FloatPoint& point) const {
-    return Contains(point.x(), point.y());
-  }
-
-  /// Contains() determines if this rectangle contains the specified rectangle.
-  ///
-  /// @param[in] rect A pointer to a <code>FloatRect</code>.
-  ///
-  /// @return true if the rectangle fall inside this rectangle.
-  bool Contains(const FloatRect& rect) const;
-
-  /// Intersects() determines if this rectangle intersects the specified
-  /// rectangle.
-  ///
-  /// @param[in] rect A pointer to a <code>FloatRect</code>.
-  ///
-  /// @return true if the rectangle intersects  this rectangle.
-  bool Intersects(const FloatRect& rect) const;
-
-  /// Intersect() computes the intersection of this rectangle with the given
-  /// rectangle.
-  ///
-  /// @param[in] rect A pointer to a <code>FloatRect</code>.
-  ///
-  /// @return A <code>FloatRect</code> representing the intersection.
-  FloatRect Intersect(const FloatRect& rect) const;
-
-  /// Union() computes the union of this rectangle with the given rectangle.
-  /// The union is the smallest rectangle containing both rectangles.
-  ///
-  /// @param[in] rect A pointer to a <code>FloatRect</code>.
-  ///
-  /// @return A <code>FloatRect</code> representing the union.
-  FloatRect Union(const FloatRect& rect) const;
-
-  /// Subtract() computes the rectangle resulting from subtracting
-  /// <code>rect</code> from this Rect.  If <code>rect</code>does not intersect
-  /// completely in either the x or y direction, then <code>*this</code> is
-  /// returned. If <code>rect</code> contains <code>this</code>, then an empty
-  /// <code>Rect</code> is returned.
-  ///
-  /// @param[in] rect A pointer to a <code>FloatRect</code>.
-  ///
-  /// @return A <code>FloatRect</code> representing the subtraction.
-  FloatRect Subtract(const FloatRect& rect) const;
-
-  /// AdjustToFit() fits as much of the receiving rectangle within
-  /// the supplied rectangle as possible, returning the result. For example,
-  /// if the receiver had a x-location of 2 and a width of 4, and the supplied
-  /// rectangle had an x-location of 0 with a width of 5, the returned
-  /// rectangle would have an x-location of 1 with a width of 4.
-  ///
-  /// @param[in] rect A pointer to a <code>FloatRect</code>.
-  ///
-  /// @return A <code>FloatRect</code> representing the difference between this
-  /// rectangle and the receiving rectangle.
-  FloatRect AdjustToFit(const FloatRect& rect) const;
-
-  /// CenterPoint() determines the center of this rectangle.
-  ///
-  /// @return A <code>FloatPoint</code> representing the center of this
-  /// rectangle.
-  FloatPoint CenterPoint() const;
-
-  /// SharesEdgeWith() determines if this rectangle shares an entire edge
-  /// (same width or same height) with the given rectangle, and the
-  /// rectangles do not overlap.
-  ///
-  /// @param[in] rect A pointer to a <code>FloatRect</code>.
-  ///
-  /// @return true if this rectangle and supplied rectangle share an edge.
-  bool SharesEdgeWith(const FloatRect& rect) const;
-
- private:
-  PP_FloatRect rect_;
-};
-
-}  // namespace pp
-
-/// This function determines whether the x, y, width, and height values of two
-/// rectangles and are equal.
-///
-/// @param[in] lhs The <code>Rect</code> on the left-hand side of the equation.
-/// @param[in] rhs The <code>Rect</code> on the right-hand side of the equation.
-///
-/// @return true if they are equal, false if unequal.
-inline bool operator==(const pp::Rect& lhs, const pp::Rect& rhs) {
-  return lhs.x() == rhs.x() &&
-         lhs.y() == rhs.y() &&
-         lhs.width() == rhs.width() &&
-         lhs.height() == rhs.height();
-}
-
-/// This function determines whether two Rects are not equal.
-///
-/// @param[in] lhs The <code>Rect</code> on the left-hand side of the equation.
-/// @param[in] rhs The <code>Rect</code> on the right-hand side of the
-/// equation.
-///
-/// @return true if the given Rects are equal, otherwise false.
-inline bool operator!=(const pp::Rect& lhs, const pp::Rect& rhs) {
-  return !(lhs == rhs);
-}
-
-/// This function determines whether the x, y, width, and height values of two
-/// rectangles and are equal.
-///
-/// @param[in] lhs The <code>FloatRect</code> on the left-hand side of the
-/// equation.
-/// @param[in] rhs The <code>FloatRect</code> on the right-hand side of the
-/// equation.
-///
-/// @return true if they are equal, false if unequal.
-inline bool operator==(const pp::FloatRect& lhs, const pp::FloatRect& rhs) {
-  return lhs.x() == rhs.x() &&
-         lhs.y() == rhs.y() &&
-         lhs.width() == rhs.width() &&
-         lhs.height() == rhs.height();
-}
-
-/// This function determines whether two Rects are not equal.
-///
-/// @param[in] lhs The <code>FloatRect</code> on the left-hand side of the
-/// equation.
-/// @param[in] rhs The <code>FloatRect</code> on the right-hand side of the
-/// equation.
-///
-/// @return true if the given Rects are equal, otherwise false.
-inline bool operator!=(const pp::FloatRect& lhs, const pp::FloatRect& rhs) {
-  return !(lhs == rhs);
-}
-
-#endif  // PPAPI_CPP_RECT_H_
-
diff --git a/cpp/resource.cc b/cpp/resource.cc
deleted file mode 100644
index 2952fe7..0000000
--- a/cpp/resource.cc
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2010 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/cpp/resource.h"
-
-#include <algorithm>
-
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module.h"
-
-namespace pp {
-
-Resource::Resource() : pp_resource_(0) {
-}
-
-Resource::Resource(const Resource& other) : pp_resource_(other.pp_resource_) {
-  if (!is_null())
-    Module::Get()->core()->AddRefResource(pp_resource_);
-}
-
-Resource::~Resource() {
-  if (!is_null())
-    Module::Get()->core()->ReleaseResource(pp_resource_);
-}
-
-Resource& Resource::operator=(const Resource& other) {
-  if (!other.is_null())
-    Module::Get()->core()->AddRefResource(other.pp_resource_);
-  if (!is_null())
-    Module::Get()->core()->ReleaseResource(pp_resource_);
-  pp_resource_ = other.pp_resource_;
-  return *this;
-}
-
-PP_Resource Resource::detach() {
-  PP_Resource ret = pp_resource_;
-  pp_resource_ = 0;
-  return ret;
-}
-
-Resource::Resource(PP_Resource resource) : pp_resource_(resource) {
-  if (!is_null())
-    Module::Get()->core()->AddRefResource(pp_resource_);
-}
-
-Resource::Resource(PassRef, PP_Resource resource) : pp_resource_(resource) {
-}
-
-void Resource::PassRefFromConstructor(PP_Resource resource) {
-  PP_DCHECK(!pp_resource_);
-  pp_resource_ = resource;
-}
-
-void Resource::Clear() {
-  if (is_null())
-    return;
-  Module::Get()->core()->ReleaseResource(pp_resource_);
-  pp_resource_ = 0;
-}
-
-}  // namespace pp
diff --git a/cpp/resource.h b/cpp/resource.h
deleted file mode 100644
index 5c0bce6..0000000
--- a/cpp/resource.h
+++ /dev/null
@@ -1,105 +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_CPP_RESOURCE_H_
-#define PPAPI_CPP_RESOURCE_H_
-
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/pass_ref.h"
-
-/// @file
-/// This file defines a <code>Resource</code> type representing data associated
-/// with the module.
-namespace pp {
-
-class Var;
-
-/// A reference counted module resource.
-class Resource {
- public:
-  /// The default constructor.
-  Resource();
-
-  /// A constructor for copying a resource.
-  ///
-  /// @param[in] other A <code>Resource</code>.
-  Resource(const Resource& other);
-
-  /// Destructor.
-  virtual ~Resource();
-
-  /// This function assigns one <code>Resource</code> to another
-  /// <code>Resource</code>.
-  ///
-  /// @param[in] other A Resource.
-  ///
-  /// @return A Resource containing the assigned Resource.
-  Resource& operator=(const Resource& other);
-
-  /// This functions determines if this resource is invalid or
-  /// uninitialized.
-  ///
-  /// @return true if this resource is invalid or uninitialized.
-  bool is_null() const { return !pp_resource_; }
-
-  PP_Resource pp_resource() const { return pp_resource_; }
-
-  /// This function releases ownership of this resource and returns it to the
-  /// caller.
-  ///
-  /// Note that the reference count on the resource is unchanged and the caller
-  /// needs to release the resource.
-  ///
-  /// @return The detached <code>PP_Resource</code>.
-  PP_Resource detach();
-
- protected:
-  /// A constructor used when a <code>PP_Resource</code> is provided as a
-  /// return value whose reference count we need to increment.
-  ///
-  /// @param[in] resource A <code>PP_Resource</code> corresponding to a
-  /// resource.
-  explicit Resource(PP_Resource resource);
-
-  /// Constructor used when a <code>PP_Resource</code> already has a ref count
-  /// assigned. Add additional refcount is not taken.
-  Resource(PassRef, PP_Resource resource);
-
-  /// PassRefFromConstructor is called by derived class' constructors to
-  /// initialize this <code>Resource</code> with a <code>PP_Resource</code>
-  /// that has already had its reference count incremented by
-  /// <code>Core::AddRefResource</code>. It also assumes this object has no
-  /// current resource.
-  ///
-  /// The intended usage of this function that the derived class constructor
-  /// will call the default <code>Resource</code> constructor, then make a call
-  /// to create a resource. It then wants to assign the new resource (which,
-  /// since it was returned by the browser, already had its reference count
-  /// increased).
-  ///
-  /// @param[in] resource A <code>PP_Resource</code> corresponding to a
-  /// resource.
-  void PassRefFromConstructor(PP_Resource resource);
-
-  /// Sets this resource to null. This releases ownership of the resource.
-  void Clear();
-
- private:
-  friend class Var;
-
-  PP_Resource pp_resource_;
-};
-
-}  // namespace pp
-
-inline bool operator==(const pp::Resource& lhs, const pp::Resource& rhs) {
-  return lhs.pp_resource() == rhs.pp_resource();
-}
-
-inline bool operator!=(const pp::Resource& lhs, const pp::Resource& rhs) {
-  return !(lhs == rhs);
-}
-
-#endif // PPAPI_CPP_RESOURCE_H_
diff --git a/cpp/size.h b/cpp/size.h
deleted file mode 100644
index f02b798..0000000
--- a/cpp/size.h
+++ /dev/null
@@ -1,334 +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_CPP_SIZE_H_
-#define PPAPI_CPP_SIZE_H_
-
-#include "ppapi/c/pp_size.h"
-#include "ppapi/cpp/logging.h"
-
-/// @file
-/// This file defines the API to create a size based on width
-/// and height.
-
-namespace pp {
-
-/// A size of an object based on width and height.
-class Size {
- public:
-
-  /// The default constructor. Initializes the width and height to 0.
-  Size() {
-    size_.width = 0;
-    size_.height = 0;
-  }
-
-  /// A constructor accepting a pointer to a <code>PP_Size</code> and
-  /// converting the <code>PP_Size</code> to a <code>Size</code>. This is an
-  /// implicit conversion constructor.
-  ///
-  /// @param[in] s A pointer to a <code>PP_Size</code>.
-  Size(const PP_Size& s) {  // Implicit.
-    // Want the >= 0 checking of the setter.
-    set_width(s.width);
-    set_height(s.height);
-  }
-
-  /// A constructor accepting two int values for width and height and
-  /// converting them to a <code>Size</code>.
-  ///
-  /// @param[in] w An int value representing a width.
-  /// @param[in] h An int value representing a height.
-  Size(int w, int h) {
-    // Want the >= 0 checking of the setter.
-    set_width(w);
-    set_height(h);
-  }
-
-  /// Destructor.
-  ~Size() {
-  }
-
-  /// PP_Size() allows implicit conversion of a <code>Size</code> to a
-  /// <code>PP_Size</code>.
-  ///
-  /// @return A Size.
-  operator PP_Size() {
-    return size_;
-  }
-
-  /// Getter function for returning the internal <code>PP_Size</code> struct.
-  ///
-  /// @return A const reference to the internal <code>PP_Size</code> struct.
-  const PP_Size& pp_size() const {
-    return size_;
-  }
-
-  /// Getter function for returning the internal <code>PP_Size</code> struct.
-  ///
-  /// @return A mutable reference to the <code>PP_Size</code> struct.
-  PP_Size& pp_size() {
-    return size_;
-  }
-
-  /// Getter function for returning the value of width.
-  ///
-  /// @return The value of width for this <code>Size</code>.
-  int width() const {
-    return size_.width;
-  }
-
-  /// Setter function for setting the value of width.
-  ///
-  /// @param[in] w A new width value.
-  void set_width(int w) {
-    if (w < 0) {
-      PP_DCHECK(w >= 0);
-      w = 0;
-    }
-    size_.width = w;
-  }
-
-  /// Getter function for returning the value of height.
-  ///
-  /// @return The value of height for this <code>Size</code>.
-  int height() const {
-    return size_.height;
-  }
-
-  /// Setter function for setting the value of height.
-  ///
-  /// @param[in] h A new height value.
-  void set_height(int h) {
-    if (h < 0) {
-      PP_DCHECK(h >= 0);
-      h = 0;
-    }
-    size_.height = h;
-  }
-
-  /// GetArea() determines the area (width * height).
-  ///
-  /// @return The area.
-  int GetArea() const {
-    return width() * height();
-  }
-
-  /// SetSize() sets the value of width and height.
-  ///
-  /// @param[in] w A new width value.
-  /// @param[in] h A new height value.
-  void SetSize(int w, int h) {
-    set_width(w);
-    set_height(h);
-  }
-
-  /// Enlarge() enlarges the size of an object.
-  ///
-  /// @param[in] w A width to add the current width.
-  /// @param[in] h A height to add to the current height.
-  void Enlarge(int w, int h) {
-    set_width(width() + w);
-    set_height(height() + h);
-  }
-
-  /// IsEmpty() determines if the size is zero.
-  ///
-  /// @return true if the size is zero.
-  bool IsEmpty() const {
-    // Size doesn't allow negative dimensions, so testing for 0 is enough.
-    return (width() == 0) || (height() == 0);
-  }
-
- private:
-  PP_Size size_;
-};
-
-/// A size of an object based on width and height.
-class FloatSize {
- public:
-
-  /// The default constructor. Initializes the width and height to 0.0f.
-  FloatSize() {
-    size_.width = 0.0f;
-    size_.height = 0.0f;
-  }
-
-  /// A constructor accepting a pointer to a <code>PP_FloatSize</code> and
-  /// converting the <code>PP_FloatSize</code> to a <code>FloatSize</code>.
-  /// This is an implicit conversion constructor.
-  ///
-  /// @param[in] s A pointer to a <code>PP_FloatSize</code>.
-  FloatSize(const PP_FloatSize& s) {  // Implicit.
-    // Want the >= 0 checking of the setter.
-    set_width(s.width);
-    set_height(s.height);
-  }
-
-  /// A constructor accepting two float values for width and height and
-  /// converting them to a <code>FloatSize</code>.
-  ///
-  /// @param[in] w An float value representing a width.
-  /// @param[in] h An float value representing a height.
-  FloatSize(float w, float h) {
-    // Want the >= 0.0f checking of the setter.
-    set_width(w);
-    set_height(h);
-  }
-
-  /// Destructor.
-  ~FloatSize() {
-  }
-
-  /// PP_FloatSize() allows implicit conversion of a <code>FloatSize</code> to a
-  /// <code>PP_FloatSize</code>.
-  ///
-  /// @return A Size.
-  operator PP_FloatSize() {
-    return size_;
-  }
-
-  /// Getter function for returning the internal <code>PP_FloatSize</code>
-  /// struct.
-  ///
-  /// @return A const reference to the internal <code>PP_FloatSize</code>
-  /// struct.
-  const PP_FloatSize& pp_float_size() const {
-    return size_;
-  }
-
-  /// Getter function for returning the internal <code>PP_FloatSize</code>
-  /// struct.
-  ///
-  /// @return A mutable reference to the <code>PP_FloatSize</code> struct.
-  PP_FloatSize& pp_float_size() {
-    return size_;
-  }
-
-  /// Getter function for returning the value of width.
-  ///
-  /// @return The value of width for this <code>FloatSize</code>.
-  float width() const {
-    return size_.width;
-  }
-
-  /// Setter function for setting the value of width.
-  ///
-  /// @param[in] w A new width value.
-  void set_width(float w) {
-    if (w < 0.0f) {
-      PP_DCHECK(w >= 0.0f);
-      w = 0.0f;
-    }
-    size_.width = w;
-  }
-
-  /// Getter function for returning the value of height.
-  ///
-  /// @return The value of height for this <code>FloatSize</code>.
-  float height() const {
-    return size_.height;
-  }
-
-  /// Setter function for setting the value of height.
-  ///
-  /// @param[in] h A new height value.
-  void set_height(float h) {
-    if (h < 0.0f) {
-      PP_DCHECK(h >= 0.0f);
-      h = 0.0f;
-    }
-    size_.height = h;
-  }
-
-  /// GetArea() determines the area (width * height).
-  ///
-  /// @return The area.
-  float GetArea() const {
-    return width() * height();
-  }
-
-  /// SetSize() sets the value of width and height.
-  ///
-  /// @param[in] w A new width value.
-  /// @param[in] h A new height value.
-  void SetSize(float w, float h) {
-    set_width(w);
-    set_height(h);
-  }
-
-  /// Enlarge() enlarges the size of an object.
-  ///
-  /// @param[in] w A width to add the current width.
-  /// @param[in] h A height to add to the current height.
-  void Enlarge(float w, float h) {
-    set_width(width() + w);
-    set_height(height() + h);
-  }
-
-  /// IsEmpty() determines if the size is zero.
-  ///
-  /// @return true if the size is zero.
-  bool IsEmpty() const {
-    // Size doesn't allow negative dimensions, so testing for 0.0f is enough.
-    return (width() == 0.0f) || (height() == 0.0f);
-  }
-
- private:
-  PP_FloatSize size_;
-};
-
-}  // namespace pp
-
-/// This function determines whether the width and height values of two sizes
-/// are equal.
-///
-/// @param[in] lhs The <code>Size</code> on the left-hand side of the equation.
-/// @param[in] rhs The <code>Size</code> on the right-hand side of the
-/// equation.
-///
-/// @return true if they are equal, false if unequal.
-inline bool operator==(const pp::Size& lhs, const pp::Size& rhs) {
-  return lhs.width() == rhs.width() && lhs.height() == rhs.height();
-}
-
-/// This function determines whether two <code>Sizes</code> are not equal.
-///
-/// @param[in] lhs The <code>Size</code> on the left-hand side of the equation.
-/// @param[in] rhs The <code>Size</code> on the right-hand side of the equation.
-///
-/// @return true if the <code>Size</code> of lhs are equal to the
-/// <code>Size</code> of rhs, otherwise false.
-inline bool operator!=(const pp::Size& lhs, const pp::Size& rhs) {
-  return !(lhs == rhs);
-}
-
-/// This function determines whether the width and height values of two sizes
-/// are equal.
-///
-/// @param[in] lhs The <code>FloatSize</code> on the left-hand side of the
-/// equation.
-/// @param[in] rhs The <code>FloatSize</code> on the right-hand side of the
-/// equation.
-///
-/// @return true if they are equal, false if unequal.
-inline bool operator==(const pp::FloatSize& lhs, const pp::FloatSize& rhs) {
-  return lhs.width() == rhs.width() && lhs.height() == rhs.height();
-}
-
-/// This function determines whether two <code>FloatSizes</code> are not equal.
-///
-/// @param[in] lhs The <code>FloatSize</code> on the left-hand side of the
-/// equation.
-/// @param[in] rhs The <code>FloatSize</code> on the right-hand side of the
-/// equation.
-///
-/// @return true if the <code>FloatSize</code> of lhs are equal to the
-/// <code>FloatSize</code> of rhs, otherwise false.
-inline bool operator!=(const pp::FloatSize& lhs, const pp::FloatSize& rhs) {
-  return !(lhs == rhs);
-}
-
-#endif  // PPAPI_CPP_SIZE_H_
-
diff --git a/cpp/tcp_socket.cc b/cpp/tcp_socket.cc
deleted file mode 100644
index 083817c..0000000
--- a/cpp/tcp_socket.cc
+++ /dev/null
@@ -1,232 +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.
-
-#include "ppapi/cpp/tcp_socket.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_TCPSocket_1_0>() {
-  return PPB_TCPSOCKET_INTERFACE_1_0;
-}
-
-template <> const char* interface_name<PPB_TCPSocket_1_1>() {
-  return PPB_TCPSOCKET_INTERFACE_1_1;
-}
-
-template <> const char* interface_name<PPB_TCPSocket_1_2>() {
-  return PPB_TCPSOCKET_INTERFACE_1_2;
-}
-
-}  // namespace
-
-TCPSocket::TCPSocket() {
-}
-
-TCPSocket::TCPSocket(const InstanceHandle& instance) {
-  if (has_interface<PPB_TCPSocket_1_2>()) {
-    PassRefFromConstructor(get_interface<PPB_TCPSocket_1_2>()->Create(
-        instance.pp_instance()));
-  } else if (has_interface<PPB_TCPSocket_1_1>()) {
-    PassRefFromConstructor(get_interface<PPB_TCPSocket_1_1>()->Create(
-        instance.pp_instance()));
-  } else if (has_interface<PPB_TCPSocket_1_0>()) {
-    PassRefFromConstructor(get_interface<PPB_TCPSocket_1_0>()->Create(
-        instance.pp_instance()));
-  }
-}
-
-TCPSocket::TCPSocket(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-TCPSocket::TCPSocket(const TCPSocket& other) : Resource(other) {
-}
-
-TCPSocket::~TCPSocket() {
-}
-
-TCPSocket& TCPSocket::operator=(const TCPSocket& other) {
-  Resource::operator=(other);
-  return *this;
-}
-
-// static
-bool TCPSocket::IsAvailable() {
-  return has_interface<PPB_TCPSocket_1_2>() ||
-         has_interface<PPB_TCPSocket_1_1>() ||
-         has_interface<PPB_TCPSocket_1_0>();
-}
-
-int32_t TCPSocket::Bind(const NetAddress& addr,
-                        const CompletionCallback& callback) {
-  if (has_interface<PPB_TCPSocket_1_2>()) {
-    return get_interface<PPB_TCPSocket_1_2>()->Bind(
-        pp_resource(), addr.pp_resource(), callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_1_1>()) {
-    return get_interface<PPB_TCPSocket_1_1>()->Bind(
-        pp_resource(), addr.pp_resource(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t TCPSocket::Connect(const NetAddress& addr,
-                           const CompletionCallback& callback) {
-  if (has_interface<PPB_TCPSocket_1_2>()) {
-    return get_interface<PPB_TCPSocket_1_2>()->Connect(
-        pp_resource(), addr.pp_resource(), callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_1_1>()) {
-    return get_interface<PPB_TCPSocket_1_1>()->Connect(
-        pp_resource(), addr.pp_resource(), callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_1_0>()) {
-    return get_interface<PPB_TCPSocket_1_0>()->Connect(
-        pp_resource(), addr.pp_resource(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-NetAddress TCPSocket::GetLocalAddress() const {
-  if (has_interface<PPB_TCPSocket_1_2>()) {
-    return NetAddress(
-        PASS_REF,
-        get_interface<PPB_TCPSocket_1_2>()->GetLocalAddress(pp_resource()));
-  }
-  if (has_interface<PPB_TCPSocket_1_1>()) {
-    return NetAddress(
-        PASS_REF,
-        get_interface<PPB_TCPSocket_1_1>()->GetLocalAddress(pp_resource()));
-  }
-  if (has_interface<PPB_TCPSocket_1_0>()) {
-    return NetAddress(
-        PASS_REF,
-        get_interface<PPB_TCPSocket_1_0>()->GetLocalAddress(pp_resource()));
-  }
-  return NetAddress();
-}
-
-NetAddress TCPSocket::GetRemoteAddress() const {
-  if (has_interface<PPB_TCPSocket_1_2>()) {
-    return NetAddress(
-        PASS_REF,
-        get_interface<PPB_TCPSocket_1_2>()->GetRemoteAddress(pp_resource()));
-  }
-  if (has_interface<PPB_TCPSocket_1_1>()) {
-    return NetAddress(
-        PASS_REF,
-        get_interface<PPB_TCPSocket_1_1>()->GetRemoteAddress(pp_resource()));
-  }
-  if (has_interface<PPB_TCPSocket_1_0>()) {
-    return NetAddress(
-        PASS_REF,
-        get_interface<PPB_TCPSocket_1_0>()->GetRemoteAddress(pp_resource()));
-  }
-  return NetAddress();
-}
-
-int32_t TCPSocket::Read(char* buffer,
-                        int32_t bytes_to_read,
-                        const CompletionCallback& callback) {
-  if (has_interface<PPB_TCPSocket_1_2>()) {
-    return get_interface<PPB_TCPSocket_1_2>()->Read(
-        pp_resource(), buffer, bytes_to_read,
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_1_1>()) {
-    return get_interface<PPB_TCPSocket_1_1>()->Read(
-        pp_resource(), buffer, bytes_to_read,
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_1_0>()) {
-    return get_interface<PPB_TCPSocket_1_0>()->Read(
-        pp_resource(), buffer, bytes_to_read,
-        callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t TCPSocket::Write(const char* buffer,
-                         int32_t bytes_to_write,
-                         const CompletionCallback& callback) {
-  if (has_interface<PPB_TCPSocket_1_2>()) {
-    return get_interface<PPB_TCPSocket_1_2>()->Write(
-        pp_resource(), buffer, bytes_to_write,
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_1_1>()) {
-    return get_interface<PPB_TCPSocket_1_1>()->Write(
-        pp_resource(), buffer, bytes_to_write,
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_1_0>()) {
-    return get_interface<PPB_TCPSocket_1_0>()->Write(
-        pp_resource(), buffer, bytes_to_write,
-        callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t TCPSocket::Listen(int32_t backlog,
-                          const CompletionCallback& callback) {
-  if (has_interface<PPB_TCPSocket_1_2>()) {
-    return get_interface<PPB_TCPSocket_1_2>()->Listen(
-        pp_resource(), backlog, callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_1_1>()) {
-    return get_interface<PPB_TCPSocket_1_1>()->Listen(
-        pp_resource(), backlog, callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t TCPSocket::Accept(
-    const CompletionCallbackWithOutput<TCPSocket>& callback) {
-  if (has_interface<PPB_TCPSocket_1_2>()) {
-    return get_interface<PPB_TCPSocket_1_2>()->Accept(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_1_1>()) {
-    return get_interface<PPB_TCPSocket_1_1>()->Accept(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-void TCPSocket::Close() {
-  if (has_interface<PPB_TCPSocket_1_2>()) {
-    get_interface<PPB_TCPSocket_1_2>()->Close(pp_resource());
-  } else if (has_interface<PPB_TCPSocket_1_1>()) {
-    get_interface<PPB_TCPSocket_1_1>()->Close(pp_resource());
-  } else if (has_interface<PPB_TCPSocket_1_0>()) {
-    get_interface<PPB_TCPSocket_1_0>()->Close(pp_resource());
-  }
-}
-
-int32_t TCPSocket::SetOption(PP_TCPSocket_Option name,
-                             const Var& value,
-                             const CompletionCallback& callback) {
-  if (has_interface<PPB_TCPSocket_1_2>()) {
-    return get_interface<PPB_TCPSocket_1_2>()->SetOption(
-        pp_resource(), name, value.pp_var(), callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_1_1>()) {
-    return get_interface<PPB_TCPSocket_1_1>()->SetOption(
-        pp_resource(), name, value.pp_var(), callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_TCPSocket_1_0>()) {
-    return get_interface<PPB_TCPSocket_1_0>()->SetOption(
-        pp_resource(), name, value.pp_var(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-}  // namespace pp
diff --git a/cpp/tcp_socket.h b/cpp/tcp_socket.h
deleted file mode 100644
index 2122b01..0000000
--- a/cpp/tcp_socket.h
+++ /dev/null
@@ -1,214 +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.
-
-#ifndef PPAPI_CPP_TCP_SOCKET_H_
-#define PPAPI_CPP_TCP_SOCKET_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_tcp_socket.h"
-#include "ppapi/cpp/net_address.h"
-#include "ppapi/cpp/pass_ref.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class CompletionCallback;
-class InstanceHandle;
-
-template <typename T> class CompletionCallbackWithOutput;
-
-/// The <code>TCPSocket</code> class provides TCP socket operations.
-///
-/// Permissions: Apps permission <code>socket</code> with subrule
-/// <code>tcp-connect</code> is required for <code>Connect()</code>; subrule
-/// <code>tcp-listen</code> is required for <code>Listen()</code>.
-/// For more details about network communication permissions, please see:
-/// http://developer.chrome.com/apps/app_network.html
-class TCPSocket : public Resource {
- public:
-  /// Default constructor for creating an is_null() <code>TCPSocket</code>
-  /// object.
-  TCPSocket();
-
-  /// A constructor used to create a <code>TCPSocket</code> object.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  explicit TCPSocket(const InstanceHandle& instance);
-
-  /// A constructor used when you have received a <code>PP_Resource</code> as a
-  /// return value that has had 1 ref added for you.
-  ///
-  /// @param[in] resource A <code>PPB_TCPSocket</code> resource.
-  TCPSocket(PassRef, PP_Resource resource);
-
-  /// The copy constructor for <code>TCPSocket</code>.
-  ///
-  /// @param[in] other A reference to another <code>TCPSocket</code>.
-  TCPSocket(const TCPSocket& other);
-
-  /// The destructor.
-  virtual ~TCPSocket();
-
-  /// The assignment operator for <code>TCPSocket</code>.
-  ///
-  /// @param[in] other A reference to another <code>TCPSocket</code>.
-  ///
-  /// @return A reference to this <code>TCPSocket</code> object.
-  TCPSocket& operator=(const TCPSocket& other);
-
-  /// Static function for determining whether the browser supports the
-  /// <code>PPB_TCPSocket</code> interface.
-  ///
-  /// @return true if the interface is available, false otherwise.
-  static bool IsAvailable();
-
-  /// Binds the socket to the given address. The socket must not be bound.
-  ///
-  /// @param[in] addr A <code>NetAddress</code> object.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>,
-  /// including (but not limited to):
-  /// - <code>PP_ERROR_ADDRESS_IN_USE</code>: the address is already in use.
-  /// - <code>PP_ERROR_ADDRESS_INVALID</code>: the address is invalid.
-  int32_t Bind(const NetAddress& addr, const CompletionCallback& callback);
-
-  /// Connects the socket to the given address. The socket must not be
-  /// listening. Binding the socket beforehand is optional.
-  ///
-  /// @param[in] addr A <code>NetAddress</code> object.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>,
-  /// including (but not limited to):
-  /// - <code>PP_ERROR_NOACCESS</code>: the caller doesn't have required
-  ///   permissions.
-  /// - <code>PP_ERROR_ADDRESS_UNREACHABLE</code>: <code>addr</code> is
-  ///   unreachable.
-  /// - <code>PP_ERROR_CONNECTION_REFUSED</code>: the connection attempt was
-  ///   refused.
-  /// - <code>PP_ERROR_CONNECTION_FAILED</code>: the connection attempt failed.
-  /// - <code>PP_ERROR_CONNECTION_TIMEDOUT</code>: the connection attempt timed
-  ///   out.
-  ///
-  /// Since version 1.1, if the socket is listening/connected or has a pending
-  /// listen/connect request, <code>Connect()</code> will fail without starting
-  /// a connection attempt. Otherwise, any failure during the connection attempt
-  /// will cause the socket to be closed.
-  int32_t Connect(const NetAddress& addr, const CompletionCallback& callback);
-
-  /// Gets the local address of the socket, if it is bound.
-  ///
-  /// @return A <code>NetAddress</code> object. The object will be null
-  /// (i.e., is_null() returns true) on failure.
-  NetAddress GetLocalAddress() const;
-
-  /// Gets the remote address of the socket, if it is connected.
-  ///
-  /// @return A <code>NetAddress</code> object. The object will be null
-  /// (i.e., is_null() returns true) on failure.
-  NetAddress GetRemoteAddress() const;
-
-  /// Reads data from the socket. The socket must be connected. It may perform a
-  /// partial read.
-  ///
-  /// <strong>Caveat:</strong> You should be careful about the lifetime of
-  /// <code>buffer</code>. Typically you will use a
-  /// <code>CompletionCallbackFactory</code> to scope callbacks to the lifetime
-  /// of your class. When your class goes out of scope, the callback factory
-  /// will not actually cancel the operation, but will rather just skip issuing
-  /// the callback on your class. This means that if the underlying
-  /// <code>PPB_TCPSocket</code> resource outlives your class, the browser
-  /// will still try to write into your buffer when the operation completes.
-  /// The buffer must be kept valid until then to avoid memory corruption.
-  /// If you want to release the buffer while the <code>Read()</code> call is
-  /// still pending, you should call <code>Close()</code> to ensure that the
-  /// buffer won't be accessed in the future.
-  ///
-  /// @param[out] buffer The buffer to store the received data on success. It
-  /// must be at least as large as <code>bytes_to_read</code>.
-  /// @param[in] bytes_to_read The number of bytes to read.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return A non-negative number on success to indicate how many bytes have
-  /// been read, 0 means that end-of-file was reached; otherwise, an error code
-  /// from <code>pp_errors.h</code>.
-  int32_t Read(char* buffer,
-               int32_t bytes_to_read,
-               const CompletionCallback& callback);
-
-  /// Writes data to the socket. The socket must be connected. It may perform a
-  /// partial write.
-  ///
-  /// @param[in] buffer The buffer containing the data to write.
-  /// @param[in] bytes_to_write The number of bytes to write.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return A non-negative number on success to indicate how many bytes have
-  /// been written; otherwise, an error code from <code>pp_errors.h</code>.
-  int32_t Write(const char* buffer,
-                int32_t bytes_to_write,
-                const CompletionCallback& callback);
-
-  /// Starts listening. The socket must be bound and not connected.
-  ///
-  /// @param[in] backlog A hint to determine the maximum length to which the
-  /// queue of pending connections may grow.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>,
-  /// including (but not limited to):
-  /// - <code>PP_ERROR_NOACCESS</code>: the caller doesn't have required
-  ///   permissions.
-  /// - <code>PP_ERROR_ADDRESS_IN_USE</code>: Another socket is already
-  ///   listening on the same port.
-  int32_t Listen(int32_t backlog,
-                 const CompletionCallback& callback);
-
-  /// Accepts a connection. The socket must be listening.
-  ///
-  /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be
-  /// called upon completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>,
-  /// including (but not limited to):
-  /// - <code>PP_ERROR_CONNECTION_ABORTED</code>: A connection has been aborted.
-  int32_t Accept(const CompletionCallbackWithOutput<TCPSocket>& callback);
-
-  /// Cancels all pending operations and closes the socket. Any pending
-  /// callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> if
-  /// pending IO was interrupted. After a call to this method, no output buffer
-  /// pointers passed into previous <code>Read()</code> or <code>Accept()</code>
-  /// calls will be accessed. It is not valid to call <code>Connect()</code> or
-  /// <code>Listen()</code> again.
-  ///
-  /// The socket is implicitly closed if it is destroyed, so you are not
-  /// required to call this method.
-  void Close();
-
-  /// Sets a socket option on the TCP socket.
-  /// Please see the <code>PP_TCPSocket_Option</code> description for option
-  /// names, value types and allowed values.
-  ///
-  /// @param[in] name The option to set.
-  /// @param[in] value The option value to set.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  int32_t SetOption(PP_TCPSocket_Option name,
-                    const Var& value,
-                    const CompletionCallback& callback);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_TCP_SOCKET_H_
diff --git a/cpp/text_input_controller.cc b/cpp/text_input_controller.cc
deleted file mode 100644
index 70d6180..0000000
--- a/cpp/text_input_controller.cc
+++ /dev/null
@@ -1,63 +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.
-
-#include "ppapi/cpp/text_input_controller.h"
-
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/rect.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_TextInputController_1_0>() {
-  return PPB_TEXTINPUTCONTROLLER_INTERFACE_1_0;
-}
-
-}  // namespace
-
-
-TextInputController::TextInputController(const InstanceHandle& instance)
-    : instance_(instance) {
-}
-
-TextInputController::~TextInputController() {
-}
-
-void TextInputController::SetTextInputType(PP_TextInput_Type type) {
-  if (has_interface<PPB_TextInputController_1_0>()) {
-    get_interface<PPB_TextInputController_1_0>()->SetTextInputType(
-        instance_.pp_instance(), type);
-  }
-}
-
-void TextInputController::UpdateCaretPosition(const Rect& caret) {
-  if (has_interface<PPB_TextInputController_1_0>()) {
-    get_interface<PPB_TextInputController_1_0>()->UpdateCaretPosition(
-        instance_.pp_instance(), &caret.pp_rect());
-  }
-}
-
-void TextInputController::CancelCompositionText() {
-  if (has_interface<PPB_TextInputController_1_0>()) {
-    get_interface<PPB_TextInputController_1_0>()->CancelCompositionText(
-        instance_.pp_instance());
-  }
-}
-
-void TextInputController::UpdateSurroundingText(const Var& text,
-                                                uint32_t caret,
-                                                uint32_t anchor) {
-  if (has_interface<PPB_TextInputController_1_0>()) {
-    get_interface<PPB_TextInputController_1_0>()->UpdateSurroundingText(
-        instance_.pp_instance(),
-        text.pp_var(),
-        caret,
-        anchor);
-  }
-}
-
-
-}  // namespace pp
diff --git a/cpp/text_input_controller.h b/cpp/text_input_controller.h
deleted file mode 100644
index 483f3cb..0000000
--- a/cpp/text_input_controller.h
+++ /dev/null
@@ -1,72 +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.
-
-#ifndef PPAPI_CPP_TEXT_INPUT_CONTROLLER_H_
-#define PPAPI_CPP_TEXT_INPUT_CONTROLLER_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_text_input_controller.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/var.h"
-
-/// @file
-/// This file defines the APIs for text input handling.
-
-namespace pp {
-
-class Rect;
-
-/// This class can be used for giving hints to the browser about the text input
-/// status of plugins.
-class TextInputController {
- public:
-  /// A constructor for creating a <code>TextInputController</code>.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  explicit TextInputController(const InstanceHandle& instance);
-
-  /// Destructor.
-  ~TextInputController();
-
-  /// SetTextInputType() informs the browser about the current text input mode
-  /// of the plugin.
-  ///
-  /// @param[in] type The type of text input type.
-  void SetTextInputType(PP_TextInput_Type type);
-
-  /// UpdateCaretPosition() informs the browser about the coordinates of the
-  /// text input caret area.
-  ///
-  /// @param[in] caret A rectangle indicating the caret area.
-  void UpdateCaretPosition(const Rect& caret);
-
-  /// CancelCompositionText() informs the browser that the current composition
-  /// text is cancelled by the plugin.
-  void CancelCompositionText();
-
-  /// UpdateSurroundingText() informs the browser about the current text
-  /// selection and surrounding text.
-  ///
-  /// @param[in] text A UTF-8 sting indicating string buffer of current input
-  /// context.
-  ///
-  /// @param[in] caret A integer indicating the byte index of caret location in
-  /// <code>text</code>.
-  ///
-  /// @param[in] caret A integer indicating the byte index of anchor location in
-  /// <code>text</code>. If there is no selection, this value should be equal to
-  /// <code>caret</code>.
-  void UpdateSurroundingText(const Var& text,
-                             uint32_t caret,
-                             uint32_t anchor);
-
- private:
-  InstanceHandle instance_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_TEXT_INPUT_CONTROLLER_H_
diff --git a/cpp/touch_point.h b/cpp/touch_point.h
deleted file mode 100644
index 40e8c64..0000000
--- a/cpp/touch_point.h
+++ /dev/null
@@ -1,66 +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_CPP_TOUCH_POINT_H_
-#define PPAPI_CPP_TOUCH_POINT_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_input_event.h"
-#include "ppapi/cpp/input_event.h"
-#include "ppapi/cpp/point.h"
-
-namespace pp {
-
-/// Wrapper class for PP_TouchPoint.
-class TouchPoint {
- public:
-  TouchPoint() : touch_point_(PP_MakeTouchPoint()) {}
-
-  TouchPoint(const PP_TouchPoint& point)
-      : touch_point_(point), tilt_(PP_MakeFloatPoint(0, 0)) {}
-
-  TouchPoint(const PP_TouchPoint& point, const PP_FloatPoint& tilt)
-      : touch_point_(point), tilt_(tilt) {}
-
-  /// @return The identifier for this TouchPoint. This corresponds to the order
-  /// in which the points were pressed. For example, the first point to be
-  /// pressed has an id of 0, the second has an id of 1, and so on. An id can be
-  /// reused when a touch point is released.  For example, if two fingers are
-  /// down, with id 0 and 1, and finger 0 releases, the next finger to be
-  /// pressed can be assigned to id 0.
-  uint32_t id() const { return touch_point_.id; }
-
-  /// @return The x-y coordinates of this TouchPoint, in DOM coordinate space.
-  FloatPoint position() const {
-    return pp::FloatPoint(touch_point_.position);
-  }
-
-  /// @return The elliptical radii, in screen pixels, in the x and y direction
-  /// of this TouchPoint.
-  FloatPoint radii() const { return pp::FloatPoint(touch_point_.radius); }
-
-  /// @return The angle of rotation of the elliptical model of this TouchPoint
-  /// from the y-axis.
-  float rotation_angle() const { return touch_point_.rotation_angle; }
-
-  /// @return The pressure applied to this TouchPoint.  This is typically a
-  /// value between 0 and 1, with 0 indicating no pressure and 1 indicating
-  /// some maximum pressure, but scaling differs depending on the hardware and
-  /// the value is not guaranteed to stay within that range.
-  float pressure() const { return touch_point_.pressure; }
-
-  /// @return The tilt of this touchpoint. This is a float point. Values of x
-  /// and y are between 0 and 90, with 0 indicating 0 degrees and 90 indicating
-  //  90 degrees.
-  PP_FloatPoint tilt() const { return tilt_; }
-
- private:
-  PP_TouchPoint touch_point_;
-  PP_FloatPoint tilt_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_TOUCH_POINT_H_
diff --git a/cpp/trusted/DEPS b/cpp/trusted/DEPS
deleted file mode 100644
index 52d9c47..0000000
--- a/cpp/trusted/DEPS
+++ /dev/null
@@ -1,5 +0,0 @@
-include_rules = [
-  "+ppapi/c/private",
-  "+ppapi/c/trusted",
-  "+ppapi/cpp/private",
-]
diff --git a/cpp/trusted/browser_font_trusted.cc b/cpp/trusted/browser_font_trusted.cc
deleted file mode 100644
index 6ba0f4b..0000000
--- a/cpp/trusted/browser_font_trusted.cc
+++ /dev/null
@@ -1,222 +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/cpp/trusted/browser_font_trusted.h"
-
-#include <algorithm>
-
-#include "ppapi/cpp/image_data.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/point.h"
-#include "ppapi/cpp/rect.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_BrowserFont_Trusted_1_0>() {
-  return PPB_BROWSERFONT_TRUSTED_INTERFACE_1_0;
-}
-
-}  // namespace
-
-// BrowserFontDescription ------------------------------------------------------
-
-BrowserFontDescription::BrowserFontDescription() {
-  pp_font_description_.face = face_.pp_var();
-  set_family(PP_BROWSERFONT_TRUSTED_FAMILY_DEFAULT);
-  set_size(0);
-  set_weight(PP_BROWSERFONT_TRUSTED_WEIGHT_NORMAL);
-  set_italic(false);
-  set_small_caps(false);
-  set_letter_spacing(0);
-  set_word_spacing(0);
-}
-
-BrowserFontDescription::BrowserFontDescription(
-    const BrowserFontDescription& other) {
-  set_face(other.face());
-  set_family(other.family());
-  set_size(other.size());
-  set_weight(other.weight());
-  set_italic(other.italic());
-  set_small_caps(other.small_caps());
-  set_letter_spacing(other.letter_spacing());
-  set_word_spacing(other.word_spacing());
-}
-
-BrowserFontDescription::~BrowserFontDescription() {
-}
-
-BrowserFontDescription& BrowserFontDescription::operator=(
-    const BrowserFontDescription& other) {
-  pp_font_description_ = other.pp_font_description_;
-
-  // Be careful about the refcount of the string, the copy that operator= made
-  // above didn't copy a ref.
-  pp_font_description_.face = PP_MakeUndefined();
-  set_face(other.face());
-
-  return *this;
-}
-
-// BrowserFontTextRun ----------------------------------------------------------
-
-BrowserFontTextRun::BrowserFontTextRun() {
-  pp_text_run_.text = text_.pp_var();
-  pp_text_run_.rtl = PP_FALSE;
-  pp_text_run_.override_direction = PP_FALSE;
-}
-
-BrowserFontTextRun::BrowserFontTextRun(const std::string& text,
-                                       bool rtl,
-                                       bool override_direction)
-    : text_(text) {
-  pp_text_run_.text = text_.pp_var();
-  pp_text_run_.rtl = PP_FromBool(rtl);
-  pp_text_run_.override_direction = PP_FromBool(override_direction);
-}
-
-BrowserFontTextRun::BrowserFontTextRun(const BrowserFontTextRun& other)
-    : text_(other.text_) {
-  pp_text_run_.text = text_.pp_var();
-  pp_text_run_.rtl = other.pp_text_run_.rtl;
-  pp_text_run_.override_direction = other.pp_text_run_.override_direction;
-}
-
-BrowserFontTextRun::~BrowserFontTextRun() {
-}
-
-BrowserFontTextRun& BrowserFontTextRun::operator=(
-    const BrowserFontTextRun& other) {
-  pp_text_run_ = other.pp_text_run_;
-  text_ = other.text_;
-  pp_text_run_.text = text_.pp_var();
-  return *this;
-}
-
-// BrowserFont_Trusted ---------------------------------------------------------
-
-BrowserFont_Trusted::BrowserFont_Trusted() : Resource() {
-}
-
-BrowserFont_Trusted::BrowserFont_Trusted(PP_Resource resource)
-    : Resource(resource) {
-}
-
-BrowserFont_Trusted::BrowserFont_Trusted(
-    const InstanceHandle& instance,
-    const BrowserFontDescription& description) {
-  if (has_interface<PPB_BrowserFont_Trusted_1_0>()) {
-    PassRefFromConstructor(get_interface<PPB_BrowserFont_Trusted_1_0>()->Create(
-        instance.pp_instance(),
-        &description.pp_font_description()));
-  }
-}
-
-BrowserFont_Trusted::BrowserFont_Trusted(const BrowserFont_Trusted& other)
-    : Resource(other) {
-}
-
-BrowserFont_Trusted& BrowserFont_Trusted::operator=(
-    const BrowserFont_Trusted& other) {
-  Resource::operator=(other);
-  return *this;
-}
-
-// static
-Var BrowserFont_Trusted::GetFontFamilies(const InstanceHandle& instance) {
-  if (!has_interface<PPB_BrowserFont_Trusted_1_0>())
-    return Var();
-
-  return Var(PASS_REF,
-             get_interface<PPB_BrowserFont_Trusted_1_0>()->GetFontFamilies(
-                 instance.pp_instance()));
-}
-
-bool BrowserFont_Trusted::Describe(
-    BrowserFontDescription* description,
-    PP_BrowserFont_Trusted_Metrics* metrics) const {
-  // Be careful with ownership of the |face| string. It will come back with
-  // a ref of 1, which we want to assign to the |face_| member of the C++ class.
-  if (has_interface<PPB_BrowserFont_Trusted_1_0>()) {
-    if (!get_interface<PPB_BrowserFont_Trusted_1_0>()->Describe(
-        pp_resource(), &description->pp_font_description_, metrics))
-      return false;
-  }
-  description->face_ = Var(PASS_REF,
-                           description->pp_font_description_.face);
-  return true;
-}
-
-bool BrowserFont_Trusted::DrawTextAt(ImageData* dest,
-                                     const BrowserFontTextRun& text,
-                                     const Point& position,
-                                     uint32_t color,
-                                     const Rect& clip,
-                                     bool image_data_is_opaque) const {
-  if (has_interface<PPB_BrowserFont_Trusted_1_0>()) {
-    return PP_ToBool(get_interface<PPB_BrowserFont_Trusted_1_0>()->DrawTextAt(
-        pp_resource(),
-        dest->pp_resource(),
-        &text.pp_text_run(),
-        &position.pp_point(),
-        color,
-        &clip.pp_rect(),
-        PP_FromBool(image_data_is_opaque)));
-  }
-  return false;
-}
-
-int32_t BrowserFont_Trusted::MeasureText(const BrowserFontTextRun& text) const {
-  if (has_interface<PPB_BrowserFont_Trusted_1_0>()) {
-    return get_interface<PPB_BrowserFont_Trusted_1_0>()->MeasureText(
-        pp_resource(),
-        &text.pp_text_run());
-  }
-  return -1;
-}
-
-uint32_t BrowserFont_Trusted::CharacterOffsetForPixel(
-    const BrowserFontTextRun& text,
-    int32_t pixel_position) const {
-  if (has_interface<PPB_BrowserFont_Trusted_1_0>()) {
-    return get_interface<PPB_BrowserFont_Trusted_1_0>()->
-        CharacterOffsetForPixel(
-            pp_resource(),
-            &text.pp_text_run(),
-            pixel_position);
-  }
-  return 0;
-}
-
-int32_t BrowserFont_Trusted::PixelOffsetForCharacter(
-    const BrowserFontTextRun& text,
-    uint32_t char_offset) const {
-  if (has_interface<PPB_BrowserFont_Trusted_1_0>()) {
-    return get_interface<PPB_BrowserFont_Trusted_1_0>()->
-        PixelOffsetForCharacter(
-           pp_resource(),
-           &text.pp_text_run(),
-           char_offset);
-  }
-  return 0;
-}
-
-bool BrowserFont_Trusted::DrawSimpleText(
-    ImageData* dest,
-    const std::string& text,
-    const Point& position,
-    uint32_t color,
-    bool image_data_is_opaque) const {
-  return DrawTextAt(dest, BrowserFontTextRun(text), position, color,
-                    Rect(dest->size()), image_data_is_opaque);
-}
-
-int32_t BrowserFont_Trusted::MeasureSimpleText(const std::string& text) const {
-  return MeasureText(BrowserFontTextRun(text));
-}
-
-}  // namespace pp
diff --git a/cpp/trusted/browser_font_trusted.h b/cpp/trusted/browser_font_trusted.h
deleted file mode 100644
index 5a755e7..0000000
--- a/cpp/trusted/browser_font_trusted.h
+++ /dev/null
@@ -1,149 +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_CPP_TRUSTED_BROWSER_FONT_TRUSTED_H_
-#define PPAPI_CPP_TRUSTED_BROWSER_FONT_TRUSTED_H_
-
-#include <stdint.h>
-
-#include <string>
-
-#include "ppapi/c/trusted/ppb_browser_font_trusted.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-class ImageData;
-class InstanceHandle;
-class Point;
-class Rect;
-
-// BrowserFontDescription ------------------------------------------------------
-
-class BrowserFontDescription {
- public:
-  BrowserFontDescription();
-  BrowserFontDescription(const BrowserFontDescription& other);
-  ~BrowserFontDescription();
-
-  BrowserFontDescription& operator=(const BrowserFontDescription& other);
-
-  const PP_BrowserFont_Trusted_Description& pp_font_description() const {
-    return pp_font_description_;
-  }
-
-  Var face() const { return face_; }
-  void set_face(const Var& face) {
-    face_ = face;
-    pp_font_description_.face = face_.pp_var();
-  }
-
-  PP_BrowserFont_Trusted_Family family() const {
-    return pp_font_description_.family;
-  }
-  void set_family(PP_BrowserFont_Trusted_Family f) {
-    pp_font_description_.family = f;
-  }
-
-  uint32_t size() const { return pp_font_description_.size; }
-  void set_size(uint32_t s) { pp_font_description_.size = s; }
-
-  PP_BrowserFont_Trusted_Weight weight() const {
-    return pp_font_description_.weight;
-  }
-  void set_weight(PP_BrowserFont_Trusted_Weight w) {
-    pp_font_description_.weight = w;
-  }
-
-  bool italic() const { return PP_ToBool(pp_font_description_.italic); }
-  void set_italic(bool i) { pp_font_description_.italic = PP_FromBool(i); }
-
-  bool small_caps() const {
-    return PP_ToBool(pp_font_description_.small_caps);
-  }
-  void set_small_caps(bool s) {
-    pp_font_description_.small_caps = PP_FromBool(s);
-  }
-
-  int letter_spacing() const { return pp_font_description_.letter_spacing; }
-  void set_letter_spacing(int s) { pp_font_description_.letter_spacing = s; }
-
-  int word_spacing() const { return pp_font_description_.word_spacing; }
-  void set_word_spacing(int w) { pp_font_description_.word_spacing = w; }
-
- private:
-  friend class BrowserFont_Trusted;
-
-  Var face_;  // Manages memory for pp_font_description_.face
-  PP_BrowserFont_Trusted_Description pp_font_description_;
-};
-
-// BrowserFontTextRun ----------------------------------------------------------
-
-class BrowserFontTextRun {
- public:
-  BrowserFontTextRun();
-  BrowserFontTextRun(const std::string& text,
-                     bool rtl = false,
-                     bool override_direction = false);
-  BrowserFontTextRun(const BrowserFontTextRun& other);
-  ~BrowserFontTextRun();
-
-  BrowserFontTextRun& operator=(const BrowserFontTextRun& other);
-
-  const PP_BrowserFont_Trusted_TextRun& pp_text_run() const {
-    return pp_text_run_;
-  }
-
- private:
-  Var text_;  // Manages memory for the reference in pp_text_run_.
-  PP_BrowserFont_Trusted_TextRun pp_text_run_;
-};
-
-// BrowserFont_Trusted ---------------------------------------------------------
-
-// Provides access to system fonts.
-class BrowserFont_Trusted : public Resource {
- public:
-  // Creates an is_null() Font object.
-  BrowserFont_Trusted();
-
-  explicit BrowserFont_Trusted(PP_Resource resource);
-  BrowserFont_Trusted(const InstanceHandle& instance,
-                      const BrowserFontDescription& description);
-  BrowserFont_Trusted(const BrowserFont_Trusted& other);
-
-  BrowserFont_Trusted& operator=(const BrowserFont_Trusted& other);
-
-  // PPB_Font methods:
-  static Var GetFontFamilies(const InstanceHandle& instance);
-  bool Describe(BrowserFontDescription* description,
-                PP_BrowserFont_Trusted_Metrics* metrics) const;
-  bool DrawTextAt(ImageData* dest,
-                  const BrowserFontTextRun& text,
-                  const Point& position,
-                  uint32_t color,
-                  const Rect& clip,
-                  bool image_data_is_opaque) const;
-  int32_t MeasureText(const BrowserFontTextRun& text) const;
-  uint32_t CharacterOffsetForPixel(const BrowserFontTextRun& text,
-                                   int32_t pixel_position) const;
-  int32_t PixelOffsetForCharacter(const BrowserFontTextRun& text,
-                                  uint32_t char_offset) const;
-
-  // Convenience function that assumes a left-to-right string with no clipping.
-  bool DrawSimpleText(ImageData* dest,
-                      const std::string& text,
-                      const Point& position,
-                      uint32_t color,
-                      bool image_data_is_opaque = false) const;
-
-  // Convenience function that assumes a left-to-right string.
-  int32_t MeasureSimpleText(const std::string& text) const;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_TRUSTED_BROWSER_FONT_TRUSTED_H_
diff --git a/cpp/trusted/file_chooser_trusted.cc b/cpp/trusted/file_chooser_trusted.cc
deleted file mode 100644
index 4d06b53..0000000
--- a/cpp/trusted/file_chooser_trusted.cc
+++ /dev/null
@@ -1,81 +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/cpp/trusted/file_chooser_trusted.h"
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/var.h"
-#include "ppapi/c/trusted/ppb_file_chooser_trusted.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_FileChooserTrusted_0_5>() {
-  return PPB_FILECHOOSER_TRUSTED_INTERFACE_0_5;
-}
-
-template <> const char* interface_name<PPB_FileChooserTrusted_0_6>() {
-  return PPB_FILECHOOSER_TRUSTED_INTERFACE_0_6;
-}
-
-}  // namespace
-
-FileChooser_Trusted::FileChooser_Trusted() : save_as_(false) {
-}
-
-FileChooser_Trusted::FileChooser_Trusted(const InstanceHandle& instance,
-                                         PP_FileChooserMode_Dev mode,
-                                         const Var& accept_types,
-                                         bool save_as,
-                                         const std::string& suggested_file_name)
-    : FileChooser_Dev(instance, mode, accept_types),
-      save_as_(save_as),
-      suggested_file_name_(suggested_file_name) {
-}
-
-FileChooser_Trusted::FileChooser_Trusted(const FileChooser_Trusted& other)
-    : FileChooser_Dev(other),
-      save_as_(other.save_as_),
-      suggested_file_name_(other.suggested_file_name_) {
-}
-
-FileChooser_Trusted& FileChooser_Trusted::operator=(
-    const FileChooser_Trusted& other) {
-  FileChooser_Dev::operator=(other);
-  save_as_ = other.save_as_;
-  suggested_file_name_ = other.suggested_file_name_;
-  return *this;
-}
-
-int32_t FileChooser_Trusted::Show(
-    const CompletionCallbackWithOutput< std::vector<FileRef> >& callback) {
-  if (has_interface<PPB_FileChooserTrusted_0_6>()) {
-    return get_interface<PPB_FileChooserTrusted_0_6>()->ShowWithoutUserGesture(
-        pp_resource(),
-        PP_FromBool(save_as_),
-        Var(suggested_file_name_).pp_var(),
-        callback.output(),
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_FileChooserTrusted_0_5>()) {
-    // Data for our callback. The callback handler will delete it.
-    ChooseCallbackData0_5* data = new ChooseCallbackData0_5;
-    data->file_chooser = pp_resource();
-    data->output = callback.output();
-    data->original_callback = callback.pp_completion_callback();
-
-    return get_interface<PPB_FileChooserTrusted_0_5>()->ShowWithoutUserGesture(
-        pp_resource(),
-        PP_FromBool(save_as_),
-        Var(suggested_file_name_).pp_var(),
-        PP_MakeCompletionCallback(&CallbackConverter, data));
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-}  // namespace pp
diff --git a/cpp/trusted/file_chooser_trusted.h b/cpp/trusted/file_chooser_trusted.h
deleted file mode 100644
index cf5df86..0000000
--- a/cpp/trusted/file_chooser_trusted.h
+++ /dev/null
@@ -1,43 +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_CPP_TRUSTED_FILE_CHOOSER_TRUSTED_H_
-#define PPAPI_CPP_TRUSTED_FILE_CHOOSER_TRUSTED_H_
-
-#include <stdint.h>
-
-#include <string>
-
-#include "ppapi/cpp/dev/file_chooser_dev.h"
-
-namespace pp {
-
-class FileChooser_Trusted : public FileChooser_Dev {
- public:
-  /// Creates an is_null() FileChooser_Trusted object.
-  FileChooser_Trusted();
-
-  FileChooser_Trusted(const InstanceHandle& instance,
-                      PP_FileChooserMode_Dev mode,
-                      const Var& accept_types,
-                      bool save_as,
-                      const std::string& suggested_file_name);
-
-  FileChooser_Trusted(const FileChooser_Trusted& other);
-
-  FileChooser_Trusted& operator=(const FileChooser_Trusted& other);
-
-  // Overrides of method in superclass. This shows without requiring a user
-  // gesture (and can also show save dialogs).
-  virtual int32_t Show(
-      const CompletionCallbackWithOutput< std::vector<FileRef> >& callback);
-
- private:
-  bool save_as_;
-  std::string suggested_file_name_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_TRUSTED_FILE_CHOOSER_TRUSTED_H_
diff --git a/cpp/udp_socket.cc b/cpp/udp_socket.cc
deleted file mode 100644
index 784538a..0000000
--- a/cpp/udp_socket.cc
+++ /dev/null
@@ -1,194 +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.
-
-#include "ppapi/cpp/udp_socket.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_UDPSocket_1_0>() {
-  return PPB_UDPSOCKET_INTERFACE_1_0;
-}
-
-template <> const char* interface_name<PPB_UDPSocket_1_1>() {
-  return PPB_UDPSOCKET_INTERFACE_1_1;
-}
-
-template <> const char* interface_name<PPB_UDPSocket_1_2>() {
-  return PPB_UDPSOCKET_INTERFACE_1_2;
-}
-
-}  // namespace
-
-UDPSocket::UDPSocket() {
-}
-
-UDPSocket::UDPSocket(const InstanceHandle& instance) {
-  if (has_interface<PPB_UDPSocket_1_2>()) {
-    PassRefFromConstructor(get_interface<PPB_UDPSocket_1_2>()->Create(
-        instance.pp_instance()));
-  } else if (has_interface<PPB_UDPSocket_1_1>()) {
-    PassRefFromConstructor(get_interface<PPB_UDPSocket_1_1>()->Create(
-        instance.pp_instance()));
-  } else if (has_interface<PPB_UDPSocket_1_0>()) {
-    PassRefFromConstructor(get_interface<PPB_UDPSocket_1_0>()->Create(
-        instance.pp_instance()));
-  }
-}
-
-UDPSocket::UDPSocket(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-UDPSocket::UDPSocket(const UDPSocket& other) : Resource(other) {
-}
-
-UDPSocket::~UDPSocket() {
-}
-
-UDPSocket& UDPSocket::operator=(const UDPSocket& other) {
-  Resource::operator=(other);
-  return *this;
-}
-
-// static
-bool UDPSocket::IsAvailable() {
-  return has_interface<PPB_UDPSocket_1_2>() ||
-         has_interface<PPB_UDPSocket_1_1>() ||
-         has_interface<PPB_UDPSocket_1_0>();
-}
-
-int32_t UDPSocket::Bind(const NetAddress& addr,
-                        const CompletionCallback& callback) {
-  if (has_interface<PPB_UDPSocket_1_2>()) {
-    return get_interface<PPB_UDPSocket_1_2>()->Bind(
-        pp_resource(), addr.pp_resource(), callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_UDPSocket_1_1>()) {
-    return get_interface<PPB_UDPSocket_1_1>()->Bind(
-        pp_resource(), addr.pp_resource(), callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_UDPSocket_1_0>()) {
-    return get_interface<PPB_UDPSocket_1_0>()->Bind(
-        pp_resource(), addr.pp_resource(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-NetAddress UDPSocket::GetBoundAddress() {
-  if (has_interface<PPB_UDPSocket_1_2>()) {
-    return NetAddress(
-        PASS_REF,
-        get_interface<PPB_UDPSocket_1_2>()->GetBoundAddress(pp_resource()));
-  }
-  if (has_interface<PPB_UDPSocket_1_1>()) {
-    return NetAddress(
-        PASS_REF,
-        get_interface<PPB_UDPSocket_1_1>()->GetBoundAddress(pp_resource()));
-  }
-  if (has_interface<PPB_UDPSocket_1_0>()) {
-    return NetAddress(
-        PASS_REF,
-        get_interface<PPB_UDPSocket_1_0>()->GetBoundAddress(pp_resource()));
-  }
-  return NetAddress();
-}
-
-int32_t UDPSocket::RecvFrom(
-    char* buffer,
-    int32_t num_bytes,
-    const CompletionCallbackWithOutput<NetAddress>& callback) {
-  if (has_interface<PPB_UDPSocket_1_2>()) {
-    return get_interface<PPB_UDPSocket_1_2>()->RecvFrom(
-        pp_resource(), buffer, num_bytes, callback.output(),
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_UDPSocket_1_1>()) {
-    return get_interface<PPB_UDPSocket_1_1>()->RecvFrom(
-        pp_resource(), buffer, num_bytes, callback.output(),
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_UDPSocket_1_0>()) {
-    return get_interface<PPB_UDPSocket_1_0>()->RecvFrom(
-        pp_resource(), buffer, num_bytes, callback.output(),
-        callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t UDPSocket::SendTo(const char* buffer,
-                          int32_t num_bytes,
-                          const NetAddress& addr,
-                          const CompletionCallback& callback) {
-  if (has_interface<PPB_UDPSocket_1_2>()) {
-    return get_interface<PPB_UDPSocket_1_2>()->SendTo(
-        pp_resource(), buffer, num_bytes, addr.pp_resource(),
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_UDPSocket_1_1>()) {
-    return get_interface<PPB_UDPSocket_1_1>()->SendTo(
-        pp_resource(), buffer, num_bytes, addr.pp_resource(),
-        callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_UDPSocket_1_0>()) {
-    return get_interface<PPB_UDPSocket_1_0>()->SendTo(
-        pp_resource(), buffer, num_bytes, addr.pp_resource(),
-        callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-void UDPSocket::Close() {
-  if (has_interface<PPB_UDPSocket_1_2>())
-    return get_interface<PPB_UDPSocket_1_2>()->Close(pp_resource());
-  if (has_interface<PPB_UDPSocket_1_1>())
-    return get_interface<PPB_UDPSocket_1_1>()->Close(pp_resource());
-  if (has_interface<PPB_UDPSocket_1_0>())
-    return get_interface<PPB_UDPSocket_1_0>()->Close(pp_resource());
-}
-
-int32_t UDPSocket::SetOption(PP_UDPSocket_Option name,
-                             const Var& value,
-                             const CompletionCallback& callback) {
-  if (has_interface<PPB_UDPSocket_1_2>()) {
-    return get_interface<PPB_UDPSocket_1_2>()->SetOption(
-        pp_resource(), name, value.pp_var(), callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_UDPSocket_1_1>()) {
-    return get_interface<PPB_UDPSocket_1_1>()->SetOption(
-        pp_resource(), name, value.pp_var(), callback.pp_completion_callback());
-  }
-  if (has_interface<PPB_UDPSocket_1_0>()) {
-    return get_interface<PPB_UDPSocket_1_0>()->SetOption(
-        pp_resource(), name, value.pp_var(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t UDPSocket::JoinGroup(const NetAddress& group,
-                             const CompletionCallback callback) {
-  if (has_interface<PPB_UDPSocket_1_2>()) {
-    return get_interface<PPB_UDPSocket_1_2>()->JoinGroup(
-        pp_resource(), group.pp_resource(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t UDPSocket::LeaveGroup(const NetAddress& group,
-                             const CompletionCallback callback) {
-  if (has_interface<PPB_UDPSocket_1_2>()) {
-    return get_interface<PPB_UDPSocket_1_2>()->LeaveGroup(
-        pp_resource(), group.pp_resource(), callback.pp_completion_callback());
-  }
-  return callback.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-}  // namespace pp
diff --git a/cpp/udp_socket.h b/cpp/udp_socket.h
deleted file mode 100644
index 7eea265..0000000
--- a/cpp/udp_socket.h
+++ /dev/null
@@ -1,189 +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.
-
-#ifndef PPAPI_CPP_UDP_SOCKET_H_
-#define PPAPI_CPP_UDP_SOCKET_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_udp_socket.h"
-#include "ppapi/cpp/net_address.h"
-#include "ppapi/cpp/pass_ref.h"
-#include "ppapi/cpp/resource.h"
-
-namespace pp {
-
-class CompletionCallback;
-class InstanceHandle;
-class Var;
-
-template <typename T> class CompletionCallbackWithOutput;
-
-/// The <code>UDPSocket</code> class provides UDP socket operations.
-///
-/// Permissions: Apps permission <code>socket</code> with subrule
-/// <code>udp-bind</code> is required for <code>Bind()</code>; subrule
-/// <code>udp-send-to</code> is required for <code>SendTo()</code>.
-/// For more details about network communication permissions, please see:
-/// http://developer.chrome.com/apps/app_network.html
-class UDPSocket : public Resource {
- public:
-  /// Default constructor for creating an is_null() <code>UDPSocket</code>
-  /// object.
-  UDPSocket();
-
-  /// A constructor used to create a <code>UDPSocket</code> object.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  explicit UDPSocket(const InstanceHandle& instance);
-
-  /// A constructor used when you have received a <code>PP_Resource</code> as a
-  /// return value that has had 1 ref added for you.
-  ///
-  /// @param[in] resource A <code>PPB_UDPSocket</code> resource.
-  UDPSocket(PassRef, PP_Resource resource);
-
-  /// The copy constructor for <code>UDPSocket</code>.
-  ///
-  /// @param[in] other A reference to another <code>UDPSocket</code>.
-  UDPSocket(const UDPSocket& other);
-
-  /// The destructor.
-  virtual ~UDPSocket();
-
-  /// The assignment operator for <code>UDPSocket</code>.
-  ///
-  /// @param[in] other A reference to another <code>UDPSocket</code>.
-  ///
-  /// @return A reference to this <code>UDPSocket</code> object.
-  UDPSocket& operator=(const UDPSocket& other);
-
-  /// Static function for determining whether the browser supports the
-  /// <code>PPB_UDPSocket</code> interface.
-  ///
-  /// @return true if the interface is available, false otherwise.
-  static bool IsAvailable();
-
-  /// Binds the socket to the given address.
-  ///
-  /// @param[in] addr A <code>NetAddress</code> object.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  /// <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have
-  /// required permissions. <code>PP_ERROR_ADDRESS_IN_USE</code> will be
-  /// returned if the address is already in use.
-  int32_t Bind(const NetAddress& addr,
-               const CompletionCallback& callback);
-
-  /// Get the address that the socket is bound to. The socket must be bound.
-  ///
-  /// @return A <code>NetAddress</code> object. The object will be null
-  /// (i.e., is_null() returns true) on failure.
-  NetAddress GetBoundAddress();
-
-  /// Receives data from the socket and stores the source address. The socket
-  /// must be bound.
-  ///
-  /// <strong>Caveat:</strong> You should be careful about the lifetime of
-  /// <code>buffer</code>. Typically you will use a
-  /// <code>CompletionCallbackFactory</code> to scope callbacks to the lifetime
-  /// of your class. When your class goes out of scope, the callback factory
-  /// will not actually cancel the operation, but will rather just skip issuing
-  /// the callback on your class. This means that if the underlying
-  /// <code>PPB_UDPSocket</code> resource outlives your class, the browser
-  /// will still try to write into your buffer when the operation completes.
-  /// The buffer must be kept valid until then to avoid memory corruption.
-  /// If you want to release the buffer while the <code>RecvFrom()</code> call
-  /// is still pending, you should call <code>Close()</code> to ensure that the
-  /// buffer won't be accessed in the future.
-  ///
-  /// @param[out] buffer The buffer to store the received data on success. It
-  /// must be at least as large as <code>num_bytes</code>.
-  /// @param[in] num_bytes The number of bytes to receive.
-  /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be
-  /// called upon completion.
-  ///
-  /// @return A non-negative number on success to indicate how many bytes have
-  /// been received; otherwise, an error code from <code>pp_errors.h</code>.
-  int32_t RecvFrom(
-      char* buffer,
-      int32_t num_bytes,
-      const CompletionCallbackWithOutput<NetAddress>& callback);
-
-  /// Sends data to a specific destination. The socket must be bound.
-  ///
-  /// @param[in] buffer The buffer containing the data to send.
-  /// @param[in] num_bytes The number of bytes to send.
-  /// @param[in] addr A <code>NetAddress</code> object holding the destination
-  /// address.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return A non-negative number on success to indicate how many bytes have
-  /// been sent; otherwise, an error code from <code>pp_errors.h</code>.
-  /// <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have
-  /// required permissions.
-  /// <code>PP_ERROR_INPROGRESS</code> will be returned if the socket is busy
-  /// sending. The caller should wait until a pending send completes before
-  /// retrying.
-  int32_t SendTo(const char* buffer,
-                 int32_t num_bytes,
-                 const NetAddress& addr,
-                 const CompletionCallback& callback);
-
-  /// Cancels all pending reads and writes, and closes the socket. Any pending
-  /// callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> if
-  /// pending IO was interrupted. After a call to this method, no output
-  /// paramters passed into previous <code>RecvFrom()</code> calls will be
-  /// accessed. It is not valid to call <code>Bind()</code> again.
-  ///
-  /// The socket is implicitly closed if it is destroyed, so you are not
-  /// required to call this method.
-  void Close();
-
-  /// Sets a socket option on the UDP socket.
-  /// Please see the <code>PP_UDPSocket_Option</code> description for option
-  /// names, value types and allowed values.
-  ///
-  /// @param[in] name The option to set.
-  /// @param[in] value The option value to set.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  int32_t SetOption(PP_UDPSocket_Option name,
-                    const Var& value,
-                    const CompletionCallback& callback);
-
-  /// Joins the multicast group with address specified by <code>group</code>
-  /// parameter, which is expected to be a <code>NetAddress</code> object.
-  ///
-  /// @param[in] group A <code>NetAddress</code> corresponding to the network
-  /// address of the multicast group.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  int32_t JoinGroup(const NetAddress& group,
-                    const CompletionCallback callback);
-
-  /// Leaves the multicast group with address specified by <code>group</code>
-  /// parameter, which is expected to be a <code>NetAddress</code> object.
-  ///
-  /// @param[in] group A <code>NetAddress</code> corresponding to the network
-  /// address of the multicast group.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  int32_t LeaveGroup(const NetAddress& group,
-                     const CompletionCallback callback);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_UDP_SOCKET_H_
diff --git a/cpp/url_loader.cc b/cpp/url_loader.cc
deleted file mode 100644
index d15f965..0000000
--- a/cpp/url_loader.cc
+++ /dev/null
@@ -1,107 +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/cpp/url_loader.h"
-
-#include "ppapi/c/ppb_url_loader.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/file_ref.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/url_request_info.h"
-#include "ppapi/cpp/url_response_info.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_URLLoader_1_0>() {
-  return PPB_URLLOADER_INTERFACE_1_0;
-}
-
-}  // namespace
-
-URLLoader::URLLoader(PP_Resource resource) : Resource(resource) {
-}
-
-URLLoader::URLLoader(const InstanceHandle& instance) {
-  if (!has_interface<PPB_URLLoader_1_0>())
-    return;
-  PassRefFromConstructor(get_interface<PPB_URLLoader_1_0>()->Create(
-      instance.pp_instance()));
-}
-
-URLLoader::URLLoader(const URLLoader& other) : Resource(other) {}
-
-URLLoader& URLLoader::operator=(const URLLoader& other) {
-  Resource::operator=(other);
-  return *this;
-}
-
-int32_t URLLoader::Open(const URLRequestInfo& request_info,
-                        const CompletionCallback& cc) {
-  if (!has_interface<PPB_URLLoader_1_0>())
-    return cc.MayForce(PP_ERROR_NOINTERFACE);
-  return get_interface<PPB_URLLoader_1_0>()->Open(pp_resource(),
-                                              request_info.pp_resource(),
-                                              cc.pp_completion_callback());
-}
-
-int32_t URLLoader::FollowRedirect(const CompletionCallback& cc) {
-  if (!has_interface<PPB_URLLoader_1_0>())
-    return cc.MayForce(PP_ERROR_NOINTERFACE);
-  return get_interface<PPB_URLLoader_1_0>()->FollowRedirect(
-      pp_resource(), cc.pp_completion_callback());
-}
-
-bool URLLoader::GetUploadProgress(int64_t* bytes_sent,
-                                  int64_t* total_bytes_to_be_sent) const {
-  if (!has_interface<PPB_URLLoader_1_0>())
-    return false;
-  return PP_ToBool(get_interface<PPB_URLLoader_1_0>()->GetUploadProgress(
-      pp_resource(), bytes_sent, total_bytes_to_be_sent));
-}
-
-bool URLLoader::GetDownloadProgress(
-    int64_t* bytes_received,
-    int64_t* total_bytes_to_be_received) const {
-  if (!has_interface<PPB_URLLoader_1_0>())
-    return false;
-  return PP_ToBool(get_interface<PPB_URLLoader_1_0>()->GetDownloadProgress(
-      pp_resource(), bytes_received, total_bytes_to_be_received));
-}
-
-URLResponseInfo URLLoader::GetResponseInfo() const {
-  if (!has_interface<PPB_URLLoader_1_0>())
-    return URLResponseInfo();
-  return URLResponseInfo(PASS_REF,
-                         get_interface<PPB_URLLoader_1_0>()->GetResponseInfo(
-                             pp_resource()));
-}
-
-int32_t URLLoader::ReadResponseBody(void* buffer,
-                                    int32_t bytes_to_read,
-                                    const CompletionCallback& cc) {
-  if (!has_interface<PPB_URLLoader_1_0>())
-    return cc.MayForce(PP_ERROR_NOINTERFACE);
-  return get_interface<PPB_URLLoader_1_0>()->ReadResponseBody(
-      pp_resource(), buffer, bytes_to_read, cc.pp_completion_callback());
-}
-
-int32_t URLLoader::FinishStreamingToFile(const CompletionCallback& cc) {
-  if (!has_interface<PPB_URLLoader_1_0>())
-    return cc.MayForce(PP_ERROR_NOINTERFACE);
-  return get_interface<PPB_URLLoader_1_0>()->FinishStreamingToFile(
-      pp_resource(), cc.pp_completion_callback());
-}
-
-void URLLoader::Close() {
-  if (!has_interface<PPB_URLLoader_1_0>())
-    return;
-  get_interface<PPB_URLLoader_1_0>()->Close(pp_resource());
-}
-
-}  // namespace pp
diff --git a/cpp/url_loader.h b/cpp/url_loader.h
deleted file mode 100644
index fbf8bf0..0000000
--- a/cpp/url_loader.h
+++ /dev/null
@@ -1,169 +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_CPP_URL_LOADER_H_
-#define PPAPI_CPP_URL_LOADER_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/cpp/resource.h"
-
-/// @file
-/// This file defines the API for loading URLs.
-namespace pp {
-
-class CompletionCallback;
-class InstanceHandle;
-class URLRequestInfo;
-class URLResponseInfo;
-
-/// URLLoader provides an API for loading URLs.
-/// Refer to <code>ppapi/examples/url_loader/streaming.cc</code>
-/// for an example of how to use this class.
-class URLLoader : public Resource {
- public:
-  /// Default constructor for creating an is_null()
-  /// <code>URLLoader</code> object.
-  URLLoader() {}
-
-  /// A constructor used when a <code>PP_Resource</code> is provided as a
-  /// return value whose reference count we need to increment.
-  ///
-  /// @param[in] resource A <code>PP_Resource</code> corresponding to a
-  /// <code>URLLoader</code> resource.
-  explicit URLLoader(PP_Resource resource);
-
-  /// A constructor used to allocate a new URLLoader in the browser. The
-  /// resulting object will be <code>is_null</code> if the allocation failed.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  explicit URLLoader(const InstanceHandle& instance);
-
-  /// The copy constructor for <code>URLLoader</code>.
-  ///
-  /// @param other A <code>URLLoader</code> to be copied.
-  URLLoader(const URLLoader& other);
-  URLLoader& operator=(const URLLoader& other);
-
-  /// This function begins loading the <code>URLRequestInfo</code>.
-  /// The operation completes when response headers are received or when an
-  /// error occurs.  Use GetResponseInfo() to access the response
-  /// headers.
-  ///
-  /// @param[in] request_info A <code>URLRequestInfo</code> corresponding to a
-  /// URLRequestInfo.
-  /// @param[in] cc A <code>CompletionCallback</code> to run on asynchronous
-  /// completion of Open(). This callback will run when response
-  /// headers for the url are received or error occurred. This callback
-  /// will only run if Open() returns <code>PP_OK_COMPLETIONPENDING</code>.
-  ///
-  /// @return An int32_t containing an error code from
-  /// <code>pp_errors.h</code>.
-  int32_t Open(const URLRequestInfo& request_info,
-               const CompletionCallback& cc);
-
-  /// This function can be invoked to follow a
-  /// redirect after Open() completed on receiving redirect headers.
-  ///
-  /// @param[in] cc A <code>CompletionCallback</code> to run on asynchronous
-  /// completion of FollowRedirect(). This callback will run when response
-  /// headers for the redirect url are received or error occurred. This callback
-  /// will only run if FollowRedirect() returns
-  /// <code>PP_OK_COMPLETIONPENDING</code>.
-  ///
-  /// @return An int32_t containing an error code from
-  /// <code>pp_errors.h</code>.
-  int32_t FollowRedirect(const CompletionCallback& cc);
-
-  /// This function returns the current upload progress (which is only
-  /// meaningful after Open() has been called). Progress only refers to the
-  /// request body and does not include the headers.
-  ///
-  /// This data is only available if the <code>URLRequestInfo</code> passed to
-  /// Open() had the
-  /// <code>PP_URLREQUESTPROPERTY_REPORTUPLOADPROGRESS</code> property set to
-  /// <code>PP_TRUE</code>.
-  ///
-  /// @param[in] bytes_sent The number of bytes sent thus far.
-  /// @param[in] total_bytes_to_be_sent The total number of bytes to be sent.
-  ///
-  /// @return true if the upload progress is available, false if it is not
-  /// available.
-  bool GetUploadProgress(int64_t* bytes_sent,
-                         int64_t* total_bytes_to_be_sent) const;
-
-  /// This function returns the current download progress, which is meaningful
-  /// after Open() has been called. Progress only refers to the response body
-  /// and does not include the headers.
-  ///
-  /// This data is only available if the <code>URLRequestInfo</code> passed to
-  /// Open() had the
-  /// <code>PP_URLREQUESTPROPERTY_REPORTDOWNLOADPROGRESS</code> property set to
-  /// PP_TRUE.
-  ///
-  /// @param[in] bytes_received The number of bytes received thus far.
-  /// @param[in] total_bytes_to_be_received The total number of bytes to be
-  /// received. The total bytes to be received may be unknown, in which case
-  /// <code>total_bytes_to_be_received</code> will be set to -1.
-  ///
-  /// @return true if the download progress is available, false if it is
-  /// not available.
-  bool GetDownloadProgress(int64_t* bytes_received,
-                           int64_t* total_bytes_to_be_received) const;
-
-  /// This is a function that returns the current
-  /// <code>URLResponseInfo</code> object.
-  ///
-  /// @return A <code>URLResponseInfo</code> corresponding to the
-  /// <code>URLResponseInfo</code> if successful, an <code>is_null</code>
-  /// object if the loader is not a valid resource or if Open() has not been
-  /// called.
-  URLResponseInfo GetResponseInfo() const;
-
-  /// This function is used to read the response body. The size of the buffer
-  /// must be large enough to hold the specified number of bytes to read.
-  /// This function might perform a partial read.
-  ///
-  /// @param[in,out] buffer A pointer to the buffer for the response body.
-  /// @param[in] bytes_to_read The number of bytes to read.
-  /// @param[in] cc A <code>CompletionCallback</code> to run on asynchronous
-  /// completion. The callback will run if the bytes (full or partial) are
-  /// read or an error occurs asynchronously. This callback will run only if
-  /// this function returns <code>PP_OK_COMPLETIONPENDING</code>.
-  ///
-  /// @return An int32_t containing the number of bytes read or an error code
-  /// from <code>pp_errors.h</code>.
-  int32_t ReadResponseBody(void* buffer,
-                           int32_t bytes_to_read,
-                           const CompletionCallback& cc);
-
-  /// This function is used to wait for the response body to be completely
-  /// downloaded to the file provided by the GetBodyAsFileRef() in the current
-  /// <code>URLResponseInfo</code>. This function is only used if
-  /// <code>PP_URLREQUESTPROPERTY_STREAMTOFILE</code> was set on the
-  /// <code>URLRequestInfo</code> passed to Open().
-  ///
-  /// @param[in] cc A <code>CompletionCallback</code> to run on asynchronous
-  /// completion. This callback will run when body is downloaded or an error
-  /// occurs after FinishStreamingToFile() returns
-  /// <code>PP_OK_COMPLETIONPENDING</code>.
-  ///
-  /// @return An int32_t containing the number of bytes read or an error code
-  /// from <code>pp_errors.h</code>.
-  int32_t FinishStreamingToFile(const CompletionCallback& cc);
-
-  /// This function is used to cancel any pending IO and close the URLLoader
-  /// object. Any pending callbacks will still run, reporting
-  /// <code>PP_ERROR_ABORTED</code> if pending IO was interrupted.  It is NOT
-  /// valid to call Open() again after a call to this function.
-  ///
-  /// <strong>Note:</strong> If the <code>URLLoader</code> object is destroyed
-  /// while it is still open, then it will be implicitly closed so you are not
-  /// required to call Close().
-  void Close();
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_URL_LOADER_H_
diff --git a/cpp/url_request_info.cc b/cpp/url_request_info.cc
deleted file mode 100644
index 84290e2..0000000
--- a/cpp/url_request_info.cc
+++ /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/cpp/url_request_info.h"
-
-#include "ppapi/cpp/file_ref.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_URLRequestInfo_1_0>() {
-  return PPB_URLREQUESTINFO_INTERFACE_1_0;
-}
-
-}  // namespace
-
-URLRequestInfo::URLRequestInfo(const InstanceHandle& instance) {
-  if (!has_interface<PPB_URLRequestInfo_1_0>())
-    return;
-  PassRefFromConstructor(
-      get_interface<PPB_URLRequestInfo_1_0>()->Create(instance.pp_instance()));
-}
-
-URLRequestInfo::URLRequestInfo(const URLRequestInfo& other)
-    : Resource(other) {
-}
-
-bool URLRequestInfo::SetProperty(PP_URLRequestProperty property,
-                                 const Var& value) {
-  if (!has_interface<PPB_URLRequestInfo_1_0>())
-    return false;
-  return PP_ToBool(get_interface<PPB_URLRequestInfo_1_0>()->SetProperty(
-      pp_resource(), property, value.pp_var()));
-}
-
-bool URLRequestInfo::AppendDataToBody(const void* data, uint32_t len) {
-  if (!has_interface<PPB_URLRequestInfo_1_0>())
-    return false;
-  return PP_ToBool(get_interface<PPB_URLRequestInfo_1_0>()->AppendDataToBody(
-      pp_resource(), data, len));
-}
-
-bool URLRequestInfo::AppendFileToBody(const FileRef& file_ref,
-                                      PP_Time expected_last_modified_time) {
-  if (!has_interface<PPB_URLRequestInfo_1_0>())
-    return false;
-  return PP_ToBool(
-      get_interface<PPB_URLRequestInfo_1_0>()->AppendFileToBody(
-          pp_resource(),
-          file_ref.pp_resource(),
-          0,
-          -1,
-          expected_last_modified_time));
-}
-
-bool URLRequestInfo::AppendFileRangeToBody(
-    const FileRef& file_ref,
-    int64_t start_offset,
-    int64_t length,
-    PP_Time expected_last_modified_time) {
-  if (!has_interface<PPB_URLRequestInfo_1_0>())
-    return false;
-  return PP_ToBool(get_interface<PPB_URLRequestInfo_1_0>()->AppendFileToBody(
-      pp_resource(),
-      file_ref.pp_resource(),
-      start_offset,
-      length,
-      expected_last_modified_time));
-}
-
-}  // namespace pp
diff --git a/cpp/url_request_info.h b/cpp/url_request_info.h
deleted file mode 100644
index 63a22b6..0000000
--- a/cpp/url_request_info.h
+++ /dev/null
@@ -1,334 +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_CPP_URL_REQUEST_INFO_H_
-#define PPAPI_CPP_URL_REQUEST_INFO_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_url_request_info.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/var.h"
-
-/// @file
-/// This file defines the API for creating and manipulating URL requests.
-namespace pp {
-
-class FileRef;
-class InstanceHandle;
-
-/// URLRequestInfo provides an API for creating and manipulating URL requests.
-class URLRequestInfo : public Resource {
- public:
-  /// Default constructor. This constructor creates an
-  /// <code>is_null</code> resource.
-  URLRequestInfo() {}
-
-  /// A constructor used to allocate a new <code>URLLoader</code> in the
-  /// browser. The resulting object will be <code>is_null</code> if the
-  /// allocation failed.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  explicit URLRequestInfo(const InstanceHandle& instance);
-
-  /// The copy constructor for <code>URLRequestInfo</code>.
-  ///
-  /// @param[in] other A <code>URLRequestInfo</code> to be copied.
-  URLRequestInfo(const URLRequestInfo& other);
-
-  /// SetProperty() sets a request property. The value of the property must be
-  /// the correct type according to the property being set.
-  ///
-  /// @param[in] property A <code>PP_URLRequestProperty</code> identifying the
-  /// property to set.
-  /// @param[in] value A <code>Var</code> containing the property value.
-  ///
-  /// @return true if successful, false if any of the
-  /// parameters are invalid.
-  bool SetProperty(PP_URLRequestProperty property, const Var& value);
-
-  /// AppendDataToBody() appends data to the request body. A content-length
-  /// request header will be automatically generated.
-  ///
-  /// @param[in] data A pointer to a buffer holding the data.
-  /// @param[in] len The length, in bytes, of the data.
-  ///
-  /// @return true if successful, false if any of the
-  /// parameters are invalid.
-  bool AppendDataToBody(const void* data, uint32_t len);
-
-  /// AppendFileToBody() is used to append an entire file, to be uploaded, to
-  /// the request body. A content-length request header will be automatically
-  /// generated.
-  ///
-  /// @param[in] file_ref A <code>FileRef</code> containing the file
-  /// reference.
-
-  /// @param[in] expected_last_modified_time An optional (non-zero) last
-  /// modified time stamp used to validate that the file was not modified since
-  /// the given time before it was uploaded. The upload will fail with an error
-  /// code of <code>PP_ERROR_FILECHANGED</code> if the file has been modified
-  /// since the given time. If expected_last_modified_time is 0, then no
-  /// validation is performed.
-  ///
-  /// @return true if successful, false if any of the
-  /// parameters are invalid.
-  bool AppendFileToBody(const FileRef& file_ref,
-                        PP_Time expected_last_modified_time = 0);
-
-  /// AppendFileRangeToBody() is a pointer to a function used to append part or
-  /// all of a file, to be uploaded, to the request body. A content-length
-  /// request header will be automatically generated.
-  ///
-  /// @param[in] file_ref A <code>FileRef</code> containing the file
-  /// reference.
-  /// @param[in] start_offset An optional starting point offset within the
-  /// file.
-  /// @param[in] length An optional number of bytes of the file to
-  /// be included. If the value is -1, then the sub-range to upload extends
-  /// to the end of the file.
-  /// @param[in] expected_last_modified_time An optional (non-zero) last
-  /// modified time stamp used to validate that the file was not modified since
-  /// the given time before it was uploaded. The upload will fail with an error
-  /// code of <code>PP_ERROR_FILECHANGED</code> if the file has been modified
-  /// since the given time. If expected_last_modified_time is 0, then no
-  /// validation is performed.
-  ///
-  /// @return true if successful, false if any of the
-  /// parameters are invalid.
-  bool AppendFileRangeToBody(const FileRef& file_ref,
-                             int64_t start_offset,
-                             int64_t length,
-                             PP_Time expected_last_modified_time = 0);
-
-  /// SetURL() sets the <code>PP_URLREQUESTPROPERTY_URL</code>
-  /// property for the request.
-  ///
-  /// @param[in] url_string A <code>Var</code> containing the property value.
-  ///
-  /// @return true if successful, false if the parameter is invalid.
-  bool SetURL(const Var& url_string) {
-    return SetProperty(PP_URLREQUESTPROPERTY_URL, url_string);
-  }
-
-  /// SetMethod() sets the <code>PP_URLREQUESTPROPERTY_METHOD</code>
-  /// (corresponding to a string of type <code>PP_VARTYPE_STRING</code>)
-  /// property for the request. This string is either a POST or GET. Refer to
-  /// the <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html">HTTP
-  /// Methods</a> documentation for further information.
-  ///
-  /// @param[in] method_string A <code>Var</code> containing the property
-  /// value.
-  ///
-  /// @return true if successful, false if the parameter is invalid.
-  bool SetMethod(const Var& method_string) {
-    return SetProperty(PP_URLREQUESTPROPERTY_METHOD, method_string);
-  }
-
-  /// SetHeaders() sets the <code>PP_URLREQUESTPROPERTY_HEADERS</code>
-  /// (corresponding to a <code>\n</code> delimited string of type
-  /// <code>PP_VARTYPE_STRING</code>) property for the request.
-  /// Refer to the
-  /// <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html"Header
-  /// Field Definitions</a> documentation for further information.
-  ///
-  /// @param[in] headers_string A <code>Var</code> containing the property
-  /// value.
-  ///
-  /// @return true if successful, false if the parameter is invalid.
-  bool SetHeaders(const Var& headers_string) {
-    return SetProperty(PP_URLREQUESTPROPERTY_HEADERS, headers_string);
-  }
-
-  /// SetStreamToFile() sets the
-  /// <code>PP_URLREQUESTPROPERTY_STREAMTOFILE</code> (corresponding
-  /// to a bool of type <code>PP_VARTYPE_BOOL</code>). The property is no longer
-  /// supported, so this always returns false.
-  ///
-  /// @param[in] enable A <code>bool</code> containing the property value.
-  ///
-  /// @return false.
-  bool SetStreamToFile(bool enable) {
-    return SetProperty(PP_URLREQUESTPROPERTY_STREAMTOFILE, enable);
-  }
-
-  /// SetFollowRedirects() sets the
-  /// <code>PP_URLREQUESTPROPERTY_FOLLOWREDIRECT</code> (corresponding
-  /// to a bool of type <code>PP_VARTYPE_BOOL</code>). The default of the
-  /// property is true. Set this value to false if you want to use
-  /// URLLoader::FollowRedirects() to follow the redirects only after examining
-  /// redirect headers.
-  ///
-  /// @param[in] enable A <code>bool</code> containing the property value.
-  ///
-  /// @return true if successful, false if the parameter is invalid.
-  bool SetFollowRedirects(bool enable) {
-    return SetProperty(PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, enable);
-  }
-
-  /// SetRecordDownloadProgress() sets the
-  /// <code>PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGESS</code>
-  /// (corresponding to a bool of type <code>PP_VARTYPE_BOOL</code>). The
-  /// default of the property is false. Set this value to true if you want to
-  /// be able to poll the download progress using
-  /// URLLoader::GetDownloadProgress().
-  ///
-  /// @param[in] enable A <code>bool</code> containing the property value.
-  ////
-  /// @return true if successful, false if the parameter is invalid.
-  bool SetRecordDownloadProgress(bool enable) {
-    return SetProperty(PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, enable);
-  }
-
-  /// SetRecordUploadProgress() sets the
-  /// <code>PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS</code>
-  /// (corresponding to a bool of type <code>PP_VARTYPE_BOOL</code>). The
-  /// default of the property is false. Set this value to true if you want to
-  /// be able to poll the upload progress using URLLoader::GetUploadProgress().
-  ///
-  /// @param[in] enable A <code>bool</code> containing the property value.
-  ///
-  /// @return true if successful, false if the parameter is invalid.
-  bool SetRecordUploadProgress(bool enable) {
-    return SetProperty(PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, enable);
-  }
-
-  /// SetCustomReferrerURL() sets the
-  /// <code>PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL</code>
-  /// (corresponding to a string of type <code>PP_VARTYPE_STRING</code> or
-  /// might be set to undefined as <code>PP_VARTYPE_UNDEFINED</code>). Set it
-  /// to a string to set a custom referrer (if empty, the referrer header will
-  /// be omitted), or to undefined to use the default referrer. Only loaders
-  /// with universal access (only available on trusted implementations) will
-  /// accept <code>URLRequestInfo</code> objects that try to set a custom
-  /// referrer; if given to a loader without universal access,
-  /// <code>PP_ERROR_BADARGUMENT</code> will result.
-  ///
-  /// @param[in] url A <code>Var</code> containing the property value.
-  ///
-  /// @return true if successful, false if the parameter is invalid.
-  bool SetCustomReferrerURL(const Var& url) {
-    return SetProperty(PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL, url);
-  }
-
-  /// SetAllowCrossOriginRequests() sets the
-  /// <code>PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS</code>
-  /// (corresponding to a bool of type <code>PP_VARTYPE_BOOL</code>). The
-  /// default of the property is false. Whether cross-origin requests are
-  /// allowed. Cross-origin requests are made using the CORS (Cross-Origin
-  /// Resource Sharing) algorithm to check whether the request should be
-  /// allowed. For the complete CORS algorithm, refer to the
-  /// <a href="http://www.w3.org/TR/access-control">Cross-Origin Resource
-  /// Sharing</a> documentation.
-  ///
-  /// @param[in] enable A <code>bool</code> containing the property value.
-  ///
-  /// @return true if successful, false if the parameter is invalid.
-  bool SetAllowCrossOriginRequests(bool enable) {
-    return SetProperty(PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS, enable);
-  }
-
-  /// SetAllowCredentials() sets the
-  /// <code>PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS</code>
-  /// (corresponding to a bool of type <code>PP_VARTYPE_BOOL</code>). The
-  /// default of the property is false. Whether HTTP credentials are sent with
-  /// cross-origin requests. If false, no credentials are sent with the request
-  /// and cookies are ignored in the response. If the request is not
-  /// cross-origin, this property is ignored.
-  ///
-  /// @param[in] enable A <code>bool</code> containing the property value.
-  ///
-  /// @return true if successful, false if the parameter is invalid.
-  bool SetAllowCredentials(bool enable) {
-    return SetProperty(PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS, enable);
-  }
-
-  /// SetCustomContentTransferEncoding() sets the
-  /// <code>PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING</code>
-  /// (corresponding to a string of type <code>PP_VARTYPE_STRING</code> or
-  /// might be set to undefined as <code>PP_VARTYPE_UNDEFINED</code>). Set it
-  /// to a string to set a custom content-transfer-encoding header (if empty,
-  /// that header will be omitted), or to undefined to use the default (if
-  /// any). Only loaders with universal access (only available on trusted
-  /// implementations) will accept <code>URLRequestInfo</code> objects that try
-  /// to set a custom content transfer encoding; if given to a loader without
-  /// universal access, <code>PP_ERROR_BADARGUMENT</code> will result.
-  ///
-  /// @param[in] content_transfer_encoding A <code>Var</code> containing the
-  /// property value. To use the default content transfer encoding, set
-  /// <code>content_transfer_encoding</code> to an undefined <code>Var</code>.
-  ///
-  /// @return true if successful, false if the parameter is invalid.
-  bool SetCustomContentTransferEncoding(const Var& content_transfer_encoding) {
-    return SetProperty(PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING,
-                       content_transfer_encoding);
-  }
-
-  /// SetPrefetchBufferUpperThreshold() sets the
-  /// <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD</code>
-  /// (corresponding to a integer of type <code>PP_VARTYPE_INT32</code>). The
-  /// default is not defined and is set by the browser possibly depending on
-  /// system capabilities. Set it to an integer to set an upper threshold for
-  /// the prefetched buffer of an asynchronous load. When exceeded, the browser
-  /// will defer loading until
-  /// <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> is hit,
-  /// at which time it will begin prefetching again. When setting this
-  /// property,
-  /// <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> must
-  /// also be set. Behavior is undefined if the former is <= the latter.
-  ///
-  /// @param[in] size An int32_t containing the property value.
-  ///
-  /// @return true if successful, false if the parameter is invalid.
-  bool SetPrefetchBufferUpperThreshold(int32_t size) {
-    return SetProperty(PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD,
-                       size);
-  }
-
-  /// SetPrefetchBufferLowerThreshold() sets the
-  /// <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERTHRESHOLD</code>
-  /// (corresponding to a integer of type <code>PP_VARTYPE_INT32</code>). The
-  /// default is not defined and is set by the browser to a value appropriate
-  /// for the default
-  /// <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD</code>.
-  /// Set it to an integer to set a lower threshold for the prefetched buffer
-  /// of an asynchronous load. When reached, the browser will resume loading if
-  /// If <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERERTHRESHOLD</code> had
-  /// previously been reached.
-  /// When setting this property,
-  /// <code>PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD</code> must also
-  /// be set. Behavior is undefined if the former is >= the latter.
-  ///
-  /// @param[in] size An int32_t containing the property value.
-  ///
-  /// @return true if successful, false if the parameter is invalid.
-  bool SetPrefetchBufferLowerThreshold(int32_t size) {
-    return SetProperty(PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERTHRESHOLD,
-                       size);
-  }
-
-  /// SetCustomUserAgent() sets the
-  /// <code>PP_URLREQUESTPROPERTY_CUSTOMUSERAGENT</code> (corresponding to a
-  /// string of type <code>PP_VARTYPE_STRING</code> or might be set to undefined
-  /// as <code>PP_VARTYPE_UNDEFINED</code>). Set it to a string to set a custom
-  /// user-agent header (if empty, that header will be omitted), or to undefined
-  /// to use the default. Only loaders with universal access (only available on
-  /// trusted implementations) will accept <code>URLRequestInfo</code> objects
-  /// that try to set a custom user agent; if given to a loader without
-  /// universal access, <code>PP_ERROR_BADARGUMENT</code> will result.
-  ///
-  /// @param[in] user_agent A <code>Var</code> containing the property value. To
-  /// use the default user agent, set <code>user_agent</code> to an undefined
-  /// <code>Var</code>.
-  ///
-  /// @return true if successful, false if the parameter is invalid.
-  bool SetCustomUserAgent(const Var& user_agent) {
-    return SetProperty(PP_URLREQUESTPROPERTY_CUSTOMUSERAGENT, user_agent);
-  }
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_URL_REQUEST_INFO_H_
diff --git a/cpp/url_response_info.cc b/cpp/url_response_info.cc
deleted file mode 100644
index 86b3920..0000000
--- a/cpp/url_response_info.cc
+++ /dev/null
@@ -1,49 +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/cpp/url_response_info.h"
-
-#include "ppapi/cpp/file_ref.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_URLResponseInfo_1_0>() {
-  return PPB_URLRESPONSEINFO_INTERFACE_1_0;
-}
-
-}  // namespace
-
-URLResponseInfo::URLResponseInfo(const URLResponseInfo& other)
-    : Resource(other) {}
-
-URLResponseInfo& URLResponseInfo::operator=(const URLResponseInfo& other) {
-  Resource::operator=(other);
-  return *this;
-}
-
-URLResponseInfo::URLResponseInfo(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-Var URLResponseInfo::GetProperty(PP_URLResponseProperty property) const {
-  if (!has_interface<PPB_URLResponseInfo_1_0>())
-    return Var();
-  return Var(PASS_REF,
-      get_interface<PPB_URLResponseInfo_1_0>()->GetProperty(pp_resource(),
-                                                            property));
-}
-
-FileRef URLResponseInfo::GetBodyAsFileRef() const {
-  if (!has_interface<PPB_URLResponseInfo_1_0>())
-    return FileRef();
-  return FileRef(PASS_REF,
-      get_interface<PPB_URLResponseInfo_1_0>()->GetBodyAsFileRef(
-          pp_resource()));
-}
-
-}  // namespace pp
diff --git a/cpp/url_response_info.h b/cpp/url_response_info.h
deleted file mode 100644
index 63c6730..0000000
--- a/cpp/url_response_info.h
+++ /dev/null
@@ -1,117 +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_CPP_URL_RESPONSE_INFO_H_
-#define PPAPI_CPP_URL_RESPONSE_INFO_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_url_response_info.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/var.h"
-
-/// @file
-/// This file defines the API for examining URL responses.
-namespace pp {
-
-class FileRef;
-
-/// URLResponseInfo provides an API for examining URL responses.
-class URLResponseInfo : public Resource {
- public:
-  /// Default constructor. This constructor creates an <code>is_null</code>
-  /// resource.
-  URLResponseInfo() {}
-
-  /// A constructor used when you have received a <code>PP_Resource</code> as a
-  /// return value that has already been reference counted.
-  ///
-  /// @param[in] resource A <code>PP_Resource</code> corresponding to a
-  /// resource.
-  URLResponseInfo(PassRef, PP_Resource resource);
-
-  /// The copy constructor for <code>URLResponseInfo</code>.
-  URLResponseInfo(const URLResponseInfo& other);
-  URLResponseInfo& operator=(const URLResponseInfo& other);
-
-  /// This function gets a response property.
-  ///
-  /// @param[in] property A <code>PP_URLResponseProperty</code> identifying the
-  /// type of property in the response.
-  ///
-  /// @return A <code>Var</code> containing the response property value if
-  /// successful, <code>is_undefined Var</code> if an input parameter is
-  /// invalid.
-  Var GetProperty(PP_URLResponseProperty property) const;
-
-  /// This function returns an <code>is_null</code> object, as the
-  /// <code>PP_URLREQUESTPROPERTY_STREAMTOFILE</code> is no longer supported.
-  /// <code>URLResponseInfo</code> is closed or destroyed.
-  ///
-  /// @return An <code>is_null</code> object.
-  FileRef GetBodyAsFileRef() const;
-
-  /// This function gets the <code>PP_URLRESPONSEPROPERTY_URL</code>
-  /// property for the response.
-  ///
-  /// @return An <code>is_string Var</code> containing the response property
-  /// value if successful, <code>is_undefined Var</code> if an input parameter
-  /// is invalid.
-  Var GetURL() const {
-    return GetProperty(PP_URLRESPONSEPROPERTY_URL);
-  }
-
-  /// This function gets the <code>PP_URLRESPONSEPROPERTY_REDIRECTURL</code>
-  /// property for the response.
-  ///
-  /// @return An <code>is_string Var</code> containing the response property
-  /// value if successful, <code>is_undefined Var</code> if an input parameter
-  /// is invalid.
-  Var GetRedirectURL() const {
-    return GetProperty(PP_URLRESPONSEPROPERTY_REDIRECTURL);
-  }
-
-  /// This function gets the <code>PP_URLRESPONSEPROPERTY_REDIRECTMETHOD</code>
-  /// property for the response.
-  ///
-  /// @return An <code>is_string Var</code> containing the response property
-  /// value if successful, <code>is_undefined Var</code> if an input parameter
-  /// is invalid.
-  Var GetRedirectMethod() const {
-    return GetProperty(PP_URLRESPONSEPROPERTY_REDIRECTMETHOD);
-  }
-
-  /// This function gets the <code>PP_URLRESPONSEPROPERTY_STATUSCODE</code>
-  /// property for the response.
-  ///
-  /// @return A int32_t containing the response property value if successful,
-  /// <code>is_undefined Var</code> if an input parameter is invalid.
-  int32_t GetStatusCode() const {
-    return GetProperty(PP_URLRESPONSEPROPERTY_STATUSCODE).AsInt();
-  }
-
-  /// This function gets the <code>PP_URLRESPONSEPROPERTY_STATUSLINE</code>
-  /// property for the response.
-  ///
-  /// @return An <code>is_string Var</code> containing the response property
-  /// value if successful, <code>is_undefined Var</code> if an input parameter
-  /// is invalid.
-  Var GetStatusLine() const {
-    return GetProperty(PP_URLRESPONSEPROPERTY_STATUSLINE);
-  }
-
-  /// This function gets the <code>PP_URLRESPONSEPROPERTY_HEADERS</code>
-  /// property for the response.
-  ///
-  /// @return An <code>is_string Var</code> containing the response property
-  /// value if successful, <code>is_undefined Var</code> if an input parameter
-  /// is invalid.
-  Var GetHeaders() const {
-    return GetProperty(PP_URLRESPONSEPROPERTY_HEADERS);
-  }
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_URL_RESPONSE_INFO_H_
diff --git a/cpp/var.cc b/cpp/var.cc
deleted file mode 100644
index 5f3a898..0000000
--- a/cpp/var.cc
+++ /dev/null
@@ -1,327 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
-#pragma allow_unsafe_libc_calls
-#endif
-
-#include "ppapi/cpp/var.h"
-
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <algorithm>
-
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/ppb_var.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-// Define equivalent to snprintf on Windows.
-#if defined(_MSC_VER)
-#  define snprintf sprintf_s
-#endif
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_Var_1_2>() {
-  return PPB_VAR_INTERFACE_1_2;
-}
-template <> const char* interface_name<PPB_Var_1_1>() {
-  return PPB_VAR_INTERFACE_1_1;
-}
-template <> const char* interface_name<PPB_Var_1_0>() {
-  return PPB_VAR_INTERFACE_1_0;
-}
-
-// Technically you can call AddRef and Release on any Var, but it may involve
-// cross-process calls depending on the plugin. This is an optimization so we
-// only do refcounting on the necessary objects.
-inline bool NeedsRefcounting(const PP_Var& var) {
-  return var.type > PP_VARTYPE_DOUBLE;
-}
-
-// This helper function uses the latest available version of VarFromUtf8. Note
-// that version 1.0 of this method has a different API to later versions.
-PP_Var VarFromUtf8Helper(const char* utf8_str, uint32_t len) {
-  if (has_interface<PPB_Var_1_2>()) {
-    return get_interface<PPB_Var_1_2>()->VarFromUtf8(utf8_str, len);
-  } else if (has_interface<PPB_Var_1_1>()) {
-    return get_interface<PPB_Var_1_1>()->VarFromUtf8(utf8_str, len);
-  } else if (has_interface<PPB_Var_1_0>()) {
-    return get_interface<PPB_Var_1_0>()->VarFromUtf8(Module::Get()->pp_module(),
-                                                     utf8_str,
-                                                     len);
-  }
-  return PP_MakeNull();
-}
-
-// This helper function uses the latest available version of AddRef.
-// Returns true on success, false if no appropriate interface was available.
-bool AddRefHelper(const PP_Var& var) {
-  if (has_interface<PPB_Var_1_2>()) {
-    get_interface<PPB_Var_1_2>()->AddRef(var);
-    return true;
-  } else if (has_interface<PPB_Var_1_1>()) {
-    get_interface<PPB_Var_1_1>()->AddRef(var);
-    return true;
-  } else if (has_interface<PPB_Var_1_0>()) {
-    get_interface<PPB_Var_1_0>()->AddRef(var);
-    return true;
-  }
-  return false;
-}
-
-// This helper function uses the latest available version of Release.
-// Returns true on success, false if no appropriate interface was available.
-bool ReleaseHelper(const PP_Var& var) {
-  if (has_interface<PPB_Var_1_2>()) {
-    get_interface<PPB_Var_1_2>()->Release(var);
-    return true;
-  } else if (has_interface<PPB_Var_1_1>()) {
-    get_interface<PPB_Var_1_1>()->Release(var);
-    return true;
-  } else if (has_interface<PPB_Var_1_0>()) {
-    get_interface<PPB_Var_1_0>()->Release(var);
-    return true;
-  }
-  return false;
-}
-
-}  // namespace
-
-Var::Var() {
-  memset(&var_, 0, sizeof(var_));
-  var_.type = PP_VARTYPE_UNDEFINED;
-  is_managed_ = true;
-}
-
-Var::Var(Null) {
-  memset(&var_, 0, sizeof(var_));
-  var_.type = PP_VARTYPE_NULL;
-  is_managed_ = true;
-}
-
-Var::Var(bool b) {
-  var_.type = PP_VARTYPE_BOOL;
-  var_.padding = 0;
-  var_.value.as_bool = PP_FromBool(b);
-  is_managed_ = true;
-}
-
-Var::Var(int32_t i) {
-  var_.type = PP_VARTYPE_INT32;
-  var_.padding = 0;
-  var_.value.as_int = i;
-  is_managed_ = true;
-}
-
-Var::Var(double d) {
-  var_.type = PP_VARTYPE_DOUBLE;
-  var_.padding = 0;
-  var_.value.as_double = d;
-  is_managed_ = true;
-}
-
-Var::Var(const char* utf8_str) {
-  uint32_t len = utf8_str ? static_cast<uint32_t>(strlen(utf8_str)) : 0;
-  var_ = VarFromUtf8Helper(utf8_str, len);
-  is_managed_ = true;
-}
-
-Var::Var(const std::string& utf8_str) {
-  var_ = VarFromUtf8Helper(utf8_str.c_str(),
-                           static_cast<uint32_t>(utf8_str.size()));
-  is_managed_ = true;
-}
-
-Var::Var(const pp::Resource& resource) {
-  if (has_interface<PPB_Var_1_2>()) {
-    var_ = get_interface<PPB_Var_1_2>()->VarFromResource(
-        resource.pp_resource());
-  } else {
-    PP_NOTREACHED();
-    return;
-  }
-  // Set |is_managed_| to true, so |var_| will be properly released upon
-  // destruction.
-  is_managed_ = true;
-}
-
-
-Var::Var(const PP_Var& var) {
-  var_ = var;
-  is_managed_ = true;
-  if (NeedsRefcounting(var_)) {
-    if (!AddRefHelper(var_))
-      var_.type = PP_VARTYPE_NULL;
-  }
-}
-
-Var::Var(const Var& other) {
-  var_ = other.var_;
-  is_managed_ = true;
-  if (NeedsRefcounting(var_)) {
-    if (!AddRefHelper(var_))
-      var_.type = PP_VARTYPE_NULL;
-  }
-}
-
-Var::~Var() {
-  if (NeedsRefcounting(var_) && is_managed_)
-    ReleaseHelper(var_);
-}
-
-Var& Var::operator=(const Var& other) {
-  // Early return for self-assignment. Note however, that two distinct vars
-  // can refer to the same object, so we still need to be careful about the
-  // refcounting below.
-  if (this == &other)
-    return *this;
-
-  // Be careful to keep the ref alive for cases where we're assigning an
-  // object to itself by addrefing the new one before releasing the old one.
-  bool old_is_managed = is_managed_;
-  is_managed_ = true;
-  if (NeedsRefcounting(other.var_)) {
-    AddRefHelper(other.var_);
-  }
-  if (NeedsRefcounting(var_) && old_is_managed)
-    ReleaseHelper(var_);
-
-  var_ = other.var_;
-  return *this;
-}
-
-bool Var::operator==(const Var& other) const {
-  if (var_.type != other.var_.type)
-    return false;
-  switch (var_.type) {
-    case PP_VARTYPE_UNDEFINED:
-    case PP_VARTYPE_NULL:
-      return true;
-    case PP_VARTYPE_BOOL:
-      return AsBool() == other.AsBool();
-    case PP_VARTYPE_INT32:
-      return AsInt() == other.AsInt();
-    case PP_VARTYPE_DOUBLE:
-      return AsDouble() == other.AsDouble();
-    case PP_VARTYPE_STRING:
-      if (var_.value.as_id == other.var_.value.as_id)
-        return true;
-      return AsString() == other.AsString();
-    case PP_VARTYPE_OBJECT:
-    case PP_VARTYPE_ARRAY:
-    case PP_VARTYPE_ARRAY_BUFFER:
-    case PP_VARTYPE_DICTIONARY:
-    case PP_VARTYPE_RESOURCE:
-    default:  // Objects, arrays, dictionaries, resources.
-      return var_.value.as_id == other.var_.value.as_id;
-  }
-}
-
-bool Var::AsBool() const {
-  if (!is_bool()) {
-    PP_NOTREACHED();
-    return false;
-  }
-  return PP_ToBool(var_.value.as_bool);
-}
-
-int32_t Var::AsInt() const {
-  if (is_int())
-    return var_.value.as_int;
-  if (is_double())
-    return static_cast<int>(var_.value.as_double);
-  PP_NOTREACHED();
-  return 0;
-}
-
-double Var::AsDouble() const {
-  if (is_double())
-    return var_.value.as_double;
-  if (is_int())
-    return static_cast<double>(var_.value.as_int);
-  PP_NOTREACHED();
-  return 0.0;
-}
-
-std::string Var::AsString() const {
-  if (!is_string()) {
-    PP_NOTREACHED();
-    return std::string();
-  }
-
-  uint32_t len;
-  const char* str;
-  if (has_interface<PPB_Var_1_2>())
-    str = get_interface<PPB_Var_1_2>()->VarToUtf8(var_, &len);
-  else if (has_interface<PPB_Var_1_1>())
-    str = get_interface<PPB_Var_1_1>()->VarToUtf8(var_, &len);
-  else if (has_interface<PPB_Var_1_0>())
-    str = get_interface<PPB_Var_1_0>()->VarToUtf8(var_, &len);
-  else
-    return std::string();
-  return std::string(str, len);
-}
-
-pp::Resource Var::AsResource() const {
-  if (!is_resource()) {
-    PP_NOTREACHED();
-    return pp::Resource();
-  }
-
-  if (has_interface<PPB_Var_1_2>()) {
-    return pp::Resource(pp::PASS_REF,
-                        get_interface<PPB_Var_1_2>()->VarToResource(var_));
-  } else {
-    return pp::Resource();
-  }
-}
-
-std::string Var::DebugString() const {
-  char buf[256];
-  if (is_undefined()) {
-    snprintf(buf, sizeof(buf), "Var(UNDEFINED)");
-  } else if (is_null()) {
-    snprintf(buf, sizeof(buf), "Var(NULL)");
-  } else if (is_bool()) {
-    snprintf(buf, sizeof(buf), AsBool() ? "Var(true)" : "Var(false)");
-  } else if (is_int()) {
-    snprintf(buf, sizeof(buf), "Var(%d)", static_cast<int>(AsInt()));
-  } else if (is_double()) {
-    snprintf(buf, sizeof(buf), "Var(%f)", AsDouble());
-  } else if (is_string()) {
-    char format[] = "Var<'%s'>";
-    size_t decoration = sizeof(format) - 2;  // The %s is removed.
-    size_t available = sizeof(buf) - decoration;
-    std::string str = AsString();
-    if (str.length() > available) {
-      str.resize(available - 3);  // Reserve space for ellipsis.
-      str.append("...");
-    }
-    snprintf(buf, sizeof(buf), format, str.c_str());
-  } else if (is_object()) {
-    snprintf(buf, sizeof(buf), "Var(OBJECT)");
-  } else if (is_array()) {
-    snprintf(buf, sizeof(buf), "Var(ARRAY)");
-  } else if (is_dictionary()) {
-    snprintf(buf, sizeof(buf), "Var(DICTIONARY)");
-  } else if (is_array_buffer()) {
-    snprintf(buf, sizeof(buf), "Var(ARRAY_BUFFER)");
-  } else if (is_resource()) {
-    snprintf(buf, sizeof(buf), "Var(RESOURCE)");
-  } else {
-    buf[0] = '\0';
-  }
-  return buf;
-}
-
-}  // namespace pp
diff --git a/cpp/var.h b/cpp/var.h
deleted file mode 100644
index a894df2..0000000
--- a/cpp/var.h
+++ /dev/null
@@ -1,324 +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_CPP_VAR_H_
-#define PPAPI_CPP_VAR_H_
-
-#include <stdint.h>
-
-#include <string>
-
-#include "ppapi/c/pp_var.h"
-#include "ppapi/cpp/pass_ref.h"
-#include "ppapi/cpp/resource.h"
-
-/// @file
-/// This file defines the API for handling the passing of data types between
-/// your module and the page.
-namespace pp {
-
-/// A generic type used for passing data types between the module and the page.
-class Var {
- public:
-  /// Special value passed to constructor to make <code>NULL</code>.
-  struct Null {};
-
-  /// Default constructor. Creates a <code>Var</code> of type
-  /// <code>Undefined</code>.
-  Var();
-
-  /// A constructor used to create a <code>Var</code> of type <code>Null</code>.
-  Var(Null);
-
-  /// A constructor used to create a <code>Var</code> of type <code>Bool</code>.
-  ///
-  /// @param[in] b A boolean value.
-  Var(bool b);
-
-  /// A constructor used to create a 32 bit integer <code>Var</code>.
-  ///
-  /// @param[in] i A 32 bit integer value.
-  Var(int32_t i);
-
-  /// A constructor used to create a double value <code>Var</code>.
-  ///
-  /// @param[in] d A double value.
-  Var(double d);
-
-  /// A constructor used to create a UTF-8 character <code>Var</code>.
-  Var(const char* utf8_str);  // Must be encoded in UTF-8.
-
-  /// A constructor used to create a UTF-8 character <code>Var</code>.
-  Var(const std::string& utf8_str);  // Must be encoded in UTF-8.
-
-  /// A constructor used to create a resource <code>Var</code>.
-  explicit Var(const pp::Resource& resource);
-
-  /// A constructor used when you have received a <code>Var</code> as a return
-  /// value that has had its reference count incremented for you.
-  ///
-  /// You will not normally need to use this constructor because
-  /// the reference count will not normally be incremented for you.
-  Var(PassRef, const PP_Var& var) {
-    var_ = var;
-    is_managed_ = true;
-  }
-
-  /// A constructor that increments the reference count.
-  explicit Var(const PP_Var& var);
-
-  struct DontManage {};
-
-  /// This constructor is used when we've given a <code>PP_Var</code> as an
-  /// input argument from somewhere and that reference is managing the
-  /// reference count for us. The object will not have its reference count
-  /// increased or decreased by this class instance.
-  ///
-  /// @param[in] var A <code>Var</code>.
-  Var(DontManage, const PP_Var& var) {
-    var_ = var;
-    is_managed_ = false;
-  }
-
-  /// A constructor for copying a <code>Var</code>.
-  Var(const Var& other);
-
-  /// Destructor.
-  virtual ~Var();
-
-  /// This function assigns one <code>Var</code> to another <code>Var</code>.
-  ///
-  /// @param[in] other The <code>Var</code> to be assigned.
-  ///
-  /// @return A resulting <code>Var</code>.
-  virtual Var& operator=(const Var& other);
-
-  /// This function compares object identity (rather than value identity) for
-  /// objects, dictionaries, and arrays
-  ///
-  /// @param[in] other The <code>Var</code> to be compared to this Var.
-  ///
-  /// @return true if the <code>other</code> <code>Var</code> is the same as
-  /// this <code>Var</code>, otherwise false.
-  bool operator==(const Var& other) const;
-
-  /// This function determines if this <code>Var</code> is an undefined value.
-  ///
-  /// @return true if this <code>Var</code> is undefined, otherwise false.
-  bool is_undefined() const { return var_.type == PP_VARTYPE_UNDEFINED; }
-
-  /// This function determines if this <code>Var</code> is a null value.
-  ///
-  /// @return true if this <code>Var</code> is null, otherwise false.
-  bool is_null() const { return var_.type == PP_VARTYPE_NULL; }
-
-  /// This function determines if this <code>Var</code> is a bool value.
-  ///
-  /// @return true if this <code>Var</code> is a bool, otherwise false.
-  bool is_bool() const { return var_.type == PP_VARTYPE_BOOL; }
-
-  /// This function determines if this <code>Var</code> is a string value.
-  ///
-  /// @return true if this <code>Var</code> is a string, otherwise false.
-  bool is_string() const { return var_.type == PP_VARTYPE_STRING; }
-
-  /// This function determines if this <code>Var</code> is an object.
-  ///
-  /// @return true if this <code>Var</code> is an object, otherwise false.
-  bool is_object() const { return var_.type == PP_VARTYPE_OBJECT; }
-
-  /// This function determines if this <code>Var</code> is an array.
-  ///
-  /// @return true if this <code>Var</code> is an array, otherwise false.
-  bool is_array() const { return var_.type == PP_VARTYPE_ARRAY; }
-
-  /// This function determines if this <code>Var</code> is a dictionary.
-  ///
-  /// @return true if this <code>Var</code> is a dictionary, otherwise false.
-  bool is_dictionary() const { return var_.type == PP_VARTYPE_DICTIONARY; }
-
-  /// This function determines if this <code>Var</code> is a resource.
-  ///
-  /// @return true if this <code>Var</code> is a resource, otherwise false.
-  bool is_resource() const { return var_.type == PP_VARTYPE_RESOURCE; }
-
-  /// This function determines if this <code>Var</code> is an integer value.
-  /// The <code>is_int</code> function returns the internal representation.
-  /// The JavaScript runtime may convert between the two as needed, so the
-  /// distinction may not be relevant in all cases (int is really an
-  /// optimization inside the runtime). So most of the time, you will want
-  /// to check is_number().
-  ///
-  /// @return true if this <code>Var</code> is an integer, otherwise false.
-  bool is_int() const { return var_.type == PP_VARTYPE_INT32; }
-
-  /// This function determines if this <code>Var</code> is a double value.
-  /// The <code>is_double</code> function returns the internal representation.
-  /// The JavaScript runtime may convert between the two as needed, so the
-  /// distinction may not be relevant in all cases (int is really an
-  /// optimization inside the runtime). So most of the time, you will want to
-  /// check is_number().
-  ///
-  /// @return true if this <code>Var</code> is a double, otherwise false.
-  bool is_double() const { return var_.type == PP_VARTYPE_DOUBLE; }
-
-  /// This function determines if this <code>Var</code> is a number.
-  ///
-  /// @return true if this <code>Var</code> is an int32_t or double number,
-  /// otherwise false.
-  bool is_number() const {
-    return var_.type == PP_VARTYPE_INT32 ||
-           var_.type == PP_VARTYPE_DOUBLE;
-  }
-
-  /// This function determines if this <code>Var</code> is an ArrayBuffer.
-  bool is_array_buffer() const { return var_.type == PP_VARTYPE_ARRAY_BUFFER; }
-
-  /// AsBool() converts this <code>Var</code> to a bool. Assumes the
-  /// internal representation is_bool(). If it's not, it will assert in debug
-  /// mode, and return false.
-  ///
-  /// @return A bool version of this <code>Var</code>.
-  bool AsBool() const;
-
-  /// AsInt() converts this <code>Var</code> to an int32_t. This function
-  /// is required because JavaScript doesn't have a concept of ints and doubles,
-  /// only numbers. The distinction between the two is an optimization inside
-  /// the compiler. Since converting from a double to an int may be lossy, if
-  /// you care about the distinction, either always work in doubles, or check
-  /// !is_double() before calling AsInt().
-  ///
-  /// These functions will assert in debug mode and return 0 if the internal
-  /// representation is not is_number().
-  ///
-  /// @return An int32_t version of this <code>Var</code>.
-  int32_t AsInt() const;
-
-  /// AsDouble() converts this <code>Var</code> to a double. This function is
-  /// necessary because JavaScript doesn't have a concept of ints and doubles,
-  /// only numbers. The distinction between the two is an optimization inside
-  /// the compiler. Since converting from a double to an int may be lossy, if
-  /// you care about the distinction, either always work in doubles, or check
-  /// !is_double() before calling AsInt().
-  ///
-  /// These functions will assert in debug mode and return 0 if the internal
-  /// representation is not is_number().
-  ///
-  /// @return An double version of this <code>Var</code>.
-  double AsDouble() const;
-
-  /// AsString() converts this <code>Var</code> to a string. If this object is
-  /// not a string, it will assert in debug mode, and return an empty string.
-  ///
-  /// @return A string version of this <code>Var</code>.
-  std::string AsString() const;
-
-  /// Gets the resource contained in the var. If this object is not a resource,
-  /// it will assert in debug mode, and return a null resource.
-  ///
-  /// @return The <code>pp::Resource</code> that is contained in the var.
-  pp::Resource AsResource() const;
-
-  /// This function returns the internal <code>PP_Var</code>
-  /// managed by this <code>Var</code> object.
-  ///
-  /// @return A const reference to a <code>PP_Var</code>.
-  const PP_Var& pp_var() const {
-    return var_;
-  }
-
-  /// Detach() detaches from the internal <code>PP_Var</code> of this
-  /// object, keeping the reference count the same. This is used when returning
-  /// a <code>PP_Var</code> from an API function where the caller expects the
-  /// return value to have the reference count incremented for it.
-  ///
-  /// @return A detached version of this object without affecting the reference
-  /// count.
-  PP_Var Detach() {
-    PP_Var ret = var_;
-    var_ = PP_MakeUndefined();
-    is_managed_ = true;
-    return ret;
-  }
-
-  /// DebugString() returns a short description "Var<X>" that can be used for
-  /// logging, where "X" is the underlying scalar or "UNDEFINED" or "OBJ" as
-  /// it does not call into the browser to get the object description.
-  ///
-  /// @return A string displaying the value of this <code>Var</code>. This
-  /// function is used for debugging.
-  std::string DebugString() const;
-
-  /// This class is used when calling the raw C PPAPI when using the C++
-  /// <code>Var</code> as a possible NULL exception. This class will handle
-  /// getting the address of the internal value out if it's non-NULL and
-  /// fixing up the reference count.
-  ///
-  /// <strong>Warning:</strong> this will only work for things with exception
-  /// semantics, i.e. that the value will not be changed if it's a
-  /// non-undefined exception. Otherwise, this class will mess up the
-  /// refcounting.
-  ///
-  /// This is a bit subtle:
-  /// - If NULL is passed, we return NULL from get() and do nothing.
-  ///
-  /// - If a undefined value is passed, we return the address of a undefined
-  ///   var from get and have the output value take ownership of that var.
-  ///
-  /// - If a non-undefined value is passed, we return the address of that var
-  ///   from get, and nothing else should change.
-  ///
-  /// Example:
-  ///   void FooBar(a, b, Var* exception = NULL) {
-  ///     foo_interface->Bar(a, b, Var::OutException(exception).get());
-  ///   }
-  class OutException {
-   public:
-    /// A constructor.
-    OutException(Var* v)
-        : output_(v),
-          originally_had_exception_(v && !v->is_undefined()) {
-      if (output_) {
-        temp_ = output_->var_;
-      } else {
-        temp_.padding = 0;
-        temp_.type = PP_VARTYPE_UNDEFINED;
-      }
-    }
-
-    /// Destructor.
-    ~OutException() {
-      if (output_ && !originally_had_exception_)
-        *output_ = Var(PASS_REF, temp_);
-    }
-
-    PP_Var* get() {
-      if (output_)
-        return &temp_;
-      return NULL;
-    }
-
-   private:
-    Var* output_;
-    bool originally_had_exception_;
-    PP_Var temp_;
-  };
-
- protected:
-  PP_Var var_;
-
-  // |is_managed_| indicates if the instance manages |var_|.
-  // You need to check if |var_| is refcounted to call Release().
-  bool is_managed_;
-
- private:
-  // Prevent an arbitrary pointer argument from being implicitly converted to
-  // a bool at Var construction. If somebody makes such a mistake, they will
-  // get a compilation error.
-  Var(void* non_scriptable_object_pointer);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_VAR_H_
diff --git a/cpp/var_array.cc b/cpp/var_array.cc
deleted file mode 100644
index f6a146b..0000000
--- a/cpp/var_array.cc
+++ /dev/null
@@ -1,96 +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.
-
-#include "ppapi/cpp/var_array.h"
-
-#include "ppapi/c/ppb_var_array.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_VarArray_1_0>() {
-  return PPB_VAR_ARRAY_INTERFACE_1_0;
-}
-
-}  // namespace
-
-VarArray::VarArray() : Var(Null()) {
-  if (has_interface<PPB_VarArray_1_0>())
-    var_ = get_interface<PPB_VarArray_1_0>()->Create();
-  else
-    PP_NOTREACHED();
-}
-
-VarArray::VarArray(const Var& var) : Var(var) {
-  if (!var.is_array()) {
-    PP_NOTREACHED();
-
-    // This takes care of releasing the reference that this object holds.
-    Var::operator=(Var(Null()));
-  }
-}
-
-VarArray::VarArray(const PP_Var& var) : Var(var) {
-  if (var.type != PP_VARTYPE_ARRAY) {
-    PP_NOTREACHED();
-
-    // This takes care of releasing the reference that this object holds.
-    Var::operator=(Var(Null()));
-  }
-}
-
-VarArray::VarArray(const VarArray& other) : Var(other) {
-}
-
-VarArray::~VarArray() {
-}
-
-VarArray& VarArray::operator=(const VarArray& other) {
-  Var::operator=(other);
-  return *this;
-}
-
-Var& VarArray::operator=(const Var& other) {
-  if (other.is_array()) {
-    Var::operator=(other);
-  } else {
-    PP_NOTREACHED();
-    Var::operator=(Var(Null()));
-  }
-  return *this;
-}
-
-Var VarArray::Get(uint32_t index) const {
-  if (!has_interface<PPB_VarArray_1_0>())
-    return Var();
-
-  return Var(PASS_REF, get_interface<PPB_VarArray_1_0>()->Get(var_, index));
-}
-
-bool VarArray::Set(uint32_t index, const Var& value) {
-  if (!has_interface<PPB_VarArray_1_0>())
-    return false;
-
-  return PP_ToBool(get_interface<PPB_VarArray_1_0>()->Set(var_, index,
-                                                          value.pp_var()));
-}
-
-uint32_t VarArray::GetLength() const {
-  if (!has_interface<PPB_VarArray_1_0>())
-    return 0;
-
-  return get_interface<PPB_VarArray_1_0>()->GetLength(var_);
-}
-
-bool VarArray::SetLength(uint32_t length) {
-  if (!has_interface<PPB_VarArray_1_0>())
-    return false;
-
-  return PP_ToBool(get_interface<PPB_VarArray_1_0>()->SetLength(var_, length));
-}
-
-}  // namespace pp
diff --git a/cpp/var_array.h b/cpp/var_array.h
deleted file mode 100644
index c3455ba..0000000
--- a/cpp/var_array.h
+++ /dev/null
@@ -1,90 +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.
-
-#ifndef PPAPI_CPP_VAR_ARRAY_H_
-#define PPAPI_CPP_VAR_ARRAY_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/cpp/var.h"
-
-/// @file
-/// This file defines the API for interacting with array vars.
-
-namespace pp {
-
-class VarArray : public Var {
- public:
-  /// Constructs a new array var.
-  VarArray();
-
-  /// Constructs a <code>VarArray</code> given a var for which is_array() is
-  /// true. This will refer to the same array var, but allow you to access
-  /// methods specific to arrays.
-  ///
-  /// @param[in] var An array var.
-  explicit VarArray(const Var& var);
-
-  /// Constructs a <code>VarArray</code> given a <code>PP_Var</code> of type
-  /// PP_VARTYPE_ARRAY.
-  ///
-  /// @param[in] var A <code>PP_Var</code> of type PP_VARTYPE_ARRAY.
-  explicit VarArray(const PP_Var& var);
-
-  /// Copy constructor.
-  VarArray(const VarArray& other);
-
-  virtual ~VarArray();
-
-  /// Assignment operator.
-  VarArray& operator=(const VarArray& other);
-
-  /// The <code>Var</code> assignment operator is overridden here so that we can
-  /// check for assigning a non-array var to a <code>VarArray</code>.
-  ///
-  /// @param[in] other The array var to be assigned.
-  ///
-  /// @return The resulting <code>VarArray</code> (as a <code>Var</code>&).
-  virtual Var& operator=(const Var& other);
-
-  /// Gets an element from the array.
-  ///
-  /// @param[in] index An index indicating which element to return.
-  ///
-  /// @return The element at the specified position. If <code>index</code> is
-  /// larger than or equal to the array length, an undefined var is returned.
-  Var Get(uint32_t index) const;
-
-  /// Sets the value of an element in the array.
-  ///
-  /// @param[in] index An index indicating which element to modify. If
-  /// <code>index</code> is larger than or equal to the array length, the length
-  /// is updated to be <code>index</code> + 1. Any position in the array that
-  /// hasn't been set before is set to undefined, i.e., <code>PP_Var</code> of
-  /// type <code>PP_VARTYPE_UNDEFINED</code>.
-  /// @param[in] value The value to set.
-  ///
-  /// @return A <code>bool</code> indicating whether the operation succeeds.
-  bool Set(uint32_t index, const Var& value);
-
-  /// Gets the array length.
-  ///
-  /// @return The array length.
-  uint32_t GetLength() const;
-
-  /// Sets the array length.
-  ///
-  /// @param[in] length The new array length. If <code>length</code> is smaller
-  /// than its current value, the array is truncated to the new length; any
-  /// elements that no longer fit are removed. If <code>length</code> is larger
-  /// than its current value, undefined vars are appended to increase the array
-  /// to the specified length.
-  ///
-  /// @return A <code>bool</code> indicating whether the operation succeeds.
-  bool SetLength(uint32_t length);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_VAR_ARRAY_H_
diff --git a/cpp/var_array_buffer.cc b/cpp/var_array_buffer.cc
deleted file mode 100644
index 410d331..0000000
--- a/cpp/var_array_buffer.cc
+++ /dev/null
@@ -1,88 +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/cpp/var_array_buffer.h"
-
-#include <limits>
-
-#include "ppapi/c/ppb_var_array_buffer.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_VarArrayBuffer_1_0>() {
-  return PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0;
-}
-
-}  // namespace
-
-VarArrayBuffer::VarArrayBuffer() {
-  ConstructWithSize(0);
-}
-
-VarArrayBuffer::VarArrayBuffer(const Var& var) : Var(var) {
-  if (!var.is_array_buffer()) {
-    PP_NOTREACHED();
-    var_ = PP_MakeNull();
-  }
-}
-
-VarArrayBuffer::VarArrayBuffer(uint32_t size_in_bytes) {
-  ConstructWithSize(size_in_bytes);
-}
-
-pp::VarArrayBuffer& VarArrayBuffer::operator=(const VarArrayBuffer& other) {
-  Var::operator=(other);
-  return *this;
-}
-
-pp::Var& VarArrayBuffer::operator=(const Var& other) {
-  if (other.is_array_buffer()) {
-    return Var::operator=(other);
-  } else {
-    PP_NOTREACHED();
-    return *this;
-  }
-}
-
-uint32_t VarArrayBuffer::ByteLength() const {
-  uint32_t byte_length = std::numeric_limits<uint32_t>::max();
-  if (is_array_buffer() && has_interface<PPB_VarArrayBuffer_1_0>())
-    get_interface<PPB_VarArrayBuffer_1_0>()->ByteLength(var_, &byte_length);
-  else
-    PP_NOTREACHED();
-  return byte_length;
-}
-
-void* VarArrayBuffer::Map() {
-  if (is_array_buffer() && has_interface<PPB_VarArrayBuffer_1_0>())
-    return get_interface<PPB_VarArrayBuffer_1_0>()->Map(var_);
-  PP_NOTREACHED();
-  return NULL;
-}
-
-void VarArrayBuffer::Unmap() {
-  if (is_array_buffer() && has_interface<PPB_VarArrayBuffer_1_0>())
-    get_interface<PPB_VarArrayBuffer_1_0>()->Unmap(var_);
-  else
-    PP_NOTREACHED();
-}
-
-
-void VarArrayBuffer::ConstructWithSize(uint32_t size_in_bytes) {
-  PP_DCHECK(is_undefined());
-
-  if (has_interface<PPB_VarArrayBuffer_1_0>()) {
-    var_ = get_interface<PPB_VarArrayBuffer_1_0>()->Create(size_in_bytes);
-  } else {
-    PP_NOTREACHED();
-    var_ = PP_MakeNull();
-  }
-  is_managed_ = true;
-}
-
-}  // namespace pp
diff --git a/cpp/var_array_buffer.h b/cpp/var_array_buffer.h
deleted file mode 100644
index 6c9f0ab..0000000
--- a/cpp/var_array_buffer.h
+++ /dev/null
@@ -1,106 +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_CPP_VAR_ARRAY_BUFFER_H_
-#define PPAPI_CPP_VAR_ARRAY_BUFFER_H_
-
-#include <stdint.h>
-
-#include "ppapi/cpp/var.h"
-
-/// @file
-/// This file defines the API for interacting with a JavaScript ArrayBuffer.
-
-namespace pp {
-
-/// <code>VarArrayBuffer</code> provides a way to interact with JavaScript
-/// ArrayBuffers, which represent a contiguous sequence of bytes. Note that
-/// these vars are not part of the embedding page's DOM, and can only be
-/// shared with JavaScript using the <code>PostMessage</code> and
-/// <code>HandleMessage</code> functions of <code>Instance</code>.
-class VarArrayBuffer : public Var {
- public:
-  /// The default constructor constructs a <code>VarArrayBuffer</code> which is
-  /// 0 byte long.
-  VarArrayBuffer();
-
-  /// Construct a <code>VarArrayBuffer</code> given a var for which
-  /// is_array_buffer() is true. This will refer to the same
-  /// <code>ArrayBuffer</code> as var, but allows you to access methods
-  /// specific to <code>VarArrayBuffer</code>.
-  ///
-  /// @param[in] var An <code>ArrayBuffer</code> var.
-  explicit VarArrayBuffer(const Var& var);
-
-  /// Construct a new <code>VarArrayBuffer</code> which is
-  /// <code>size_in_bytes</code> bytes long and initialized to zero.
-  ///
-  /// @param[in] size_in_bytes The size of the constructed
-  /// <code>ArrayBuffer</code> in bytes.
-  explicit VarArrayBuffer(uint32_t size_in_bytes);
-
-  /// Copy constructor.
-  VarArrayBuffer(const VarArrayBuffer& buffer) : Var(buffer) {}
-
-  virtual ~VarArrayBuffer() {}
-
-  /// This function assigns one <code>VarArrayBuffer</code> to another
-  /// <code>VarArrayBuffer</code>.
-  ///
-  /// @param[in] other The <code>VarArrayBuffer</code> to be assigned.
-  ///
-  /// @return The resulting <code>VarArrayBuffer</code>.
-  VarArrayBuffer& operator=(const VarArrayBuffer& other);
-
-  /// This function assigns one <code>VarArrayBuffer</code> to another
-  /// <code>VarArrayBuffer</code>. A Var's assignment operator is overloaded
-  /// here so that we can check for assigning a non-ArrayBuffer var to a
-  /// <code>VarArrayBuffer</code>.
-  ///
-  /// @param[in] other The <code>VarArrayBuffer</code> to be assigned.
-  ///
-  /// @return The resulting <code>VarArrayBuffer</code> (as a Var&).
-  virtual Var& operator=(const Var& other);
-
-  /// ByteLength() retrieves the length of the <code>VarArrayBuffer</code> in
-  /// bytes.
-  ///
-  /// @return The length of the <code>VarArrayBuffer</code> in bytes.
-  uint32_t ByteLength() const;
-
-  /// Map() maps the <code>ArrayBuffer</code> in to the module's address space
-  /// and returns a pointer to the beginning of the internal buffer for
-  /// this <code>ArrayBuffer</code>. ArrayBuffers are copied when transmitted,
-  /// so changes to the underlying memory are not automatically available to
-  /// the embedding page.
-  ///
-  /// Note that calling Map() can be a relatively expensive operation. Use care
-  /// when calling it in performance-critical code. For example, you should call
-  /// it only once when looping over an <code>ArrayBuffer</code>.
-  ///
-  /// <strong>Example:</strong>
-  ///
-  /// @code
-  ///   char* data = static_cast<char*>(array_buffer_var.Map());
-  ///   uint32_t byte_length = array_buffer_var.ByteLength();
-  ///   for (uint32_t i = 0; i < byte_length; ++i)
-  ///     data[i] = 'A';
-  /// @endcode
-  ///
-  /// @return A pointer to the internal buffer for this
-  /// <code>ArrayBuffer</code>.
-  void* Map();
-
-  /// Unmap() unmaps this <code>ArrayBuffer</code> var from the module address
-  /// space. Use this if you want to save memory but might want to call Map()
-  /// to map the buffer again later.
-  void Unmap();
-
- private:
-  void ConstructWithSize(uint32_t size_in_bytes);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_VAR_ARRAY_BUFFER_H_
diff --git a/cpp/var_dictionary.cc b/cpp/var_dictionary.cc
deleted file mode 100644
index 53203d3..0000000
--- a/cpp/var_dictionary.cc
+++ /dev/null
@@ -1,111 +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.
-
-#include "ppapi/cpp/var_dictionary.h"
-
-#include "ppapi/c/ppb_var_dictionary.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_VarDictionary_1_0>() {
-  return PPB_VAR_DICTIONARY_INTERFACE_1_0;
-}
-
-}  // namespace
-
-VarDictionary::VarDictionary() : Var(Null()) {
-  if (has_interface<PPB_VarDictionary_1_0>())
-    var_ = get_interface<PPB_VarDictionary_1_0>()->Create();
-  else
-    PP_NOTREACHED();
-}
-
-VarDictionary::VarDictionary(const Var& var) : Var(var) {
-  if (!var.is_dictionary()) {
-    PP_NOTREACHED();
-
-    // This takes care of releasing the reference that this object holds.
-    Var::operator=(Var(Null()));
-  }
-}
-
-VarDictionary::VarDictionary(const PP_Var& var) : Var(var) {
-  if (var.type != PP_VARTYPE_DICTIONARY) {
-    PP_NOTREACHED();
-
-    // This takes care of releasing the reference that this object holds.
-    Var::operator=(Var(Null()));
-  }
-}
-
-VarDictionary::VarDictionary(const VarDictionary& other)
-    : Var(other) {
-}
-
-VarDictionary::~VarDictionary() {
-}
-
-VarDictionary& VarDictionary::operator=(
-    const VarDictionary& other) {
-  Var::operator=(other);
-  return *this;
-}
-
-Var& VarDictionary::operator=(const Var& other) {
-  if (other.is_dictionary()) {
-    Var::operator=(other);
-  } else {
-    PP_NOTREACHED();
-    Var::operator=(Var(Null()));
-  }
-  return *this;
-}
-
-Var VarDictionary::Get(const Var& key) const {
-  if (!has_interface<PPB_VarDictionary_1_0>())
-    return Var();
-
-  return Var(
-      PASS_REF,
-      get_interface<PPB_VarDictionary_1_0>()->Get(var_, key.pp_var()));
-}
-
-bool VarDictionary::Set(const Var& key, const Var& value) {
-  if (!has_interface<PPB_VarDictionary_1_0>())
-    return false;
-
-  return PP_ToBool(get_interface<PPB_VarDictionary_1_0>()->Set(
-      var_, key.pp_var(), value.pp_var()));
-}
-
-void VarDictionary::Delete(const Var& key) {
-  if (has_interface<PPB_VarDictionary_1_0>())
-    get_interface<PPB_VarDictionary_1_0>()->Delete(var_, key.pp_var());
-}
-
-bool VarDictionary::HasKey(const Var& key) const {
-  if (!has_interface<PPB_VarDictionary_1_0>())
-    return false;
-
-  return PP_ToBool(get_interface<PPB_VarDictionary_1_0>()->HasKey(
-      var_, key.pp_var()));
-}
-
-VarArray VarDictionary::GetKeys() const {
-  if (!has_interface<PPB_VarDictionary_1_0>())
-    return VarArray();
-
-  Var result(PASS_REF,
-             get_interface<PPB_VarDictionary_1_0>()->GetKeys(var_));
-  if (result.is_array())
-    return VarArray(result);
-  else
-    return VarArray();
-}
-
-}  // namespace pp
diff --git a/cpp/var_dictionary.h b/cpp/var_dictionary.h
deleted file mode 100644
index c47ef94..0000000
--- a/cpp/var_dictionary.h
+++ /dev/null
@@ -1,93 +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.
-
-#ifndef PPAPI_CPP_VAR_DICTIONARY_H_
-#define PPAPI_CPP_VAR_DICTIONARY_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/cpp/var.h"
-#include "ppapi/cpp/var_array.h"
-
-/// @file
-/// This file defines the API for interacting with dictionary vars.
-
-namespace pp {
-
-class VarDictionary : public Var {
- public:
-  /// Constructs a new dictionary var.
-  VarDictionary();
-
-  /// Constructs a <code>VarDictionary</code> given a var for which
-  /// is_dictionary() is true. This will refer to the same dictionary var, but
-  /// allow you to access methods specific to dictionary.
-  ///
-  /// @param[in] var A dictionary var.
-  explicit VarDictionary(const Var& var);
-
-  /// Constructs a <code>VarDictionary</code> given a <code>PP_Var</code>
-  /// of type PP_VARTYPE_DICTIONARY.
-  ///
-  /// @param[in] var A <code>PP_Var</code> of type PP_VARTYPE_DICTIONARY.
-  explicit VarDictionary(const PP_Var& var);
-
-  /// Copy constructor.
-  VarDictionary(const VarDictionary& other);
-
-  virtual ~VarDictionary();
-
-  /// Assignment operator.
-  VarDictionary& operator=(const VarDictionary& other);
-
-  /// The <code>Var</code> assignment operator is overridden here so that we can
-  /// check for assigning a non-dictionary var to a
-  /// <code>VarDictionary</code>.
-  ///
-  /// @param[in] other The dictionary var to be assigned.
-  ///
-  /// @return The resulting <code>VarDictionary</code> (as a
-  /// <code>Var</code>&).
-  virtual Var& operator=(const Var& other);
-
-  /// Gets the value associated with the specified key.
-  ///
-  /// @param[in] key A string var.
-  ///
-  /// @return The value that is associated with <code>key</code>. If
-  /// <code>key</code> is not a string var, or it doesn't exist in the
-  /// dictionary, an undefined var is returned.
-  Var Get(const Var& key) const;
-
-  /// Sets the value associated with the specified key.
-  ///
-  /// @param[in] key A string var. If this key hasn't existed in the dictionary,
-  /// it is added and associated with <code>value</code>; otherwise, the
-  /// previous value is replaced with <code>value</code>.
-  /// @param[in] value The value to set.
-  ///
-  /// @return A <code>bool</code> indicating whether the operation succeeds.
-  bool Set(const Var& key, const Var& value);
-
-  /// Deletes the specified key and its associated value, if the key exists.
-  ///
-  /// @param[in] key A string var.
-  void Delete(const Var& key);
-
-  /// Checks whether a key exists.
-  ///
-  /// @param[in] key A string var.
-  ///
-  /// @return A <code>bool</code> indicating whether the key exists.
-  bool HasKey(const Var& key) const;
-
-  /// Gets all the keys in the dictionary.
-  ///
-  /// @return An array var which contains all the keys of the dictionary.
-  /// The elements are string vars. Returns an empty array var if failed.
-  VarArray GetKeys() const;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_VAR_DICTIONARY_H_
diff --git a/cpp/video_decoder.cc b/cpp/video_decoder.cc
deleted file mode 100644
index b3c1b54..0000000
--- a/cpp/video_decoder.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/cpp/video_decoder.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_video_decoder.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <>
-const char* interface_name<PPB_VideoDecoder_0_1>() {
-  return PPB_VIDEODECODER_INTERFACE_0_1;
-}
-
-template <>
-const char* interface_name<PPB_VideoDecoder_0_2>() {
-  return PPB_VIDEODECODER_INTERFACE_0_2;
-}
-
-template <>
-const char* interface_name<PPB_VideoDecoder_1_0>() {
-  return PPB_VIDEODECODER_INTERFACE_1_0;
-}
-
-template <>
-const char* interface_name<PPB_VideoDecoder_1_1>() {
-  return PPB_VIDEODECODER_INTERFACE_1_1;
-}
-
-// This struct is used to adapt CompletionCallbackWithOutput<PP_VideoPicture> to
-// the pre-1.0 APIs, which return PP_VideoPicture_0_1. This struct is allocated
-// on the heap, and deleted in CallbackConverter.
-struct CallbackData_0_1 {
-  explicit CallbackData_0_1(
-      const CompletionCallbackWithOutput<PP_VideoPicture>& cc)
-      : original_picture(cc.output()),
-        original_callback(cc.pp_completion_callback()) {}
-  PP_VideoPicture_0_1 picture;
-  PP_VideoPicture* original_picture;
-  PP_CompletionCallback original_callback;
-};
-
-// Convert a 1.0 style callback to pre-1.0 callback.
-void CallbackConverter(void* user_data, int32_t result) {
-  CallbackData_0_1* data = static_cast<CallbackData_0_1*>(user_data);
-  if (result == PP_OK) {
-    PP_VideoPicture_0_1* picture = &data->picture;
-    PP_VideoPicture* original_picture = data->original_picture;
-    original_picture->decode_id = picture->decode_id;
-    original_picture->texture_id = picture->texture_id;
-    original_picture->texture_target = picture->texture_target;
-    original_picture->texture_size = picture->texture_size;
-    // Set visible_rect to the entire picture.
-    original_picture->visible_rect = PP_MakeRectFromXYWH(
-        0, 0, picture->texture_size.width, picture->texture_size.height);
-  }
-
-  // Now execute the original callback.
-  PP_RunCompletionCallback(&data->original_callback, result);
-  delete data;
-}
-
-}  // namespace
-
-VideoDecoder::VideoDecoder() {
-}
-
-VideoDecoder::VideoDecoder(const InstanceHandle& instance) {
-  if (has_interface<PPB_VideoDecoder_1_1>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_VideoDecoder_1_1>()->Create(instance.pp_instance()));
-  } else if (has_interface<PPB_VideoDecoder_1_0>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_VideoDecoder_1_0>()->Create(instance.pp_instance()));
-  } else if (has_interface<PPB_VideoDecoder_0_2>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_VideoDecoder_0_2>()->Create(instance.pp_instance()));
-  } else if (has_interface<PPB_VideoDecoder_0_1>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_VideoDecoder_0_1>()->Create(instance.pp_instance()));
-  }
-}
-
-VideoDecoder::VideoDecoder(const VideoDecoder& other) : Resource(other) {
-}
-
-int32_t VideoDecoder::Initialize(const Graphics3D& context,
-                                 PP_VideoProfile profile,
-                                 PP_HardwareAcceleration acceleration,
-                                 uint32_t min_picture_count,
-                                 const CompletionCallback& cc) {
-  if (has_interface<PPB_VideoDecoder_1_1>()) {
-    return get_interface<PPB_VideoDecoder_1_1>()->Initialize(
-        pp_resource(), context.pp_resource(), profile, acceleration,
-        min_picture_count, cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_VideoDecoder_1_0>()) {
-    if (min_picture_count != 0)
-        return cc.MayForce(PP_ERROR_NOTSUPPORTED);
-    return get_interface<PPB_VideoDecoder_1_0>()->Initialize(
-        pp_resource(), context.pp_resource(), profile, acceleration,
-        cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_VideoDecoder_0_2>()) {
-    if (min_picture_count != 0)
-        return cc.MayForce(PP_ERROR_NOTSUPPORTED);
-    return get_interface<PPB_VideoDecoder_0_2>()->Initialize(
-        pp_resource(), context.pp_resource(), profile, acceleration,
-        cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_VideoDecoder_0_1>()) {
-    if (min_picture_count != 0)
-        return cc.MayForce(PP_ERROR_NOTSUPPORTED);
-    if (acceleration == PP_HARDWAREACCELERATION_NONE)
-      return cc.MayForce(PP_ERROR_NOTSUPPORTED);
-    return get_interface<PPB_VideoDecoder_0_1>()->Initialize(
-        pp_resource(),
-        context.pp_resource(),
-        profile,
-        acceleration == PP_HARDWAREACCELERATION_WITHFALLBACK
-            ? PP_TRUE
-            : PP_FALSE,
-        cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t VideoDecoder::Decode(uint32_t decode_id,
-                             uint32_t size,
-                             const void* buffer,
-                             const CompletionCallback& cc) {
-  if (has_interface<PPB_VideoDecoder_1_0>()) {
-    return get_interface<PPB_VideoDecoder_1_0>()->Decode(
-        pp_resource(), decode_id, size, buffer, cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_VideoDecoder_0_2>()) {
-    return get_interface<PPB_VideoDecoder_0_2>()->Decode(
-        pp_resource(), decode_id, size, buffer, cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_VideoDecoder_0_1>()) {
-    return get_interface<PPB_VideoDecoder_0_1>()->Decode(
-        pp_resource(), decode_id, size, buffer, cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t VideoDecoder::GetPicture(
-    const CompletionCallbackWithOutput<PP_VideoPicture>& cc) {
-  if (has_interface<PPB_VideoDecoder_1_0>()) {
-    return get_interface<PPB_VideoDecoder_1_0>()->GetPicture(
-        pp_resource(), cc.output(), cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_VideoDecoder_0_2>()) {
-    // Data for our callback wrapper. The callback handler will delete it.
-    CallbackData_0_1* data = new CallbackData_0_1(cc);
-    return get_interface<PPB_VideoDecoder_0_2>()->GetPicture(
-        pp_resource(), &data->picture,
-        PP_MakeCompletionCallback(&CallbackConverter, data));
-  }
-  if (has_interface<PPB_VideoDecoder_0_1>()) {
-    // Data for our callback wrapper. The callback handler will delete it.
-    CallbackData_0_1* data = new CallbackData_0_1(cc);
-    return get_interface<PPB_VideoDecoder_0_1>()->GetPicture(
-        pp_resource(), &data->picture,
-        PP_MakeCompletionCallback(&CallbackConverter, data));
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-void VideoDecoder::RecyclePicture(const PP_VideoPicture& picture) {
-  if (has_interface<PPB_VideoDecoder_1_0>()) {
-    get_interface<PPB_VideoDecoder_1_0>()->RecyclePicture(pp_resource(),
-                                                          &picture);
-  } else if (has_interface<PPB_VideoDecoder_0_2>()) {
-    get_interface<PPB_VideoDecoder_0_2>()->RecyclePicture(pp_resource(),
-                                                          &picture);
-  } else if (has_interface<PPB_VideoDecoder_0_1>()) {
-    get_interface<PPB_VideoDecoder_0_1>()->RecyclePicture(pp_resource(),
-                                                          &picture);
-  }
-}
-
-int32_t VideoDecoder::Flush(const CompletionCallback& cc) {
-  if (has_interface<PPB_VideoDecoder_1_0>()) {
-    return get_interface<PPB_VideoDecoder_1_0>()->Flush(
-        pp_resource(), cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_VideoDecoder_0_2>()) {
-    return get_interface<PPB_VideoDecoder_0_2>()->Flush(
-        pp_resource(), cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_VideoDecoder_0_1>()) {
-    return get_interface<PPB_VideoDecoder_0_1>()->Flush(
-        pp_resource(), cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t VideoDecoder::Reset(const CompletionCallback& cc) {
-  if (has_interface<PPB_VideoDecoder_1_0>()) {
-    return get_interface<PPB_VideoDecoder_1_0>()->Reset(
-        pp_resource(), cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_VideoDecoder_0_2>()) {
-    return get_interface<PPB_VideoDecoder_0_2>()->Reset(
-        pp_resource(), cc.pp_completion_callback());
-  }
-  if (has_interface<PPB_VideoDecoder_0_1>()) {
-    return get_interface<PPB_VideoDecoder_0_1>()->Reset(
-        pp_resource(), cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-}  // namespace pp
diff --git a/cpp/video_decoder.h b/cpp/video_decoder.h
deleted file mode 100644
index b524fd6..0000000
--- a/cpp/video_decoder.h
+++ /dev/null
@@ -1,185 +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_CPP_VIDEO_DECODER_H_
-#define PPAPI_CPP_VIDEO_DECODER_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_codecs.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/graphics_3d.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/size.h"
-
-/// @file
-/// This file defines the API to create and use a VideoDecoder resource.
-
-namespace pp {
-
-class InstanceHandle;
-
-/// Video decoder interface.
-///
-/// Typical usage:
-/// - Call Create() to create a new video decoder resource.
-/// - Call Initialize() to initialize it with a 3d graphics context and the
-///   desired codec profile.
-/// - Call Decode() continuously (waiting for each previous call to complete) to
-///   push bitstream buffers to the decoder.
-/// - Call GetPicture() continuously (waiting for each previous call to
-///   complete) to pull decoded pictures from the decoder.
-/// - Call Flush() to signal end of stream to the decoder and perform shutdown
-///   when it completes.
-/// - Call Reset() to quickly stop the decoder (e.g. to implement Seek) and wait
-///   for the callback before restarting decoding at another point.
-/// - To destroy the decoder, the plugin should release all of its references to
-///   it. Any pending callbacks will abort before the decoder is destroyed.
-///
-/// Available video codecs vary by platform.
-/// All: theora, vorbis, vp8.
-/// Chrome and ChromeOS: aac, h264.
-/// ChromeOS: mpeg4.
-class VideoDecoder : public Resource {
- public:
-  /// Default constructor for creating an is_null() <code>VideoDecoder</code>
-  /// object.
-  VideoDecoder();
-
-  /// A constructor used to create a <code>VideoDecoder</code> and associate it
-  /// with the provided <code>Instance</code>.
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  explicit VideoDecoder(const InstanceHandle& instance);
-
-  /// The copy constructor for <code>VideoDecoder</code>.
-  /// @param[in] other A reference to a <code>VideoDecoder</code>.
-  VideoDecoder(const VideoDecoder& other);
-
-  /// Initializes a video decoder resource. This should be called after Create()
-  /// and before any other functions.
-  ///
-  /// @param[in] graphics3d_context A <code>PPB_Graphics3D</code> resource to
-  /// use during decoding.
-  /// @param[in] profile A <code>PP_VideoProfile</code> specifying the video
-  /// codec profile.
-  /// @param[in] acceleration A <code>PP_HardwareAcceleration</code> specifying
-  /// whether to use a hardware accelerated or a software implementation.
-  /// @param[in] min_picture_count A count of pictures the plugin would like to
-  /// have in flight. This is effectively the number of times the plugin can
-  /// call GetPicture() and get a decoded frame without calling
-  /// RecyclePicture(). The decoder has its own internal minimum count, and will
-  /// take the larger of its internal and this value. A client that doesn't care
-  /// can therefore just pass in zero for this argument.
-  /// @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  /// Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the
-  /// requested profile is not supported. In this case, the client may call
-  /// Initialize() again with different parameters to find a good configuration.
-  int32_t Initialize(const Graphics3D& graphics3d_context,
-                     PP_VideoProfile profile,
-                     PP_HardwareAcceleration acceleration,
-                     uint32_t min_picture_count,
-                     const CompletionCallback& callback);
-
-  /// Decodes a bitstream buffer. Copies |size| bytes of data from the plugin's
-  /// |buffer|. The plugin should wait until the decoder signals completion by
-  /// returning PP_OK or by running |callback| before calling Decode() again.
-  ///
-  /// In general, each bitstream buffer should contain a demuxed bitstream frame
-  /// for the selected video codec. For example, H264 decoders expect to receive
-  /// one AnnexB NAL unit, including the 4 byte start code prefix, while VP8
-  /// decoders expect to receive a bitstream frame without the IVF frame header.
-  ///
-  /// If the call to Decode() eventually results in a picture, the |decode_id|
-  /// parameter is copied into the returned picture. The plugin can use this to
-  /// associate decoded pictures with Decode() calls (e.g. to assign timestamps
-  /// or frame numbers to pictures.) This value is opaque to the API so the
-  /// plugin is free to pass any value.
-  ///
-  /// @param[in] decode_id An optional value, chosen by the plugin, that can be
-  /// used to associate calls to Decode() with decoded pictures returned by
-  /// GetPicture().
-  /// @param[in] size Buffer size in bytes.
-  /// @param[in] buffer Starting address of buffer.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called on
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  /// Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Flush()
-  /// or Reset() call is pending.
-  /// Returns PP_ERROR_INPROGRESS if there is another Decode() call pending.
-  /// Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created.
-  /// Returns PP_ERROR_ABORTED when Reset() is called while Decode() is pending.
-  int32_t Decode(uint32_t decode_id,
-                 uint32_t size,
-                 const void* buffer,
-                 const CompletionCallback& callback);
-
-  /// Gets the next picture from the decoder. The picture is valid after the
-  /// decoder signals completion by returning PP_OK or running |callback|. The
-  /// plugin can call GetPicture() again after the decoder signals completion.
-  /// When the plugin is finished using the picture, it should return it to the
-  /// system by calling RecyclePicture().
-  ///
-  /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be
-  /// called on completion, and on success, to hold the picture descriptor.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  /// Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Reset()
-  /// call is pending.
-  /// Returns PP_ERROR_INPROGRESS if there is another GetPicture() call pending.
-  /// Returns PP_ERROR_ABORTED when Reset() is called, or if a call to Flush()
-  /// completes while GetPicture() is pending.
-  int32_t GetPicture(
-      const CompletionCallbackWithOutput<PP_VideoPicture>& callback);
-
-  /// Recycles a picture that the plugin has received from the decoder.
-  /// The plugin should call this as soon as it has finished using the texture
-  /// so the decoder can decode more pictures.
-  ///
-  /// @param[in] picture A <code>PP_VideoPicture</code> to return to the
-  /// decoder.
-  void RecyclePicture(const PP_VideoPicture& picture);
-
-  /// Flushes the decoder. The plugin should call Flush() when it reaches the
-  /// end of its video stream in order to stop cleanly. The decoder will run any
-  /// pending Decode() call to completion. The plugin should make no further
-  /// calls to the decoder other than GetPicture() and RecyclePicture() until
-  /// the decoder signals completion by running |callback|. Just before
-  /// completion, any pending GetPicture() call will complete by running its
-  /// callback with result PP_ERROR_ABORTED to signal that no more pictures are
-  /// available. Any pictures held by the plugin remain valid during and after
-  /// the flush and should be recycled back to the decoder.
-  ///
-  /// @param[in] callback A <code>CompletionCallback</code> to be called on
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  /// Returns PP_ERROR_FAILED if the decoder isn't initialized.
-  int32_t Flush(const CompletionCallback& callback);
-
-  /// Resets the decoder as quickly as possible. The plugin can call Reset() to
-  /// skip to another position in the video stream. After Reset() returns, any
-  /// pending calls to Decode() and GetPicture()) abort, causing their callbacks
-  /// to run with PP_ERROR_ABORTED. The plugin should not make further calls to
-  /// the decoder other than RecyclePicture() until the decoder signals
-  /// completion by running |callback|. Any pictures held by the plugin remain
-  /// valid during and after the reset and should be recycled back to the
-  /// decoder.
-  ///
-  /// @param[in] callback A <code>CompletionCallback</code> to be called on
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-    /// Returns PP_ERROR_FAILED if the decoder isn't initialized.
-int32_t Reset(const CompletionCallback& callback);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_VIDEO_DECODER_H_
diff --git a/cpp/video_encoder.cc b/cpp/video_encoder.cc
deleted file mode 100644
index b0d35e8..0000000
--- a/cpp/video_encoder.cc
+++ /dev/null
@@ -1,231 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/cpp/video_encoder.h"
-
-#include <stddef.h>
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_video_encoder.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <>
-const char* interface_name<PPB_VideoEncoder_0_1>() {
-  return PPB_VIDEOENCODER_INTERFACE_0_1;
-}
-
-template <>
-const char* interface_name<PPB_VideoEncoder_0_2>() {
-  return PPB_VIDEOENCODER_INTERFACE_0_2;
-}
-
-// This struct is used to adapt
-// CompletionCallbackWithOutput<std::vector<PP_VideoProfileDescription>>
-// to the pre-0.2 APIs, which return PP_VideoProfileDescription_0_1.
-// This struct is allocated on the heap, and deleted in
-// CallbackProfileDescriptionConverter.
-struct CallbackProfileDescription_0_1 {
-  explicit CallbackProfileDescription_0_1(const CompletionCallbackWithOutput<
-      std::vector<PP_VideoProfileDescription> >& cc)
-      : output_profiles(&profiles),
-        original_output_profiles(cc.output()),
-        original_callback(cc.pp_completion_callback()) {}
-  std::vector<PP_VideoProfileDescription_0_1> profiles;
-  ArrayOutputAdapter<PP_VideoProfileDescription_0_1> output_profiles;
-  PP_ArrayOutput original_output_profiles;
-  PP_CompletionCallback original_callback;
-};
-
-// Converts data from a 0.1 style callback to 0.2 callback.
-void CallbackProfileDescriptionConverter(void* user_data, int32_t result) {
-  CallbackProfileDescription_0_1* data =
-      static_cast<CallbackProfileDescription_0_1*>(user_data);
-  if (result >= 0) {
-    PP_VideoProfileDescription* original_profiles =
-        static_cast<PP_VideoProfileDescription*>(
-            data->original_output_profiles.GetDataBuffer(
-                data->original_output_profiles.user_data,
-                static_cast<uint32_t>(data->profiles.size()),
-                static_cast<uint32_t>(sizeof(PP_VideoProfileDescription))));
-
-    for (size_t i = 0; i < data->profiles.size(); i++) {
-      const PP_VideoProfileDescription_0_1& profile = data->profiles[i];
-
-      original_profiles[i].profile = profile.profile;
-      original_profiles[i].max_resolution = profile.max_resolution;
-      original_profiles[i].max_framerate_numerator =
-          profile.max_framerate_numerator;
-      original_profiles[i].max_framerate_denominator =
-          profile.max_framerate_denominator;
-      original_profiles[i].hardware_accelerated =
-          PP_FromBool(profile.acceleration == PP_HARDWAREACCELERATION_ONLY);
-    }
-  }
-
-  // Now execute the original callback.
-  PP_RunCompletionCallback(&data->original_callback, result);
-  delete data;
-}
-
-}  // namespace
-
-VideoEncoder::VideoEncoder() {}
-
-VideoEncoder::VideoEncoder(const InstanceHandle& instance) {
-  if (has_interface<PPB_VideoEncoder_0_2>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_VideoEncoder_0_2>()->Create(instance.pp_instance()));
-  } else if (has_interface<PPB_VideoEncoder_0_1>()) {
-    PassRefFromConstructor(
-        get_interface<PPB_VideoEncoder_0_1>()->Create(instance.pp_instance()));
-  }
-}
-
-VideoEncoder::VideoEncoder(const VideoEncoder& other) : Resource(other) {}
-
-VideoEncoder& VideoEncoder::operator=(const VideoEncoder& other) {
-  Resource::operator=(other);
-  return *this;
-}
-
-int32_t VideoEncoder::GetSupportedProfiles(const CompletionCallbackWithOutput<
-    std::vector<PP_VideoProfileDescription> >& cc) {
-  if (has_interface<PPB_VideoEncoder_0_2>()) {
-    return get_interface<PPB_VideoEncoder_0_2>()->GetSupportedProfiles(
-        pp_resource(), cc.output(), cc.pp_completion_callback());
-  } else if (has_interface<PPB_VideoEncoder_0_1>()) {
-    // Data for our callback wrapper. The callback handler will delete it.
-    CallbackProfileDescription_0_1* data =
-        new CallbackProfileDescription_0_1(cc);
-    return get_interface<PPB_VideoEncoder_0_1>()->GetSupportedProfiles(
-        pp_resource(), data->output_profiles.pp_array_output(),
-        PP_MakeCompletionCallback(&CallbackProfileDescriptionConverter, data));
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t VideoEncoder::Initialize(const PP_VideoFrame_Format& input_format,
-                                 const Size& input_visible_size,
-                                 const PP_VideoProfile& output_profile,
-                                 const uint32_t initial_bitrate,
-                                 PP_HardwareAcceleration acceleration,
-                                 const CompletionCallback& cc) {
-  if (has_interface<PPB_VideoEncoder_0_2>()) {
-    return get_interface<PPB_VideoEncoder_0_2>()->Initialize(
-        pp_resource(), input_format, &input_visible_size.pp_size(),
-        output_profile, initial_bitrate, acceleration,
-        cc.pp_completion_callback());
-  } else if (has_interface<PPB_VideoEncoder_0_1>()) {
-    return get_interface<PPB_VideoEncoder_0_1>()->Initialize(
-        pp_resource(), input_format, &input_visible_size.pp_size(),
-        output_profile, initial_bitrate, acceleration,
-        cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t VideoEncoder::GetFramesRequired() {
-  if (has_interface<PPB_VideoEncoder_0_2>()) {
-    return get_interface<PPB_VideoEncoder_0_2>()->GetFramesRequired(
-        pp_resource());
-  } else if (has_interface<PPB_VideoEncoder_0_1>()) {
-    return get_interface<PPB_VideoEncoder_0_1>()->GetFramesRequired(
-        pp_resource());
-  }
-  return PP_ERROR_NOINTERFACE;
-}
-
-int32_t VideoEncoder::GetFrameCodedSize(Size* coded_size) {
-  if (has_interface<PPB_VideoEncoder_0_2>()) {
-    return get_interface<PPB_VideoEncoder_0_2>()->GetFrameCodedSize(
-        pp_resource(), &coded_size->pp_size());
-  } else if (has_interface<PPB_VideoEncoder_0_1>()) {
-    return get_interface<PPB_VideoEncoder_0_1>()->GetFrameCodedSize(
-        pp_resource(), &coded_size->pp_size());
-  }
-  return PP_ERROR_NOINTERFACE;
-}
-
-int32_t VideoEncoder::GetVideoFrame(
-    const CompletionCallbackWithOutput<VideoFrame>& cc) {
-  if (has_interface<PPB_VideoEncoder_0_2>()) {
-    return get_interface<PPB_VideoEncoder_0_2>()->GetVideoFrame(
-        pp_resource(), cc.output(), cc.pp_completion_callback());
-  } else if (has_interface<PPB_VideoEncoder_0_1>()) {
-    return get_interface<PPB_VideoEncoder_0_1>()->GetVideoFrame(
-        pp_resource(), cc.output(), cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t VideoEncoder::Encode(const VideoFrame& video_frame,
-                             bool force_keyframe,
-                             const CompletionCallback& cc) {
-  if (has_interface<PPB_VideoEncoder_0_2>()) {
-    return get_interface<PPB_VideoEncoder_0_2>()->Encode(
-        pp_resource(), video_frame.pp_resource(), PP_FromBool(force_keyframe),
-        cc.pp_completion_callback());
-  } else if (has_interface<PPB_VideoEncoder_0_1>()) {
-    return get_interface<PPB_VideoEncoder_0_1>()->Encode(
-        pp_resource(), video_frame.pp_resource(), PP_FromBool(force_keyframe),
-        cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-int32_t VideoEncoder::GetBitstreamBuffer(
-    const CompletionCallbackWithOutput<PP_BitstreamBuffer>& cc) {
-  if (has_interface<PPB_VideoEncoder_0_2>()) {
-    return get_interface<PPB_VideoEncoder_0_2>()->GetBitstreamBuffer(
-        pp_resource(), cc.output(), cc.pp_completion_callback());
-  } else if (has_interface<PPB_VideoEncoder_0_1>()) {
-    return get_interface<PPB_VideoEncoder_0_1>()->GetBitstreamBuffer(
-        pp_resource(), cc.output(), cc.pp_completion_callback());
-  }
-  return cc.MayForce(PP_ERROR_NOINTERFACE);
-}
-
-void VideoEncoder::RecycleBitstreamBuffer(
-    const PP_BitstreamBuffer& bitstream_buffer) {
-  if (has_interface<PPB_VideoEncoder_0_2>()) {
-    get_interface<PPB_VideoEncoder_0_2>()->RecycleBitstreamBuffer(
-        pp_resource(), &bitstream_buffer);
-  } else if (has_interface<PPB_VideoEncoder_0_1>()) {
-    get_interface<PPB_VideoEncoder_0_1>()->RecycleBitstreamBuffer(
-        pp_resource(), &bitstream_buffer);
-  }
-}
-
-void VideoEncoder::RequestEncodingParametersChange(uint32_t bitrate,
-                                                   uint32_t framerate) {
-  if (has_interface<PPB_VideoEncoder_0_2>()) {
-    get_interface<PPB_VideoEncoder_0_2>()->RequestEncodingParametersChange(
-        pp_resource(), bitrate, framerate);
-  } else if (has_interface<PPB_VideoEncoder_0_1>()) {
-    get_interface<PPB_VideoEncoder_0_1>()->RequestEncodingParametersChange(
-        pp_resource(), bitrate, framerate);
-  }
-}
-
-void VideoEncoder::Close() {
-  if (has_interface<PPB_VideoEncoder_0_2>()) {
-    get_interface<PPB_VideoEncoder_0_2>()->Close(pp_resource());
-  } else if (has_interface<PPB_VideoEncoder_0_1>()) {
-    get_interface<PPB_VideoEncoder_0_1>()->Close(pp_resource());
-  }
-}
-
-}  // namespace pp
diff --git a/cpp/video_encoder.h b/cpp/video_encoder.h
deleted file mode 100644
index cebd7e3..0000000
--- a/cpp/video_encoder.h
+++ /dev/null
@@ -1,181 +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_CPP_VIDEO_ENCODER_H_
-#define PPAPI_CPP_VIDEO_ENCODER_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_codecs.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/size.h"
-#include "ppapi/cpp/video_frame.h"
-
-/// @file
-/// This file defines the API to create and use a VideoEncoder resource.
-
-namespace pp {
-
-class InstanceHandle;
-
-/// Video encoder interface.
-///
-/// Typical usage:
-/// - Call Create() to create a new video encoder resource.
-/// - Call GetSupportedFormats() to determine which codecs and profiles are
-///   available.
-/// - Call Initialize() to initialize the encoder for a supported profile.
-/// - Call GetVideoFrame() to get a blank frame and fill it in, or get a video
-///   frame from another resource, e.g. <code>PPB_MediaStreamVideoTrack</code>.
-/// - Call Encode() to push the video frame to the encoder. If an external frame
-///   is pushed, wait for completion to recycle the frame.
-/// - Call GetBitstreamBuffer() continuously (waiting for each previous call to
-///   complete) to pull encoded pictures from the encoder.
-/// - Call RecycleBitstreamBuffer() after consuming the data in the bitstream
-///   buffer.
-/// - To destroy the encoder, the plugin should release all of its references to
-///   it. Any pending callbacks will abort before the encoder is destroyed.
-///
-/// Available video codecs vary by platform.
-/// All: vp8 (software).
-/// ChromeOS, depending on your device: h264 (hardware), vp8 (hardware)
-class VideoEncoder : public Resource {
- public:
-  /// Default constructor for creating an is_null() <code>VideoEncoder</code>
-  /// object.
-  VideoEncoder();
-
-  /// A constructor used to create a <code>VideoEncoder</code> and associate it
-  /// with the provided <code>Instance</code>.
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  explicit VideoEncoder(const InstanceHandle& instance);
-
-  /// The copy constructor for <code>VideoEncoder</code>.
-  /// @param[in] other A reference to a <code>VideoEncoder</code>.
-  VideoEncoder(const VideoEncoder& other);
-  VideoEncoder& operator=(const VideoEncoder& other);
-
-  /// Gets an array of supported video encoder profiles.
-  /// These can be used to choose a profile before calling Initialize().
-  ///
-  /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be
-  /// called upon completion with the PP_VideoProfileDescription structs.
-  ///
-  /// @return If >= 0, the number of supported profiles returned, otherwise an
-  /// error code from <code>pp_errors.h</code>.
-  int32_t GetSupportedProfiles(const CompletionCallbackWithOutput<
-      std::vector<PP_VideoProfileDescription> >& cc);
-
-  /// Initializes a video encoder resource. This should be called after
-  /// GetSupportedProfiles() and before any functions below.
-  ///
-  /// @param[in] input_format The <code>PP_VideoFrame_Format</code> of the
-  /// frames which will be encoded.
-  /// @param[in] input_visible_size A <code>Size</code> specifying the
-  /// dimensions of the visible part of the input frames.
-  /// @param[in] output_profile A <code>PP_VideoProfile</code> specifying the
-  /// codec profile of the encoded output stream.
-  /// @param[in] acceleration A <code>PP_HardwareAcceleration</code> specifying
-  /// whether to use a hardware accelerated or a software implementation.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  /// Returns PP_ERROR_NOTSUPPORTED if video encoding is not available, or the
-  /// requested codec profile is not supported.
-  /// Returns PP_ERROR_NOMEMORY if frame and bitstream buffers can't be created.
-  int32_t Initialize(const PP_VideoFrame_Format& input_format,
-                     const Size& input_visible_size,
-                     const PP_VideoProfile& output_profile,
-                     const uint32_t initial_bitrate,
-                     PP_HardwareAcceleration acceleration,
-                     const CompletionCallback& cc);
-
-  /// Gets the number of input video frames that the encoder may hold while
-  /// encoding. If the plugin is providing the video frames, it should have at
-  /// least this many available.
-  ///
-  /// @return An int32_t containing the number of frames required, or an error
-  /// code from <code>pp_errors.h</code>.
-  /// Returns PP_ERROR_FAILED if Initialize() has not successfully completed.
-  int32_t GetFramesRequired();
-
-  /// Gets the coded size of the video frames required by the encoder. Coded
-  /// size is the logical size of the input frames, in pixels.  The encoder may
-  /// have hardware alignment requirements that make this different from
-  /// |input_visible_size|, as requested in the call to Initialize().
-  ///
-  /// @param[in] coded_size A <code>Size</code> to hold the coded size.
-  ///
-  /// @return An int32_t containing a result code from <code>pp_errors.h</code>.
-  /// Returns PP_ERROR_FAILED if Initialize() has not successfully completed.
-  int32_t GetFrameCodedSize(Size* coded_size);
-
-  /// Gets a blank video frame which can be filled with video data and passed
-  /// to the encoder.
-  ///
-  /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be
-  /// called upon completion with the blank <code>VideoFrame</code> resource.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  int32_t GetVideoFrame(const CompletionCallbackWithOutput<VideoFrame>& cc);
-
-  /// Encodes a video frame.
-  ///
-  /// @param[in] video_frame The <code>VideoFrame</code> to be encoded.
-  /// @param[in] force_keyframe A <code>PP_Bool> specifying whether the encoder
-  /// should emit a key frame for this video frame.
-  /// @param[in] callback A <code>CompletionCallback</code> to be called upon
-  /// completion. Plugins that pass <code>VideoFrame</code> resources owned
-  /// by other resources should wait for completion before reusing them.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  /// Returns PP_ERROR_FAILED if Initialize() has not successfully completed.
-  int32_t Encode(const VideoFrame& video_frame,
-                 bool force_keyframe,
-                 const CompletionCallback& cc);
-
-  /// Gets the next encoded bitstream buffer from the encoder.
-  ///
-  /// @param[out] bitstream_buffer A <code>PP_BitstreamBuffer</code> containing
-  /// encoded video data.
-  /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be
-  /// called upon completion with the next bitstream buffer. The plugin can call
-  /// GetBitstreamBuffer from the callback in order to continuously "pull"
-  /// bitstream buffers from the encoder.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  /// Returns PP_ERROR_FAILED if Initialize() has not successfully completed.
-  /// Returns PP_ERROR_INPROGRESS if a prior call to GetBitstreamBuffer() has
-  /// not completed.
-  int32_t GetBitstreamBuffer(
-      const CompletionCallbackWithOutput<PP_BitstreamBuffer>& cc);
-
-  /// Recycles a bitstream buffer back to the encoder.
-  ///
-  /// @param[in] bitstream_buffer A <code>PP_BitstreamBuffer</code> that is no
-  /// longer needed by the plugin.
-  void RecycleBitstreamBuffer(const PP_BitstreamBuffer& bitstream_buffer);
-
-  /// Requests a change to encoding parameters. This is only a request,
-  /// fulfilled on a best-effort basis.
-  ///
-  /// @param[in] bitrate The requested new bitrate, in bits per second.
-  /// @param[in] framerate The requested new framerate, in frames per second.
-  void RequestEncodingParametersChange(uint32_t bitrate, uint32_t framerate);
-
-  /// Closes the video encoder, and cancels any pending encodes. Any pending
-  /// callbacks will still run, reporting <code>PP_ERROR_ABORTED</code> . It is
-  /// not valid to call any encoder functions after a call to this method.
-  /// <strong>Note:</strong> Destroying the video encoder closes it implicitly,
-  /// so you are not required to call Close().
-  void Close();
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_VIDEO_ENCODER_H_
diff --git a/cpp/video_frame.cc b/cpp/video_frame.cc
deleted file mode 100644
index e480a75..0000000
--- a/cpp/video_frame.cc
+++ /dev/null
@@ -1,74 +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/cpp/video_frame.h"
-
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_VideoFrame_0_1>() {
-  return PPB_VIDEOFRAME_INTERFACE_0_1;
-}
-
-}
-
-VideoFrame::VideoFrame() {
-}
-
-VideoFrame::VideoFrame(const VideoFrame& other) : Resource(other) {
-}
-
-VideoFrame::VideoFrame(const Resource& resource) : Resource(resource) {
-}
-
-VideoFrame::VideoFrame(PassRef, PP_Resource resource)
-    : Resource(PASS_REF, resource) {
-}
-
-VideoFrame::~VideoFrame() {
-}
-
-PP_TimeDelta VideoFrame::GetTimestamp() const {
-  if (has_interface<PPB_VideoFrame_0_1>())
-    return get_interface<PPB_VideoFrame_0_1>()->GetTimestamp(pp_resource());
-  return 0.0;
-}
-
-void VideoFrame::SetTimestamp(PP_TimeDelta timestamp) {
-  if (has_interface<PPB_VideoFrame_0_1>())
-    get_interface<PPB_VideoFrame_0_1>()->SetTimestamp(pp_resource(), timestamp);
-}
-
-PP_VideoFrame_Format VideoFrame::GetFormat() const {
-  if (has_interface<PPB_VideoFrame_0_1>())
-    return get_interface<PPB_VideoFrame_0_1>()->GetFormat(pp_resource());
-  return PP_VIDEOFRAME_FORMAT_UNKNOWN;
-}
-
-bool VideoFrame::GetSize(Size* size) const {
-  if (has_interface<PPB_VideoFrame_0_1>())
-    return PP_ToBool(get_interface<PPB_VideoFrame_0_1>()->GetSize(
-        pp_resource(), &size->pp_size()));
-  return false;
-}
-
-void* VideoFrame::GetDataBuffer() {
-  if (has_interface<PPB_VideoFrame_0_1>())
-    return get_interface<PPB_VideoFrame_0_1>()->GetDataBuffer(pp_resource());
-  return NULL;
-}
-
-uint32_t VideoFrame::GetDataBufferSize() const {
-  if (has_interface<PPB_VideoFrame_0_1>()) {
-    return get_interface<PPB_VideoFrame_0_1>()->GetDataBufferSize(
-        pp_resource());
-  }
-  return 0;
-}
-
-}  // namespace pp
diff --git a/cpp/video_frame.h b/cpp/video_frame.h
deleted file mode 100644
index 21b221d..0000000
--- a/cpp/video_frame.h
+++ /dev/null
@@ -1,79 +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_CPP_VIDEO_FRAME_H_
-#define PPAPI_CPP_VIDEO_FRAME_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_video_frame.h"
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/size.h"
-
-namespace pp {
-
-class VideoFrame : public Resource {
- public:
-  /// Default constructor for creating an is_null()
-  /// <code>VideoFrame</code> object.
-  VideoFrame();
-
-  /// The copy constructor for <code>VideoFrame</code>.
-  ///
-  /// @param[in] other A reference to a <code>VideoFrame</code>.
-  VideoFrame(const VideoFrame& other);
-
-  /// Constructs a <code>VideoFrame</code> from a <code>Resource</code>.
-  ///
-  /// @param[in] resource A <code>PPB_VideoFrame</code> resource.
-  explicit VideoFrame(const Resource& resource);
-
-  /// A constructor used when you have received a <code>PP_Resource</code> as a
-  /// return value that has had 1 ref added for you.
-  ///
-  /// @param[in] resource A <code>PPB_VideoFrame</code> resource.
-  VideoFrame(PassRef, PP_Resource resource);
-
-  virtual ~VideoFrame();
-
-  /// Gets the timestamp of the video frame.
-  ///
-  /// @return A <code>PP_TimeDelta</code> containing the timestamp of the video
-  /// frame. Given in seconds since the start of the containing video stream.
-  PP_TimeDelta GetTimestamp() const;
-
-  /// Sets the timestamp of the video frame.
-  ///
-  /// @param[in] timestamp A <code>PP_TimeDelta</code> containing the timestamp
-  /// of the video frame. Given in seconds since the start of the containing
-  /// video stream.
-  void SetTimestamp(PP_TimeDelta timestamp);
-
-  /// Gets the format of the video frame.
-  ///
-  /// @return A <code>PP_VideoFrame_Format</code> containing the format of the
-  /// video frame.
-  PP_VideoFrame_Format GetFormat() const;
-
-  /// Gets the size of the video frame.
-  ///
-  /// @param[out] size A <code>Size</code>.
-  ///
-  /// @return True on success or false on failure.
-  bool GetSize(Size* size) const;
-
-  /// Gets the data buffer for video frame pixels.
-  ///
-  /// @return A pointer to the beginning of the data buffer.
-  void* GetDataBuffer();
-
-  /// Gets the size of data buffer in bytes.
-  ///
-  /// @return The size of the data buffer in bytes.
-  uint32_t GetDataBufferSize() const;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_VIDEO_FRAME_H_
diff --git a/cpp/view.cc b/cpp/view.cc
deleted file mode 100644
index a28a4bf..0000000
--- a/cpp/view.cc
+++ /dev/null
@@ -1,132 +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/cpp/view.h"
-
-#include "ppapi/c/ppb_view.h"
-#include "ppapi/cpp/module_impl.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_View_1_0>() {
-  return PPB_VIEW_INTERFACE_1_0;
-}
-
-template <> const char* interface_name<PPB_View_1_1>() {
-  return PPB_VIEW_INTERFACE_1_1;
-}
-
-template <> const char* interface_name<PPB_View_1_2>() {
-  return PPB_VIEW_INTERFACE_1_2;
-}
-
-}  // namespace
-
-View::View() : Resource() {
-}
-
-View::View(PP_Resource view_resource) : Resource(view_resource) {
-}
-
-Rect View::GetRect() const {
-  PP_Rect out;
-  if (has_interface<PPB_View_1_2>()) {
-    if (PP_ToBool(get_interface<PPB_View_1_2>()->GetRect(pp_resource(), &out)))
-      return Rect(out);
-  } else if (has_interface<PPB_View_1_1>()) {
-    if (PP_ToBool(get_interface<PPB_View_1_1>()->GetRect(pp_resource(), &out)))
-      return Rect(out);
-  } else if (has_interface<PPB_View_1_0>()) {
-    if (PP_ToBool(get_interface<PPB_View_1_0>()->GetRect(pp_resource(), &out)))
-      return Rect(out);
-  }
-  return Rect();
-}
-
-bool View::IsFullscreen() const {
-  if (has_interface<PPB_View_1_2>()) {
-    return PP_ToBool(get_interface<PPB_View_1_2>()->IsFullscreen(
-        pp_resource()));
-  } else if (has_interface<PPB_View_1_1>()) {
-    return PP_ToBool(get_interface<PPB_View_1_1>()->IsFullscreen(
-        pp_resource()));
-  } else if (has_interface<PPB_View_1_0>()) {
-    return PP_ToBool(get_interface<PPB_View_1_0>()->IsFullscreen(
-        pp_resource()));
-  }
-  return false;
-}
-
-bool View::IsVisible() const {
-  if (has_interface<PPB_View_1_2>())
-    return PP_ToBool(get_interface<PPB_View_1_2>()->IsVisible(pp_resource()));
-  else if (has_interface<PPB_View_1_1>())
-    return PP_ToBool(get_interface<PPB_View_1_1>()->IsVisible(pp_resource()));
-  else if (has_interface<PPB_View_1_0>())
-    return PP_ToBool(get_interface<PPB_View_1_0>()->IsVisible(pp_resource()));
-  return false;
-}
-
-bool View::IsPageVisible() const {
-  if (has_interface<PPB_View_1_2>()) {
-    return PP_ToBool(get_interface<PPB_View_1_2>()->IsPageVisible(
-        pp_resource()));
-  } else if (has_interface<PPB_View_1_1>()) {
-    return PP_ToBool(get_interface<PPB_View_1_1>()->IsPageVisible(
-        pp_resource()));
-  } else if (has_interface<PPB_View_1_0>()) {
-    return PP_ToBool(get_interface<PPB_View_1_0>()->IsPageVisible(
-        pp_resource()));
-  }
-  return true;
-}
-
-Rect View::GetClipRect() const {
-  PP_Rect out;
-  if (has_interface<PPB_View_1_2>()) {
-    if (PP_ToBool(get_interface<PPB_View_1_2>()->GetClipRect(pp_resource(),
-                                                             &out)))
-      return Rect(out);
-  } else if (has_interface<PPB_View_1_1>()) {
-    if (PP_ToBool(get_interface<PPB_View_1_1>()->GetClipRect(pp_resource(),
-                                                             &out)))
-      return Rect(out);
-  } else if (has_interface<PPB_View_1_0>()) {
-    if (PP_ToBool(get_interface<PPB_View_1_0>()->GetClipRect(pp_resource(),
-                                                             &out)))
-      return Rect(out);
-  }
-  return Rect();
-}
-
-float View::GetDeviceScale() const {
-  if (has_interface<PPB_View_1_2>())
-    return get_interface<PPB_View_1_2>()->GetDeviceScale(pp_resource());
-  else if (has_interface<PPB_View_1_1>())
-    return get_interface<PPB_View_1_1>()->GetDeviceScale(pp_resource());
-  return 1.0f;
-}
-
-float View::GetCSSScale() const {
-  if (has_interface<PPB_View_1_2>())
-    return get_interface<PPB_View_1_2>()->GetCSSScale(pp_resource());
-  else if (has_interface<PPB_View_1_1>())
-    return get_interface<PPB_View_1_1>()->GetCSSScale(pp_resource());
-  return 1.0f;
-}
-
-Point View::GetScrollOffset() const {
-  PP_Point out;
-  if (has_interface<PPB_View_1_2>()) {
-    if (PP_ToBool(get_interface<PPB_View_1_2>()->GetScrollOffset(pp_resource(),
-                                                                 &out))) {
-      return Point(out);
-    }
-  }
-  return Point();
-}
-
-}  // namespace pp
diff --git a/cpp/view.h b/cpp/view.h
deleted file mode 100644
index 7170403..0000000
--- a/cpp/view.h
+++ /dev/null
@@ -1,152 +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_CPP_VIEW_H_
-#define PPAPI_CPP_VIEW_H_
-
-#include "ppapi/cpp/resource.h"
-#include "ppapi/cpp/rect.h"
-#include "ppapi/cpp/size.h"
-
-/// @file
-/// This file defines the API for getting the state of a the view for an
-/// instance.
-
-namespace pp {
-
-/// This class represents the state of the view for an instance and contains
-/// functions for retrieving the current state of that view.
-class View : public Resource {
- public:
-  /// Default constructor for creating an is_null() <code>View</code> object.
-  View();
-
-  /// Creates a View resource, taking and holding an additional reference to
-  /// the given resource handle.
-  explicit View(PP_Resource view_resource);
-
-  /// GetRect() retrieves the rectangle of the module instance associated
-  /// with a view changed notification relative to the upper-left of the browser
-  /// viewport. This position changes when the page is scrolled.
-  ///
-  /// The returned rectangle may not be inside the visible portion of the
-  /// viewport if the module instance is scrolled off the page. Therefore, the
-  /// position may be negative or larger than the size of the page. The size
-  /// will always reflect the size of the module were it to be scrolled
-  /// entirely into view.
-  ///
-  /// In general, most modules will not need to worry about the position of the
-  ///module instance in the viewport, and only need to use the size.
-  ///
-  /// @return The rectangle of the instance. The default return value for
-  /// an invalid View is the empty rectangle.
-  Rect GetRect() const;
-
-  /// IsFullscreen() returns whether the instance is currently
-  /// displaying in fullscreen mode.
-  ///
-  /// @return <code>true</code> if the instance is in full screen mode,
-  /// or <code>false</code> if it's not or the resource is invalid.
-  bool IsFullscreen() const;
-
-  /// IsVisible() determines whether the module instance might be visible to
-  /// the user. For example, the Chrome window could be minimized or another
-  /// window could be over it. In both of these cases, the module instance
-  /// would not be visible to the user, but IsVisible() will return true.
-  ///
-  /// Use the result to speed up or stop updates for invisible module
-  /// instances.
-  ///
-  /// This function performs the duties of GetRect() (determining whether the
-  /// module instance is scrolled into view and the clip rectangle is nonempty)
-  /// and IsPageVisible() (whether the page is visible to the user).
-  ///
-  /// @return <code>true</code> if the instance might be visible to the
-  /// user, <code>false</code> if it is definitely not visible.
-  bool IsVisible() const;
-
-  /// IsPageVisible() determines if the page that contains the module instance
-  /// is visible. The most common cause of invisible pages is that
-  /// the page is in a background tab in the browser.
-  ///
-  /// Most applications should use IsVisible() instead of this function since
-  /// the module instance could be scrolled off of a visible page, and this
-  /// function will still return true. However, depending on how your module
-  /// interacts with the page, there may be certain updates that you may want
-  /// to perform when the page is visible even if your specific module instance
-  /// is not visible.
-  ///
-  /// @return <code>true</code> if the instance might be visible to the
-  /// user, <code>false</code> if it is definitely not visible.
-  bool IsPageVisible() const;
-
-  /// GetClipRect() returns the clip rectangle relative to the upper-left corner
-  /// of the module instance. This rectangle indicates the portions of the
-  /// module instance that are scrolled into view.
-  ///
-  /// If the module instance is scrolled off the view, the return value will be
-  /// (0, 0, 0, 0). This clip rectangle does <i>not</i> take into account page
-  /// visibility. Therefore, if the module instance is scrolled into view, but
-  /// the page itself is on a tab that is not visible, the return rectangle will
-  /// contain the visible rectangle as though the page were visible. Refer to
-  /// IsPageVisible() and IsVisible() if you want to account for page
-  /// visibility.
-  ///
-  /// Most applications will not need to worry about the clip rectangle. The
-  /// recommended behavior is to do full updates if the module instance is
-  /// visible, as determined by IsVisible(), and do no updates if it is not
-  /// visible.
-  ///
-  /// However, if the cost for computing pixels is very high for your
-  /// application, or the pages you're targeting frequently have very large
-  /// module instances with small visible portions, you may wish to optimize
-  /// further. In this case, the clip rectangle will tell you which parts of
-  /// the module to update.
-  ///
-  /// Note that painting of the page and sending of view changed updates
-  /// happens asynchronously. This means when the user scrolls, for example,
-  /// it is likely that the previous backing store of the module instance will
-  /// be used for the first paint, and will be updated later when your
-  /// application generates new content with the new clip. This may cause
-  /// flickering at the boundaries when scrolling. If you do choose to do
-  /// partial updates, you may want to think about what color the invisible
-  /// portions of your backing store contain (be it transparent or some
-  /// background color) or to paint a certain region outside the clip to reduce
-  /// the visual distraction when this happens.
-  ///
-  /// @return The rectangle representing the visible part of the module
-  /// instance. If the resource is invalid, the empty rectangle is returned.
-  Rect GetClipRect() const;
-
-  /// GetDeviceScale returns the scale factor between device pixels and DIPs
-  /// (also known as logical pixels or UI pixels on some platforms). This allows
-  /// the developer to render their contents at device resolution, even as
-  /// coordinates / sizes are given in DIPs through the API.
-  ///
-  /// Note that the coordinate system for Pepper APIs is DIPs. Also note that
-  /// one DIP might not equal one CSS pixel - when page scale/zoom is in effect.
-  ///
-  /// @return A <code>float</code> value representing the number of device
-  /// pixels per DIP.
-  float GetDeviceScale() const;
-
-  /// GetCSSScale returns the scale factor between DIPs and CSS pixels. This
-  /// allows proper scaling between DIPs - as sent via the Pepper API - and CSS
-  /// pixel coordinates used for Web content.
-  ///
-  /// @return A <code>float</code> value representing the number of DIPs per CSS
-  /// pixel.
-  float GetCSSScale() const;
-
-  /// GetScrollOffset returns the scroll offset of the window containing the
-  /// plugin.
-  ///
-  /// @return A <code>Point</code> which is set to the value of the scroll
-  /// offset in CSS pixels.
-  Point GetScrollOffset() const;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_VIEW_H_
diff --git a/cpp/vpn_provider.cc b/cpp/vpn_provider.cc
deleted file mode 100644
index 7a14772..0000000
--- a/cpp/vpn_provider.cc
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2016 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/cpp/vpn_provider.h"
-
-#include "ppapi/c/ppb_vpn_provider.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/var_array.h"
-
-namespace pp {
-
-namespace {
-
-template <>
-const char* interface_name<PPB_VpnProvider_0_1>() {
-  return PPB_VPNPROVIDER_INTERFACE_0_1;
-}
-}  // namespace
-
-VpnProvider::VpnProvider(const InstanceHandle& instance)
-    : associated_instance_(instance) {
-  if (has_interface<PPB_VpnProvider_0_1>()) {
-    PassRefFromConstructor(get_interface<PPB_VpnProvider_0_1>()->Create(
-        associated_instance_.pp_instance()));
-  }
-}
-
-VpnProvider::~VpnProvider() {}
-
-// static
-bool VpnProvider::IsAvailable() {
-  return has_interface<PPB_VpnProvider_0_1>();
-}
-
-int32_t VpnProvider::Bind(const Var& configuration_id,
-                          const Var& configuration_name,
-                          const CompletionCallback& callback) {
-  if (has_interface<PPB_VpnProvider_0_1>()) {
-    return get_interface<PPB_VpnProvider_0_1>()->Bind(
-        pp_resource(), configuration_id.pp_var(), configuration_name.pp_var(),
-        callback.pp_completion_callback());
-  }
-  return PP_ERROR_NOINTERFACE;
-}
-
-int32_t VpnProvider::SendPacket(const Var& packet,
-                                const CompletionCallback& callback) {
-  if (has_interface<PPB_VpnProvider_0_1>()) {
-    return get_interface<PPB_VpnProvider_0_1>()->SendPacket(
-        pp_resource(), packet.pp_var(), callback.pp_completion_callback());
-  }
-  return PP_ERROR_NOINTERFACE;
-}
-
-int32_t VpnProvider::ReceivePacket(
-    const CompletionCallbackWithOutput<Var>& callback) {
-  if (has_interface<PPB_VpnProvider_0_1>()) {
-    return get_interface<PPB_VpnProvider_0_1>()->ReceivePacket(
-        pp_resource(), callback.output(), callback.pp_completion_callback());
-  }
-  return PP_ERROR_NOINTERFACE;
-}
-
-}  // namespace pp
diff --git a/cpp/vpn_provider.h b/cpp/vpn_provider.h
deleted file mode 100644
index 25ff772..0000000
--- a/cpp/vpn_provider.h
+++ /dev/null
@@ -1,133 +0,0 @@
-// Copyright 2016 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_CPP_VPN_PROVIDER_H_
-#define PPAPI_CPP_VPN_PROVIDER_H_
-
-#include "ppapi/c/ppb_vpn_provider.h"
-#include "ppapi/cpp/completion_callback.h"
-
-namespace pp {
-
-class InstanceHandle;
-
-/// @file
-/// This file defines the VpnProvider interface providing a way to implement a
-/// VPN client.
-/// Important: This API is available only on Chrome OS.
-
-/// The <code>VpnProvider</code> class enhances the
-/// <code>chrome.vpnProvider</code> JavaScript API by providing a high
-/// performance path for packet handling.
-///
-/// Permissions: Apps permission <code>vpnProvider</code> is required for
-/// <code>VpnProvider.Bind()</code>.
-///
-/// Typical usage:
-/// - Create a <code>VpnProvider</code> instance.
-/// - Register the callback for <code>VpnProvider.ReceivePacket()</code>.
-/// - In the extension follow the usual workflow for configuring a VPN
-///   connection via the <code>chrome.vpnProvider</code> API until the step for
-///   notifying the connection state as "connected".
-/// - Bind to the previously created connection using
-///   <code>VpnProvider.Bind()</code>.
-/// - Notify the connection state as "connected" from JavaScript using
-///   <code>chrome.vpnProvider.notifyConnectionStateChanged</code>.
-/// - When the steps above are completed without errors, a virtual tunnel is
-///   created to the network stack of Chrome OS. IP packets can be sent through
-///   the tunnel using <code>VpnProvider.SendPacket()</code> and any packets
-///   originating on the Chrome OS device will be received using the callback
-///   registered for <code>VpnProvider.ReceivePacket()</code>.
-/// - When the user disconnects from the VPN configuration or there is an error
-///   the extension will be notfied via
-///   <code>chrome.vpnProvider.onPlatformMessage</code>.
-class VpnProvider : public Resource {
- public:
-  /// Constructs a VpnProvider object.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  explicit VpnProvider(const InstanceHandle& instance);
-
-  /// Destructs a VpnProvider object.
-  virtual ~VpnProvider();
-
-  /// Static function for determining whether the browser supports the
-  /// <code>VpnProvider</code> interface.
-  ///
-  /// @return true if the interface is available, false otherwise.
-  static bool IsAvailable();
-
-  /// Binds to an existing configuration created from JavaScript by
-  /// <code>chrome.vpnProvider.createConfig</code>. All packets will be routed
-  /// via <code>SendPacket</code> and <code>ReceivePacket</code>. The user
-  /// should register the callback for <code>ReceivePacket</code> before calling
-  /// <code>Bind()</code>.
-  ///
-  /// @param[in] configuration_id The configuration id from the callback of
-  /// <code>chrome.vpnProvider.createConfig</code>. This <code>Var</code> must
-  /// be of string type.
-  ///
-  /// @param[in] configuration_name The configuration name as defined by the
-  /// user when calling <code>chrome.vpnProvider.createConfig</code>. This
-  /// <code>Var</code> must be of string type.
-  ///
-  /// @param[in] callback A <code>CompletionCallback</code> to be called on
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  /// Returns <code>PP_ERROR_INPROGRESS</code> if a previous call to
-  /// <code>Bind()</code> has not completed.
-  /// Returns <code>PP_ERROR_BADARGUMENT</code> if the <code>Var</code> type of
-  /// either <code>configuration_id</code> or <code>configuration_name</code> is
-  /// not of string type.
-  /// Returns <code>PP_ERROR_NOACCESS</code> if the caller does the have the
-  /// required "vpnProvider" permission.
-  /// Returns <code>PP_ERROR_FAILED</code> if <code>connection_id</code> and
-  /// <code>connection_name</code> could not be matched with the existing
-  /// connection, or if the plugin originates from a different extension than
-  /// the one that created the connection.
-  int32_t Bind(const Var& configuration_id,
-               const Var& configuration_name,
-               const CompletionCallback& callback);
-
-  /// Sends an IP packet through the tunnel created for the VPN session. This
-  /// will succeed only when the VPN session is owned by the module and
-  /// connection is bound.
-  ///
-  /// @param[in] packet IP packet to be sent to the platform. The
-  /// <code>Var</code> must be of ArrayBuffer type.
-  ///
-  /// @param[in] callback A <code>CompletionCallback</code> to be called on
-  /// completion.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  /// Returns <code>PP_ERROR_FAILED</code> if the connection is not bound.
-  /// Returns <code>PP_ERROR_INPROGRESS</code> if a previous call to
-  /// <code>SendPacket()</code> has not completed.
-  /// Returns <code>PP_ERROR_BADARGUMENT</code> if the <code>Var</code> type of
-  /// <code>packet</code> is not of ArrayBuffer type.
-  int32_t SendPacket(const Var& packet, const CompletionCallback& callback);
-
-  /// Receives an IP packet from the tunnel for the VPN session. This function
-  /// only returns a single packet. That is, this function must be called at
-  /// least N times to receive N packets, no matter the size of each packet. The
-  /// callback should be registered before calling <code>Bind()</code>.
-  ///
-  /// @param[in] callback A <code>CompletionCallbackWithOutput</code> to be
-  /// called upon completion of ReceivePacket. It will be passed an ArrayBuffer
-  /// type <code>Var</code> containing an IP packet to be sent to the platform.
-  ///
-  /// @return An int32_t containing an error code from <code>pp_errors.h</code>.
-  /// Returns <code>PP_ERROR_INPROGRESS</code> if a previous call to
-  /// <code>ReceivePacket()</code> has not completed.
-  int32_t ReceivePacket(const CompletionCallbackWithOutput<Var>& callback);
-
- private:
-  InstanceHandle associated_instance_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_VPN_PROVIDER_H_
diff --git a/cpp/websocket.cc b/cpp/websocket.cc
deleted file mode 100644
index e3ee67c..0000000
--- a/cpp/websocket.cc
+++ /dev/null
@@ -1,154 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/cpp/websocket.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/var.h"
-
-namespace pp {
-
-namespace {
-
-template <> const char* interface_name<PPB_WebSocket_1_0>() {
-  return PPB_WEBSOCKET_INTERFACE_1_0;
-}
-
-}  // namespace
-
-WebSocket::WebSocket(const InstanceHandle& instance) {
-  if (!has_interface<PPB_WebSocket_1_0>())
-    return;
-  PassRefFromConstructor(get_interface<PPB_WebSocket_1_0>()->Create(
-    instance.pp_instance()));
-}
-
-WebSocket::~WebSocket() {
-}
-
-int32_t WebSocket::Connect(const Var& url, const Var protocols[],
-    uint32_t protocol_count, const CompletionCallback& callback) {
-  if (!has_interface<PPB_WebSocket_1_0>())
-    return PP_ERROR_BADRESOURCE;
-
-  // Convert protocols to C interface.
-  PP_Var *c_protocols = NULL;
-  if (protocol_count)
-    c_protocols = new PP_Var[protocol_count];
-  for (uint32_t i = 0; i < protocol_count; ++i)
-    c_protocols[i] = protocols[i].pp_var();
-
-  int32_t result = get_interface<PPB_WebSocket_1_0>()->Connect(
-      pp_resource(), url.pp_var(), c_protocols, protocol_count,
-      callback.pp_completion_callback());
-  if (c_protocols)
-    delete[] c_protocols;
-  return result;
-}
-
-int32_t WebSocket::Close(uint16_t code, const Var& reason,
-    const CompletionCallback& callback) {
-  if (!has_interface<PPB_WebSocket_1_0>())
-    return PP_ERROR_BADRESOURCE;
-
-  return get_interface<PPB_WebSocket_1_0>()->Close(
-      pp_resource(), code, reason.pp_var(),
-      callback.pp_completion_callback());
-}
-
-int32_t WebSocket::ReceiveMessage(Var* message,
-    const CompletionCallback& callback) {
-  if (!has_interface<PPB_WebSocket_1_0>())
-    return PP_ERROR_BADRESOURCE;
-
-  // Initialize |message| to release old internal PP_Var of reused |message|.
-  if (message)
-    *message = Var();
-
-  return get_interface<PPB_WebSocket_1_0>()->ReceiveMessage(
-      pp_resource(), const_cast<PP_Var*>(&message->pp_var()),
-      callback.pp_completion_callback());
-}
-
-int32_t WebSocket::SendMessage(const Var& message) {
-  if (!has_interface<PPB_WebSocket_1_0>())
-    return PP_ERROR_BADRESOURCE;
-
-  return get_interface<PPB_WebSocket_1_0>()->SendMessage(
-      pp_resource(), message.pp_var());
-}
-
-uint64_t WebSocket::GetBufferedAmount() {
-  if (!has_interface<PPB_WebSocket_1_0>())
-    return 0;
-
-  return get_interface<PPB_WebSocket_1_0>()->GetBufferedAmount(pp_resource());
-}
-
-uint16_t WebSocket::GetCloseCode() {
-  if (!has_interface<PPB_WebSocket_1_0>())
-    return 0;
-
-  return get_interface<PPB_WebSocket_1_0>()->GetCloseCode(pp_resource());
-}
-
-Var WebSocket::GetCloseReason() {
-  if (!has_interface<PPB_WebSocket_1_0>())
-    return 0;
-
-  return Var(PASS_REF,
-      get_interface<PPB_WebSocket_1_0>()->GetCloseReason(pp_resource()));
-}
-
-bool WebSocket::GetCloseWasClean() {
-  if (!has_interface<PPB_WebSocket_1_0>())
-    return false;
-
-  PP_Bool result =
-      get_interface<PPB_WebSocket_1_0>()->GetCloseWasClean(pp_resource());
-  return PP_ToBool(result);
-}
-
-Var WebSocket::GetExtensions() {
-  if (!has_interface<PPB_WebSocket_1_0>())
-    return Var();
-
-  return Var(PASS_REF,
-             get_interface<PPB_WebSocket_1_0>()->GetExtensions(pp_resource()));
-}
-
-Var WebSocket::GetProtocol() {
-  if (!has_interface<PPB_WebSocket_1_0>())
-    return Var();
-
-  return Var(PASS_REF,
-             get_interface<PPB_WebSocket_1_0>()->GetProtocol(pp_resource()));
-}
-
-PP_WebSocketReadyState WebSocket::GetReadyState() {
-  if (!has_interface<PPB_WebSocket_1_0>())
-    return PP_WEBSOCKETREADYSTATE_INVALID;
-
-  return get_interface<PPB_WebSocket_1_0>()->GetReadyState(pp_resource());
-}
-
-Var WebSocket::GetURL() {
-  if (!has_interface<PPB_WebSocket_1_0>())
-    return Var();
-
-  return Var(PASS_REF,
-             get_interface<PPB_WebSocket_1_0>()->GetURL(pp_resource()));
-}
-
-}  // namespace pp
diff --git a/cpp/websocket.h b/cpp/websocket.h
deleted file mode 100644
index 83bc1eb..0000000
--- a/cpp/websocket.h
+++ /dev/null
@@ -1,220 +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_CPP_WEBSOCKET_H_
-#define PPAPI_CPP_WEBSOCKET_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_websocket.h"
-#include "ppapi/cpp/resource.h"
-
-/// @file
-/// This file defines the WebSocket interface providing bi-directional,
-/// full-duplex, communications over a single TCP socket.
-
-// Windows headers will redefine SendMessage.
-#ifdef SendMessage
-#undef SendMessage
-#endif
-
-namespace pp {
-
-class CompletionCallback;
-class InstanceHandle;
-class Var;
-
-/// The <code>WebSocket</code> class providing bi-directional,
-/// full-duplex, communications over a single TCP socket.
-class WebSocket : public Resource {
- public:
-  /// Constructs a WebSocket object.
-  ///
-  /// @param[in] instance The instance with which this resource will be
-  /// associated.
-  explicit WebSocket(const InstanceHandle& instance);
-
-  /// Destructs a WebSocket object.
-  virtual ~WebSocket();
-
-  /// Connect() connects to the specified WebSocket server. You can call this
-  /// function once for an object.
-  ///
-  /// @param[in] url A <code>Var</code> of string type representing a WebSocket
-  /// server URL.
-  ///
-  /// @param[in] protocols A pointer to an array of <code>Var</code> of string
-  /// type specifying sub-protocols. Each <code>Var</code> represents one
-  /// sub-protocol. This argument can be null only if
-  /// <code>protocol_count</code> is 0.
-  ///
-  /// @param[in] protocol_count The number of sub-protocols in
-  /// <code>protocols</code>.
-  ///
-  /// @param[in] callback A <code>CompletionCallback</code> called
-  /// when a connection is established or an error occurs in establishing
-  /// connection.
-  ///
-  /// @return An int32_t containing an error code from
-  /// <code>pp_errors.h</code>.
-  /// Returns <code>PP_ERROR_BADARGUMENT</code> if specified <code>url</code>,
-  /// or <code>protocols</code> contains invalid string as defined in
-  /// the WebSocket API specification. <code>PP_ERROR_BADARGUMENT</code>
-  /// corresponds to a SyntaxError in the WebSocket API specification.
-  /// Returns <code>PP_ERROR_NOACCESS</code> if the protocol specified in the
-  /// <code>url</code> is not a secure protocol, but the origin of the caller
-  /// has a secure scheme. Also returns <code>PP_ERROR_NOACCESS</code> if the
-  /// port specified in the <code>url</code> is a port that the user agent is
-  /// configured to block access to because it is a well-known port like SMTP.
-  /// <code>PP_ERROR_NOACCESS</code> corresponds to a SecurityError of the
-  /// specification.
-  /// Returns <code>PP_ERROR_INPROGRESS</code> if this is not the first call to
-  /// Connect().
-  int32_t Connect(const Var& url, const Var protocols[],
-                  uint32_t protocol_count, const CompletionCallback& callback);
-
-  /// Close() closes the specified WebSocket connection by specifying
-  /// <code>code</code> and <code>reason</code>.
-  ///
-  /// @param[in] code The WebSocket close code. This is ignored if it is 0.
-  /// <code>PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE</code> must be used for the
-  /// usual case. To indicate some specific error cases, codes in the range
-  /// <code>PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MIN</code> to
-  /// <code>PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MAX</code>, and in the range
-  /// <code>PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MIN</code> to
-  /// <code>PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MAX</code> are available.
-  ///
-  /// @param[in] reason A <code>Var</code> of string type representing the
-  /// close reason. This is ignored if it is an undefined type.
-  ///
-  /// @param[in] callback A <code>CompletionCallback</code> called when the
-  /// connection is closed or an error occurs in closing the connection.
-  ///
-  /// @return An int32_t containing an error code from
-  /// <code>pp_errors.h</code>.
-  /// Returns <code>PP_ERROR_BADARGUMENT</code> if <code>reason</code> contains
-  /// an invalid character as a UTF-8 string, or is longer than 123 bytes.
-  /// <code>PP_ERROR_BADARGUMENT</code> corresponds to a JavaScript
-  /// SyntaxError in the WebSocket API specification.
-  /// Returns <code>PP_ERROR_NOACCESS</code> if the code is not an integer
-  /// equal to 1000 or in the range 3000 to 4999.
-  /// <code>PP_ERROR_NOACCESS</code> corresponds to an InvalidAccessError in
-  /// the WebSocket API specification. Returns <code>PP_ERROR_INPROGRESS</code>
-  /// if a previous call to Close() is not finished.
-  int32_t Close(uint16_t code, const Var& reason,
-                const CompletionCallback& callback);
-
-  /// ReceiveMessage() receives a message from the WebSocket server.
-  /// This interface only returns a single message. That is, this interface
-  /// must be called at least N times to receive N messages, no matter the size
-  /// of each message.
-  ///
-  /// @param[out] message The received message is copied to provided
-  /// <code>message</code>. The <code>message</code> must remain valid until
-  /// ReceiveMessage() completes. Its received <code>Var</code> will be of
-  /// string or ArrayBuffer type.
-  ///
-  /// @param[in] callback A <code>CompletionCallback</code> called when
-  /// ReceiveMessage() completes. This callback is ignored if ReceiveMessage()
-  /// completes synchronously and returns <code>PP_OK</code>.
-  ///
-  /// @return An int32_t containing an error code from
-  /// <code>pp_errors.h</code>.
-  /// If an error is detected or connection is closed, ReceiveMessage() returns
-  /// <code>PP_ERROR_FAILED</code> after all buffered messages are received.
-  /// Until buffered message become empty, ReceiveMessage() continues to return
-  /// <code>PP_OK</code> as if connection is still established without errors.
-  int32_t ReceiveMessage(Var* message,
-                         const CompletionCallback& callback);
-
-  /// SendMessage() sends a message to the WebSocket server.
-  ///
-  /// @param[in] message A message to send. The message is copied to an internal
-  /// buffer, so the caller can free <code>message</code> safely after returning
-  /// from the function. This <code>Var</code> must be of string or
-  /// ArrayBuffer types.
-  ///
-  /// @return An int32_t containing an error code from
-  /// <code>pp_errors.h</code>.
-  /// Returns <code>PP_ERROR_FAILED</code> if the ReadyState is
-  /// <code>PP_WEBSOCKETREADYSTATE_CONNECTING</code>.
-  /// <code>PP_ERROR_FAILED</code> corresponds to a JavaScript
-  /// InvalidStateError in the WebSocket API specification.
-  /// Returns <code>PP_ERROR_BADARGUMENT</code> if the provided
-  /// <code>message</code> contains an invalid character as a
-  /// UTF-8 string. <code>PP_ERROR_BADARGUMENT</code> corresponds to a
-  /// JavaScript SyntaxError in the WebSocket API specification.
-  /// Otherwise, returns <code>PP_OK</code>, but it doesn't necessarily mean
-  /// that the server received the message.
-  int32_t SendMessage(const Var& message);
-
-  /// GetBufferedAmount() returns the number of bytes of text and binary
-  /// messages that have been queued for the WebSocket connection to send, but
-  /// have not been transmitted to the network yet.
-  ///
-  /// @return Returns the number of bytes.
-  uint64_t GetBufferedAmount();
-
-  /// GetCloseCode() returns the connection close code for the WebSocket
-  /// connection.
-  ///
-  /// @return Returns 0 if called before the close code is set.
-  uint16_t GetCloseCode();
-
-  /// GetCloseReason() returns the connection close reason for the WebSocket
-  /// connection.
-  ///
-  /// @return Returns a <code>Var</code> of string type. If called before the
-  /// close reason is set, the return value contains an empty string. Returns a
-  /// <code>PP_VARTYPE_UNDEFINED</code> if called on an invalid resource.
-  Var GetCloseReason();
-
-  /// GetCloseWasClean() returns if the connection was closed cleanly for the
-  /// specified WebSocket connection.
-  ///
-  /// @return Returns <code>false</code> if called before the connection is
-  /// closed, called on an invalid resource, or closed for abnormal reasons.
-  /// Otherwise, returns <code>true</code> if the connection was closed
-  /// cleanly.
-  bool GetCloseWasClean();
-
-  /// GetExtensions() returns the extensions selected by the server for the
-  /// specified WebSocket connection.
-  ///
-  /// @return Returns a <code>Var</code> of string type. If called before the
-  /// connection is established, the <code>Var</code>'s data is an empty
-  /// string. Returns a <code>PP_VARTYPE_UNDEFINED</code> if called on an
-  /// invalid resource. Currently the <code>Var</code>'s data for valid
-  /// resources are always an empty string.
-  Var GetExtensions();
-
-  /// GetProtocol() returns the sub-protocol chosen by the server for the
-  /// specified WebSocket connection.
-  ///
-  /// @return Returns a <code>Var</code> of string type. If called before the
-  /// connection is established, the <code>Var</code> contains the empty
-  /// string. Returns a code>PP_VARTYPE_UNDEFINED</code> if called on an
-  /// invalid resource.
-  Var GetProtocol();
-
-  /// GetReadyState() returns the ready state of the specified WebSocket
-  /// connection.
-  ///
-  /// @return Returns <code>PP_WEBSOCKETREADYSTATE_INVALID</code> if called
-  /// before Connect() is called, or if this function is called on an
-  /// invalid resource.
-  PP_WebSocketReadyState GetReadyState();
-
-  /// GetURL() returns the URL associated with specified WebSocket connection.
-  ///
-  /// @return Returns a <code>Var</code> of string type. If called before the
-  /// connection is established, the <code>Var</code> contains the empty
-  /// string. Returns a <code>PP_VARTYPE_UNDEFINED</code> if this function
-  /// is called on an invalid resource.
-  Var GetURL();
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_CPP_WEBSOCKET_H_
diff --git a/host/BUILD.gn b/host/BUILD.gn
deleted file mode 100644
index 46c0f01..0000000
--- a/host/BUILD.gn
+++ /dev/null
@@ -1,49 +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("//ppapi/buildflags/buildflags.gni")
-
-assert(enable_ppapi)
-
-component("host") {
-  output_name = "ppapi_host"
-
-  sources = [
-    "dispatch_host_message.h",
-    "error_conversion.cc",
-    "error_conversion.h",
-    "host_factory.h",
-    "host_message_context.cc",
-    "host_message_context.h",
-    "instance_message_filter.cc",
-    "instance_message_filter.h",
-    "message_filter_host.cc",
-    "message_filter_host.h",
-    "ppapi_host.cc",
-    "ppapi_host.h",
-    "ppapi_host_export.h",
-    "resource_host.cc",
-    "resource_host.h",
-    "resource_message_filter.cc",
-    "resource_message_filter.h",
-    "resource_message_handler.cc",
-    "resource_message_handler.h",
-  ]
-
-  defines = [ "PPAPI_HOST_IMPLEMENTATION" ]
-
-  deps = [
-    "//base",
-    "//media:shared_memory_support",
-    "//net",
-    "//ppapi/c",
-    "//ppapi/proxy:ipc",
-    "//ppapi/shared_impl",
-    "//ui/events:events_base",
-    "//ui/surface",
-    "//url",
-  ]
-
-  public_deps = [ "//ipc" ]
-}
diff --git a/host/DEPS b/host/DEPS
deleted file mode 100644
index 6a2f02e..0000000
--- a/host/DEPS
+++ /dev/null
@@ -1,3 +0,0 @@
-include_rules = [
-  "+net/base",
-]
diff --git a/host/dispatch_host_message.h b/host/dispatch_host_message.h
deleted file mode 100644
index a206352..0000000
--- a/host/dispatch_host_message.h
+++ /dev/null
@@ -1,94 +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.
-
-// This file provides infrastructure for dispatching host resource call
-// messages. Normal IPC message handlers can't take extra parameters or
-// return values. We want to take a HostMessageContext as a parameter and
-// also return the int32_t return value to the caller.
-
-#ifndef PPAPI_HOST_DISPATCH_HOST_MESSAGE_H_
-#define PPAPI_HOST_DISPATCH_HOST_MESSAGE_H_
-
-#include <stdint.h>
-
-#include <tuple>
-
-#include "ipc/ipc_message_macros.h"
-#include "ppapi/c/pp_errors.h"
-
-namespace ppapi {
-namespace host {
-
-struct HostMessageContext;
-
-template <class ObjT, class Method>
-inline int32_t DispatchResourceCall(ObjT* obj, Method method,
-                                    HostMessageContext* context,
-                                    std::tuple<>& arg) {
-  return (obj->*method)(context);
-}
-
-template <class ObjT, class Method, class A>
-inline int32_t DispatchResourceCall(ObjT* obj, Method method,
-                                    HostMessageContext* context,
-                                    std::tuple<A>& arg) {
-  return (obj->*method)(context, std::get<0>(arg));
-}
-
-template<class ObjT, class Method, class A, class B>
-inline int32_t DispatchResourceCall(ObjT* obj, Method method,
-                                    HostMessageContext* context,
-                                    std::tuple<A, B>& arg) {
-  return (obj->*method)(context, std::get<0>(arg), std::get<1>(arg));
-}
-
-template<class ObjT, class Method, class A, class B, class C>
-inline int32_t DispatchResourceCall(ObjT* obj, Method method,
-                                    HostMessageContext* context,
-                                    std::tuple<A, B, C>& arg) {
-  return (obj->*method)(context, std::get<0>(arg), std::get<1>(arg),
-                        std::get<2>(arg));
-}
-
-template<class ObjT, class Method, class A, class B, class C, class D>
-inline int32_t DispatchResourceCall(ObjT* obj, Method method,
-                                    HostMessageContext* context,
-                                    std::tuple<A, B, C, D>& arg) {
-  return (obj->*method)(context, std::get<0>(arg), std::get<1>(arg),
-                        std::get<2>(arg), std::get<3>(arg));
-}
-
-template<class ObjT, class Method, class A, class B, class C, class D, class E>
-inline int32_t DispatchResourceCall(ObjT* obj, Method method,
-                                    HostMessageContext* context,
-                                    std::tuple<A, B, C, D, E>& arg) {
-  return (obj->*method)(context, std::get<0>(arg), std::get<1>(arg),
-                        std::get<2>(arg), std::get<3>(arg),
-                        std::get<4>(arg));
-}
-
-// Note that this only works for message with 1 or more parameters. For
-// 0-parameter messages you need to use the _0 version below (since there are
-// no params in the message).
-#define PPAPI_DISPATCH_HOST_RESOURCE_CALL(msg_class, member_func) \
-    case msg_class::ID: { \
-      msg_class::Schema::Param p; \
-      if (msg_class::Read(&ipc_message__, &p)) { \
-        return ppapi::host::DispatchResourceCall( \
-            this, \
-            &_IpcMessageHandlerClass::member_func, \
-            context, p); \
-      } \
-      return PP_ERROR_FAILED; \
-    }
-
-#define PPAPI_DISPATCH_HOST_RESOURCE_CALL_0(msg_class, member_func) \
-  case msg_class::ID: { \
-    return member_func(context); \
-  }
-
-}  // namespace host
-}  // namespace ppapi
-
-#endif  // PPAPI_HOST_DISPATCH_HOST_MESSAGE_H_
diff --git a/host/error_conversion.cc b/host/error_conversion.cc
deleted file mode 100644
index 9c2eecf..0000000
--- a/host/error_conversion.cc
+++ /dev/null
@@ -1,76 +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.
-
-#include "ppapi/host/error_conversion.h"
-
-#include "base/numerics/safe_conversions.h"
-#include "net/base/net_errors.h"
-#include "ppapi/c/pp_errors.h"
-
-namespace ppapi {
-namespace host {
-
-int32_t NetErrorToPepperError(int net_error) {
-  if (net_error > 0)
-    return base::checked_cast<int32_t>(net_error);
-
-  switch (net_error) {
-    case net::OK:
-      return PP_OK;
-    case net::ERR_IO_PENDING:
-      return PP_OK_COMPLETIONPENDING;
-    case net::ERR_ABORTED:
-      return PP_ERROR_ABORTED;
-    case net::ERR_INVALID_ARGUMENT:
-      return PP_ERROR_BADARGUMENT;
-    case net::ERR_INVALID_HANDLE:
-      return PP_ERROR_BADARGUMENT;
-    case net::ERR_FILE_NOT_FOUND:
-      return PP_ERROR_FILENOTFOUND;
-    case net::ERR_TIMED_OUT:
-      return PP_ERROR_TIMEDOUT;
-    case net::ERR_FILE_TOO_BIG:
-      return PP_ERROR_FILETOOBIG;
-    case net::ERR_ACCESS_DENIED:
-      return PP_ERROR_NOACCESS;
-    case net::ERR_NOT_IMPLEMENTED:
-      return PP_ERROR_NOTSUPPORTED;
-    case net::ERR_OUT_OF_MEMORY:
-      return PP_ERROR_NOMEMORY;
-    case net::ERR_FILE_EXISTS:
-      return PP_ERROR_FILEEXISTS;
-    case net::ERR_FILE_NO_SPACE:
-      return PP_ERROR_NOSPACE;
-    case net::ERR_CONNECTION_CLOSED:
-      return PP_ERROR_CONNECTION_CLOSED;
-    case net::ERR_CONNECTION_RESET:
-      return PP_ERROR_CONNECTION_RESET;
-    case net::ERR_CONNECTION_REFUSED:
-      return PP_ERROR_CONNECTION_REFUSED;
-    case net::ERR_CONNECTION_ABORTED:
-      return PP_ERROR_CONNECTION_ABORTED;
-    case net::ERR_CONNECTION_FAILED:
-      return PP_ERROR_CONNECTION_FAILED;
-    case net::ERR_NAME_NOT_RESOLVED:
-    case net::ERR_ICANN_NAME_COLLISION:
-      return PP_ERROR_NAME_NOT_RESOLVED;
-    case net::ERR_ADDRESS_INVALID:
-      return PP_ERROR_ADDRESS_INVALID;
-    case net::ERR_ADDRESS_UNREACHABLE:
-      return PP_ERROR_ADDRESS_UNREACHABLE;
-    case net::ERR_CONNECTION_TIMED_OUT:
-      return PP_ERROR_CONNECTION_TIMEDOUT;
-    case net::ERR_NETWORK_ACCESS_DENIED:
-      return PP_ERROR_NOACCESS;
-    case net::ERR_MSG_TOO_BIG:
-      return PP_ERROR_MESSAGE_TOO_BIG;
-    case net::ERR_ADDRESS_IN_USE:
-      return PP_ERROR_ADDRESS_IN_USE;
-    default:
-      return PP_ERROR_FAILED;
-  }
-}
-
-}  // namespace host
-}  // namespace ppapi
diff --git a/host/error_conversion.h b/host/error_conversion.h
deleted file mode 100644
index eb3ce43..0000000
--- a/host/error_conversion.h
+++ /dev/null
@@ -1,21 +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.
-
-#ifndef PPAPI_HOST_ERROR_CONVERSION_H_
-#define PPAPI_HOST_ERROR_CONVERSION_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/host/ppapi_host_export.h"
-
-namespace ppapi {
-namespace host {
-
-// Converts a net::Error code to a PP_Error code.
-// Returns the same value as |net_error| if |net_error| is a positive number.
-PPAPI_HOST_EXPORT int32_t NetErrorToPepperError(int net_error);
-
-}  // namespace host
-}  // namespace ppapi
-
-#endif  // PPAPI_HOST_ERROR_CONVERSION_H_
diff --git a/host/host_factory.h b/host/host_factory.h
deleted file mode 100644
index f9803eb..0000000
--- a/host/host_factory.h
+++ /dev/null
@@ -1,41 +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_HOST_HOST_FACTORY_H_
-#define PPAPI_HOST_HOST_FACTORY_H_
-
-#include <memory>
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-
-namespace IPC {
-class Message;
-}
-
-namespace ppapi {
-
-namespace host {
-
-class PpapiHost;
-class ResourceHost;
-
-// A host factory creates ResourceHosts for incoming create messages from
-// the plugin. This allows us to implement the hosts at the chrome/content
-// layer without the ppapi layer knowing about the details.
-class HostFactory {
- public:
-  virtual ~HostFactory() {}
-
-  virtual std::unique_ptr<ResourceHost> CreateResourceHost(
-      PpapiHost* host,
-      PP_Resource resource,
-      PP_Instance instance,
-      const IPC::Message& message) = 0;
-};
-
-}  // namespace host
-}  // namespace ppapi
-
-#endif  // PPAPI_HOST_HOST_FACTORY_H_
diff --git a/host/host_message_context.cc b/host/host_message_context.cc
deleted file mode 100644
index e5e4645..0000000
--- a/host/host_message_context.cc
+++ /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 "ppapi/host/host_message_context.h"
-
-namespace ppapi {
-namespace host {
-
-ReplyMessageContext::ReplyMessageContext()
-    : sync_reply_msg(NULL), routing_id(MSG_ROUTING_NONE) {}
-
-ReplyMessageContext::ReplyMessageContext(
-    const ppapi::proxy::ResourceMessageReplyParams& cp,
-    IPC::Message* sync_reply_msg,
-    int routing_id)
-    : params(cp),
-      sync_reply_msg(sync_reply_msg),
-      routing_id(routing_id) {
-}
-
-ReplyMessageContext::~ReplyMessageContext() {
-}
-
-HostMessageContext::HostMessageContext(
-    const ppapi::proxy::ResourceMessageCallParams& cp)
-    : params(cp),
-      sync_reply_msg(NULL),
-      routing_id(MSG_ROUTING_NONE) {
-}
-
-HostMessageContext::HostMessageContext(
-    int routing_id,
-    const ppapi::proxy::ResourceMessageCallParams& cp)
-    : params(cp),
-      sync_reply_msg(NULL),
-      routing_id(routing_id) {
-}
-
-HostMessageContext::HostMessageContext(
-    const ppapi::proxy::ResourceMessageCallParams& cp,
-    IPC::Message* reply_msg)
-    : params(cp),
-      sync_reply_msg(reply_msg),
-      routing_id(MSG_ROUTING_NONE) {
-}
-
-HostMessageContext::~HostMessageContext() {
-}
-
-ReplyMessageContext HostMessageContext::MakeReplyMessageContext() const {
-  ppapi::proxy::ResourceMessageReplyParams reply_params(params.pp_resource(),
-                                                        params.sequence());
-  return ReplyMessageContext(reply_params, sync_reply_msg, routing_id);
-}
-
-}  // namespace host
-}  // namespace ppapi
diff --git a/host/host_message_context.h b/host/host_message_context.h
deleted file mode 100644
index d045da9..0000000
--- a/host/host_message_context.h
+++ /dev/null
@@ -1,83 +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_HOST_HOST_MESSAGE_CONTEXT_H_
-#define PPAPI_HOST_HOST_MESSAGE_CONTEXT_H_
-
-#include "ipc/ipc_message.h"
-#include "ppapi/host/ppapi_host_export.h"
-#include "ppapi/proxy/resource_message_params.h"
-
-namespace ppapi {
-namespace host {
-
-// This context structure provides information about outgoing resource message
-// replies.
-struct PPAPI_HOST_EXPORT ReplyMessageContext {
-  ReplyMessageContext();
-  ReplyMessageContext(
-      const ppapi::proxy::ResourceMessageReplyParams& cp,
-      IPC::Message* sync_reply_msg,
-      int routing_id);
-  ~ReplyMessageContext();
-
-  // Returns a value indicating whether this context is valid or "null".
-  bool is_valid() const { return params.pp_resource() != 0; }
-
-  // The "reply params" struct with the same resource and sequence number
-  // as the original resource message call.
-  ppapi::proxy::ResourceMessageReplyParams params;
-
-  // If this context is generated from a sync message, this will be set to the
-  // incoming sync message. Otherwise, it will be NULL. The plugin controls
-  // whether or not the resource call is synchronous or asynchronous so a
-  // ResoureHost cannot make any assumptions about whether or not this is NULL.
-  IPC::Message* sync_reply_msg;
-
-  // Routing ID to be used when sending a reply message. This is only useful
-  // when the plugin is in-process. Otherwise, the value will be
-  // MSG_ROUTING_NONE.
-  int routing_id;
-};
-
-// This context structure provides information about incoming resource message
-// call requests when passed to resources.
-struct PPAPI_HOST_EXPORT HostMessageContext {
-  explicit HostMessageContext(
-      const ppapi::proxy::ResourceMessageCallParams& cp);
-  HostMessageContext(
-      int routing_id,
-      const ppapi::proxy::ResourceMessageCallParams& cp);
-  HostMessageContext(
-      const ppapi::proxy::ResourceMessageCallParams& cp,
-      IPC::Message* sync_reply_msg);
-  ~HostMessageContext();
-
-  // Returns a reply message context struct which includes the reply params.
-  ReplyMessageContext MakeReplyMessageContext() const;
-
-  // The original call parameters passed to the resource message call. This
-  // cannot be a reference because this object may be passed to another thread.
-  ppapi::proxy::ResourceMessageCallParams params;
-
-  // The reply message. If the params has the callback flag set, this message
-  // will be sent in reply. It is initialized to the empty message. If the
-  // handler wants to send something else, it should just assign the message
-  // it wants to this value.
-  IPC::Message reply_msg;
-
-  // If this context is generated from a sync message, this will be set to the
-  // incoming sync message. Otherwise, it will be NULL.
-  IPC::Message* sync_reply_msg;
-
-  // Routing ID to be used when sending a reply message. This is only useful
-  // when the plugin is in-process. Otherwise, the value will be
-  // MSG_ROUTING_NONE.
-  int routing_id;
-};
-
-}  // namespace host
-}  // namespace ppapi
-
-#endif  // PPAPI_HOST_HOST_MESSAGE_CONTEXT_H_
diff --git a/host/instance_message_filter.cc b/host/instance_message_filter.cc
deleted file mode 100644
index a60c641..0000000
--- a/host/instance_message_filter.cc
+++ /dev/null
@@ -1,19 +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/host/instance_message_filter.h"
-
-#include "ppapi/host/ppapi_host.h"
-
-namespace ppapi {
-namespace host {
-
-InstanceMessageFilter::InstanceMessageFilter(PpapiHost* host) : host_(host) {
-}
-
-InstanceMessageFilter::~InstanceMessageFilter() {
-}
-
-}  // namespace host
-}  // namespace ppapi
diff --git a/host/instance_message_filter.h b/host/instance_message_filter.h
deleted file mode 100644
index b5961fc..0000000
--- a/host/instance_message_filter.h
+++ /dev/null
@@ -1,42 +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_HOST_INSTANCE_MESSAGE_FILTER_H_
-#define PPAPI_HOST_INSTANCE_MESSAGE_FILTER_H_
-
-#include "ppapi/host/ppapi_host_export.h"
-
-namespace IPC {
-class Message;
-}
-
-namespace ppapi {
-namespace host {
-
-class PpapiHost;
-
-class PPAPI_HOST_EXPORT InstanceMessageFilter {
- public:
-  explicit InstanceMessageFilter(PpapiHost* host);
-
-  InstanceMessageFilter(const InstanceMessageFilter&) = delete;
-  InstanceMessageFilter& operator=(const InstanceMessageFilter&) = delete;
-
-  virtual ~InstanceMessageFilter();
-
-  // Processes an instance message from the plugin process. Returns true if the
-  // message was handled. On false, the PpapiHost will forward the message to
-  // the next filter.
-  virtual bool OnInstanceMessageReceived(const IPC::Message& msg) = 0;
-
-  PpapiHost* host() { return host_; }
-
- private:
-  PpapiHost* host_;
-};
-
-}  // namespace host
-}  // namespace ppapi
-
-#endif  // PPAPI_HOST_INSTANCE_MESSAGE_FILTER_H_
diff --git a/host/message_filter_host.cc b/host/message_filter_host.cc
deleted file mode 100644
index fa18c80..0000000
--- a/host/message_filter_host.cc
+++ /dev/null
@@ -1,26 +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/host/message_filter_host.h"
-
-#include "ppapi/host/ppapi_host.h"
-#include "ppapi/host/resource_message_filter.h"
-
-namespace ppapi {
-namespace host {
-
-MessageFilterHost::MessageFilterHost(
-    PpapiHost* host,
-    PP_Instance instance,
-    PP_Resource resource,
-    const scoped_refptr<ResourceMessageFilter>& message_filter)
-    : ResourceHost(host, instance, resource) {
-  AddFilter(message_filter);
-}
-
-MessageFilterHost::~MessageFilterHost() {
-}
-
-}  // namespace host
-}  // namespace ppapi
diff --git a/host/message_filter_host.h b/host/message_filter_host.h
deleted file mode 100644
index 16df972..0000000
--- a/host/message_filter_host.h
+++ /dev/null
@@ -1,39 +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_HOST_MESSAGE_FILTER_HOST_H_
-#define PPAPI_HOST_MESSAGE_FILTER_HOST_H_
-
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/host/ppapi_host_export.h"
-#include "ppapi/host/resource_host.h"
-
-namespace ppapi {
-namespace host {
-
-class PpapiHost;
-class ResourceMessageFilter;
-
-// This class is a generic ResourceHost that is composed of a single
-// ResourceMessageFilter. There are cases where ResourceHosts only serve the
-// purpose of passing messages onto a message filter to be handled on another
-// thread. This class can be used as the host in those cases.
-class PPAPI_HOST_EXPORT MessageFilterHost : public ResourceHost {
- public:
-  MessageFilterHost(PpapiHost* host,
-                    PP_Instance instance,
-                    PP_Resource resource,
-                    const scoped_refptr<ResourceMessageFilter>& message_filter);
-
-  MessageFilterHost(const MessageFilterHost&) = delete;
-  MessageFilterHost& operator=(const MessageFilterHost&) = delete;
-
-  virtual ~MessageFilterHost();
-};
-
-}  // namespace host
-}  // namespace ppapi
-
-#endif  // PPAPI_HOST_MESSAGE_FILTER_HOST_H_
diff --git a/host/ppapi_host.cc b/host/ppapi_host.cc
deleted file mode 100644
index d0b3610..0000000
--- a/host/ppapi_host.cc
+++ /dev/null
@@ -1,295 +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/host/ppapi_host.h"
-
-#include <stddef.h>
-
-#include <utility>
-
-#include "base/check.h"
-#include "base/notreached.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/host/host_factory.h"
-#include "ppapi/host/host_message_context.h"
-#include "ppapi/host/instance_message_filter.h"
-#include "ppapi/host/resource_host.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/resource_message_params.h"
-#include "ppapi/proxy/serialized_handle.h"
-#include "ppapi/shared_impl/host_resource.h"
-
-namespace ppapi {
-namespace host {
-
-using proxy::SerializedHandle;
-
-namespace {
-
-// Put a cap on the maximum number of resources so we don't explode if the
-// renderer starts spamming us.
-const size_t kMaxResourcesPerPlugin = 1 << 14;
-
-}  // namespace
-
-PpapiHost::PpapiHost(IPC::Sender* sender,
-                     const PpapiPermissions& perms)
-    : sender_(sender),
-      permissions_(perms),
-      next_pending_resource_host_id_(1) {
-}
-
-PpapiHost::~PpapiHost() {
-  // Delete these explicitly before destruction since then the host is still
-  // technically alive in case one of the filters accesses us from the
-  // destructor.
-  instance_message_filters_.clear();
-
-  // The resources may also want to use us in their destructors.
-  resources_.clear();
-  pending_resource_hosts_.clear();
-}
-
-bool PpapiHost::Send(IPC::Message* msg) {
-  return sender_->Send(msg);
-}
-
-bool PpapiHost::OnMessageReceived(const IPC::Message& msg) {
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PpapiHost, msg)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_ResourceCall,
-                        OnHostMsgResourceCall)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_InProcessResourceCall,
-                        OnHostMsgInProcessResourceCall)
-    IPC_MESSAGE_HANDLER_DELAY_REPLY(PpapiHostMsg_ResourceSyncCall,
-                                    OnHostMsgResourceSyncCall)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_ResourceCreated,
-                        OnHostMsgResourceCreated)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_AttachToPendingHost,
-                        OnHostMsgAttachToPendingHost)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_ResourceDestroyed,
-                        OnHostMsgResourceDestroyed)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-
-  if (!handled) {
-    for (size_t i = 0; i < instance_message_filters_.size(); i++) {
-      if (instance_message_filters_[i]->OnInstanceMessageReceived(msg)) {
-        handled = true;
-        break;
-      }
-    }
-  }
-
-  return handled;
-}
-
-void PpapiHost::SendReply(const ReplyMessageContext& context,
-                          const IPC::Message& msg) {
-  TRACE_EVENT2("ppapi_proxy", "PpapiHost::SendReply", "Class",
-               IPC_MESSAGE_ID_CLASS(msg.type()), "Line",
-               IPC_MESSAGE_ID_LINE(msg.type()));
-  if (context.sync_reply_msg) {
-    PpapiHostMsg_ResourceSyncCall::WriteReplyParams(context.sync_reply_msg,
-                                                    context.params, msg);
-    Send(context.sync_reply_msg);
-  } else {
-    if (context.routing_id != MSG_ROUTING_NONE) {
-      Send(new PpapiHostMsg_InProcessResourceReply(context.routing_id,
-                                                   context.params,
-                                                   msg));
-    } else {
-      Send(new PpapiPluginMsg_ResourceReply(context.params, msg));
-    }
-  }
-}
-
-void PpapiHost::SendUnsolicitedReply(PP_Resource resource,
-                                     const IPC::Message& msg) {
-  std::vector<SerializedHandle> empty;
-  SendUnsolicitedReplyWithHandles(resource, msg, &empty);
-}
-
-void PpapiHost::SendUnsolicitedReplyWithHandles(
-    PP_Resource resource,
-    const IPC::Message& msg,
-    std::vector<SerializedHandle>* handles) {
-  TRACE_EVENT2("ppapi_proxy", "PpapiHost::SendUnsolicitedReplyWithHandles",
-               "Class", IPC_MESSAGE_ID_CLASS(msg.type()), "Line",
-               IPC_MESSAGE_ID_LINE(msg.type()));
-  if (!resource) {
-    // Host probably still in a pending state, nothing we can do.
-    return;
-  }
-
-  proxy::ResourceMessageReplyParams params(resource, 0);
-  for (auto& handle : *handles)
-    params.AppendHandle(std::move(handle));
-  Send(new PpapiPluginMsg_ResourceReply(params, msg));
-}
-
-std::unique_ptr<ResourceHost> PpapiHost::CreateResourceHost(
-    PP_Resource resource,
-    PP_Instance instance,
-    const IPC::Message& nested_msg) {
-  std::unique_ptr<ResourceHost> resource_host;
-  DCHECK(!host_factory_filters_.empty());  // Caller forgot to add a factory.
-  for (size_t i = 0; i < host_factory_filters_.size(); i++) {
-    resource_host = host_factory_filters_[i]->CreateResourceHost(
-        this, resource, instance, nested_msg);
-    if (resource_host.get())
-      break;
-  }
-  return resource_host;
-}
-
-int PpapiHost::AddPendingResourceHost(
-    std::unique_ptr<ResourceHost> resource_host) {
-  // The resource ID should not be assigned.
-  if (!resource_host.get() || resource_host->pp_resource() != 0) {
-    NOTREACHED();
-  }
-
-  if (pending_resource_hosts_.size() + resources_.size()
-      >= kMaxResourcesPerPlugin) {
-    return 0;
-  }
-
-  int pending_id = next_pending_resource_host_id_++;
-  pending_resource_hosts_[pending_id] = std::move(resource_host);
-  return pending_id;
-}
-
-void PpapiHost::AddHostFactoryFilter(std::unique_ptr<HostFactory> filter) {
-  host_factory_filters_.push_back(std::move(filter));
-}
-
-void PpapiHost::AddInstanceMessageFilter(
-    std::unique_ptr<InstanceMessageFilter> filter) {
-  instance_message_filters_.push_back(std::move(filter));
-}
-
-void PpapiHost::OnHostMsgResourceCall(
-    const proxy::ResourceMessageCallParams& params,
-    const IPC::Message& nested_msg) {
-  TRACE_EVENT2("ppapi_proxy", "PpapiHost::OnHostMsgResourceCall", "Class",
-               IPC_MESSAGE_ID_CLASS(nested_msg.type()), "Line",
-               IPC_MESSAGE_ID_LINE(nested_msg.type()));
-  HostMessageContext context(params);
-  HandleResourceCall(params, nested_msg, &context);
-}
-
-void PpapiHost::OnHostMsgInProcessResourceCall(
-    int routing_id,
-    const proxy::ResourceMessageCallParams& params,
-    const IPC::Message& nested_msg) {
-  TRACE_EVENT2("ppapi_proxy", "PpapiHost::OnHostMsgInProcessResourceCall",
-               "Class", IPC_MESSAGE_ID_CLASS(nested_msg.type()), "Line",
-               IPC_MESSAGE_ID_LINE(nested_msg.type()));
-  HostMessageContext context(routing_id, params);
-  HandleResourceCall(params, nested_msg, &context);
-}
-
-void PpapiHost::OnHostMsgResourceSyncCall(
-    const proxy::ResourceMessageCallParams& params,
-    const IPC::Message& nested_msg,
-    IPC::Message* reply_msg) {
-  TRACE_EVENT2("ppapi_proxy", "PpapiHost::OnHostMsgResourceSyncCall", "Class",
-               IPC_MESSAGE_ID_CLASS(nested_msg.type()), "Line",
-               IPC_MESSAGE_ID_LINE(nested_msg.type()));
-  // Sync messages should always have callback set because they always expect
-  // a reply from the host.
-  if (!params.has_callback()) {
-    DLOG(WARNING) << "Expected callback for sync message.";
-    return;
-  }
-
-  // Stash the |reply_msg| in the context so that it can be used to reply
-  // to the sync message.
-  HostMessageContext context(params, reply_msg);
-  HandleResourceCall(params, nested_msg, &context);
-}
-
-void PpapiHost::HandleResourceCall(
-    const proxy::ResourceMessageCallParams& params,
-    const IPC::Message& nested_msg,
-    HostMessageContext* context) {
-  ResourceHost* resource_host = GetResourceHost(params.pp_resource());
-  if (resource_host) {
-    // CAUTION: Handling the message may cause the destruction of this object.
-    resource_host->HandleMessage(nested_msg, context);
-  } else {
-    if (context->params.has_callback()) {
-      ReplyMessageContext reply_context = context->MakeReplyMessageContext();
-      reply_context.params.set_result(PP_ERROR_BADRESOURCE);
-      SendReply(reply_context, context->reply_msg);
-    }
-  }
-}
-
-void PpapiHost::OnHostMsgResourceCreated(
-    const proxy::ResourceMessageCallParams& params,
-    PP_Instance instance,
-    const IPC::Message& nested_msg) {
-  TRACE_EVENT2("ppapi_proxy", "PpapiHost::OnHostMsgResourceCreated", "Class",
-               IPC_MESSAGE_ID_CLASS(nested_msg.type()), "Line",
-               IPC_MESSAGE_ID_LINE(nested_msg.type()));
-
-  if (pending_resource_hosts_.size() + resources_.size()
-      >= kMaxResourcesPerPlugin) {
-    return;
-  }
-
-  // Run through all filters until one grabs this message.
-  std::unique_ptr<ResourceHost> resource_host =
-      CreateResourceHost(params.pp_resource(), instance, nested_msg);
-
-  if (!resource_host.get()) {
-    DLOG(WARNING) << "Resource host creation failed.";
-    return;
-  }
-
-  // Resource should have been assigned a nonzero PP_Resource.
-  DCHECK(resource_host->pp_resource());
-
-  resources_[params.pp_resource()] = std::move(resource_host);
-}
-
-void PpapiHost::OnHostMsgAttachToPendingHost(PP_Resource pp_resource,
-                                             int pending_host_id) {
-  PendingHostResourceMap::iterator found =
-      pending_resource_hosts_.find(pending_host_id);
-  if (found == pending_resource_hosts_.end()) {
-    // Plugin sent a bad ID.
-    DLOG(WARNING) << "Bad pending host ID = " << pending_host_id;
-    return;
-  }
-  found->second->SetPPResourceForPendingHost(pp_resource);
-  resources_[pp_resource] = std::move(found->second);
-  pending_resource_hosts_.erase(found);
-}
-
-void PpapiHost::OnHostMsgResourceDestroyed(PP_Resource resource) {
-  ResourceMap::iterator found = resources_.find(resource);
-  if (found == resources_.end()) {
-    DLOG(WARNING) << "Unknown resource ID " << resource;
-    return;
-  }
-  // Invoking the HostResource destructor might result in looking up the
-  // PP_Resource in resources_. std::map is not well specified as to whether the
-  // element will be there or not. Therefore, we delay destruction of the
-  // HostResource until after we've made sure the map no longer contains
-  // |resource|.
-  std::unique_ptr<ResourceHost> delete_at_end_of_scope(
-      std::move(found->second));
-  resources_.erase(found);
-}
-
-ResourceHost* PpapiHost::GetResourceHost(PP_Resource resource) const {
-  ResourceMap::const_iterator found = resources_.find(resource);
-  return found == resources_.end() ? NULL : found->second.get();
-}
-
-}  // namespace host
-}  // namespace ppapi
diff --git a/host/ppapi_host.h b/host/ppapi_host.h
deleted file mode 100644
index 63e6b5a..0000000
--- a/host/ppapi_host.h
+++ /dev/null
@@ -1,150 +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_HOST_PPAPI_HOST_H_
-#define PPAPI_HOST_PPAPI_HOST_H_
-
-#include <map>
-#include <memory>
-#include <vector>
-
-#include "base/compiler_specific.h"
-#include "ipc/ipc_listener.h"
-#include "ipc/ipc_sender.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/host/ppapi_host_export.h"
-#include "ppapi/shared_impl/ppapi_permissions.h"
-
-namespace ppapi {
-
-namespace proxy {
-class ResourceMessageCallParams;
-class SerializedHandle;
-}
-
-namespace host {
-
-class HostFactory;
-struct HostMessageContext;
-class InstanceMessageFilter;
-struct ReplyMessageContext;
-class ResourceHost;
-
-// The host provides routing and tracking for resource message calls that
-// come from the plugin to the host (browser or renderer), and the
-// corresponding replies.
-class PPAPI_HOST_EXPORT PpapiHost : public IPC::Sender, public IPC::Listener {
- public:
-  // The sender is the channel to the plugin for outgoing messages.
-  // Normally the creator will add filters for resource creation messages
-  // (AddHostFactoryFilter) and instance messages (AddInstanceMessageFilter)
-  // after construction.
-  PpapiHost(IPC::Sender* sender, const PpapiPermissions& perms);
-
-  PpapiHost(const PpapiHost&) = delete;
-  PpapiHost& operator=(const PpapiHost&) = delete;
-
-  ~PpapiHost() override;
-
-  const PpapiPermissions& permissions() const { return permissions_; }
-
-  // Sender implementation. Forwards to the sender_.
-  bool Send(IPC::Message* msg) override;
-
-  // Listener implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
-  // Sends the given reply message to the plugin.
-  void SendReply(const ReplyMessageContext& context,
-                 const IPC::Message& msg);
-
-  // Sends the given unsolicited reply message to the plugin.
-  void SendUnsolicitedReply(PP_Resource resource, const IPC::Message& msg);
-
-  // Similar to |SendUnsolicitedReply()|, but also sends handles.
-  void SendUnsolicitedReplyWithHandles(
-      PP_Resource resource,
-      const IPC::Message& msg,
-      std::vector<proxy::SerializedHandle>* handles);
-
-  // Create a ResourceHost with the given |nested_msg|.
-  std::unique_ptr<ResourceHost> CreateResourceHost(
-      PP_Resource resource,
-      PP_Instance instance,
-      const IPC::Message& nested_msg);
-
-  // Adds the given host resource as a pending one (with no corresponding
-  // PluginResource object and no PP_Resource ID yet). The pending resource ID
-  // is returned. See PpapiHostMsg_AttachToPendingHost.
-  int AddPendingResourceHost(std::unique_ptr<ResourceHost> resource_host);
-
-  // Adds the given host factory filter to the host. The PpapiHost will take
-  // ownership of the pointer.
-  void AddHostFactoryFilter(std::unique_ptr<HostFactory> filter);
-
-  // Adds the given message filter to the host. The PpapiHost will take
-  // ownership of the pointer.
-  void AddInstanceMessageFilter(std::unique_ptr<InstanceMessageFilter> filter);
-
-  // Returns null if the resource doesn't exist.
-  host::ResourceHost* GetResourceHost(PP_Resource resource) const;
-
- private:
-  friend class InstanceMessageFilter;
-
-  void HandleResourceCall(
-      const proxy::ResourceMessageCallParams& params,
-      const IPC::Message& nested_msg,
-      HostMessageContext* context);
-
-  // Message handlers.
-  void OnHostMsgResourceCall(const proxy::ResourceMessageCallParams& params,
-                             const IPC::Message& nested_msg);
-  void OnHostMsgInProcessResourceCall(
-      int routing_id,
-      const proxy::ResourceMessageCallParams& params,
-      const IPC::Message& nested_msg);
-  void OnHostMsgResourceSyncCall(
-      const proxy::ResourceMessageCallParams& params,
-      const IPC::Message& nested_msg,
-      IPC::Message* reply_msg);
-  void OnHostMsgResourceCreated(const proxy::ResourceMessageCallParams& param,
-                                PP_Instance instance,
-                                const IPC::Message& nested_msg);
-  void OnHostMsgAttachToPendingHost(PP_Resource resource, int pending_host_id);
-  void OnHostMsgResourceDestroyed(PP_Resource resource);
-
-  // Non-owning pointer.
-  IPC::Sender* sender_;
-
-  PpapiPermissions permissions_;
-
-  // Filters for resource creation messages. Note that since we don't support
-  // deleting these dynamically we don't need to worry about modifications
-  // during iteration. If we add that capability, this should be replaced with
-  // an base::ObserverList.
-  std::vector<std::unique_ptr<HostFactory>> host_factory_filters_;
-
-  // Filters for instance messages. Note that since we don't support deleting
-  // these dynamically we don't need to worry about modifications during
-  // iteration. If we add that capability, this should be replaced with an
-  // base::ObserverList.
-  std::vector<std::unique_ptr<InstanceMessageFilter>> instance_message_filters_;
-
-  typedef std::map<PP_Resource, std::unique_ptr<ResourceHost>> ResourceMap;
-  ResourceMap resources_;
-
-  // Resources that have been created in the host and have not yet had the
-  // corresponding PluginResource associated with them.
-  // See PpapiHostMsg_AttachToPendingHost.
-  typedef std::map<int, std::unique_ptr<ResourceHost>> PendingHostResourceMap;
-  PendingHostResourceMap pending_resource_hosts_;
-  int next_pending_resource_host_id_;
-};
-
-}  // namespace host
-}  // namespace ppapi
-
-#endif  // PPAPI_HOST_PPAPI_HOST_H_
diff --git a/host/ppapi_host_export.h b/host/ppapi_host_export.h
deleted file mode 100644
index 18c674a..0000000
--- a/host/ppapi_host_export.h
+++ /dev/null
@@ -1,25 +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_HOST_PPAPI_HOST_EXPORT_H_
-#define PPAPI_HOST_PPAPI_HOST_EXPORT_H_
-
-#if defined(COMPONENT_BUILD)
-#if defined(WIN32)
-
-#if defined(PPAPI_HOST_IMPLEMENTATION)
-#define PPAPI_HOST_EXPORT __declspec(dllexport)
-#else
-#define PPAPI_HOST_EXPORT __declspec(dllimport)
-#endif  // defined(PPAPI_HOST_IMPLEMENTATION)
-
-#else  // defined(WIN32)
-#define PPAPI_HOST_EXPORT __attribute__((visibility("default")))
-#endif
-
-#else  // defined(COMPONENT_BUILD)
-#define PPAPI_HOST_EXPORT
-#endif
-
-#endif  // PPAPI_HOST_PPAPI_HOST_EXPORT_H_
diff --git a/host/resource_host.cc b/host/resource_host.cc
deleted file mode 100644
index fa18fcf..0000000
--- a/host/resource_host.cc
+++ /dev/null
@@ -1,75 +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/host/resource_host.h"
-
-#include <stddef.h>
-
-#include "base/check.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/host/ppapi_host.h"
-#include "ppapi/host/resource_message_filter.h"
-
-namespace ppapi {
-namespace host {
-
-ResourceHost::ResourceHost(PpapiHost* host,
-                           PP_Instance instance,
-                           PP_Resource resource)
-    : host_(host),
-      pp_instance_(instance),
-      pp_resource_(resource) {
-}
-
-ResourceHost::~ResourceHost() {
-  for (size_t i = 0; i < message_filters_.size(); ++i)
-    message_filters_[i]->OnFilterDestroyed();
-}
-
-bool ResourceHost::HandleMessage(const IPC::Message& msg,
-                                 HostMessageContext* context) {
-  // First see if the message is handled off-thread by message filters.
-  for (size_t i = 0; i < message_filters_.size(); ++i) {
-    if (message_filters_[i]->HandleMessage(msg, context))
-      return true;
-  }
-  // Run this ResourceHosts message handler.
-  RunMessageHandlerAndReply(msg, context);
-  return true;
-}
-
-void ResourceHost::SetPPResourceForPendingHost(PP_Resource pp_resource) {
-  DCHECK(!pp_resource_);
-  pp_resource_ = pp_resource;
-  DidConnectPendingHostToResource();
-}
-
-void ResourceHost::SendReply(const ReplyMessageContext& context,
-                             const IPC::Message& msg) {
-  host_->SendReply(context, msg);
-}
-
-bool ResourceHost::IsFileRefHost() {
-  return false;
-}
-
-bool ResourceHost::IsFileSystemHost() {
-  return false;
-}
-
-bool ResourceHost::IsMediaStreamVideoTrackHost() {
-  return false;
-}
-
-bool ResourceHost::IsGraphics2DHost() {
-  return false;
-}
-
-void ResourceHost::AddFilter(scoped_refptr<ResourceMessageFilter> filter) {
-  message_filters_.push_back(filter);
-  filter->OnFilterAdded(this);
-}
-
-}  // namespace host
-}  // namespace ppapi
diff --git a/host/resource_host.h b/host/resource_host.h
deleted file mode 100644
index 18f531c..0000000
--- a/host/resource_host.h
+++ /dev/null
@@ -1,96 +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_HOST_RESOURCE_HOST_H_
-#define PPAPI_HOST_RESOURCE_HOST_H_
-
-#include <vector>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/host/ppapi_host_export.h"
-#include "ppapi/host/resource_message_handler.h"
-#include "ppapi/shared_impl/host_resource.h"
-
-namespace IPC {
-class Message;
-}
-
-namespace ppapi {
-namespace host {
-
-struct HostMessageContext;
-class PpapiHost;
-class ResourceMessageFilter;
-
-// Some (but not all) resources have a corresponding object in the host side
-// that is kept alive as long as the resource in the plugin is alive. This is
-// the base class for such objects.
-class PPAPI_HOST_EXPORT ResourceHost : public ResourceMessageHandler {
- public:
-  ResourceHost(PpapiHost* host, PP_Instance instance, PP_Resource resource);
-
-  ResourceHost(const ResourceHost&) = delete;
-  ResourceHost& operator=(const ResourceHost&) = delete;
-
-  ~ResourceHost() override;
-
-  PpapiHost* host() { return host_; }
-  PP_Instance pp_instance() const { return pp_instance_; }
-  PP_Resource pp_resource() const { return pp_resource_; }
-
-  // This runs any message filters in |message_filters_|. If the message is not
-  // handled by these filters then the host's own message handler is run. True
-  // is always returned (the message will always be handled in some way).
-  bool HandleMessage(const IPC::Message& msg,
-                     HostMessageContext* context) override;
-
-  // Sets the PP_Resource ID when the plugin attaches to a pending resource
-  // host. This will notify subclasses by calling
-  // DidConnectPendingHostToResource.
-  //
-  // The current PP_Resource for all pending hosts should be 0. See
-  // PpapiHostMsg_AttachToPendingHost.
-  void SetPPResourceForPendingHost(PP_Resource pp_resource);
-
-  void SendReply(const ReplyMessageContext& context,
-                 const IPC::Message& msg) override;
-
-  // Simple RTTI. A subclass that is a host for one of these APIs will override
-  // the appropriate function and return true.
-  virtual bool IsFileRefHost();
-  virtual bool IsFileSystemHost();
-  virtual bool IsGraphics2DHost();
-  virtual bool IsMediaStreamVideoTrackHost();
-
- protected:
-  // Adds a ResourceMessageFilter to handle resource messages. Incoming
-  // messages will be passed to the handlers of these filters before being
-  // handled by the resource host's own message handler. This allows
-  // ResourceHosts to easily handle messages on other threads.
-  void AddFilter(scoped_refptr<ResourceMessageFilter> filter);
-
-  // Called when this resource host is pending and the corresponding plugin has
-  // just connected to it. The host resource subclass can implement this
-  // function if it wants to do processing (typically sending queued data).
-  //
-  // The PP_Resource will be valid for this call but not before.
-  virtual void DidConnectPendingHostToResource() {}
-
- private:
-  // The host that owns this object.
-  PpapiHost* host_;
-
-  PP_Instance pp_instance_;
-  PP_Resource pp_resource_;
-
-  // A vector of message filters which the host will forward incoming resource
-  // messages to.
-  std::vector<scoped_refptr<ResourceMessageFilter> > message_filters_;
-};
-
-}  // namespace host
-}  // namespace ppapi
-
-#endif  // PPAPI_HOST_RESOURCE_HOST_H_
diff --git a/host/resource_message_filter.cc b/host/resource_message_filter.cc
deleted file mode 100644
index ce4d5fe..0000000
--- a/host/resource_message_filter.cc
+++ /dev/null
@@ -1,103 +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/host/resource_message_filter.h"
-
-#include "base/functional/bind.h"
-#include "base/location.h"
-#include "base/task/sequenced_task_runner.h"
-#include "base/task/single_thread_task_runner.h"
-#include "ipc/ipc_message.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/host/ppapi_host.h"
-#include "ppapi/host/resource_host.h"
-
-namespace ppapi {
-namespace host {
-
-namespace internal {
-
-// static
-void ResourceMessageFilterDeleteTraits::Destruct(
-    const ResourceMessageFilter* filter) {
-  if (!filter->deletion_task_runner_->BelongsToCurrentThread()) {
-    // During shutdown the object may not be deleted, but it should be okay to
-    // leak in that case.
-    filter->deletion_task_runner_->DeleteSoon(FROM_HERE, filter);
-  } else {
-    delete filter;
-  }
-}
-
-}  // namespace internal
-
-ResourceMessageFilter::ResourceMessageFilter()
-    : deletion_task_runner_(base::SingleThreadTaskRunner::GetCurrentDefault()),
-      reply_thread_task_runner_(
-          base::SingleThreadTaskRunner::GetCurrentDefault()),
-      resource_host_(nullptr) {}
-
-ResourceMessageFilter::ResourceMessageFilter(
-    scoped_refptr<base::SingleThreadTaskRunner> reply_thread_task_runner)
-    : deletion_task_runner_(base::SingleThreadTaskRunner::GetCurrentDefault()),
-      reply_thread_task_runner_(reply_thread_task_runner),
-      resource_host_(nullptr) {}
-
-ResourceMessageFilter::~ResourceMessageFilter() {
-}
-
-void ResourceMessageFilter::OnFilterAdded(ResourceHost* resource_host) {
-  resource_host_ = resource_host;
-}
-
-void ResourceMessageFilter::OnFilterDestroyed() {
-  resource_host_ = nullptr;
-}
-
-bool ResourceMessageFilter::HandleMessage(const IPC::Message& msg,
-                                          HostMessageContext* context) {
-  scoped_refptr<base::SequencedTaskRunner> runner =
-      OverrideTaskRunnerForMessage(msg);
-  if (runner.get()) {
-    if (runner->RunsTasksInCurrentSequence()) {
-      DispatchMessage(msg, *context);
-    } else {
-      // TODO(raymes): We need to make a copy so the context can be used on
-      // other threads. It would be better to have a thread-safe refcounted
-      // context.
-      HostMessageContext context_copy = *context;
-      runner->PostTask(FROM_HERE,
-                       base::BindOnce(&ResourceMessageFilter::DispatchMessage,
-                                      this, msg, context_copy));
-    }
-    return true;
-  }
-
-  return false;
-}
-
-void ResourceMessageFilter::SendReply(const ReplyMessageContext& context,
-                                      const IPC::Message& msg) {
-  if (!reply_thread_task_runner_->BelongsToCurrentThread()) {
-    reply_thread_task_runner_->PostTask(
-        FROM_HERE,
-        base::BindOnce(&ResourceMessageFilter::SendReply, this, context, msg));
-    return;
-  }
-  if (resource_host_)
-    resource_host_->SendReply(context, msg);
-}
-
-scoped_refptr<base::SequencedTaskRunner>
-ResourceMessageFilter::OverrideTaskRunnerForMessage(const IPC::Message& msg) {
-  return nullptr;
-}
-
-void ResourceMessageFilter::DispatchMessage(const IPC::Message& msg,
-                                            HostMessageContext context) {
-  RunMessageHandlerAndReply(msg, &context);
-}
-
-}  // namespace host
-}  // namespace ppapi
diff --git a/host/resource_message_filter.h b/host/resource_message_filter.h
deleted file mode 100644
index bff2966..0000000
--- a/host/resource_message_filter.h
+++ /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.
-
-#ifndef PPAPI_HOST_RESOURCE_MESSAGE_FILTER_H_
-#define PPAPI_HOST_RESOURCE_MESSAGE_FILTER_H_
-
-#include "base/memory/ref_counted.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/host/host_message_context.h"
-#include "ppapi/host/ppapi_host_export.h"
-#include "ppapi/host/resource_message_handler.h"
-
-namespace base {
-class SequencedTaskRunner;
-class SingleThreadTaskRunner;
-
-template <typename T>
-class DeleteHelper;
-}
-
-namespace IPC {
-class Message;
-}
-
-namespace ppapi {
-namespace host {
-
-class ResourceHost;
-class ResourceMessageFilter;
-
-namespace internal {
-
-struct PPAPI_HOST_EXPORT ResourceMessageFilterDeleteTraits {
-  static void Destruct(const ResourceMessageFilter* filter);
-};
-
-}  // namespace internal
-
-// This is the base class of resource message filters that can handle resource
-// messages on another thread. ResourceHosts can handle most messages
-// directly, but if they need to handle something on a different thread it is
-// inconvenient. This class makes handling that case easier. This class is
-// similar to a BrowserMessageFilter but for resource messages. Note that the
-// liftetime of a ResourceHost is managed by a PpapiHost and may be destroyed
-// before or while your message is being processed on another thread.
-// If this is the case, the message handler will always be called but a reply
-// may not be sent back to the host.
-//
-// To handle a resource message on another thread you should implement a
-// subclass as follows:
-// class MyMessageFilter : public ResourceMessageFilter {
-//  protected:
-//   scoped_refptr<base::TaskRunner> OverrideTaskRunnerForMessage(
-//       const IPC::Message& message) override {
-//     if (message.type() == MyMessage::ID) {
-//       return content::GetUIThreadTaskRunner({});
-//     }
-//     return NULL;
-//   }
-//
-//   int32_t OnResourceMessageReceived(const IPC::Message& msg,
-//                                     HostMessageContext* context) override {
-//     IPC_BEGIN_MESSAGE_MAP(MyMessageFilter, msg)
-//       PPAPI_DISPATCH_HOST_RESOURCE_CALL(MyMessage, OnMyMessage)
-//     IPC_END_MESSAGE_MAP()
-//     return PP_ERROR_FAILED;
-//   }
-//
-//  private:
-//   int32_t OnMyMessage(ppapi::host::HostMessageContext* context, ...) {
-//     // Will be run on the UI thread.
-//   }
-// }
-//
-// The filter should then be added in the resource host using:
-// AddFilter(base::MakeRefCounted<MyMessageFilter>());
-class PPAPI_HOST_EXPORT ResourceMessageFilter
-    : public ResourceMessageHandler,
-      public base::RefCountedThreadSafe<
-          ResourceMessageFilter, internal::ResourceMessageFilterDeleteTraits> {
- public:
-  // This object must be constructed on the same thread that a reply message
-  // should be sent, i.e. the IO thread when constructed in the browser process
-  // or the main thread when constructed in the renderer process. Since
-  // ResourceMessageFilters are usually constructed in the constructor of the
-  // owning ResourceHost, this will almost always be the case anyway.
-  // The object will be deleted on the creation thread.
-  ResourceMessageFilter();
-  // Test constructor. Allows you to specify the message loop which will be used
-  // to dispatch replies on.
-  ResourceMessageFilter(
-      scoped_refptr<base::SingleThreadTaskRunner> reply_thread_task_runner);
-
-  ResourceMessageFilter(const ResourceMessageFilter&) = delete;
-  ResourceMessageFilter& operator=(const ResourceMessageFilter&) = delete;
-
-  // Called when a filter is added to a ResourceHost.
-  void OnFilterAdded(ResourceHost* resource_host);
-  // Called when a filter is removed from a ResourceHost.
-  virtual void OnFilterDestroyed();
-
-  // This will dispatch the message handler on the target thread. It returns
-  // true if the message was handled by this filter and false otherwise.
-  bool HandleMessage(const IPC::Message& msg,
-                     HostMessageContext* context) override;
-
-  // This can be called from any thread.
-  void SendReply(const ReplyMessageContext& context,
-                 const IPC::Message& msg) override;
-
- protected:
-  ~ResourceMessageFilter() override;
-
-  // Please see the comments of |resource_host_| for on which thread it can be
-  // used and when it is NULL.
-  ResourceHost* resource_host() const { return resource_host_; }
-
-  // If you want the message to be handled on another thread, return a non-null
-  // task runner which will target tasks accordingly.
-  virtual scoped_refptr<base::SequencedTaskRunner> OverrideTaskRunnerForMessage(
-      const IPC::Message& message);
-
- private:
-  friend class base::DeleteHelper<ResourceMessageFilter>;
-  friend class base::RefCountedThreadSafe<
-      ResourceMessageFilter, internal::ResourceMessageFilterDeleteTraits>;
-  friend struct internal::ResourceMessageFilterDeleteTraits;
-
-  // This method is posted to the target thread and runs the message handler.
-  void DispatchMessage(const IPC::Message& msg,
-                       HostMessageContext context);
-
-  scoped_refptr<base::SingleThreadTaskRunner> deletion_task_runner_;
-
-  // Task runner to send resource message replies on. This will be the task
-  // runner of the IO thread for the browser process or the main thread for a
-  // renderer process.
-  scoped_refptr<base::SingleThreadTaskRunner> reply_thread_task_runner_;
-
-  // Non-owning pointer to the resource host owning this filter. Should only be
-  // accessed from the thread which sends messages to the plugin resource (i.e.
-  // the IO thread for the browser process or the main thread for the renderer).
-  // This will be NULL upon creation of the filter and is set to the owning
-  // ResourceHost when |OnFilterAdded| is called. When the owning ResourceHost
-  // is destroyed, |OnFilterDestroyed| is called and this will be set to NULL.
-  ResourceHost* resource_host_;
-};
-
-}  // namespace host
-}  // namespace ppapi
-
-#endif  // PPAPI_HOST_RESOURCE_MESSAGE_FILTER_H_
diff --git a/host/resource_message_handler.cc b/host/resource_message_handler.cc
deleted file mode 100644
index cfb55a3..0000000
--- a/host/resource_message_handler.cc
+++ /dev/null
@@ -1,65 +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/host/resource_message_handler.h"
-
-#include "base/logging.h"
-#include "ipc/ipc_message.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/host/host_message_context.h"
-
-namespace ppapi {
-namespace host {
-
-ResourceMessageHandler::ResourceMessageHandler() {
-}
-
-ResourceMessageHandler::~ResourceMessageHandler() {
-}
-
-void ResourceMessageHandler::RunMessageHandlerAndReply(
-    const IPC::Message& msg,
-    HostMessageContext* context) {
-  ReplyMessageContext reply_context = context->MakeReplyMessageContext();
-  // CAUTION: Handling the message may cause the destruction of this object.
-  // The message handler should ensure that if there is a chance that the
-  // object will be destroyed, PP_OK_COMPLETIONPENDING is returned as the
-  // result of the message handler. Otherwise the code below will attempt to
-  // send a reply message on a destroyed object.
-  reply_context.params.set_result(OnResourceMessageReceived(msg, context));
-
-  // Sanity check the resource handler. Note if the result was
-  // "completion pending" the resource host may have already sent the reply.
-  if (reply_context.params.result() == PP_OK_COMPLETIONPENDING) {
-    // Message handler should have only returned a pending result if a
-    // response will be sent to the plugin.
-    DCHECK(context->params.has_callback());
-
-    // Message handler should not have written a message to be returned if
-    // completion is pending.
-    DCHECK(context->reply_msg.type() == 0);
-  } else if (!context->params.has_callback()) {
-    // When no response is required, the message handler should not have
-    // written a message to be returned.
-    DCHECK(context->reply_msg.type() == 0);
-
-    // If there is no callback and the result of running the message handler
-    // was not PP_OK the client won't find out.
-    DLOG_IF(WARNING, reply_context.params.result() != PP_OK)
-        << "'Post' message handler failed to complete successfully.";
-  }
-
-  if (context->params.has_callback() &&
-      reply_context.params.result() != PP_OK_COMPLETIONPENDING)
-    SendReply(reply_context, context->reply_msg);
-}
-
-int32_t ResourceMessageHandler::OnResourceMessageReceived(
-    const IPC::Message& msg,
-    HostMessageContext* context) {
-  return PP_ERROR_NOTSUPPORTED;
-}
-
-}  // namespace host
-}  // namespace ppapi
diff --git a/host/resource_message_handler.h b/host/resource_message_handler.h
deleted file mode 100644
index 58005d7..0000000
--- a/host/resource_message_handler.h
+++ /dev/null
@@ -1,74 +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_HOST_RESOURCE_MESSAGE_HANDLER_H_
-#define PPAPI_HOST_RESOURCE_MESSAGE_HANDLER_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/host/ppapi_host_export.h"
-
-namespace IPC {
-class Message;
-}
-
-namespace ppapi {
-namespace host {
-
-struct HostMessageContext;
-struct ReplyMessageContext;
-
-// This is the base class of classes that can handle resource messages. It
-// mainly exists at present to share code for checking replies to resource
-// messages are valid.
-class PPAPI_HOST_EXPORT ResourceMessageHandler {
- public:
-  ResourceMessageHandler();
-
-  ResourceMessageHandler(const ResourceMessageHandler&) = delete;
-  ResourceMessageHandler& operator=(const ResourceMessageHandler&) = delete;
-
-  virtual ~ResourceMessageHandler();
-
-  // Called when this handler should handle a particular message. This should
-  // call into the the message handler implemented by subclasses (i.e.
-  // |OnResourceMessageReceived|) and perform any additional work necessary to
-  // handle the message (e.g. checking resource replies are valid). True is
-  // returned if the message is handled and false otherwise.
-  virtual bool HandleMessage(const IPC::Message& msg,
-                             HostMessageContext* context) = 0;
-
-  // Send a resource reply message.
-  virtual void SendReply(const ReplyMessageContext& context,
-                         const IPC::Message& msg) = 0;
-
- protected:
-  // Runs the message handler and checks that a reply was sent if necessary.
-  void RunMessageHandlerAndReply(const IPC::Message& msg,
-                                 HostMessageContext* context);
-
-  // Handles messages associated with a given resource object. If the flags
-  // indicate that a response is required, the return value of this function
-  // will be sent as a resource message "response" along with the message
-  // specified in the reply of the context.
-  //
-  // You can do a response asynchronously by returning PP_OK_COMPLETIONPENDING.
-  // This will cause the reply to be skipped, and the class implementing this
-  // function will take responsibility for issuing the callback. The callback
-  // can be issued inside OnResourceMessageReceived before it returns, or at
-  // a future time.
-  //
-  // If you don't have a particular reply message, you can just ignore
-  // the reply in the message context. However, if you have a reply more than
-  // just the int32_t result code, set the reply to be the message of your
-  // choosing.
-  //
-  // The default implementation just returns PP_ERROR_NOTSUPPORTED.
-  virtual int32_t OnResourceMessageReceived(const IPC::Message& msg,
-                                            HostMessageContext* context);
-};
-
-}  // namespace host
-}  // namespace ppapi
-
-#endif  // PPAPI_HOST_RESOURCE_MESSAGE_HANDLER_H_
diff --git a/lib/gl/gles2/BUILD.gn b/lib/gl/gles2/BUILD.gn
deleted file mode 100644
index 7f77ae5..0000000
--- a/lib/gl/gles2/BUILD.gn
+++ /dev/null
@@ -1,23 +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("//ppapi/buildflags/buildflags.gni")
-
-assert(enable_ppapi)
-
-config("gles2_config") {
-  include_dirs = [ "//ppapi/lib/gl/include" ]
-}
-
-source_set("gles2") {
-  sources = [
-    "gl2ext_ppapi.c",
-    "gl2ext_ppapi.h",
-    "gles2.c",
-  ]
-
-  public_configs = [ ":gles2_config" ]
-
-  public_deps = [ "//ppapi/c" ]
-}
diff --git a/lib/gl/gles2/gl2ext_ppapi.c b/lib/gl/gles2/gl2ext_ppapi.c
deleted file mode 100644
index 055d602..0000000
--- a/lib/gl/gles2/gl2ext_ppapi.c
+++ /dev/null
@@ -1,146 +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/lib/gl/gles2/gl2ext_ppapi.h"
-
-#include <stddef.h>
-
-#ifndef GL_FALSE
-#define GL_FALSE 0
-#endif  // GL_FALSE
-
-#ifndef GL_TRUE
-#define GL_TRUE 1
-#endif  // GL_TRUE
-
-#if defined(__GNUC__) && !defined(__APPLE__) && !defined(ANDROID)
-#define PP_TLS __thread
-#elif defined(_MSC_VER)
-#define PP_TLS __declspec(thread)
-#else
-// TODO(alokp): Fix all other platforms.
-#define PP_TLS
-#endif
-
-// TODO(alokp): This will need to be thread-safe if we build gles2 as a
-// shared library.
-static const struct PPB_OpenGLES2* g_gles2_interface = NULL;
-static const struct PPB_OpenGLES2InstancedArrays*
-    g_gles2_instanced_arrays_interface = NULL;
-static const struct PPB_OpenGLES2FramebufferBlit*
-    g_gles2_framebuffer_blit_interface = NULL;
-static const struct PPB_OpenGLES2FramebufferMultisample*
-    g_gles2_framebuffer_multisample_interface = NULL;
-static const struct PPB_OpenGLES2ChromiumEnableFeature*
-    g_gles2_chromium_enable_feature_interface = NULL;
-static const struct PPB_OpenGLES2ChromiumMapSub*
-    g_gles2_chromium_map_sub_interface = NULL;
-static const struct PPB_OpenGLES2Query*
-    g_gles2_query_interface = NULL;
-static const struct PPB_OpenGLES2VertexArrayObject*
-    g_gles2_vertex_array_object_interface = NULL;
-static const struct PPB_OpenGLES2DrawBuffers_Dev*
-    g_gles2_draw_buffers_interface = NULL;
-
-// TODO(alokp): Make sure PP_TLS works on all supported platforms.
-static PP_TLS PP_Resource g_current_context = 0;
-
-GLboolean GL_APIENTRY glInitializePPAPI(
-    PPB_GetInterface get_browser_interface) {
-  if (!g_gles2_interface) {
-    g_gles2_interface = get_browser_interface(PPB_OPENGLES2_INTERFACE);
-  }
-  if (!g_gles2_instanced_arrays_interface) {
-    g_gles2_instanced_arrays_interface =
-        get_browser_interface(PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE);
-  }
-  if (!g_gles2_framebuffer_blit_interface) {
-    g_gles2_framebuffer_blit_interface =
-        get_browser_interface(PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE);
-  }
-  if (!g_gles2_framebuffer_multisample_interface) {
-    g_gles2_framebuffer_multisample_interface =
-        get_browser_interface(
-            PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE);
-  }
-  if (!g_gles2_chromium_enable_feature_interface) {
-    g_gles2_chromium_enable_feature_interface =
-        get_browser_interface(
-            PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE);
-  }
-  if (!g_gles2_chromium_map_sub_interface) {
-    g_gles2_chromium_map_sub_interface =
-        get_browser_interface(PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE);
-  }
-  if (!g_gles2_query_interface) {
-    g_gles2_query_interface =
-        get_browser_interface(PPB_OPENGLES2_QUERY_INTERFACE);
-  }
-  if (!g_gles2_vertex_array_object_interface) {
-    g_gles2_vertex_array_object_interface =
-        get_browser_interface(PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE);
-  }
-  if (!g_gles2_draw_buffers_interface) {
-    g_gles2_draw_buffers_interface =
-        get_browser_interface(PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE);
-  }
-  return g_gles2_interface ? GL_TRUE : GL_FALSE;
-}
-
-GLboolean GL_APIENTRY glTerminatePPAPI(void) {
-  g_gles2_interface = NULL;
-  return GL_TRUE;
-}
-
-void GL_APIENTRY glSetCurrentContextPPAPI(PP_Resource context) {
-  g_current_context = context;
-}
-
-PP_Resource GL_APIENTRY glGetCurrentContextPPAPI(void) {
-  return g_current_context;
-}
-
-const struct PPB_OpenGLES2* GL_APIENTRY glGetInterfacePPAPI(void) {
-  return g_gles2_interface;
-}
-
-const struct PPB_OpenGLES2InstancedArrays* GL_APIENTRY
-    glGetInstancedArraysInterfacePPAPI(void) {
-  return g_gles2_instanced_arrays_interface;
-}
-
-const struct PPB_OpenGLES2FramebufferBlit* GL_APIENTRY
-    glGetFramebufferBlitInterfacePPAPI(void) {
-  return g_gles2_framebuffer_blit_interface;
-}
-
-const struct PPB_OpenGLES2FramebufferMultisample* GL_APIENTRY
-    glGetFramebufferMultisampleInterfacePPAPI(void) {
-  return g_gles2_framebuffer_multisample_interface;
-}
-
-const struct PPB_OpenGLES2ChromiumEnableFeature* GL_APIENTRY
-    glGetChromiumEnableFeatureInterfacePPAPI(void) {
-  return g_gles2_chromium_enable_feature_interface;
-}
-
-const struct PPB_OpenGLES2ChromiumMapSub* GL_APIENTRY
-    glGetChromiumMapSubInterfacePPAPI(void) {
-  return g_gles2_chromium_map_sub_interface;
-}
-
-const struct PPB_OpenGLES2Query* GL_APIENTRY
-    glGetQueryInterfacePPAPI(void) {
-  return g_gles2_query_interface;
-}
-
-const struct PPB_OpenGLES2VertexArrayObject* GL_APIENTRY
-    glGetVertexArrayObjectInterfacePPAPI(void) {
-  return g_gles2_vertex_array_object_interface;
-}
-
-const struct PPB_OpenGLES2DrawBuffers_Dev* GL_APIENTRY
-    glGetDrawBuffersInterfacePPAPI(void) {
-  return g_gles2_draw_buffers_interface;
-}
diff --git a/lib/gl/gles2/gl2ext_ppapi.h b/lib/gl/gles2/gl2ext_ppapi.h
deleted file mode 100644
index 760e73d..0000000
--- a/lib/gl/gles2/gl2ext_ppapi.h
+++ /dev/null
@@ -1,62 +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.
-
-// OpenGL ES 2.0 extensions for PPAPI.
-
-#ifndef PPAPI_LIB_GL_GLES2_GL2EXT_PPAPI_H_
-#define PPAPI_LIB_GL_GLES2_GL2EXT_PPAPI_H_
-
-#include <GLES2/gl2platform.h>
-
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/ppb.h"
-#include "ppapi/c/ppb_opengles2.h"
-#include "ppapi/c/dev/ppb_opengles2ext_dev.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif  // __cplusplus
-
-// Initializes OpenGL ES 2.0 library.
-// Must be called once before making any gl calls.
-// GL_FALSE is returned on failure, GL_TRUE otherwise.
-GL_APICALL GLboolean GL_APIENTRY glInitializePPAPI(
-    PPB_GetInterface get_browser_interface);
-
-// Terminates OpenGL ES 2.0 library.
-// GL_FALSE is returned on failure, GL_TRUE otherwise.
-GL_APICALL GLboolean GL_APIENTRY glTerminatePPAPI(void);
-
-// Sets context to be used for rendering in the current thread.
-GL_APICALL void GL_APIENTRY glSetCurrentContextPPAPI(PP_Resource context);
-
-// Gets context being used for rendering in the current thread.
-// Returns NULL if a context has not been set yet.
-GL_APICALL PP_Resource GL_APIENTRY glGetCurrentContextPPAPI(void);
-
-// Returns OpenGL ES 2.0 interface.
-GL_APICALL const struct PPB_OpenGLES2* GL_APIENTRY glGetInterfacePPAPI(void);
-GL_APICALL const struct PPB_OpenGLES2InstancedArrays* GL_APIENTRY
-    glGetInstancedArraysInterfacePPAPI(void);
-GL_APICALL const struct PPB_OpenGLES2FramebufferBlit* GL_APIENTRY
-    glGetFramebufferBlitInterfacePPAPI(void);
-GL_APICALL const struct PPB_OpenGLES2FramebufferMultisample* GL_APIENTRY
-    glGetFramebufferMultisampleInterfacePPAPI(void);
-GL_APICALL const struct PPB_OpenGLES2ChromiumEnableFeature* GL_APIENTRY
-    glGetChromiumEnableFeatureInterfacePPAPI(void);
-GL_APICALL const struct PPB_OpenGLES2ChromiumMapSub* GL_APIENTRY
-    glGetChromiumMapSubInterfacePPAPI(void);
-GL_APICALL const struct PPB_OpenGLES2Query* GL_APIENTRY
-    glGetQueryInterfacePPAPI(void);
-GL_APICALL const struct PPB_OpenGLES2VertexArrayObject* GL_APIENTRY
-    glGetVertexArrayObjectInterfacePPAPI(void);
-GL_APICALL const struct PPB_OpenGLES2DrawBuffers_Dev* GL_APIENTRY
-    glGetDrawBuffersInterfacePPAPI(void);
-
-#ifdef __cplusplus
-}
-#endif  // __cplusplus
-
-#endif  // PPAPI_LIB_GL_GLES2_GL2EXT_PPAPI_H_
-
diff --git a/lib/gl/gles2/gles2.c b/lib/gl/gles2/gles2.c
deleted file mode 100644
index e6268af..0000000
--- a/lib/gl/gles2/gles2.c
+++ /dev/null
@@ -1,1048 +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.
-
-// This file is auto-generated from
-// gpu/command_buffer/build_gles2_cmd_buffer.py
-// It's formatted by clang-format using chromium coding style:
-//    clang-format -i -style=chromium filename
-// DO NOT EDIT!
-
-#ifndef GL_GLEXT_PROTOTYPES
-#define GL_GLEXT_PROTOTYPES
-#endif
-#include <GLES2/gl2.h>
-#include <GLES2/gl2ext.h>
-#include "ppapi/lib/gl/gles2/gl2ext_ppapi.h"
-
-void GL_APIENTRY glActiveTexture(GLenum texture) {
-  glGetInterfacePPAPI()->ActiveTexture(glGetCurrentContextPPAPI(), texture);
-}
-
-void GL_APIENTRY glAttachShader(GLuint program, GLuint shader) {
-  glGetInterfacePPAPI()->AttachShader(glGetCurrentContextPPAPI(), program,
-                                      shader);
-}
-
-void GL_APIENTRY glBindAttribLocation(GLuint program,
-                                      GLuint index,
-                                      const char* name) {
-  glGetInterfacePPAPI()->BindAttribLocation(glGetCurrentContextPPAPI(), program,
-                                            index, name);
-}
-
-void GL_APIENTRY glBindBuffer(GLenum target, GLuint buffer) {
-  glGetInterfacePPAPI()->BindBuffer(glGetCurrentContextPPAPI(), target, buffer);
-}
-
-void GL_APIENTRY glBindFramebuffer(GLenum target, GLuint framebuffer) {
-  glGetInterfacePPAPI()->BindFramebuffer(glGetCurrentContextPPAPI(), target,
-                                         framebuffer);
-}
-
-void GL_APIENTRY glBindRenderbuffer(GLenum target, GLuint renderbuffer) {
-  glGetInterfacePPAPI()->BindRenderbuffer(glGetCurrentContextPPAPI(), target,
-                                          renderbuffer);
-}
-
-void GL_APIENTRY glBindTexture(GLenum target, GLuint texture) {
-  glGetInterfacePPAPI()->BindTexture(glGetCurrentContextPPAPI(), target,
-                                     texture);
-}
-
-void GL_APIENTRY glBlendColor(GLclampf red,
-                              GLclampf green,
-                              GLclampf blue,
-                              GLclampf alpha) {
-  glGetInterfacePPAPI()->BlendColor(glGetCurrentContextPPAPI(), red, green,
-                                    blue, alpha);
-}
-
-void GL_APIENTRY glBlendEquation(GLenum mode) {
-  glGetInterfacePPAPI()->BlendEquation(glGetCurrentContextPPAPI(), mode);
-}
-
-void GL_APIENTRY glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) {
-  glGetInterfacePPAPI()->BlendEquationSeparate(glGetCurrentContextPPAPI(),
-                                               modeRGB, modeAlpha);
-}
-
-void GL_APIENTRY glBlendFunc(GLenum sfactor, GLenum dfactor) {
-  glGetInterfacePPAPI()->BlendFunc(glGetCurrentContextPPAPI(), sfactor,
-                                   dfactor);
-}
-
-void GL_APIENTRY glBlendFuncSeparate(GLenum srcRGB,
-                                     GLenum dstRGB,
-                                     GLenum srcAlpha,
-                                     GLenum dstAlpha) {
-  glGetInterfacePPAPI()->BlendFuncSeparate(glGetCurrentContextPPAPI(), srcRGB,
-                                           dstRGB, srcAlpha, dstAlpha);
-}
-
-void GL_APIENTRY glBufferData(GLenum target,
-                              GLsizeiptr size,
-                              const void* data,
-                              GLenum usage) {
-  glGetInterfacePPAPI()->BufferData(glGetCurrentContextPPAPI(), target, size,
-                                    data, usage);
-}
-
-void GL_APIENTRY glBufferSubData(GLenum target,
-                                 GLintptr offset,
-                                 GLsizeiptr size,
-                                 const void* data) {
-  glGetInterfacePPAPI()->BufferSubData(glGetCurrentContextPPAPI(), target,
-                                       offset, size, data);
-}
-
-GLenum GL_APIENTRY glCheckFramebufferStatus(GLenum target) {
-  return glGetInterfacePPAPI()->CheckFramebufferStatus(
-      glGetCurrentContextPPAPI(), target);
-}
-
-void GL_APIENTRY glClear(GLbitfield mask) {
-  glGetInterfacePPAPI()->Clear(glGetCurrentContextPPAPI(), mask);
-}
-
-void GL_APIENTRY glClearColor(GLclampf red,
-                              GLclampf green,
-                              GLclampf blue,
-                              GLclampf alpha) {
-  glGetInterfacePPAPI()->ClearColor(glGetCurrentContextPPAPI(), red, green,
-                                    blue, alpha);
-}
-
-void GL_APIENTRY glClearDepthf(GLclampf depth) {
-  glGetInterfacePPAPI()->ClearDepthf(glGetCurrentContextPPAPI(), depth);
-}
-
-void GL_APIENTRY glClearStencil(GLint s) {
-  glGetInterfacePPAPI()->ClearStencil(glGetCurrentContextPPAPI(), s);
-}
-
-void GL_APIENTRY glColorMask(GLboolean red,
-                             GLboolean green,
-                             GLboolean blue,
-                             GLboolean alpha) {
-  glGetInterfacePPAPI()->ColorMask(glGetCurrentContextPPAPI(), red, green, blue,
-                                   alpha);
-}
-
-void GL_APIENTRY glCompileShader(GLuint shader) {
-  glGetInterfacePPAPI()->CompileShader(glGetCurrentContextPPAPI(), shader);
-}
-
-void GL_APIENTRY glCompressedTexImage2D(GLenum target,
-                                        GLint level,
-                                        GLenum internalformat,
-                                        GLsizei width,
-                                        GLsizei height,
-                                        GLint border,
-                                        GLsizei imageSize,
-                                        const void* data) {
-  glGetInterfacePPAPI()->CompressedTexImage2D(
-      glGetCurrentContextPPAPI(), target, level, internalformat, width, height,
-      border, imageSize, data);
-}
-
-void GL_APIENTRY glCompressedTexSubImage2D(GLenum target,
-                                           GLint level,
-                                           GLint xoffset,
-                                           GLint yoffset,
-                                           GLsizei width,
-                                           GLsizei height,
-                                           GLenum format,
-                                           GLsizei imageSize,
-                                           const void* data) {
-  glGetInterfacePPAPI()->CompressedTexSubImage2D(
-      glGetCurrentContextPPAPI(), target, level, xoffset, yoffset, width,
-      height, format, imageSize, data);
-}
-
-void GL_APIENTRY glCopyTexImage2D(GLenum target,
-                                  GLint level,
-                                  GLenum internalformat,
-                                  GLint x,
-                                  GLint y,
-                                  GLsizei width,
-                                  GLsizei height,
-                                  GLint border) {
-  glGetInterfacePPAPI()->CopyTexImage2D(glGetCurrentContextPPAPI(), target,
-                                        level, internalformat, x, y, width,
-                                        height, border);
-}
-
-void GL_APIENTRY glCopyTexSubImage2D(GLenum target,
-                                     GLint level,
-                                     GLint xoffset,
-                                     GLint yoffset,
-                                     GLint x,
-                                     GLint y,
-                                     GLsizei width,
-                                     GLsizei height) {
-  glGetInterfacePPAPI()->CopyTexSubImage2D(glGetCurrentContextPPAPI(), target,
-                                           level, xoffset, yoffset, x, y, width,
-                                           height);
-}
-
-GLuint GL_APIENTRY glCreateProgram() {
-  return glGetInterfacePPAPI()->CreateProgram(glGetCurrentContextPPAPI());
-}
-
-GLuint GL_APIENTRY glCreateShader(GLenum type) {
-  return glGetInterfacePPAPI()->CreateShader(glGetCurrentContextPPAPI(), type);
-}
-
-void GL_APIENTRY glCullFace(GLenum mode) {
-  glGetInterfacePPAPI()->CullFace(glGetCurrentContextPPAPI(), mode);
-}
-
-void GL_APIENTRY glDeleteBuffers(GLsizei n, const GLuint* buffers) {
-  glGetInterfacePPAPI()->DeleteBuffers(glGetCurrentContextPPAPI(), n, buffers);
-}
-
-void GL_APIENTRY glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers) {
-  glGetInterfacePPAPI()->DeleteFramebuffers(glGetCurrentContextPPAPI(), n,
-                                            framebuffers);
-}
-
-void GL_APIENTRY glDeleteProgram(GLuint program) {
-  glGetInterfacePPAPI()->DeleteProgram(glGetCurrentContextPPAPI(), program);
-}
-
-void GL_APIENTRY glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers) {
-  glGetInterfacePPAPI()->DeleteRenderbuffers(glGetCurrentContextPPAPI(), n,
-                                             renderbuffers);
-}
-
-void GL_APIENTRY glDeleteShader(GLuint shader) {
-  glGetInterfacePPAPI()->DeleteShader(glGetCurrentContextPPAPI(), shader);
-}
-
-void GL_APIENTRY glDeleteTextures(GLsizei n, const GLuint* textures) {
-  glGetInterfacePPAPI()->DeleteTextures(glGetCurrentContextPPAPI(), n,
-                                        textures);
-}
-
-void GL_APIENTRY glDepthFunc(GLenum func) {
-  glGetInterfacePPAPI()->DepthFunc(glGetCurrentContextPPAPI(), func);
-}
-
-void GL_APIENTRY glDepthMask(GLboolean flag) {
-  glGetInterfacePPAPI()->DepthMask(glGetCurrentContextPPAPI(), flag);
-}
-
-void GL_APIENTRY glDepthRangef(GLclampf zNear, GLclampf zFar) {
-  glGetInterfacePPAPI()->DepthRangef(glGetCurrentContextPPAPI(), zNear, zFar);
-}
-
-void GL_APIENTRY glDetachShader(GLuint program, GLuint shader) {
-  glGetInterfacePPAPI()->DetachShader(glGetCurrentContextPPAPI(), program,
-                                      shader);
-}
-
-void GL_APIENTRY glDisable(GLenum cap) {
-  glGetInterfacePPAPI()->Disable(glGetCurrentContextPPAPI(), cap);
-}
-
-void GL_APIENTRY glDisableVertexAttribArray(GLuint index) {
-  glGetInterfacePPAPI()->DisableVertexAttribArray(glGetCurrentContextPPAPI(),
-                                                  index);
-}
-
-void GL_APIENTRY glDrawArrays(GLenum mode, GLint first, GLsizei count) {
-  glGetInterfacePPAPI()->DrawArrays(glGetCurrentContextPPAPI(), mode, first,
-                                    count);
-}
-
-void GL_APIENTRY glDrawElements(GLenum mode,
-                                GLsizei count,
-                                GLenum type,
-                                const void* indices) {
-  glGetInterfacePPAPI()->DrawElements(glGetCurrentContextPPAPI(), mode, count,
-                                      type, indices);
-}
-
-void GL_APIENTRY glEnable(GLenum cap) {
-  glGetInterfacePPAPI()->Enable(glGetCurrentContextPPAPI(), cap);
-}
-
-void GL_APIENTRY glEnableVertexAttribArray(GLuint index) {
-  glGetInterfacePPAPI()->EnableVertexAttribArray(glGetCurrentContextPPAPI(),
-                                                 index);
-}
-
-void GL_APIENTRY glFinish() {
-  glGetInterfacePPAPI()->Finish(glGetCurrentContextPPAPI());
-}
-
-void GL_APIENTRY glFlush() {
-  glGetInterfacePPAPI()->Flush(glGetCurrentContextPPAPI());
-}
-
-void GL_APIENTRY glFramebufferRenderbuffer(GLenum target,
-                                           GLenum attachment,
-                                           GLenum renderbuffertarget,
-                                           GLuint renderbuffer) {
-  glGetInterfacePPAPI()->FramebufferRenderbuffer(
-      glGetCurrentContextPPAPI(), target, attachment, renderbuffertarget,
-      renderbuffer);
-}
-
-void GL_APIENTRY glFramebufferTexture2D(GLenum target,
-                                        GLenum attachment,
-                                        GLenum textarget,
-                                        GLuint texture,
-                                        GLint level) {
-  glGetInterfacePPAPI()->FramebufferTexture2D(glGetCurrentContextPPAPI(),
-                                              target, attachment, textarget,
-                                              texture, level);
-}
-
-void GL_APIENTRY glFrontFace(GLenum mode) {
-  glGetInterfacePPAPI()->FrontFace(glGetCurrentContextPPAPI(), mode);
-}
-
-void GL_APIENTRY glGenBuffers(GLsizei n, GLuint* buffers) {
-  glGetInterfacePPAPI()->GenBuffers(glGetCurrentContextPPAPI(), n, buffers);
-}
-
-void GL_APIENTRY glGenerateMipmap(GLenum target) {
-  glGetInterfacePPAPI()->GenerateMipmap(glGetCurrentContextPPAPI(), target);
-}
-
-void GL_APIENTRY glGenFramebuffers(GLsizei n, GLuint* framebuffers) {
-  glGetInterfacePPAPI()->GenFramebuffers(glGetCurrentContextPPAPI(), n,
-                                         framebuffers);
-}
-
-void GL_APIENTRY glGenRenderbuffers(GLsizei n, GLuint* renderbuffers) {
-  glGetInterfacePPAPI()->GenRenderbuffers(glGetCurrentContextPPAPI(), n,
-                                          renderbuffers);
-}
-
-void GL_APIENTRY glGenTextures(GLsizei n, GLuint* textures) {
-  glGetInterfacePPAPI()->GenTextures(glGetCurrentContextPPAPI(), n, textures);
-}
-
-void GL_APIENTRY glGetActiveAttrib(GLuint program,
-                                   GLuint index,
-                                   GLsizei bufsize,
-                                   GLsizei* length,
-                                   GLint* size,
-                                   GLenum* type,
-                                   char* name) {
-  glGetInterfacePPAPI()->GetActiveAttrib(glGetCurrentContextPPAPI(), program,
-                                         index, bufsize, length, size, type,
-                                         name);
-}
-
-void GL_APIENTRY glGetActiveUniform(GLuint program,
-                                    GLuint index,
-                                    GLsizei bufsize,
-                                    GLsizei* length,
-                                    GLint* size,
-                                    GLenum* type,
-                                    char* name) {
-  glGetInterfacePPAPI()->GetActiveUniform(glGetCurrentContextPPAPI(), program,
-                                          index, bufsize, length, size, type,
-                                          name);
-}
-
-void GL_APIENTRY glGetAttachedShaders(GLuint program,
-                                      GLsizei maxcount,
-                                      GLsizei* count,
-                                      GLuint* shaders) {
-  glGetInterfacePPAPI()->GetAttachedShaders(glGetCurrentContextPPAPI(), program,
-                                            maxcount, count, shaders);
-}
-
-GLint GL_APIENTRY glGetAttribLocation(GLuint program, const char* name) {
-  return glGetInterfacePPAPI()->GetAttribLocation(glGetCurrentContextPPAPI(),
-                                                  program, name);
-}
-
-void GL_APIENTRY glGetBooleanv(GLenum pname, GLboolean* params) {
-  glGetInterfacePPAPI()->GetBooleanv(glGetCurrentContextPPAPI(), pname, params);
-}
-
-void GL_APIENTRY glGetBufferParameteriv(GLenum target,
-                                        GLenum pname,
-                                        GLint* params) {
-  glGetInterfacePPAPI()->GetBufferParameteriv(glGetCurrentContextPPAPI(),
-                                              target, pname, params);
-}
-
-GLenum GL_APIENTRY glGetError() {
-  return glGetInterfacePPAPI()->GetError(glGetCurrentContextPPAPI());
-}
-
-void GL_APIENTRY glGetFloatv(GLenum pname, GLfloat* params) {
-  glGetInterfacePPAPI()->GetFloatv(glGetCurrentContextPPAPI(), pname, params);
-}
-
-void GL_APIENTRY glGetFramebufferAttachmentParameteriv(GLenum target,
-                                                       GLenum attachment,
-                                                       GLenum pname,
-                                                       GLint* params) {
-  glGetInterfacePPAPI()->GetFramebufferAttachmentParameteriv(
-      glGetCurrentContextPPAPI(), target, attachment, pname, params);
-}
-
-void GL_APIENTRY glGetIntegerv(GLenum pname, GLint* params) {
-  glGetInterfacePPAPI()->GetIntegerv(glGetCurrentContextPPAPI(), pname, params);
-}
-
-void GL_APIENTRY glGetProgramiv(GLuint program, GLenum pname, GLint* params) {
-  glGetInterfacePPAPI()->GetProgramiv(glGetCurrentContextPPAPI(), program,
-                                      pname, params);
-}
-
-void GL_APIENTRY glGetProgramInfoLog(GLuint program,
-                                     GLsizei bufsize,
-                                     GLsizei* length,
-                                     char* infolog) {
-  glGetInterfacePPAPI()->GetProgramInfoLog(glGetCurrentContextPPAPI(), program,
-                                           bufsize, length, infolog);
-}
-
-void GL_APIENTRY glGetRenderbufferParameteriv(GLenum target,
-                                              GLenum pname,
-                                              GLint* params) {
-  glGetInterfacePPAPI()->GetRenderbufferParameteriv(glGetCurrentContextPPAPI(),
-                                                    target, pname, params);
-}
-
-void GL_APIENTRY glGetShaderiv(GLuint shader, GLenum pname, GLint* params) {
-  glGetInterfacePPAPI()->GetShaderiv(glGetCurrentContextPPAPI(), shader, pname,
-                                     params);
-}
-
-void GL_APIENTRY glGetShaderInfoLog(GLuint shader,
-                                    GLsizei bufsize,
-                                    GLsizei* length,
-                                    char* infolog) {
-  glGetInterfacePPAPI()->GetShaderInfoLog(glGetCurrentContextPPAPI(), shader,
-                                          bufsize, length, infolog);
-}
-
-void GL_APIENTRY glGetShaderPrecisionFormat(GLenum shadertype,
-                                            GLenum precisiontype,
-                                            GLint* range,
-                                            GLint* precision) {
-  glGetInterfacePPAPI()->GetShaderPrecisionFormat(
-      glGetCurrentContextPPAPI(), shadertype, precisiontype, range, precision);
-}
-
-void GL_APIENTRY glGetShaderSource(GLuint shader,
-                                   GLsizei bufsize,
-                                   GLsizei* length,
-                                   char* source) {
-  glGetInterfacePPAPI()->GetShaderSource(glGetCurrentContextPPAPI(), shader,
-                                         bufsize, length, source);
-}
-
-const GLubyte* GL_APIENTRY glGetString(GLenum name) {
-  return glGetInterfacePPAPI()->GetString(glGetCurrentContextPPAPI(), name);
-}
-
-void GL_APIENTRY glGetTexParameterfv(GLenum target,
-                                     GLenum pname,
-                                     GLfloat* params) {
-  glGetInterfacePPAPI()->GetTexParameterfv(glGetCurrentContextPPAPI(), target,
-                                           pname, params);
-}
-
-void GL_APIENTRY glGetTexParameteriv(GLenum target,
-                                     GLenum pname,
-                                     GLint* params) {
-  glGetInterfacePPAPI()->GetTexParameteriv(glGetCurrentContextPPAPI(), target,
-                                           pname, params);
-}
-
-void GL_APIENTRY glGetUniformfv(GLuint program,
-                                GLint location,
-                                GLfloat* params) {
-  glGetInterfacePPAPI()->GetUniformfv(glGetCurrentContextPPAPI(), program,
-                                      location, params);
-}
-
-void GL_APIENTRY glGetUniformiv(GLuint program, GLint location, GLint* params) {
-  glGetInterfacePPAPI()->GetUniformiv(glGetCurrentContextPPAPI(), program,
-                                      location, params);
-}
-
-GLint GL_APIENTRY glGetUniformLocation(GLuint program, const char* name) {
-  return glGetInterfacePPAPI()->GetUniformLocation(glGetCurrentContextPPAPI(),
-                                                   program, name);
-}
-
-void GL_APIENTRY glGetVertexAttribfv(GLuint index,
-                                     GLenum pname,
-                                     GLfloat* params) {
-  glGetInterfacePPAPI()->GetVertexAttribfv(glGetCurrentContextPPAPI(), index,
-                                           pname, params);
-}
-
-void GL_APIENTRY glGetVertexAttribiv(GLuint index,
-                                     GLenum pname,
-                                     GLint* params) {
-  glGetInterfacePPAPI()->GetVertexAttribiv(glGetCurrentContextPPAPI(), index,
-                                           pname, params);
-}
-
-void GL_APIENTRY glGetVertexAttribPointerv(GLuint index,
-                                           GLenum pname,
-                                           void** pointer) {
-  glGetInterfacePPAPI()->GetVertexAttribPointerv(glGetCurrentContextPPAPI(),
-                                                 index, pname, pointer);
-}
-
-void GL_APIENTRY glHint(GLenum target, GLenum mode) {
-  glGetInterfacePPAPI()->Hint(glGetCurrentContextPPAPI(), target, mode);
-}
-
-GLboolean GL_APIENTRY glIsBuffer(GLuint buffer) {
-  return glGetInterfacePPAPI()->IsBuffer(glGetCurrentContextPPAPI(), buffer);
-}
-
-GLboolean GL_APIENTRY glIsEnabled(GLenum cap) {
-  return glGetInterfacePPAPI()->IsEnabled(glGetCurrentContextPPAPI(), cap);
-}
-
-GLboolean GL_APIENTRY glIsFramebuffer(GLuint framebuffer) {
-  return glGetInterfacePPAPI()->IsFramebuffer(glGetCurrentContextPPAPI(),
-                                              framebuffer);
-}
-
-GLboolean GL_APIENTRY glIsProgram(GLuint program) {
-  return glGetInterfacePPAPI()->IsProgram(glGetCurrentContextPPAPI(), program);
-}
-
-GLboolean GL_APIENTRY glIsRenderbuffer(GLuint renderbuffer) {
-  return glGetInterfacePPAPI()->IsRenderbuffer(glGetCurrentContextPPAPI(),
-                                               renderbuffer);
-}
-
-GLboolean GL_APIENTRY glIsShader(GLuint shader) {
-  return glGetInterfacePPAPI()->IsShader(glGetCurrentContextPPAPI(), shader);
-}
-
-GLboolean GL_APIENTRY glIsTexture(GLuint texture) {
-  return glGetInterfacePPAPI()->IsTexture(glGetCurrentContextPPAPI(), texture);
-}
-
-void GL_APIENTRY glLineWidth(GLfloat width) {
-  glGetInterfacePPAPI()->LineWidth(glGetCurrentContextPPAPI(), width);
-}
-
-void GL_APIENTRY glLinkProgram(GLuint program) {
-  glGetInterfacePPAPI()->LinkProgram(glGetCurrentContextPPAPI(), program);
-}
-
-void GL_APIENTRY glPixelStorei(GLenum pname, GLint param) {
-  glGetInterfacePPAPI()->PixelStorei(glGetCurrentContextPPAPI(), pname, param);
-}
-
-void GL_APIENTRY glPolygonOffset(GLfloat factor, GLfloat units) {
-  glGetInterfacePPAPI()->PolygonOffset(glGetCurrentContextPPAPI(), factor,
-                                       units);
-}
-
-void GL_APIENTRY glReadPixels(GLint x,
-                              GLint y,
-                              GLsizei width,
-                              GLsizei height,
-                              GLenum format,
-                              GLenum type,
-                              void* pixels) {
-  glGetInterfacePPAPI()->ReadPixels(glGetCurrentContextPPAPI(), x, y, width,
-                                    height, format, type, pixels);
-}
-
-void GL_APIENTRY glReleaseShaderCompiler() {
-  glGetInterfacePPAPI()->ReleaseShaderCompiler(glGetCurrentContextPPAPI());
-}
-
-void GL_APIENTRY glRenderbufferStorage(GLenum target,
-                                       GLenum internalformat,
-                                       GLsizei width,
-                                       GLsizei height) {
-  glGetInterfacePPAPI()->RenderbufferStorage(glGetCurrentContextPPAPI(), target,
-                                             internalformat, width, height);
-}
-
-void GL_APIENTRY glSampleCoverage(GLclampf value, GLboolean invert) {
-  glGetInterfacePPAPI()->SampleCoverage(glGetCurrentContextPPAPI(), value,
-                                        invert);
-}
-
-void GL_APIENTRY glScissor(GLint x, GLint y, GLsizei width, GLsizei height) {
-  glGetInterfacePPAPI()->Scissor(glGetCurrentContextPPAPI(), x, y, width,
-                                 height);
-}
-
-void GL_APIENTRY glShaderBinary(GLsizei n,
-                                const GLuint* shaders,
-                                GLenum binaryformat,
-                                const void* binary,
-                                GLsizei length) {
-  glGetInterfacePPAPI()->ShaderBinary(glGetCurrentContextPPAPI(), n, shaders,
-                                      binaryformat, binary, length);
-}
-
-void GL_APIENTRY glShaderSource(GLuint shader,
-                                GLsizei count,
-                                const char** str,
-                                const GLint* length) {
-  glGetInterfacePPAPI()->ShaderSource(glGetCurrentContextPPAPI(), shader, count,
-                                      str, length);
-}
-
-void GL_APIENTRY glStencilFunc(GLenum func, GLint ref, GLuint mask) {
-  glGetInterfacePPAPI()->StencilFunc(glGetCurrentContextPPAPI(), func, ref,
-                                     mask);
-}
-
-void GL_APIENTRY glStencilFuncSeparate(GLenum face,
-                                       GLenum func,
-                                       GLint ref,
-                                       GLuint mask) {
-  glGetInterfacePPAPI()->StencilFuncSeparate(glGetCurrentContextPPAPI(), face,
-                                             func, ref, mask);
-}
-
-void GL_APIENTRY glStencilMask(GLuint mask) {
-  glGetInterfacePPAPI()->StencilMask(glGetCurrentContextPPAPI(), mask);
-}
-
-void GL_APIENTRY glStencilMaskSeparate(GLenum face, GLuint mask) {
-  glGetInterfacePPAPI()->StencilMaskSeparate(glGetCurrentContextPPAPI(), face,
-                                             mask);
-}
-
-void GL_APIENTRY glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) {
-  glGetInterfacePPAPI()->StencilOp(glGetCurrentContextPPAPI(), fail, zfail,
-                                   zpass);
-}
-
-void GL_APIENTRY glStencilOpSeparate(GLenum face,
-                                     GLenum fail,
-                                     GLenum zfail,
-                                     GLenum zpass) {
-  glGetInterfacePPAPI()->StencilOpSeparate(glGetCurrentContextPPAPI(), face,
-                                           fail, zfail, zpass);
-}
-
-void GL_APIENTRY glTexImage2D(GLenum target,
-                              GLint level,
-                              GLint internalformat,
-                              GLsizei width,
-                              GLsizei height,
-                              GLint border,
-                              GLenum format,
-                              GLenum type,
-                              const void* pixels) {
-  glGetInterfacePPAPI()->TexImage2D(glGetCurrentContextPPAPI(), target, level,
-                                    internalformat, width, height, border,
-                                    format, type, pixels);
-}
-
-void GL_APIENTRY glTexParameterf(GLenum target, GLenum pname, GLfloat param) {
-  glGetInterfacePPAPI()->TexParameterf(glGetCurrentContextPPAPI(), target,
-                                       pname, param);
-}
-
-void GL_APIENTRY glTexParameterfv(GLenum target,
-                                  GLenum pname,
-                                  const GLfloat* params) {
-  glGetInterfacePPAPI()->TexParameterfv(glGetCurrentContextPPAPI(), target,
-                                        pname, params);
-}
-
-void GL_APIENTRY glTexParameteri(GLenum target, GLenum pname, GLint param) {
-  glGetInterfacePPAPI()->TexParameteri(glGetCurrentContextPPAPI(), target,
-                                       pname, param);
-}
-
-void GL_APIENTRY glTexParameteriv(GLenum target,
-                                  GLenum pname,
-                                  const GLint* params) {
-  glGetInterfacePPAPI()->TexParameteriv(glGetCurrentContextPPAPI(), target,
-                                        pname, params);
-}
-
-void GL_APIENTRY glTexSubImage2D(GLenum target,
-                                 GLint level,
-                                 GLint xoffset,
-                                 GLint yoffset,
-                                 GLsizei width,
-                                 GLsizei height,
-                                 GLenum format,
-                                 GLenum type,
-                                 const void* pixels) {
-  glGetInterfacePPAPI()->TexSubImage2D(glGetCurrentContextPPAPI(), target,
-                                       level, xoffset, yoffset, width, height,
-                                       format, type, pixels);
-}
-
-void GL_APIENTRY glUniform1f(GLint location, GLfloat x) {
-  glGetInterfacePPAPI()->Uniform1f(glGetCurrentContextPPAPI(), location, x);
-}
-
-void GL_APIENTRY glUniform1fv(GLint location, GLsizei count, const GLfloat* v) {
-  glGetInterfacePPAPI()->Uniform1fv(glGetCurrentContextPPAPI(), location, count,
-                                    v);
-}
-
-void GL_APIENTRY glUniform1i(GLint location, GLint x) {
-  glGetInterfacePPAPI()->Uniform1i(glGetCurrentContextPPAPI(), location, x);
-}
-
-void GL_APIENTRY glUniform1iv(GLint location, GLsizei count, const GLint* v) {
-  glGetInterfacePPAPI()->Uniform1iv(glGetCurrentContextPPAPI(), location, count,
-                                    v);
-}
-
-void GL_APIENTRY glUniform2f(GLint location, GLfloat x, GLfloat y) {
-  glGetInterfacePPAPI()->Uniform2f(glGetCurrentContextPPAPI(), location, x, y);
-}
-
-void GL_APIENTRY glUniform2fv(GLint location, GLsizei count, const GLfloat* v) {
-  glGetInterfacePPAPI()->Uniform2fv(glGetCurrentContextPPAPI(), location, count,
-                                    v);
-}
-
-void GL_APIENTRY glUniform2i(GLint location, GLint x, GLint y) {
-  glGetInterfacePPAPI()->Uniform2i(glGetCurrentContextPPAPI(), location, x, y);
-}
-
-void GL_APIENTRY glUniform2iv(GLint location, GLsizei count, const GLint* v) {
-  glGetInterfacePPAPI()->Uniform2iv(glGetCurrentContextPPAPI(), location, count,
-                                    v);
-}
-
-void GL_APIENTRY glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z) {
-  glGetInterfacePPAPI()->Uniform3f(glGetCurrentContextPPAPI(), location, x, y,
-                                   z);
-}
-
-void GL_APIENTRY glUniform3fv(GLint location, GLsizei count, const GLfloat* v) {
-  glGetInterfacePPAPI()->Uniform3fv(glGetCurrentContextPPAPI(), location, count,
-                                    v);
-}
-
-void GL_APIENTRY glUniform3i(GLint location, GLint x, GLint y, GLint z) {
-  glGetInterfacePPAPI()->Uniform3i(glGetCurrentContextPPAPI(), location, x, y,
-                                   z);
-}
-
-void GL_APIENTRY glUniform3iv(GLint location, GLsizei count, const GLint* v) {
-  glGetInterfacePPAPI()->Uniform3iv(glGetCurrentContextPPAPI(), location, count,
-                                    v);
-}
-
-void GL_APIENTRY
-glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
-  glGetInterfacePPAPI()->Uniform4f(glGetCurrentContextPPAPI(), location, x, y,
-                                   z, w);
-}
-
-void GL_APIENTRY glUniform4fv(GLint location, GLsizei count, const GLfloat* v) {
-  glGetInterfacePPAPI()->Uniform4fv(glGetCurrentContextPPAPI(), location, count,
-                                    v);
-}
-
-void GL_APIENTRY
-glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w) {
-  glGetInterfacePPAPI()->Uniform4i(glGetCurrentContextPPAPI(), location, x, y,
-                                   z, w);
-}
-
-void GL_APIENTRY glUniform4iv(GLint location, GLsizei count, const GLint* v) {
-  glGetInterfacePPAPI()->Uniform4iv(glGetCurrentContextPPAPI(), location, count,
-                                    v);
-}
-
-void GL_APIENTRY glUniformMatrix2fv(GLint location,
-                                    GLsizei count,
-                                    GLboolean transpose,
-                                    const GLfloat* value) {
-  glGetInterfacePPAPI()->UniformMatrix2fv(glGetCurrentContextPPAPI(), location,
-                                          count, transpose, value);
-}
-
-void GL_APIENTRY glUniformMatrix3fv(GLint location,
-                                    GLsizei count,
-                                    GLboolean transpose,
-                                    const GLfloat* value) {
-  glGetInterfacePPAPI()->UniformMatrix3fv(glGetCurrentContextPPAPI(), location,
-                                          count, transpose, value);
-}
-
-void GL_APIENTRY glUniformMatrix4fv(GLint location,
-                                    GLsizei count,
-                                    GLboolean transpose,
-                                    const GLfloat* value) {
-  glGetInterfacePPAPI()->UniformMatrix4fv(glGetCurrentContextPPAPI(), location,
-                                          count, transpose, value);
-}
-
-void GL_APIENTRY glUseProgram(GLuint program) {
-  glGetInterfacePPAPI()->UseProgram(glGetCurrentContextPPAPI(), program);
-}
-
-void GL_APIENTRY glValidateProgram(GLuint program) {
-  glGetInterfacePPAPI()->ValidateProgram(glGetCurrentContextPPAPI(), program);
-}
-
-void GL_APIENTRY glVertexAttrib1f(GLuint indx, GLfloat x) {
-  glGetInterfacePPAPI()->VertexAttrib1f(glGetCurrentContextPPAPI(), indx, x);
-}
-
-void GL_APIENTRY glVertexAttrib1fv(GLuint indx, const GLfloat* values) {
-  glGetInterfacePPAPI()->VertexAttrib1fv(glGetCurrentContextPPAPI(), indx,
-                                         values);
-}
-
-void GL_APIENTRY glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) {
-  glGetInterfacePPAPI()->VertexAttrib2f(glGetCurrentContextPPAPI(), indx, x, y);
-}
-
-void GL_APIENTRY glVertexAttrib2fv(GLuint indx, const GLfloat* values) {
-  glGetInterfacePPAPI()->VertexAttrib2fv(glGetCurrentContextPPAPI(), indx,
-                                         values);
-}
-
-void GL_APIENTRY glVertexAttrib3f(GLuint indx,
-                                  GLfloat x,
-                                  GLfloat y,
-                                  GLfloat z) {
-  glGetInterfacePPAPI()->VertexAttrib3f(glGetCurrentContextPPAPI(), indx, x, y,
-                                        z);
-}
-
-void GL_APIENTRY glVertexAttrib3fv(GLuint indx, const GLfloat* values) {
-  glGetInterfacePPAPI()->VertexAttrib3fv(glGetCurrentContextPPAPI(), indx,
-                                         values);
-}
-
-void GL_APIENTRY
-glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
-  glGetInterfacePPAPI()->VertexAttrib4f(glGetCurrentContextPPAPI(), indx, x, y,
-                                        z, w);
-}
-
-void GL_APIENTRY glVertexAttrib4fv(GLuint indx, const GLfloat* values) {
-  glGetInterfacePPAPI()->VertexAttrib4fv(glGetCurrentContextPPAPI(), indx,
-                                         values);
-}
-
-void GL_APIENTRY glVertexAttribPointer(GLuint indx,
-                                       GLint size,
-                                       GLenum type,
-                                       GLboolean normalized,
-                                       GLsizei stride,
-                                       const void* ptr) {
-  glGetInterfacePPAPI()->VertexAttribPointer(
-      glGetCurrentContextPPAPI(), indx, size, type, normalized, stride, ptr);
-}
-
-void GL_APIENTRY glViewport(GLint x, GLint y, GLsizei width, GLsizei height) {
-  glGetInterfacePPAPI()->Viewport(glGetCurrentContextPPAPI(), x, y, width,
-                                  height);
-}
-
-void GL_APIENTRY glBlitFramebufferEXT(GLint srcX0,
-                                      GLint srcY0,
-                                      GLint srcX1,
-                                      GLint srcY1,
-                                      GLint dstX0,
-                                      GLint dstY0,
-                                      GLint dstX1,
-                                      GLint dstY1,
-                                      GLbitfield mask,
-                                      GLenum filter) {
-  const struct PPB_OpenGLES2FramebufferBlit* ext =
-      glGetFramebufferBlitInterfacePPAPI();
-  if (ext)
-    ext->BlitFramebufferEXT(glGetCurrentContextPPAPI(), srcX0, srcY0, srcX1,
-                            srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
-}
-
-void GL_APIENTRY glRenderbufferStorageMultisampleEXT(GLenum target,
-                                                     GLsizei samples,
-                                                     GLenum internalformat,
-                                                     GLsizei width,
-                                                     GLsizei height) {
-  const struct PPB_OpenGLES2FramebufferMultisample* ext =
-      glGetFramebufferMultisampleInterfacePPAPI();
-  if (ext)
-    ext->RenderbufferStorageMultisampleEXT(glGetCurrentContextPPAPI(), target,
-                                           samples, internalformat, width,
-                                           height);
-}
-
-void GL_APIENTRY glGenQueriesEXT(GLsizei n, GLuint* queries) {
-  const struct PPB_OpenGLES2Query* ext = glGetQueryInterfacePPAPI();
-  if (ext)
-    ext->GenQueriesEXT(glGetCurrentContextPPAPI(), n, queries);
-}
-
-void GL_APIENTRY glDeleteQueriesEXT(GLsizei n, const GLuint* queries) {
-  const struct PPB_OpenGLES2Query* ext = glGetQueryInterfacePPAPI();
-  if (ext)
-    ext->DeleteQueriesEXT(glGetCurrentContextPPAPI(), n, queries);
-}
-
-GLboolean GL_APIENTRY glIsQueryEXT(GLuint id) {
-  const struct PPB_OpenGLES2Query* ext = glGetQueryInterfacePPAPI();
-  if (ext)
-    return ext->IsQueryEXT(glGetCurrentContextPPAPI(), id);
-  return 0;
-}
-
-void GL_APIENTRY glBeginQueryEXT(GLenum target, GLuint id) {
-  const struct PPB_OpenGLES2Query* ext = glGetQueryInterfacePPAPI();
-  if (ext)
-    ext->BeginQueryEXT(glGetCurrentContextPPAPI(), target, id);
-}
-
-void GL_APIENTRY glEndQueryEXT(GLenum target) {
-  const struct PPB_OpenGLES2Query* ext = glGetQueryInterfacePPAPI();
-  if (ext)
-    ext->EndQueryEXT(glGetCurrentContextPPAPI(), target);
-}
-
-void GL_APIENTRY glGetQueryivEXT(GLenum target, GLenum pname, GLint* params) {
-  const struct PPB_OpenGLES2Query* ext = glGetQueryInterfacePPAPI();
-  if (ext)
-    ext->GetQueryivEXT(glGetCurrentContextPPAPI(), target, pname, params);
-}
-
-void GL_APIENTRY glGetQueryObjectuivEXT(GLuint id,
-                                        GLenum pname,
-                                        GLuint* params) {
-  const struct PPB_OpenGLES2Query* ext = glGetQueryInterfacePPAPI();
-  if (ext)
-    ext->GetQueryObjectuivEXT(glGetCurrentContextPPAPI(), id, pname, params);
-}
-
-void GL_APIENTRY glGenVertexArraysOES(GLsizei n, GLuint* arrays) {
-  const struct PPB_OpenGLES2VertexArrayObject* ext =
-      glGetVertexArrayObjectInterfacePPAPI();
-  if (ext)
-    ext->GenVertexArraysOES(glGetCurrentContextPPAPI(), n, arrays);
-}
-
-void GL_APIENTRY glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays) {
-  const struct PPB_OpenGLES2VertexArrayObject* ext =
-      glGetVertexArrayObjectInterfacePPAPI();
-  if (ext)
-    ext->DeleteVertexArraysOES(glGetCurrentContextPPAPI(), n, arrays);
-}
-
-GLboolean GL_APIENTRY glIsVertexArrayOES(GLuint array) {
-  const struct PPB_OpenGLES2VertexArrayObject* ext =
-      glGetVertexArrayObjectInterfacePPAPI();
-  if (ext)
-    return ext->IsVertexArrayOES(glGetCurrentContextPPAPI(), array);
-  return 0;
-}
-
-void GL_APIENTRY glBindVertexArrayOES(GLuint array) {
-  const struct PPB_OpenGLES2VertexArrayObject* ext =
-      glGetVertexArrayObjectInterfacePPAPI();
-  if (ext)
-    ext->BindVertexArrayOES(glGetCurrentContextPPAPI(), array);
-}
-
-GLboolean GL_APIENTRY glEnableFeatureCHROMIUM(const char* feature) {
-  const struct PPB_OpenGLES2ChromiumEnableFeature* ext =
-      glGetChromiumEnableFeatureInterfacePPAPI();
-  if (ext)
-    return ext->EnableFeatureCHROMIUM(glGetCurrentContextPPAPI(), feature);
-  return 0;
-}
-
-void* GL_APIENTRY glMapBufferSubDataCHROMIUM(GLuint target,
-                                             GLintptr offset,
-                                             GLsizeiptr size,
-                                             GLenum access) {
-  const struct PPB_OpenGLES2ChromiumMapSub* ext =
-      glGetChromiumMapSubInterfacePPAPI();
-  if (ext)
-    return ext->MapBufferSubDataCHROMIUM(glGetCurrentContextPPAPI(), target,
-                                         offset, size, access);
-  return 0;
-}
-
-void GL_APIENTRY glUnmapBufferSubDataCHROMIUM(const void* mem) {
-  const struct PPB_OpenGLES2ChromiumMapSub* ext =
-      glGetChromiumMapSubInterfacePPAPI();
-  if (ext)
-    ext->UnmapBufferSubDataCHROMIUM(glGetCurrentContextPPAPI(), mem);
-}
-
-void* GL_APIENTRY glMapTexSubImage2DCHROMIUM(GLenum target,
-                                             GLint level,
-                                             GLint xoffset,
-                                             GLint yoffset,
-                                             GLsizei width,
-                                             GLsizei height,
-                                             GLenum format,
-                                             GLenum type,
-                                             GLenum access) {
-  const struct PPB_OpenGLES2ChromiumMapSub* ext =
-      glGetChromiumMapSubInterfacePPAPI();
-  if (ext)
-    return ext->MapTexSubImage2DCHROMIUM(glGetCurrentContextPPAPI(), target,
-                                         level, xoffset, yoffset, width, height,
-                                         format, type, access);
-  return 0;
-}
-
-void GL_APIENTRY glUnmapTexSubImage2DCHROMIUM(const void* mem) {
-  const struct PPB_OpenGLES2ChromiumMapSub* ext =
-      glGetChromiumMapSubInterfacePPAPI();
-  if (ext)
-    ext->UnmapTexSubImage2DCHROMIUM(glGetCurrentContextPPAPI(), mem);
-}
-
-void GL_APIENTRY glDrawArraysInstancedANGLE(GLenum mode,
-                                            GLint first,
-                                            GLsizei count,
-                                            GLsizei primcount) {
-  const struct PPB_OpenGLES2InstancedArrays* ext =
-      glGetInstancedArraysInterfacePPAPI();
-  if (ext)
-    ext->DrawArraysInstancedANGLE(glGetCurrentContextPPAPI(), mode, first,
-                                  count, primcount);
-}
-
-void GL_APIENTRY glDrawElementsInstancedANGLE(GLenum mode,
-                                              GLsizei count,
-                                              GLenum type,
-                                              const void* indices,
-                                              GLsizei primcount) {
-  const struct PPB_OpenGLES2InstancedArrays* ext =
-      glGetInstancedArraysInterfacePPAPI();
-  if (ext)
-    ext->DrawElementsInstancedANGLE(glGetCurrentContextPPAPI(), mode, count,
-                                    type, indices, primcount);
-}
-
-void GL_APIENTRY glVertexAttribDivisorANGLE(GLuint index, GLuint divisor) {
-  const struct PPB_OpenGLES2InstancedArrays* ext =
-      glGetInstancedArraysInterfacePPAPI();
-  if (ext)
-    ext->VertexAttribDivisorANGLE(glGetCurrentContextPPAPI(), index, divisor);
-}
-
-void GL_APIENTRY glDrawBuffersEXT(GLsizei count, const GLenum* bufs) {
-  const struct PPB_OpenGLES2DrawBuffers_Dev* ext =
-      glGetDrawBuffersInterfacePPAPI();
-  if (ext)
-    ext->DrawBuffersEXT(glGetCurrentContextPPAPI(), count, bufs);
-}
diff --git a/lib/gl/include/EGL/egl.h b/lib/gl/include/EGL/egl.h
deleted file mode 100644
index 99ea342..0000000
--- a/lib/gl/include/EGL/egl.h
+++ /dev/null
@@ -1,329 +0,0 @@
-/* -*- mode: c; tab-width: 8; -*- */
-/* vi: set sw=4 ts=8: */
-/* Reference version of egl.h for EGL 1.4.
- * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $
- */
-
-/*
-** Copyright (c) 2007-2009 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-
-#ifndef __egl_h_
-#define __egl_h_
-
-/* All platform-dependent types and macro boilerplate (such as EGLAPI
- * and EGLAPIENTRY) should go in eglplatform.h.
- */
-#include <EGL/eglplatform.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* EGL Types */
-/* EGLint is defined in eglplatform.h */
-typedef unsigned int EGLBoolean;
-typedef unsigned int EGLenum;
-typedef void *EGLConfig;
-typedef void *EGLContext;
-typedef void *EGLDisplay;
-typedef void *EGLSurface;
-typedef void *EGLClientBuffer;
-
-/* EGL Versioning */
-#define EGL_VERSION_1_0			1
-#define EGL_VERSION_1_1			1
-#define EGL_VERSION_1_2			1
-#define EGL_VERSION_1_3			1
-#define EGL_VERSION_1_4			1
-
-/* EGL Enumerants. Bitmasks and other exceptional cases aside, most
- * enums are assigned unique values starting at 0x3000.
- */
-
-/* EGL aliases */
-#define EGL_FALSE			0
-#define EGL_TRUE			1
-
-/* Out-of-band handle values */
-#define EGL_DEFAULT_DISPLAY		((EGLNativeDisplayType)0)
-#define EGL_NO_CONTEXT			((EGLContext)0)
-#define EGL_NO_DISPLAY			((EGLDisplay)0)
-#define EGL_NO_SURFACE			((EGLSurface)0)
-
-/* Out-of-band attribute value */
-#define EGL_DONT_CARE			((EGLint)-1)
-
-/* Errors / GetError return values */
-#define EGL_SUCCESS			0x3000
-#define EGL_NOT_INITIALIZED		0x3001
-#define EGL_BAD_ACCESS			0x3002
-#define EGL_BAD_ALLOC			0x3003
-#define EGL_BAD_ATTRIBUTE		0x3004
-#define EGL_BAD_CONFIG			0x3005
-#define EGL_BAD_CONTEXT			0x3006
-#define EGL_BAD_CURRENT_SURFACE		0x3007
-#define EGL_BAD_DISPLAY			0x3008
-#define EGL_BAD_MATCH			0x3009
-#define EGL_BAD_NATIVE_PIXMAP		0x300A
-#define EGL_BAD_NATIVE_WINDOW		0x300B
-#define EGL_BAD_PARAMETER		0x300C
-#define EGL_BAD_SURFACE			0x300D
-#define EGL_CONTEXT_LOST		0x300E	/* EGL 1.1 - IMG_power_management */
-
-/* Reserved 0x300F-0x301F for additional errors */
-
-/* Config attributes */
-#define EGL_BUFFER_SIZE			0x3020
-#define EGL_ALPHA_SIZE			0x3021
-#define EGL_BLUE_SIZE			0x3022
-#define EGL_GREEN_SIZE			0x3023
-#define EGL_RED_SIZE			0x3024
-#define EGL_DEPTH_SIZE			0x3025
-#define EGL_STENCIL_SIZE		0x3026
-#define EGL_CONFIG_CAVEAT		0x3027
-#define EGL_CONFIG_ID			0x3028
-#define EGL_LEVEL			0x3029
-#define EGL_MAX_PBUFFER_HEIGHT		0x302A
-#define EGL_MAX_PBUFFER_PIXELS		0x302B
-#define EGL_MAX_PBUFFER_WIDTH		0x302C
-#define EGL_NATIVE_RENDERABLE		0x302D
-#define EGL_NATIVE_VISUAL_ID		0x302E
-#define EGL_NATIVE_VISUAL_TYPE		0x302F
-#define EGL_SAMPLES			0x3031
-#define EGL_SAMPLE_BUFFERS		0x3032
-#define EGL_SURFACE_TYPE		0x3033
-#define EGL_TRANSPARENT_TYPE		0x3034
-#define EGL_TRANSPARENT_BLUE_VALUE	0x3035
-#define EGL_TRANSPARENT_GREEN_VALUE	0x3036
-#define EGL_TRANSPARENT_RED_VALUE	0x3037
-#define EGL_NONE			0x3038	/* Attrib list terminator */
-#define EGL_BIND_TO_TEXTURE_RGB		0x3039
-#define EGL_BIND_TO_TEXTURE_RGBA	0x303A
-#define EGL_MIN_SWAP_INTERVAL		0x303B
-#define EGL_MAX_SWAP_INTERVAL		0x303C
-#define EGL_LUMINANCE_SIZE		0x303D
-#define EGL_ALPHA_MASK_SIZE		0x303E
-#define EGL_COLOR_BUFFER_TYPE		0x303F
-#define EGL_RENDERABLE_TYPE		0x3040
-#define EGL_MATCH_NATIVE_PIXMAP		0x3041	/* Pseudo-attribute (not queryable) */
-#define EGL_CONFORMANT			0x3042
-
-/* Reserved 0x3041-0x304F for additional config attributes */
-
-/* Config attribute values */
-#define EGL_SLOW_CONFIG			0x3050	/* EGL_CONFIG_CAVEAT value */
-#define EGL_NON_CONFORMANT_CONFIG	0x3051	/* EGL_CONFIG_CAVEAT value */
-#define EGL_TRANSPARENT_RGB		0x3052	/* EGL_TRANSPARENT_TYPE value */
-#define EGL_RGB_BUFFER			0x308E	/* EGL_COLOR_BUFFER_TYPE value */
-#define EGL_LUMINANCE_BUFFER		0x308F	/* EGL_COLOR_BUFFER_TYPE value */
-
-/* More config attribute values, for EGL_TEXTURE_FORMAT */
-#define EGL_NO_TEXTURE			0x305C
-#define EGL_TEXTURE_RGB			0x305D
-#define EGL_TEXTURE_RGBA		0x305E
-#define EGL_TEXTURE_2D			0x305F
-
-/* Config attribute mask bits */
-#define EGL_PBUFFER_BIT			0x0001	/* EGL_SURFACE_TYPE mask bits */
-#define EGL_PIXMAP_BIT			0x0002	/* EGL_SURFACE_TYPE mask bits */
-#define EGL_WINDOW_BIT			0x0004	/* EGL_SURFACE_TYPE mask bits */
-#define EGL_VG_COLORSPACE_LINEAR_BIT	0x0020	/* EGL_SURFACE_TYPE mask bits */
-#define EGL_VG_ALPHA_FORMAT_PRE_BIT	0x0040	/* EGL_SURFACE_TYPE mask bits */
-#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200	/* EGL_SURFACE_TYPE mask bits */
-#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400	/* EGL_SURFACE_TYPE mask bits */
-
-#define EGL_OPENGL_ES_BIT		0x0001	/* EGL_RENDERABLE_TYPE mask bits */
-#define EGL_OPENVG_BIT			0x0002	/* EGL_RENDERABLE_TYPE mask bits */
-#define EGL_OPENGL_ES2_BIT		0x0004	/* EGL_RENDERABLE_TYPE mask bits */
-#define EGL_OPENGL_BIT			0x0008	/* EGL_RENDERABLE_TYPE mask bits */
-
-/* QueryString targets */
-#define EGL_VENDOR			0x3053
-#define EGL_VERSION			0x3054
-#define EGL_EXTENSIONS			0x3055
-#define EGL_CLIENT_APIS			0x308D
-
-/* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */
-#define EGL_HEIGHT			0x3056
-#define EGL_WIDTH			0x3057
-#define EGL_LARGEST_PBUFFER		0x3058
-#define EGL_TEXTURE_FORMAT		0x3080
-#define EGL_TEXTURE_TARGET		0x3081
-#define EGL_MIPMAP_TEXTURE		0x3082
-#define EGL_MIPMAP_LEVEL		0x3083
-#define EGL_RENDER_BUFFER		0x3086
-#define EGL_VG_COLORSPACE		0x3087
-#define EGL_VG_ALPHA_FORMAT		0x3088
-#define EGL_HORIZONTAL_RESOLUTION	0x3090
-#define EGL_VERTICAL_RESOLUTION		0x3091
-#define EGL_PIXEL_ASPECT_RATIO		0x3092
-#define EGL_SWAP_BEHAVIOR		0x3093
-#define EGL_MULTISAMPLE_RESOLVE		0x3099
-
-/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
-#define EGL_BACK_BUFFER			0x3084
-#define EGL_SINGLE_BUFFER		0x3085
-
-/* OpenVG color spaces */
-#define EGL_VG_COLORSPACE_sRGB		0x3089	/* EGL_VG_COLORSPACE value */
-#define EGL_VG_COLORSPACE_LINEAR	0x308A	/* EGL_VG_COLORSPACE value */
-
-/* OpenVG alpha formats */
-#define EGL_VG_ALPHA_FORMAT_NONPRE	0x308B	/* EGL_ALPHA_FORMAT value */
-#define EGL_VG_ALPHA_FORMAT_PRE		0x308C	/* EGL_ALPHA_FORMAT value */
-
-/* Constant scale factor by which fractional display resolutions &
- * aspect ratio are scaled when queried as integer values.
- */
-#define EGL_DISPLAY_SCALING		10000
-
-/* Unknown display resolution/aspect ratio */
-#define EGL_UNKNOWN			((EGLint)-1)
-
-/* Back buffer swap behaviors */
-#define EGL_BUFFER_PRESERVED		0x3094	/* EGL_SWAP_BEHAVIOR value */
-#define EGL_BUFFER_DESTROYED		0x3095	/* EGL_SWAP_BEHAVIOR value */
-
-/* CreatePbufferFromClientBuffer buffer types */
-#define EGL_OPENVG_IMAGE		0x3096
-
-/* QueryContext targets */
-#define EGL_CONTEXT_CLIENT_TYPE		0x3097
-
-/* CreateContext attributes */
-#define EGL_CONTEXT_CLIENT_VERSION	0x3098
-
-/* Multisample resolution behaviors */
-#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A	/* EGL_MULTISAMPLE_RESOLVE value */
-#define EGL_MULTISAMPLE_RESOLVE_BOX	0x309B	/* EGL_MULTISAMPLE_RESOLVE value */
-
-/* BindAPI/QueryAPI targets */
-#define EGL_OPENGL_ES_API		0x30A0
-#define EGL_OPENVG_API			0x30A1
-#define EGL_OPENGL_API			0x30A2
-
-/* GetCurrentSurface targets */
-#define EGL_DRAW			0x3059
-#define EGL_READ			0x305A
-
-/* WaitNative engines */
-#define EGL_CORE_NATIVE_ENGINE		0x305B
-
-/* EGL 1.2 tokens renamed for consistency in EGL 1.3 */
-#define EGL_COLORSPACE			EGL_VG_COLORSPACE
-#define EGL_ALPHA_FORMAT		EGL_VG_ALPHA_FORMAT
-#define EGL_COLORSPACE_sRGB		EGL_VG_COLORSPACE_sRGB
-#define EGL_COLORSPACE_LINEAR		EGL_VG_COLORSPACE_LINEAR
-#define EGL_ALPHA_FORMAT_NONPRE		EGL_VG_ALPHA_FORMAT_NONPRE
-#define EGL_ALPHA_FORMAT_PRE		EGL_VG_ALPHA_FORMAT_PRE
-
-/* EGL extensions must request enum blocks from the Khronos
- * API Registrar, who maintains the enumerant registry. Submit
- * a bug in Khronos Bugzilla against task "Registry".
- */
-
-
-
-/* EGL Functions */
-
-EGLAPI EGLint EGLAPIENTRY eglGetError(void);
-
-EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id);
-EGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
-EGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy);
-
-EGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
-			 EGLint config_size, EGLint *num_config);
-EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
-			   EGLConfig *configs, EGLint config_size,
-			   EGLint *num_config);
-EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
-			      EGLint attribute, EGLint *value);
-
-EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
-				  EGLNativeWindowType win,
-				  const EGLint *attrib_list);
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
-				   const EGLint *attrib_list);
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
-				  EGLNativePixmapType pixmap,
-				  const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
-EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
-			   EGLint attribute, EGLint *value);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api);
-EGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void);
-
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(
-	      EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
-	      EGLConfig config, const EGLint *attrib_list);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
-			    EGLint attribute, EGLint value);
-EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
-EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
-
-
-EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
-
-
-EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config,
-			    EGLContext share_context,
-			    const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
-EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
-			  EGLSurface read, EGLContext ctx);
-
-EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void);
-EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw);
-EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void);
-EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx,
-			   EGLint attribute, EGLint *value);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void);
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine);
-EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
-EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
-			  EGLNativePixmapType target);
-
-/* This is a generic function pointer type, whose name indicates it must
- * be cast to the proper type *and calling convention* before use.
- */
-typedef void (*__eglMustCastToProperFunctionPointerType)(void);
-
-/* Now, define eglGetProcAddress using the generic function ptr. type */
-EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY
-       eglGetProcAddress(const char *procname);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __egl_h_ */
diff --git a/lib/gl/include/EGL/eglext.h b/lib/gl/include/EGL/eglext.h
deleted file mode 100644
index 62ffc9e..0000000
--- a/lib/gl/include/EGL/eglext.h
+++ /dev/null
@@ -1,300 +0,0 @@
-#ifndef __eglext_h_
-#define __eglext_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-** Copyright (c) 2007-2010 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-
-#include <EGL/eglplatform.h>
-
-/*************************************************************/
-
-/* Header file version number */
-/* Current version at http://www.khronos.org/registry/egl/ */
-/* $Revision: 13164 $ on $Date: 2010-12-09 01:26:57 -0800 (Thu, 09 Dec 2010) $ */
-#define EGL_EGLEXT_VERSION 9
-
-#ifndef EGL_KHR_config_attribs
-#define EGL_KHR_config_attribs 1
-#define EGL_CONFORMANT_KHR			0x3042	/* EGLConfig attribute */
-#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR	0x0020	/* EGL_SURFACE_TYPE bitfield */
-#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR		0x0040	/* EGL_SURFACE_TYPE bitfield */
-#endif
-
-#ifndef EGL_KHR_lock_surface
-#define EGL_KHR_lock_surface 1
-#define EGL_READ_SURFACE_BIT_KHR		0x0001	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
-#define EGL_WRITE_SURFACE_BIT_KHR		0x0002	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
-#define EGL_LOCK_SURFACE_BIT_KHR		0x0080	/* EGL_SURFACE_TYPE bitfield */
-#define EGL_OPTIMAL_FORMAT_BIT_KHR		0x0100	/* EGL_SURFACE_TYPE bitfield */
-#define EGL_MATCH_FORMAT_KHR			0x3043	/* EGLConfig attribute */
-#define EGL_FORMAT_RGB_565_EXACT_KHR		0x30C0	/* EGL_MATCH_FORMAT_KHR value */
-#define EGL_FORMAT_RGB_565_KHR			0x30C1	/* EGL_MATCH_FORMAT_KHR value */
-#define EGL_FORMAT_RGBA_8888_EXACT_KHR		0x30C2	/* EGL_MATCH_FORMAT_KHR value */
-#define EGL_FORMAT_RGBA_8888_KHR		0x30C3	/* EGL_MATCH_FORMAT_KHR value */
-#define EGL_MAP_PRESERVE_PIXELS_KHR		0x30C4	/* eglLockSurfaceKHR attribute */
-#define EGL_LOCK_USAGE_HINT_KHR			0x30C5	/* eglLockSurfaceKHR attribute */
-#define EGL_BITMAP_POINTER_KHR			0x30C6	/* eglQuerySurface attribute */
-#define EGL_BITMAP_PITCH_KHR			0x30C7	/* eglQuerySurface attribute */
-#define EGL_BITMAP_ORIGIN_KHR			0x30C8	/* eglQuerySurface attribute */
-#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR		0x30C9	/* eglQuerySurface attribute */
-#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR	0x30CA	/* eglQuerySurface attribute */
-#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR	0x30CB	/* eglQuerySurface attribute */
-#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR	0x30CC	/* eglQuerySurface attribute */
-#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR	0x30CD	/* eglQuerySurface attribute */
-#define EGL_LOWER_LEFT_KHR			0x30CE	/* EGL_BITMAP_ORIGIN_KHR value */
-#define EGL_UPPER_LEFT_KHR			0x30CF	/* EGL_BITMAP_ORIGIN_KHR value */
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay display, EGLSurface surface);
-#endif /* EGL_EGLEXT_PROTOTYPES */
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface);
-#endif
-
-#ifndef EGL_KHR_image
-#define EGL_KHR_image 1
-#define EGL_NATIVE_PIXMAP_KHR			0x30B0	/* eglCreateImageKHR target */
-typedef void *EGLImageKHR;
-#define EGL_NO_IMAGE_KHR			((EGLImageKHR)0)
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
-#endif /* EGL_EGLEXT_PROTOTYPES */
-typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
-#endif
-
-#ifndef EGL_KHR_vg_parent_image
-#define EGL_KHR_vg_parent_image 1
-#define EGL_VG_PARENT_IMAGE_KHR			0x30BA	/* eglCreateImageKHR target */
-#endif
-
-#ifndef EGL_KHR_gl_texture_2D_image
-#define EGL_KHR_gl_texture_2D_image 1
-#define EGL_GL_TEXTURE_2D_KHR			0x30B1	/* eglCreateImageKHR target */
-#define EGL_GL_TEXTURE_LEVEL_KHR		0x30BC	/* eglCreateImageKHR attribute */
-#endif
-
-#ifndef EGL_KHR_gl_texture_cubemap_image
-#define EGL_KHR_gl_texture_cubemap_image 1
-#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR	0x30B3	/* eglCreateImageKHR target */
-#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR	0x30B4	/* eglCreateImageKHR target */
-#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR	0x30B5	/* eglCreateImageKHR target */
-#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR	0x30B6	/* eglCreateImageKHR target */
-#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR	0x30B7	/* eglCreateImageKHR target */
-#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR	0x30B8	/* eglCreateImageKHR target */
-#endif
-
-#ifndef EGL_KHR_gl_texture_3D_image
-#define EGL_KHR_gl_texture_3D_image 1
-#define EGL_GL_TEXTURE_3D_KHR			0x30B2	/* eglCreateImageKHR target */
-#define EGL_GL_TEXTURE_ZOFFSET_KHR		0x30BD	/* eglCreateImageKHR attribute */
-#endif
-
-#ifndef EGL_KHR_gl_renderbuffer_image
-#define EGL_KHR_gl_renderbuffer_image 1
-#define EGL_GL_RENDERBUFFER_KHR			0x30B9	/* eglCreateImageKHR target */
-#endif
-
-#if KHRONOS_SUPPORT_INT64   /* EGLTimeKHR requires 64-bit uint support */
-#ifndef EGL_KHR_reusable_sync
-#define EGL_KHR_reusable_sync 1
-
-typedef void* EGLSyncKHR;
-typedef khronos_utime_nanoseconds_t EGLTimeKHR;
-
-#define EGL_SYNC_STATUS_KHR			0x30F1
-#define EGL_SIGNALED_KHR			0x30F2
-#define EGL_UNSIGNALED_KHR			0x30F3
-#define EGL_TIMEOUT_EXPIRED_KHR			0x30F5
-#define EGL_CONDITION_SATISFIED_KHR		0x30F6
-#define EGL_SYNC_TYPE_KHR			0x30F7
-#define EGL_SYNC_REUSABLE_KHR			0x30FA
-#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR		0x0001	/* eglClientWaitSyncKHR <flags> bitfield */
-#define EGL_FOREVER_KHR				0xFFFFFFFFFFFFFFFFull
-#define EGL_NO_SYNC_KHR				((EGLSyncKHR)0)
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync);
-EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
-EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
-EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
-#endif /* EGL_EGLEXT_PROTOTYPES */
-typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
-typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
-#endif
-#endif
-
-#ifndef EGL_KHR_image_base
-#define EGL_KHR_image_base 1
-/* Most interfaces defined by EGL_KHR_image_pixmap above */
-#define EGL_IMAGE_PRESERVED_KHR			0x30D2	/* eglCreateImageKHR attribute */
-#endif
-
-#ifndef EGL_KHR_image_pixmap
-#define EGL_KHR_image_pixmap 1
-/* Interfaces defined by EGL_KHR_image above */
-#endif
-
-#ifndef EGL_IMG_context_priority
-#define EGL_IMG_context_priority 1
-#define EGL_CONTEXT_PRIORITY_LEVEL_IMG		0x3100
-#define EGL_CONTEXT_PRIORITY_HIGH_IMG		0x3101
-#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG		0x3102
-#define EGL_CONTEXT_PRIORITY_LOW_IMG		0x3103
-#endif
-
-#ifndef EGL_KHR_lock_surface2
-#define EGL_KHR_lock_surface2 1
-#define EGL_BITMAP_PIXEL_SIZE_KHR		0x3110
-#endif
-
-#ifndef EGL_NV_coverage_sample
-#define EGL_NV_coverage_sample 1
-#define EGL_COVERAGE_BUFFERS_NV 0x30E0
-#define EGL_COVERAGE_SAMPLES_NV 0x30E1
-#endif
-
-#ifndef EGL_NV_depth_nonlinear
-#define EGL_NV_depth_nonlinear 1
-#define EGL_DEPTH_ENCODING_NV 0x30E2
-#define EGL_DEPTH_ENCODING_NONE_NV 0
-#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
-#endif
-
-#if KHRONOS_SUPPORT_INT64   /* EGLTimeNV requires 64-bit uint support */
-#ifndef EGL_NV_sync
-#define EGL_NV_sync 1
-#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV	0x30E6
-#define EGL_SYNC_STATUS_NV			0x30E7
-#define EGL_SIGNALED_NV				0x30E8
-#define EGL_UNSIGNALED_NV			0x30E9
-#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV		0x0001
-#define EGL_FOREVER_NV				0xFFFFFFFFFFFFFFFFull
-#define EGL_ALREADY_SIGNALED_NV			0x30EA
-#define EGL_TIMEOUT_EXPIRED_NV			0x30EB
-#define EGL_CONDITION_SATISFIED_NV		0x30EC
-#define EGL_SYNC_TYPE_NV			0x30ED
-#define EGL_SYNC_CONDITION_NV			0x30EE
-#define EGL_SYNC_FENCE_NV			0x30EF
-#define EGL_NO_SYNC_NV				((EGLSyncNV)0)
-typedef void* EGLSyncNV;
-typedef khronos_utime_nanoseconds_t EGLTimeNV;
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLSyncNV eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
-EGLBoolean eglDestroySyncNV (EGLSyncNV sync);
-EGLBoolean eglFenceNV (EGLSyncNV sync);
-EGLint eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
-EGLBoolean eglSignalSyncNV (EGLSyncNV sync, EGLenum mode);
-EGLBoolean eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value);
-#endif /* EGL_EGLEXT_PROTOTYPES */
-typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync);
-typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value);
-#endif
-#endif
-
-#if KHRONOS_SUPPORT_INT64   /* Dependent on EGL_KHR_reusable_sync which requires 64-bit uint support */
-#ifndef EGL_KHR_fence_sync
-#define EGL_KHR_fence_sync 1
-/* Reuses most tokens and entry points from EGL_KHR_reusable_sync */
-#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR	0x30F0
-#define EGL_SYNC_CONDITION_KHR			0x30F8
-#define EGL_SYNC_FENCE_KHR			0x30F9
-#endif
-#endif
-
-#ifndef EGL_HI_clientpixmap
-#define EGL_HI_clientpixmap 1
-
-/* Surface Attribute */
-#define EGL_CLIENT_PIXMAP_POINTER_HI		0x8F74
-/*
- * Structure representing a client pixmap
- * (pixmap's data is in client-space memory).
- */
-struct EGLClientPixmapHI
-{
-	void*		pData;
-	EGLint		iWidth;
-	EGLint		iHeight;
-	EGLint		iStride;
-};
-
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI(EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
-#endif /* EGL_EGLEXT_PROTOTYPES */
-typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
-#endif	/* EGL_HI_clientpixmap */
-
-#ifndef EGL_HI_colorformats
-#define EGL_HI_colorformats 1
-/* Config Attribute */
-#define EGL_COLOR_FORMAT_HI			0x8F70
-/* Color Formats */
-#define EGL_COLOR_RGB_HI			0x8F71
-#define EGL_COLOR_RGBA_HI			0x8F72
-#define EGL_COLOR_ARGB_HI			0x8F73
-#endif /* EGL_HI_colorformats */
-
-#ifndef EGL_MESA_drm_image
-#define EGL_MESA_drm_image 1
-#define EGL_DRM_BUFFER_FORMAT_MESA		0x31D0	    /* CreateDRMImageMESA attribute */
-#define EGL_DRM_BUFFER_USE_MESA			0x31D1	    /* CreateDRMImageMESA attribute */
-#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA	0x31D2	    /* EGL_IMAGE_FORMAT_MESA attribute value */
-#define EGL_DRM_BUFFER_MESA			0x31D3	    /* eglCreateImageKHR target */
-#define EGL_DRM_BUFFER_STRIDE_MESA		0x31D4
-#define EGL_DRM_BUFFER_USE_SCANOUT_MESA		0x00000001  /* EGL_DRM_BUFFER_USE_MESA bits */
-#define EGL_DRM_BUFFER_USE_SHARE_MESA		0x00000002  /* EGL_DRM_BUFFER_USE_MESA bits */
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
-#endif /* EGL_EGLEXT_PROTOTYPES */
-typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
-#endif
-
-#ifndef EGL_NV_post_sub_buffer
-#define EGL_NV_post_sub_buffer 1
-#define EGL_POST_SUB_BUFFER_SUPPORTED_NV	0x30BE
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
-#endif /* EGL_EGLEXT_PROTOTYPES */
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/lib/gl/include/EGL/eglplatform.h b/lib/gl/include/EGL/eglplatform.h
deleted file mode 100644
index a80755f..0000000
--- a/lib/gl/include/EGL/eglplatform.h
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef __eglplatform_h_
-#define __eglplatform_h_
-
-/*
-** Copyright (c) 2007-2009 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-
-/* Platform-specific types and definitions for egl.h
- * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $
- *
- * Adopters may modify khrplatform.h and this file to suit their platform.
- * You are encouraged to submit all modifications to the Khronos group so that
- * they can be included in future versions of this file.  Please submit changes
- * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
- * by filing a bug against product "EGL" component "Registry".
- */
-
-#include <KHR/khrplatform.h>
-
-/* Macros used in EGL function prototype declarations.
- *
- * EGL functions should be prototyped as:
- *
- * EGLAPI return-type EGLAPIENTRY eglFunction(arguments);
- * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments);
- *
- * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h
- */
-
-#ifndef EGLAPI
-#define EGLAPI KHRONOS_APICALL
-#endif
-
-#ifndef EGLAPIENTRY
-#define EGLAPIENTRY  KHRONOS_APIENTRY
-#endif
-#define EGLAPIENTRYP EGLAPIENTRY*
-
-/* The types NativeDisplayType, NativeWindowType, and NativePixmapType
- * are aliases of window-system-dependent types, such as X Display * or
- * Windows Device Context. They must be defined in platform-specific
- * code below. The EGL-prefixed versions of Native*Type are the same
- * types, renamed in EGL 1.3 so all types in the API start with "EGL".
- *
- * Khronos STRONGLY RECOMMENDS that you use the default definitions
- * provided below, since these changes affect both binary and source
- * portability of applications using EGL running on different EGL
- * implementations.
- */
-
-#include "ppapi/c/pp_instance.h"
-
-typedef PP_Instance EGLNativeDisplayType;
-typedef PP_Instance EGLNativeWindowType;
-typedef khronos_int32_t EGLNativePixmapType;  // Not supported.
-
-/* EGL 1.2 types, renamed for consistency in EGL 1.3 */
-typedef EGLNativeDisplayType NativeDisplayType;
-typedef EGLNativePixmapType  NativePixmapType;
-typedef EGLNativeWindowType  NativeWindowType;
-
-
-/* Define EGLint. This must be a signed integral type large enough to contain
- * all legal attribute names and values passed into and out of EGL, whether
- * their type is boolean, bitmask, enumerant (symbolic constant), integer,
- * handle, or other.  While in general a 32-bit integer will suffice, if
- * handles are 64 bit types, then EGLint should be defined as a signed 64-bit
- * integer type.
- */
-typedef khronos_int32_t EGLint;
-
-#endif /* __eglplatform_h */
diff --git a/lib/gl/include/GLES2/gl2.h b/lib/gl/include/GLES2/gl2.h
deleted file mode 100644
index db04b14..0000000
--- a/lib/gl/include/GLES2/gl2.h
+++ /dev/null
@@ -1,789 +0,0 @@
-#ifndef __gl2_h_
-#define __gl2_h_
-
-/* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */
-
-#include <GLES2/gl2platform.h>
-
-/*
- * This document is licensed under the SGI Free Software B License Version
- * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
- */
-
-/*-------------------------------------------------------------------------
- * Data type definitions
- *-----------------------------------------------------------------------*/
-
-typedef void             GLvoid;
-typedef char             GLchar;
-typedef unsigned int     GLenum;
-typedef unsigned char    GLboolean;
-typedef unsigned int     GLbitfield;
-typedef khronos_int8_t   GLbyte;
-typedef short            GLshort;
-typedef int              GLint;
-typedef int              GLsizei;
-typedef khronos_uint8_t  GLubyte;
-typedef unsigned short   GLushort;
-typedef unsigned int     GLuint;
-typedef khronos_float_t  GLfloat;
-typedef khronos_float_t  GLclampf;
-typedef khronos_int32_t  GLfixed;
-
-/* GL types for handling large vertex buffer objects */
-typedef khronos_intptr_t GLintptr;
-typedef khronos_ssize_t  GLsizeiptr;
-
-/* OpenGL ES core versions */
-#define GL_ES_VERSION_2_0                 1
-
-/* ClearBufferMask */
-#define GL_DEPTH_BUFFER_BIT               0x00000100
-#define GL_STENCIL_BUFFER_BIT             0x00000400
-#define GL_COLOR_BUFFER_BIT               0x00004000
-
-/* Boolean */
-#define GL_FALSE                          0
-#define GL_TRUE                           1
-
-/* BeginMode */
-#define GL_POINTS                         0x0000
-#define GL_LINES                          0x0001
-#define GL_LINE_LOOP                      0x0002
-#define GL_LINE_STRIP                     0x0003
-#define GL_TRIANGLES                      0x0004
-#define GL_TRIANGLE_STRIP                 0x0005
-#define GL_TRIANGLE_FAN                   0x0006
-
-/* AlphaFunction (not supported in ES20) */
-/*      GL_NEVER */
-/*      GL_LESS */
-/*      GL_EQUAL */
-/*      GL_LEQUAL */
-/*      GL_GREATER */
-/*      GL_NOTEQUAL */
-/*      GL_GEQUAL */
-/*      GL_ALWAYS */
-
-/* BlendingFactorDest */
-#define GL_ZERO                           0
-#define GL_ONE                            1
-#define GL_SRC_COLOR                      0x0300
-#define GL_ONE_MINUS_SRC_COLOR            0x0301
-#define GL_SRC_ALPHA                      0x0302
-#define GL_ONE_MINUS_SRC_ALPHA            0x0303
-#define GL_DST_ALPHA                      0x0304
-#define GL_ONE_MINUS_DST_ALPHA            0x0305
-
-/* BlendingFactorSrc */
-/*      GL_ZERO */
-/*      GL_ONE */
-#define GL_DST_COLOR                      0x0306
-#define GL_ONE_MINUS_DST_COLOR            0x0307
-#define GL_SRC_ALPHA_SATURATE             0x0308
-/*      GL_SRC_ALPHA */
-/*      GL_ONE_MINUS_SRC_ALPHA */
-/*      GL_DST_ALPHA */
-/*      GL_ONE_MINUS_DST_ALPHA */
-
-/* BlendEquationSeparate */
-#define GL_FUNC_ADD                       0x8006
-#define GL_BLEND_EQUATION                 0x8009
-#define GL_BLEND_EQUATION_RGB             0x8009    /* same as BLEND_EQUATION */
-#define GL_BLEND_EQUATION_ALPHA           0x883D
-
-/* BlendSubtract */
-#define GL_FUNC_SUBTRACT                  0x800A
-#define GL_FUNC_REVERSE_SUBTRACT          0x800B
-
-/* Separate Blend Functions */
-#define GL_BLEND_DST_RGB                  0x80C8
-#define GL_BLEND_SRC_RGB                  0x80C9
-#define GL_BLEND_DST_ALPHA                0x80CA
-#define GL_BLEND_SRC_ALPHA                0x80CB
-#define GL_CONSTANT_COLOR                 0x8001
-#define GL_ONE_MINUS_CONSTANT_COLOR       0x8002
-#define GL_CONSTANT_ALPHA                 0x8003
-#define GL_ONE_MINUS_CONSTANT_ALPHA       0x8004
-#define GL_BLEND_COLOR                    0x8005
-
-/* Buffer Objects */
-#define GL_ARRAY_BUFFER                   0x8892
-#define GL_ELEMENT_ARRAY_BUFFER           0x8893
-#define GL_ARRAY_BUFFER_BINDING           0x8894
-#define GL_ELEMENT_ARRAY_BUFFER_BINDING   0x8895
-
-#define GL_STREAM_DRAW                    0x88E0
-#define GL_STATIC_DRAW                    0x88E4
-#define GL_DYNAMIC_DRAW                   0x88E8
-
-#define GL_BUFFER_SIZE                    0x8764
-#define GL_BUFFER_USAGE                   0x8765
-
-#define GL_CURRENT_VERTEX_ATTRIB          0x8626
-
-/* CullFaceMode */
-#define GL_FRONT                          0x0404
-#define GL_BACK                           0x0405
-#define GL_FRONT_AND_BACK                 0x0408
-
-/* DepthFunction */
-/*      GL_NEVER */
-/*      GL_LESS */
-/*      GL_EQUAL */
-/*      GL_LEQUAL */
-/*      GL_GREATER */
-/*      GL_NOTEQUAL */
-/*      GL_GEQUAL */
-/*      GL_ALWAYS */
-
-/* EnableCap */
-#define GL_TEXTURE_2D                     0x0DE1
-#define GL_CULL_FACE                      0x0B44
-#define GL_BLEND                          0x0BE2
-#define GL_DITHER                         0x0BD0
-#define GL_STENCIL_TEST                   0x0B90
-#define GL_DEPTH_TEST                     0x0B71
-#define GL_SCISSOR_TEST                   0x0C11
-#define GL_POLYGON_OFFSET_FILL            0x8037
-#define GL_SAMPLE_ALPHA_TO_COVERAGE       0x809E
-#define GL_SAMPLE_COVERAGE                0x80A0
-
-/* ErrorCode */
-#define GL_NO_ERROR                       0
-#define GL_INVALID_ENUM                   0x0500
-#define GL_INVALID_VALUE                  0x0501
-#define GL_INVALID_OPERATION              0x0502
-#define GL_OUT_OF_MEMORY                  0x0505
-#define GL_CONTEXT_LOST                   0x300E  // TODO(gman): What value?
-
-/* FrontFaceDirection */
-#define GL_CW                             0x0900
-#define GL_CCW                            0x0901
-
-/* GetPName */
-#define GL_LINE_WIDTH                     0x0B21
-#define GL_ALIASED_POINT_SIZE_RANGE       0x846D
-#define GL_ALIASED_LINE_WIDTH_RANGE       0x846E
-#define GL_CULL_FACE_MODE                 0x0B45
-#define GL_FRONT_FACE                     0x0B46
-#define GL_DEPTH_RANGE                    0x0B70
-#define GL_DEPTH_WRITEMASK                0x0B72
-#define GL_DEPTH_CLEAR_VALUE              0x0B73
-#define GL_DEPTH_FUNC                     0x0B74
-#define GL_STENCIL_CLEAR_VALUE            0x0B91
-#define GL_STENCIL_FUNC                   0x0B92
-#define GL_STENCIL_FAIL                   0x0B94
-#define GL_STENCIL_PASS_DEPTH_FAIL        0x0B95
-#define GL_STENCIL_PASS_DEPTH_PASS        0x0B96
-#define GL_STENCIL_REF                    0x0B97
-#define GL_STENCIL_VALUE_MASK             0x0B93
-#define GL_STENCIL_WRITEMASK              0x0B98
-#define GL_STENCIL_BACK_FUNC              0x8800
-#define GL_STENCIL_BACK_FAIL              0x8801
-#define GL_STENCIL_BACK_PASS_DEPTH_FAIL   0x8802
-#define GL_STENCIL_BACK_PASS_DEPTH_PASS   0x8803
-#define GL_STENCIL_BACK_REF               0x8CA3
-#define GL_STENCIL_BACK_VALUE_MASK        0x8CA4
-#define GL_STENCIL_BACK_WRITEMASK         0x8CA5
-#define GL_VIEWPORT                       0x0BA2
-#define GL_SCISSOR_BOX                    0x0C10
-/*      GL_SCISSOR_TEST */
-#define GL_COLOR_CLEAR_VALUE              0x0C22
-#define GL_COLOR_WRITEMASK                0x0C23
-#define GL_UNPACK_ALIGNMENT               0x0CF5
-#define GL_PACK_ALIGNMENT                 0x0D05
-#define GL_MAX_TEXTURE_SIZE               0x0D33
-#define GL_MAX_VIEWPORT_DIMS              0x0D3A
-#define GL_SUBPIXEL_BITS                  0x0D50
-#define GL_RED_BITS                       0x0D52
-#define GL_GREEN_BITS                     0x0D53
-#define GL_BLUE_BITS                      0x0D54
-#define GL_ALPHA_BITS                     0x0D55
-#define GL_DEPTH_BITS                     0x0D56
-#define GL_STENCIL_BITS                   0x0D57
-#define GL_POLYGON_OFFSET_UNITS           0x2A00
-/*      GL_POLYGON_OFFSET_FILL */
-#define GL_POLYGON_OFFSET_FACTOR          0x8038
-#define GL_TEXTURE_BINDING_2D             0x8069
-#define GL_SAMPLE_BUFFERS                 0x80A8
-#define GL_SAMPLES                        0x80A9
-#define GL_SAMPLE_COVERAGE_VALUE          0x80AA
-#define GL_SAMPLE_COVERAGE_INVERT         0x80AB
-
-/* GetTextureParameter */
-/*      GL_TEXTURE_MAG_FILTER */
-/*      GL_TEXTURE_MIN_FILTER */
-/*      GL_TEXTURE_WRAP_S */
-/*      GL_TEXTURE_WRAP_T */
-
-#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
-#define GL_COMPRESSED_TEXTURE_FORMATS     0x86A3
-
-/* HintMode */
-#define GL_DONT_CARE                      0x1100
-#define GL_FASTEST                        0x1101
-#define GL_NICEST                         0x1102
-
-/* HintTarget */
-#define GL_GENERATE_MIPMAP_HINT            0x8192
-
-/* DataType */
-#define GL_BYTE                           0x1400
-#define GL_UNSIGNED_BYTE                  0x1401
-#define GL_SHORT                          0x1402
-#define GL_UNSIGNED_SHORT                 0x1403
-#define GL_INT                            0x1404
-#define GL_UNSIGNED_INT                   0x1405
-#define GL_FLOAT                          0x1406
-#define GL_FIXED                          0x140C
-
-/* PixelFormat */
-#define GL_DEPTH_COMPONENT                0x1902
-#define GL_ALPHA                          0x1906
-#define GL_RGB                            0x1907
-#define GL_RGBA                           0x1908
-#define GL_LUMINANCE                      0x1909
-#define GL_LUMINANCE_ALPHA                0x190A
-
-/* PixelType */
-/*      GL_UNSIGNED_BYTE */
-#define GL_UNSIGNED_SHORT_4_4_4_4         0x8033
-#define GL_UNSIGNED_SHORT_5_5_5_1         0x8034
-#define GL_UNSIGNED_SHORT_5_6_5           0x8363
-
-/* Shaders */
-#define GL_FRAGMENT_SHADER                  0x8B30
-#define GL_VERTEX_SHADER                    0x8B31
-#define GL_MAX_VERTEX_ATTRIBS               0x8869
-#define GL_MAX_VERTEX_UNIFORM_VECTORS       0x8DFB
-#define GL_MAX_VARYING_VECTORS              0x8DFC
-#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
-#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS   0x8B4C
-#define GL_MAX_TEXTURE_IMAGE_UNITS          0x8872
-#define GL_MAX_FRAGMENT_UNIFORM_VECTORS     0x8DFD
-#define GL_SHADER_TYPE                      0x8B4F
-#define GL_DELETE_STATUS                    0x8B80
-#define GL_LINK_STATUS                      0x8B82
-#define GL_VALIDATE_STATUS                  0x8B83
-#define GL_ATTACHED_SHADERS                 0x8B85
-#define GL_ACTIVE_UNIFORMS                  0x8B86
-#define GL_ACTIVE_UNIFORM_MAX_LENGTH        0x8B87
-#define GL_ACTIVE_ATTRIBUTES                0x8B89
-#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH      0x8B8A
-#define GL_SHADING_LANGUAGE_VERSION         0x8B8C
-#define GL_CURRENT_PROGRAM                  0x8B8D
-
-/* StencilFunction */
-#define GL_NEVER                          0x0200
-#define GL_LESS                           0x0201
-#define GL_EQUAL                          0x0202
-#define GL_LEQUAL                         0x0203
-#define GL_GREATER                        0x0204
-#define GL_NOTEQUAL                       0x0205
-#define GL_GEQUAL                         0x0206
-#define GL_ALWAYS                         0x0207
-
-/* StencilOp */
-/*      GL_ZERO */
-#define GL_KEEP                           0x1E00
-#define GL_REPLACE                        0x1E01
-#define GL_INCR                           0x1E02
-#define GL_DECR                           0x1E03
-#define GL_INVERT                         0x150A
-#define GL_INCR_WRAP                      0x8507
-#define GL_DECR_WRAP                      0x8508
-
-/* StringName */
-#define GL_VENDOR                         0x1F00
-#define GL_RENDERER                       0x1F01
-#define GL_VERSION                        0x1F02
-#define GL_EXTENSIONS                     0x1F03
-
-/* TextureMagFilter */
-#define GL_NEAREST                        0x2600
-#define GL_LINEAR                         0x2601
-
-/* TextureMinFilter */
-/*      GL_NEAREST */
-/*      GL_LINEAR */
-#define GL_NEAREST_MIPMAP_NEAREST         0x2700
-#define GL_LINEAR_MIPMAP_NEAREST          0x2701
-#define GL_NEAREST_MIPMAP_LINEAR          0x2702
-#define GL_LINEAR_MIPMAP_LINEAR           0x2703
-
-/* TextureParameterName */
-#define GL_TEXTURE_MAG_FILTER             0x2800
-#define GL_TEXTURE_MIN_FILTER             0x2801
-#define GL_TEXTURE_WRAP_S                 0x2802
-#define GL_TEXTURE_WRAP_T                 0x2803
-
-/* TextureTarget */
-/*      GL_TEXTURE_2D */
-#define GL_TEXTURE                        0x1702
-
-#define GL_TEXTURE_CUBE_MAP               0x8513
-#define GL_TEXTURE_BINDING_CUBE_MAP       0x8514
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X    0x8515
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X    0x8516
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y    0x8517
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y    0x8518
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z    0x8519
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z    0x851A
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE      0x851C
-
-/* TextureUnit */
-#define GL_TEXTURE0                       0x84C0
-#define GL_TEXTURE1                       0x84C1
-#define GL_TEXTURE2                       0x84C2
-#define GL_TEXTURE3                       0x84C3
-#define GL_TEXTURE4                       0x84C4
-#define GL_TEXTURE5                       0x84C5
-#define GL_TEXTURE6                       0x84C6
-#define GL_TEXTURE7                       0x84C7
-#define GL_TEXTURE8                       0x84C8
-#define GL_TEXTURE9                       0x84C9
-#define GL_TEXTURE10                      0x84CA
-#define GL_TEXTURE11                      0x84CB
-#define GL_TEXTURE12                      0x84CC
-#define GL_TEXTURE13                      0x84CD
-#define GL_TEXTURE14                      0x84CE
-#define GL_TEXTURE15                      0x84CF
-#define GL_TEXTURE16                      0x84D0
-#define GL_TEXTURE17                      0x84D1
-#define GL_TEXTURE18                      0x84D2
-#define GL_TEXTURE19                      0x84D3
-#define GL_TEXTURE20                      0x84D4
-#define GL_TEXTURE21                      0x84D5
-#define GL_TEXTURE22                      0x84D6
-#define GL_TEXTURE23                      0x84D7
-#define GL_TEXTURE24                      0x84D8
-#define GL_TEXTURE25                      0x84D9
-#define GL_TEXTURE26                      0x84DA
-#define GL_TEXTURE27                      0x84DB
-#define GL_TEXTURE28                      0x84DC
-#define GL_TEXTURE29                      0x84DD
-#define GL_TEXTURE30                      0x84DE
-#define GL_TEXTURE31                      0x84DF
-#define GL_ACTIVE_TEXTURE                 0x84E0
-
-/* TextureWrapMode */
-#define GL_REPEAT                         0x2901
-#define GL_CLAMP_TO_EDGE                  0x812F
-#define GL_MIRRORED_REPEAT                0x8370
-
-/* Uniform Types */
-#define GL_FLOAT_VEC2                     0x8B50
-#define GL_FLOAT_VEC3                     0x8B51
-#define GL_FLOAT_VEC4                     0x8B52
-#define GL_INT_VEC2                       0x8B53
-#define GL_INT_VEC3                       0x8B54
-#define GL_INT_VEC4                       0x8B55
-#define GL_BOOL                           0x8B56
-#define GL_BOOL_VEC2                      0x8B57
-#define GL_BOOL_VEC3                      0x8B58
-#define GL_BOOL_VEC4                      0x8B59
-#define GL_FLOAT_MAT2                     0x8B5A
-#define GL_FLOAT_MAT3                     0x8B5B
-#define GL_FLOAT_MAT4                     0x8B5C
-#define GL_SAMPLER_2D                     0x8B5E
-#define GL_SAMPLER_CUBE                   0x8B60
-
-/* Vertex Arrays */
-#define GL_VERTEX_ATTRIB_ARRAY_ENABLED        0x8622
-#define GL_VERTEX_ATTRIB_ARRAY_SIZE           0x8623
-#define GL_VERTEX_ATTRIB_ARRAY_STRIDE         0x8624
-#define GL_VERTEX_ATTRIB_ARRAY_TYPE           0x8625
-#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED     0x886A
-#define GL_VERTEX_ATTRIB_ARRAY_POINTER        0x8645
-#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
-
-/* Read Format */
-#define GL_IMPLEMENTATION_COLOR_READ_TYPE   0x8B9A
-#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
-
-/* Shader Source */
-#define GL_COMPILE_STATUS                 0x8B81
-#define GL_INFO_LOG_LENGTH                0x8B84
-#define GL_SHADER_SOURCE_LENGTH           0x8B88
-#define GL_SHADER_COMPILER                0x8DFA
-
-/* Shader Binary */
-#define GL_SHADER_BINARY_FORMATS          0x8DF8
-#define GL_NUM_SHADER_BINARY_FORMATS      0x8DF9
-
-/* Shader Precision-Specified Types */
-#define GL_LOW_FLOAT                      0x8DF0
-#define GL_MEDIUM_FLOAT                   0x8DF1
-#define GL_HIGH_FLOAT                     0x8DF2
-#define GL_LOW_INT                        0x8DF3
-#define GL_MEDIUM_INT                     0x8DF4
-#define GL_HIGH_INT                       0x8DF5
-
-/* Framebuffer Object. */
-#define GL_FRAMEBUFFER                    0x8D40
-#define GL_RENDERBUFFER                   0x8D41
-
-#define GL_RGBA4                          0x8056
-#define GL_RGB5_A1                        0x8057
-#define GL_RGB565                         0x8D62
-#define GL_DEPTH_COMPONENT16              0x81A5
-#define GL_STENCIL_INDEX                  0x1901
-#define GL_STENCIL_INDEX8                 0x8D48
-
-#define GL_RENDERBUFFER_WIDTH             0x8D42
-#define GL_RENDERBUFFER_HEIGHT            0x8D43
-#define GL_RENDERBUFFER_INTERNAL_FORMAT   0x8D44
-#define GL_RENDERBUFFER_RED_SIZE          0x8D50
-#define GL_RENDERBUFFER_GREEN_SIZE        0x8D51
-#define GL_RENDERBUFFER_BLUE_SIZE         0x8D52
-#define GL_RENDERBUFFER_ALPHA_SIZE        0x8D53
-#define GL_RENDERBUFFER_DEPTH_SIZE        0x8D54
-#define GL_RENDERBUFFER_STENCIL_SIZE      0x8D55
-
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE           0x8CD0
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME           0x8CD1
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL         0x8CD2
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
-
-#define GL_COLOR_ATTACHMENT0              0x8CE0
-#define GL_DEPTH_ATTACHMENT               0x8D00
-#define GL_STENCIL_ATTACHMENT             0x8D20
-
-#define GL_NONE                           0
-
-#define GL_FRAMEBUFFER_COMPLETE                      0x8CD5
-#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT         0x8CD6
-#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
-#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS         0x8CD9
-#define GL_FRAMEBUFFER_UNSUPPORTED                   0x8CDD
-
-#define GL_FRAMEBUFFER_BINDING            0x8CA6
-#define GL_RENDERBUFFER_BINDING           0x8CA7
-#define GL_MAX_RENDERBUFFER_SIZE          0x84E8
-
-#define GL_INVALID_FRAMEBUFFER_OPERATION  0x0506
-
-// Note: If your program is written in C++ you can define
-// GLES2_INLINE_OPTIMIZATION to get an inline version of the OpenGL ES 2.0
-// code for your program. The advantage is a program compiled with high
-// optimization settings can generate very efficient code for issuing OpenGL ES
-// commands. The disadvantage is there is a small possibility of conflicts with
-// your code as we need to include lots of class definitions and a few
-// macros.
-
-#if defined(__cplusplus) && defined(GLES2_INLINE_OPTIMIZATION)
-#include "../command_buffer/client/gles2_lib.h"
-#define GLES2_USE_CPP_BINDINGS
-#endif
-
-#if defined(GLES2_USE_CPP_BINDINGS)
-#define GLES2_GET_FUN(name) gles2::GetGLContext()->name
-#else
-#define GLES2_GET_FUN(name) GLES2 ## name
-#endif
-
-/*-------------------------------------------------------------------------
- * GL core functions.
- *-----------------------------------------------------------------------*/
-
-#define glActiveTexture GLES2_GET_FUN(ActiveTexture)
-#define glAttachShader GLES2_GET_FUN(AttachShader)
-#define glBindAttribLocation GLES2_GET_FUN(BindAttribLocation)
-#define glBindBuffer GLES2_GET_FUN(BindBuffer)
-#define glBindFramebuffer GLES2_GET_FUN(BindFramebuffer)
-#define glBindRenderbuffer GLES2_GET_FUN(BindRenderbuffer)
-#define glBindTexture GLES2_GET_FUN(BindTexture)
-#define glBlendColor GLES2_GET_FUN(BlendColor)
-#define glBlendEquation GLES2_GET_FUN(BlendEquation)
-#define glBlendEquationSeparate GLES2_GET_FUN(BlendEquationSeparate)
-#define glBlendFunc GLES2_GET_FUN(BlendFunc)
-#define glBlendFuncSeparate GLES2_GET_FUN(BlendFuncSeparate)
-#define glBufferData GLES2_GET_FUN(BufferData)
-#define glBufferSubData GLES2_GET_FUN(BufferSubData)
-#define glCheckFramebufferStatus GLES2_GET_FUN(CheckFramebufferStatus)
-#define glClear GLES2_GET_FUN(Clear)
-#define glClearColor GLES2_GET_FUN(ClearColor)
-#define glClearDepthf GLES2_GET_FUN(ClearDepthf)
-#define glClearStencil GLES2_GET_FUN(ClearStencil)
-#define glColorMask GLES2_GET_FUN(ColorMask)
-#define glCompileShader GLES2_GET_FUN(CompileShader)
-#define glCompressedTexImage2D GLES2_GET_FUN(CompressedTexImage2D)
-#define glCompressedTexSubImage2D GLES2_GET_FUN(CompressedTexSubImage2D)
-#define glCopyTexImage2D GLES2_GET_FUN(CopyTexImage2D)
-#define glCopyTexSubImage2D GLES2_GET_FUN(CopyTexSubImage2D)
-#define glCreateProgram GLES2_GET_FUN(CreateProgram)
-#define glCreateShader GLES2_GET_FUN(CreateShader)
-#define glCullFace GLES2_GET_FUN(CullFace)
-#define glDeleteBuffers GLES2_GET_FUN(DeleteBuffers)
-#define glDeleteFramebuffers GLES2_GET_FUN(DeleteFramebuffers)
-#define glDeleteProgram GLES2_GET_FUN(DeleteProgram)
-#define glDeleteRenderbuffers GLES2_GET_FUN(DeleteRenderbuffers)
-#define glDeleteShader GLES2_GET_FUN(DeleteShader)
-#define glDeleteTextures GLES2_GET_FUN(DeleteTextures)
-#define glDepthFunc GLES2_GET_FUN(DepthFunc)
-#define glDepthMask GLES2_GET_FUN(DepthMask)
-#define glDepthRangef GLES2_GET_FUN(DepthRangef)
-#define glDetachShader GLES2_GET_FUN(DetachShader)
-#define glDisable GLES2_GET_FUN(Disable)
-#define glDisableVertexAttribArray GLES2_GET_FUN(DisableVertexAttribArray)
-#define glDrawArrays GLES2_GET_FUN(DrawArrays)
-#define glDrawElements GLES2_GET_FUN(DrawElements)
-#define glEnable GLES2_GET_FUN(Enable)
-#define glEnableVertexAttribArray GLES2_GET_FUN(EnableVertexAttribArray)
-#define glFinish GLES2_GET_FUN(Finish)
-#define glFlush GLES2_GET_FUN(Flush)
-#define glFramebufferRenderbuffer GLES2_GET_FUN(FramebufferRenderbuffer)
-#define glFramebufferTexture2D GLES2_GET_FUN(FramebufferTexture2D)
-#define glFrontFace GLES2_GET_FUN(FrontFace)
-#define glGenBuffers GLES2_GET_FUN(GenBuffers)
-#define glGenerateMipmap GLES2_GET_FUN(GenerateMipmap)
-#define glGenFramebuffers GLES2_GET_FUN(GenFramebuffers)
-#define glGenRenderbuffers GLES2_GET_FUN(GenRenderbuffers)
-#define glGenTextures GLES2_GET_FUN(GenTextures)
-#define glGetActiveAttrib GLES2_GET_FUN(GetActiveAttrib)
-#define glGetActiveUniform GLES2_GET_FUN(GetActiveUniform)
-#define glGetAttachedShaders GLES2_GET_FUN(GetAttachedShaders)
-#define glGetAttribLocation GLES2_GET_FUN(GetAttribLocation)
-#define glGetBooleanv GLES2_GET_FUN(GetBooleanv)
-#define glGetBufferParameteriv GLES2_GET_FUN(GetBufferParameteriv)
-#define glGetError GLES2_GET_FUN(GetError)
-#define glGetFloatv GLES2_GET_FUN(GetFloatv)
-#define glGetFramebufferAttachmentParameteriv GLES2_GET_FUN(GetFramebufferAttachmentParameteriv)
-#define glGetIntegerv GLES2_GET_FUN(GetIntegerv)
-#define glGetProgramiv GLES2_GET_FUN(GetProgramiv)
-#define glGetProgramInfoLog GLES2_GET_FUN(GetProgramInfoLog)
-#define glGetRenderbufferParameteriv GLES2_GET_FUN(GetRenderbufferParameteriv)
-#define glGetShaderiv GLES2_GET_FUN(GetShaderiv)
-#define glGetShaderInfoLog GLES2_GET_FUN(GetShaderInfoLog)
-#define glGetShaderPrecisionFormat GLES2_GET_FUN(GetShaderPrecisionFormat)
-#define glGetShaderSource GLES2_GET_FUN(GetShaderSource)
-#define glGetString GLES2_GET_FUN(GetString)
-#define glGetTexParameterfv GLES2_GET_FUN(GetTexParameterfv)
-#define glGetTexParameteriv GLES2_GET_FUN(GetTexParameteriv)
-#define glGetUniformfv GLES2_GET_FUN(GetUniformfv)
-#define glGetUniformiv GLES2_GET_FUN(GetUniformiv)
-#define glGetUniformLocation GLES2_GET_FUN(GetUniformLocation)
-#define glGetVertexAttribfv GLES2_GET_FUN(GetVertexAttribfv)
-#define glGetVertexAttribiv GLES2_GET_FUN(GetVertexAttribiv)
-#define glGetVertexAttribPointerv GLES2_GET_FUN(GetVertexAttribPointerv)
-#define glHint GLES2_GET_FUN(Hint)
-#define glIsBuffer GLES2_GET_FUN(IsBuffer)
-#define glIsEnabled GLES2_GET_FUN(IsEnabled)
-#define glIsFramebuffer GLES2_GET_FUN(IsFramebuffer)
-#define glIsProgram GLES2_GET_FUN(IsProgram)
-#define glIsRenderbuffer GLES2_GET_FUN(IsRenderbuffer)
-#define glIsShader GLES2_GET_FUN(IsShader)
-#define glIsTexture GLES2_GET_FUN(IsTexture)
-#define glLineWidth GLES2_GET_FUN(LineWidth)
-#define glLinkProgram GLES2_GET_FUN(LinkProgram)
-#define glPixelStorei GLES2_GET_FUN(PixelStorei)
-#define glPolygonOffset GLES2_GET_FUN(PolygonOffset)
-#define glReadPixels GLES2_GET_FUN(ReadPixels)
-#define glReleaseShaderCompiler GLES2_GET_FUN(ReleaseShaderCompiler)
-#define glRenderbufferStorage GLES2_GET_FUN(RenderbufferStorage)
-#define glSampleCoverage GLES2_GET_FUN(SampleCoverage)
-#define glScissor GLES2_GET_FUN(Scissor)
-#define glShaderBinary GLES2_GET_FUN(ShaderBinary)
-#define glShaderSource GLES2_GET_FUN(ShaderSource)
-#define glStencilFunc GLES2_GET_FUN(StencilFunc)
-#define glStencilFuncSeparate GLES2_GET_FUN(StencilFuncSeparate)
-#define glStencilMask GLES2_GET_FUN(StencilMask)
-#define glStencilMaskSeparate GLES2_GET_FUN(StencilMaskSeparate)
-#define glStencilOp GLES2_GET_FUN(StencilOp)
-#define glStencilOpSeparate GLES2_GET_FUN(StencilOpSeparate)
-#define glTexImage2D GLES2_GET_FUN(TexImage2D)
-#define glTexParameterf GLES2_GET_FUN(TexParameterf)
-#define glTexParameterfv GLES2_GET_FUN(TexParameterfv)
-#define glTexParameteri GLES2_GET_FUN(TexParameteri)
-#define glTexParameteriv GLES2_GET_FUN(TexParameteriv)
-#define glTexSubImage2D GLES2_GET_FUN(TexSubImage2D)
-#define glUniform1f GLES2_GET_FUN(Uniform1f)
-#define glUniform1fv GLES2_GET_FUN(Uniform1fv)
-#define glUniform1i GLES2_GET_FUN(Uniform1i)
-#define glUniform1iv GLES2_GET_FUN(Uniform1iv)
-#define glUniform2f GLES2_GET_FUN(Uniform2f)
-#define glUniform2fv GLES2_GET_FUN(Uniform2fv)
-#define glUniform2i GLES2_GET_FUN(Uniform2i)
-#define glUniform2iv GLES2_GET_FUN(Uniform2iv)
-#define glUniform3f GLES2_GET_FUN(Uniform3f)
-#define glUniform3fv GLES2_GET_FUN(Uniform3fv)
-#define glUniform3i GLES2_GET_FUN(Uniform3i)
-#define glUniform3iv GLES2_GET_FUN(Uniform3iv)
-#define glUniform4f GLES2_GET_FUN(Uniform4f)
-#define glUniform4fv GLES2_GET_FUN(Uniform4fv)
-#define glUniform4i GLES2_GET_FUN(Uniform4i)
-#define glUniform4iv GLES2_GET_FUN(Uniform4iv)
-#define glUniformMatrix2fv GLES2_GET_FUN(UniformMatrix2fv)
-#define glUniformMatrix3fv GLES2_GET_FUN(UniformMatrix3fv)
-#define glUniformMatrix4fv GLES2_GET_FUN(UniformMatrix4fv)
-#define glUseProgram GLES2_GET_FUN(UseProgram)
-#define glValidateProgram GLES2_GET_FUN(ValidateProgram)
-#define glVertexAttrib1f GLES2_GET_FUN(VertexAttrib1f)
-#define glVertexAttrib1fv GLES2_GET_FUN(VertexAttrib1fv)
-#define glVertexAttrib2f GLES2_GET_FUN(VertexAttrib2f)
-#define glVertexAttrib2fv GLES2_GET_FUN(VertexAttrib2fv)
-#define glVertexAttrib3f GLES2_GET_FUN(VertexAttrib3f)
-#define glVertexAttrib3fv GLES2_GET_FUN(VertexAttrib3fv)
-#define glVertexAttrib4f GLES2_GET_FUN(VertexAttrib4f)
-#define glVertexAttrib4fv GLES2_GET_FUN(VertexAttrib4fv)
-#define glVertexAttribPointer GLES2_GET_FUN(VertexAttribPointer)
-#define glViewport GLES2_GET_FUN(Viewport)
-
-#if !defined(GLES2_USE_CPP_BINDINGS)
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-GL_APICALL void         GL_APIENTRY glActiveTexture (GLenum texture);
-GL_APICALL void         GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
-GL_APICALL void         GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name);
-GL_APICALL void         GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer);
-GL_APICALL void         GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer);
-GL_APICALL void         GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer);
-GL_APICALL void         GL_APIENTRY glBindTexture (GLenum target, GLuint texture);
-GL_APICALL void         GL_APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-GL_APICALL void         GL_APIENTRY glBlendEquation ( GLenum mode );
-GL_APICALL void         GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
-GL_APICALL void         GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
-GL_APICALL void         GL_APIENTRY glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-GL_APICALL void         GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
-GL_APICALL void         GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
-GL_APICALL GLenum       GL_APIENTRY glCheckFramebufferStatus (GLenum target);
-GL_APICALL void         GL_APIENTRY glClear (GLbitfield mask);
-GL_APICALL void         GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-GL_APICALL void         GL_APIENTRY glClearDepthf (GLclampf depth);
-GL_APICALL void         GL_APIENTRY glClearStencil (GLint s);
-GL_APICALL void         GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-GL_APICALL void         GL_APIENTRY glCompileShader (GLuint shader);
-GL_APICALL void         GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
-GL_APICALL void         GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
-GL_APICALL void         GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-GL_APICALL void         GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-GL_APICALL GLuint       GL_APIENTRY glCreateProgram (void);
-GL_APICALL GLuint       GL_APIENTRY glCreateShader (GLenum type);
-GL_APICALL void         GL_APIENTRY glCullFace (GLenum mode);
-GL_APICALL void         GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint* buffers);
-GL_APICALL void         GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers);
-GL_APICALL void         GL_APIENTRY glDeleteProgram (GLuint program);
-GL_APICALL void         GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers);
-GL_APICALL void         GL_APIENTRY glDeleteShader (GLuint shader);
-GL_APICALL void         GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures);
-GL_APICALL void         GL_APIENTRY glDepthFunc (GLenum func);
-GL_APICALL void         GL_APIENTRY glDepthMask (GLboolean flag);
-GL_APICALL void         GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar);
-GL_APICALL void         GL_APIENTRY glDetachShader (GLuint program, GLuint shader);
-GL_APICALL void         GL_APIENTRY glDisable (GLenum cap);
-GL_APICALL void         GL_APIENTRY glDisableVertexAttribArray (GLuint index);
-GL_APICALL void         GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
-GL_APICALL void         GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
-GL_APICALL void         GL_APIENTRY glEnable (GLenum cap);
-GL_APICALL void         GL_APIENTRY glEnableVertexAttribArray (GLuint index);
-GL_APICALL void         GL_APIENTRY glFinish (void);
-GL_APICALL void         GL_APIENTRY glFlush (void);
-GL_APICALL void         GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-GL_APICALL void         GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-GL_APICALL void         GL_APIENTRY glFrontFace (GLenum mode);
-GL_APICALL void         GL_APIENTRY glGenBuffers (GLsizei n, GLuint* buffers);
-GL_APICALL void         GL_APIENTRY glGenerateMipmap (GLenum target);
-GL_APICALL void         GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint* framebuffers);
-GL_APICALL void         GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint* renderbuffers);
-GL_APICALL void         GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures);
-GL_APICALL void         GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
-GL_APICALL void         GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
-GL_APICALL void         GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
-GL_APICALL int          GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name);
-GL_APICALL void         GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params);
-GL_APICALL void         GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params);
-GL_APICALL GLenum       GL_APIENTRY glGetError (void);
-GL_APICALL void         GL_APIENTRY glGetFloatv (GLenum pname, GLfloat* params);
-GL_APICALL void         GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetIntegerv (GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
-GL_APICALL void         GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
-GL_APICALL void         GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
-GL_APICALL void         GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
-GL_APICALL const GLubyte* GL_APIENTRY glGetString (GLenum name);
-GL_APICALL void         GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params);
-GL_APICALL void         GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params);
-GL_APICALL void         GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params);
-GL_APICALL int          GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name);
-GL_APICALL void         GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params);
-GL_APICALL void         GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer);
-GL_APICALL void         GL_APIENTRY glHint (GLenum target, GLenum mode);
-GL_APICALL GLboolean    GL_APIENTRY glIsBuffer (GLuint buffer);
-GL_APICALL GLboolean    GL_APIENTRY glIsEnabled (GLenum cap);
-GL_APICALL GLboolean    GL_APIENTRY glIsFramebuffer (GLuint framebuffer);
-GL_APICALL GLboolean    GL_APIENTRY glIsProgram (GLuint program);
-GL_APICALL GLboolean    GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer);
-GL_APICALL GLboolean    GL_APIENTRY glIsShader (GLuint shader);
-GL_APICALL GLboolean    GL_APIENTRY glIsTexture (GLuint texture);
-GL_APICALL void         GL_APIENTRY glLineWidth (GLfloat width);
-GL_APICALL void         GL_APIENTRY glLinkProgram (GLuint program);
-GL_APICALL void         GL_APIENTRY glPixelStorei (GLenum pname, GLint param);
-GL_APICALL void         GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
-GL_APICALL void         GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
-GL_APICALL void         GL_APIENTRY glReleaseShaderCompiler (void);
-GL_APICALL void         GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-GL_APICALL void         GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
-GL_APICALL void         GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
-GL_APICALL void         GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
-GL_APICALL void         GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
-GL_APICALL void         GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
-GL_APICALL void         GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
-GL_APICALL void         GL_APIENTRY glStencilMask (GLuint mask);
-GL_APICALL void         GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask);
-GL_APICALL void         GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
-GL_APICALL void         GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
-GL_APICALL void         GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
-GL_APICALL void         GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
-GL_APICALL void         GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params);
-GL_APICALL void         GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
-GL_APICALL void         GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params);
-GL_APICALL void         GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
-GL_APICALL void         GL_APIENTRY glUniform1f (GLint location, GLfloat x);
-GL_APICALL void         GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat* v);
-GL_APICALL void         GL_APIENTRY glUniform1i (GLint location, GLint x);
-GL_APICALL void         GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint* v);
-GL_APICALL void         GL_APIENTRY glUniform2f (GLint location, GLfloat x, GLfloat y);
-GL_APICALL void         GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat* v);
-GL_APICALL void         GL_APIENTRY glUniform2i (GLint location, GLint x, GLint y);
-GL_APICALL void         GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint* v);
-GL_APICALL void         GL_APIENTRY glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z);
-GL_APICALL void         GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat* v);
-GL_APICALL void         GL_APIENTRY glUniform3i (GLint location, GLint x, GLint y, GLint z);
-GL_APICALL void         GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint* v);
-GL_APICALL void         GL_APIENTRY glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-GL_APICALL void         GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat* v);
-GL_APICALL void         GL_APIENTRY glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w);
-GL_APICALL void         GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint* v);
-GL_APICALL void         GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GL_APICALL void         GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GL_APICALL void         GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GL_APICALL void         GL_APIENTRY glUseProgram (GLuint program);
-GL_APICALL void         GL_APIENTRY glValidateProgram (GLuint program);
-GL_APICALL void         GL_APIENTRY glVertexAttrib1f (GLuint indx, GLfloat x);
-GL_APICALL void         GL_APIENTRY glVertexAttrib1fv (GLuint indx, const GLfloat* values);
-GL_APICALL void         GL_APIENTRY glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y);
-GL_APICALL void         GL_APIENTRY glVertexAttrib2fv (GLuint indx, const GLfloat* values);
-GL_APICALL void         GL_APIENTRY glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z);
-GL_APICALL void         GL_APIENTRY glVertexAttrib3fv (GLuint indx, const GLfloat* values);
-GL_APICALL void         GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-GL_APICALL void         GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values);
-GL_APICALL void         GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
-GL_APICALL void         GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif  // !GLES2_USE_CPP_BINDINGS
-
-#endif /* __gl2_h_ */
-
diff --git a/lib/gl/include/GLES2/gl2ext.h b/lib/gl/include/GLES2/gl2ext.h
deleted file mode 100644
index fdd9742..0000000
--- a/lib/gl/include/GLES2/gl2ext.h
+++ /dev/null
@@ -1,1980 +0,0 @@
-#ifndef __gl2ext_h_
-#define __gl2ext_h_
-
-/* $Revision: 16619 $ on $Date:: 2012-01-18 10:00:14 -0800 #$ */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * This document is licensed under the SGI Free Software B License Version
- * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
- */
-
-#ifndef GL_APIENTRYP
-#   define GL_APIENTRYP GL_APIENTRY*
-#endif
-
-/*------------------------------------------------------------------------*
- * OES extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_OES_compressed_ETC1_RGB8_texture */
-#ifndef GL_OES_compressed_ETC1_RGB8_texture
-#define GL_ETC1_RGB8_OES                                        0x8D64
-#endif
-
-/* GL_OES_compressed_paletted_texture */
-#ifndef GL_OES_compressed_paletted_texture
-#define GL_PALETTE4_RGB8_OES                                    0x8B90
-#define GL_PALETTE4_RGBA8_OES                                   0x8B91
-#define GL_PALETTE4_R5_G6_B5_OES                                0x8B92
-#define GL_PALETTE4_RGBA4_OES                                   0x8B93
-#define GL_PALETTE4_RGB5_A1_OES                                 0x8B94
-#define GL_PALETTE8_RGB8_OES                                    0x8B95
-#define GL_PALETTE8_RGBA8_OES                                   0x8B96
-#define GL_PALETTE8_R5_G6_B5_OES                                0x8B97
-#define GL_PALETTE8_RGBA4_OES                                   0x8B98
-#define GL_PALETTE8_RGB5_A1_OES                                 0x8B99
-#endif
-
-/* GL_OES_depth24 */
-#ifndef GL_OES_depth24
-#define GL_DEPTH_COMPONENT24_OES                                0x81A6
-#endif
-
-/* GL_OES_depth32 */
-#ifndef GL_OES_depth32
-#define GL_DEPTH_COMPONENT32_OES                                0x81A7
-#endif
-
-/* GL_OES_depth_texture */
-/* No new tokens introduced by this extension. */
-
-/* GL_OES_EGL_image */
-#ifndef GL_OES_EGL_image
-typedef void* GLeglImageOES;
-#endif
-
-/* GL_OES_EGL_image_external */
-#ifndef GL_OES_EGL_image_external
-/* GLeglImageOES defined in GL_OES_EGL_image already. */
-#define GL_TEXTURE_EXTERNAL_OES                                 0x8D65
-#define GL_SAMPLER_EXTERNAL_OES                                 0x8D66
-#define GL_TEXTURE_BINDING_EXTERNAL_OES                         0x8D67
-#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES                     0x8D68
-#endif
-
-/* GL_OES_element_index_uint */
-#ifndef GL_OES_element_index_uint
-#define GL_UNSIGNED_INT                                         0x1405
-#endif
-
-/* GL_OES_get_program_binary */
-#ifndef GL_OES_get_program_binary
-#define GL_PROGRAM_BINARY_LENGTH_OES                            0x8741
-#define GL_NUM_PROGRAM_BINARY_FORMATS_OES                       0x87FE
-#define GL_PROGRAM_BINARY_FORMATS_OES                           0x87FF
-#endif
-
-/* GL_OES_mapbuffer */
-#ifndef GL_OES_mapbuffer
-#define GL_WRITE_ONLY_OES                                       0x88B9
-#define GL_BUFFER_ACCESS_OES                                    0x88BB
-#define GL_BUFFER_MAPPED_OES                                    0x88BC
-#define GL_BUFFER_MAP_POINTER_OES                               0x88BD
-#endif
-
-/* GL_OES_packed_depth_stencil */
-#ifndef GL_OES_packed_depth_stencil
-#define GL_DEPTH_STENCIL_OES                                    0x84F9
-#define GL_UNSIGNED_INT_24_8_OES                                0x84FA
-#define GL_DEPTH24_STENCIL8_OES                                 0x88F0
-#endif
-
-/* GL_OES_rgb8_rgba8 */
-#ifndef GL_OES_rgb8_rgba8
-#define GL_RGB8_OES                                             0x8051
-#define GL_RGBA8_OES                                            0x8058
-#endif
-
-/* GL_OES_standard_derivatives */
-#ifndef GL_OES_standard_derivatives
-#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES                  0x8B8B
-#endif
-
-/* GL_OES_stencil1 */
-#ifndef GL_OES_stencil1
-#define GL_STENCIL_INDEX1_OES                                   0x8D46
-#endif
-
-/* GL_OES_stencil4 */
-#ifndef GL_OES_stencil4
-#define GL_STENCIL_INDEX4_OES                                   0x8D47
-#endif
-
-/* GL_OES_texture_3D */
-#ifndef GL_OES_texture_3D
-#define GL_TEXTURE_WRAP_R_OES                                   0x8072
-#define GL_TEXTURE_3D_OES                                       0x806F
-#define GL_TEXTURE_BINDING_3D_OES                               0x806A
-#define GL_MAX_3D_TEXTURE_SIZE_OES                              0x8073
-#define GL_SAMPLER_3D_OES                                       0x8B5F
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES        0x8CD4
-#endif
-
-/* GL_OES_texture_float */
-/* No new tokens introduced by this extension. */
-
-/* GL_OES_texture_float_linear */
-/* No new tokens introduced by this extension. */
-
-/* GL_OES_texture_half_float */
-#ifndef GL_OES_texture_half_float
-#define GL_HALF_FLOAT_OES                                       0x8D61
-#endif
-
-/* GL_OES_texture_half_float_linear */
-/* No new tokens introduced by this extension. */
-
-/* GL_OES_texture_npot */
-/* No new tokens introduced by this extension. */
-
-/* GL_OES_vertex_array_object */
-#ifndef GL_OES_vertex_array_object
-#define GL_VERTEX_ARRAY_BINDING_OES                             0x85B5
-#endif
-
-/* GL_OES_vertex_half_float */
-/* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */
-
-/* GL_OES_vertex_type_10_10_10_2 */
-#ifndef GL_OES_vertex_type_10_10_10_2
-#define GL_UNSIGNED_INT_10_10_10_2_OES                          0x8DF6
-#define GL_INT_10_10_10_2_OES                                   0x8DF7
-#endif
-
-/*------------------------------------------------------------------------*
- * AMD extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_AMD_compressed_3DC_texture */
-#ifndef GL_AMD_compressed_3DC_texture
-#define GL_3DC_X_AMD                                            0x87F9
-#define GL_3DC_XY_AMD                                           0x87FA
-#endif
-
-/* GL_AMD_compressed_ATC_texture */
-#ifndef GL_AMD_compressed_ATC_texture
-#define GL_ATC_RGB_AMD                                          0x8C92
-#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD                          0x8C93
-#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD                      0x87EE
-#endif
-
-/* GL_AMD_performance_monitor */
-#ifndef GL_AMD_performance_monitor
-#define GL_COUNTER_TYPE_AMD                                     0x8BC0
-#define GL_COUNTER_RANGE_AMD                                    0x8BC1
-#define GL_UNSIGNED_INT64_AMD                                   0x8BC2
-#define GL_PERCENTAGE_AMD                                       0x8BC3
-#define GL_PERFMON_RESULT_AVAILABLE_AMD                         0x8BC4
-#define GL_PERFMON_RESULT_SIZE_AMD                              0x8BC5
-#define GL_PERFMON_RESULT_AMD                                   0x8BC6
-#endif
-
-/* GL_AMD_program_binary_Z400 */
-#ifndef GL_AMD_program_binary_Z400
-#define GL_Z400_BINARY_AMD                                      0x8740
-#endif
-
-/*------------------------------------------------------------------------*
- * ANGLE extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_ANGLE_framebuffer_blit */
-#ifndef GL_ANGLE_framebuffer_blit
-#define GL_READ_FRAMEBUFFER_ANGLE                               0x8CA8
-#define GL_DRAW_FRAMEBUFFER_ANGLE                               0x8CA9
-#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE                       0x8CA6
-#define GL_READ_FRAMEBUFFER_BINDING_ANGLE                       0x8CAA
-#endif
-
-/* GL_ANGLE_framebuffer_multisample */
-#ifndef GL_ANGLE_framebuffer_multisample
-#define GL_RENDERBUFFER_SAMPLES_ANGLE                           0x8CAB
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE             0x8D56
-#define GL_MAX_SAMPLES_ANGLE                                    0x8D57
-#endif
-
-/* GL_ANGLE_pack_reverse_row_order */
-#ifndef GL_ANGLE_pack_reverse_row_order
-#define GL_PACK_REVERSE_ROW_ORDER_ANGLE                         0x93A4
-#endif
-
-/* GL_ANGLE_texture_usage */
-#ifndef GL_ANGLE_texture_usage
-#define GL_TEXTURE_USAGE_ANGLE                                  0x93A2
-#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE                         0x93A3
-#endif
-
-/* GL_ANGLE_instanced_arrays */
-#ifndef GL_ANGLE_instanced_arrays
-#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE                    0x88FE
-#endif
-
-/*------------------------------------------------------------------------*
- * APPLE extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_APPLE_rgb_422 */
-#ifndef GL_APPLE_rgb_422
-#define GL_RGB_422_APPLE                                        0x8A1F
-#define GL_UNSIGNED_SHORT_8_8_APPLE                             0x85BA
-#define GL_UNSIGNED_SHORT_8_8_REV_APPLE                         0x85BB
-#endif
-
-/* GL_APPLE_framebuffer_multisample */
-#ifndef GL_APPLE_framebuffer_multisample
-#define GL_RENDERBUFFER_SAMPLES_APPLE                           0x8CAB
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE             0x8D56
-#define GL_MAX_SAMPLES_APPLE                                    0x8D57
-#define GL_READ_FRAMEBUFFER_APPLE                               0x8CA8
-#define GL_DRAW_FRAMEBUFFER_APPLE                               0x8CA9
-#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE                       0x8CA6
-#define GL_READ_FRAMEBUFFER_BINDING_APPLE                       0x8CAA
-#endif
-
-/* GL_APPLE_texture_format_BGRA8888 */
-#ifndef GL_APPLE_texture_format_BGRA8888
-#define GL_BGRA_EXT                                             0x80E1
-#endif
-
-/* GL_APPLE_texture_max_level */
-#ifndef GL_APPLE_texture_max_level
-#define GL_TEXTURE_MAX_LEVEL_APPLE                              0x813D
-#endif
-
-/*------------------------------------------------------------------------*
- * ARM extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_ARM_mali_shader_binary */
-#ifndef GL_ARM_mali_shader_binary
-#define GL_MALI_SHADER_BINARY_ARM                               0x8F60
-#endif
-
-/* GL_ARM_rgba8 */
-/* No new tokens introduced by this extension. */
-
-/*------------------------------------------------------------------------*
- * EXT extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_EXT_blend_minmax */
-#ifndef GL_EXT_blend_minmax
-#define GL_MIN_EXT                                              0x8007
-#define GL_MAX_EXT                                              0x8008
-#endif
-
-/* GL_EXT_color_buffer_half_float */
-#ifndef GL_EXT_color_buffer_half_float
-#define GL_RGBA16F_EXT                                          0x881A
-#define GL_RGB16F_EXT                                           0x881B
-#define GL_RG16F_EXT                                            0x822F
-#define GL_R16F_EXT                                             0x822D
-#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT            0x8211
-#define GL_UNSIGNED_NORMALIZED_EXT                              0x8C17
-#endif
-
-/* GL_EXT_debug_label */
-#ifndef GL_EXT_debug_label
-#define GL_PROGRAM_PIPELINE_OBJECT_EXT                          0x8A4F
-#define GL_PROGRAM_OBJECT_EXT                                   0x8B40
-#define GL_SHADER_OBJECT_EXT                                    0x8B48
-#define GL_BUFFER_OBJECT_EXT                                    0x9151
-#define GL_QUERY_OBJECT_EXT                                     0x9153
-#define GL_VERTEX_ARRAY_OBJECT_EXT                              0x9154
-#endif
-
-/* GL_EXT_debug_marker */
-/* No new tokens introduced by this extension. */
-
-/* GL_EXT_discard_framebuffer */
-#ifndef GL_EXT_discard_framebuffer
-#define GL_COLOR_EXT                                            0x1800
-#define GL_DEPTH_EXT                                            0x1801
-#define GL_STENCIL_EXT                                          0x1802
-#endif
-
-/* GL_EXT_multisampled_render_to_texture */
-#ifndef GL_EXT_multisampled_render_to_texture
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT           0x8D6C
-#define GL_RENDERBUFFER_SAMPLES_EXT                             0x8CAB
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT               0x8D56
-#define GL_MAX_SAMPLES_EXT                                      0x8D57
-#endif
-
-/* GL_EXT_multi_draw_arrays */
-/* No new tokens introduced by this extension. */
-
-/* GL_EXT_occlusion_query_boolean */
-#ifndef GL_EXT_occlusion_query_boolean
-#define GL_ANY_SAMPLES_PASSED_EXT                               0x8C2F
-#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT                  0x8D6A
-#define GL_CURRENT_QUERY_EXT                                    0x8865
-#define GL_QUERY_RESULT_EXT                                     0x8866
-#define GL_QUERY_RESULT_AVAILABLE_EXT                           0x8867
-#endif
-
-/* GL_EXT_read_format_bgra */
-#ifndef GL_EXT_read_format_bgra
-#define GL_BGRA_EXT                                             0x80E1
-#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT                       0x8365
-#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT                       0x8366
-#endif
-
-/* GL_EXT_robustness */
-#ifndef GL_EXT_robustness
-/* reuse GL_NO_ERROR */
-#define GL_GUILTY_CONTEXT_RESET_EXT                             0x8253
-#define GL_INNOCENT_CONTEXT_RESET_EXT                           0x8254
-#define GL_UNKNOWN_CONTEXT_RESET_EXT                            0x8255
-#define GL_CONTEXT_ROBUST_ACCESS_EXT                            0x90F3
-#define GL_RESET_NOTIFICATION_STRATEGY_EXT                      0x8256
-#define GL_LOSE_CONTEXT_ON_RESET_EXT                            0x8252
-#define GL_NO_RESET_NOTIFICATION_EXT                            0x8261
-#endif
-
-/* GL_EXT_separate_shader_objects */
-#ifndef GL_EXT_separate_shader_objects
-#define GL_VERTEX_SHADER_BIT_EXT                                0x00000001
-#define GL_FRAGMENT_SHADER_BIT_EXT                              0x00000002
-#define GL_ALL_SHADER_BITS_EXT                                  0xFFFFFFFF
-#define GL_PROGRAM_SEPARABLE_EXT                                0x8258
-#define GL_ACTIVE_PROGRAM_EXT                                   0x8259
-#define GL_PROGRAM_PIPELINE_BINDING_EXT                         0x825A
-#endif
-
-/* GL_EXT_shader_texture_lod */
-/* No new tokens introduced by this extension. */
-
-/* GL_EXT_shadow_samplers */
-#ifndef GL_EXT_shadow_samplers
-#define GL_TEXTURE_COMPARE_MODE_EXT                             0x884C
-#define GL_TEXTURE_COMPARE_FUNC_EXT                             0x884D
-#define GL_COMPARE_REF_TO_TEXTURE_EXT                           0x884E
-#define GL_SAMPLER_2D_SHADOW_EXT                                0x8B62
-#endif
-
-/* GL_EXT_sRGB */
-#ifndef GL_EXT_sRGB
-#define GL_SRGB_EXT                                             0x8C40
-#define GL_SRGB_ALPHA_EXT                                       0x8C42
-#define GL_SRGB8_ALPHA8_EXT                                     0x8C43
-#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT            0x8210
-#endif
-
-/* GL_EXT_texture_compression_dxt1 */
-#ifndef GL_EXT_texture_compression_dxt1
-#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT                         0x83F0
-#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT                        0x83F1
-#endif
-
-/* GL_EXT_texture_filter_anisotropic */
-#ifndef GL_EXT_texture_filter_anisotropic
-#define GL_TEXTURE_MAX_ANISOTROPY_EXT                           0x84FE
-#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                       0x84FF
-#endif
-
-/* GL_EXT_texture_format_BGRA8888 */
-#ifndef GL_EXT_texture_format_BGRA8888
-#define GL_BGRA_EXT                                             0x80E1
-#endif
-
-/* GL_EXT_texture_rg */
-#ifndef GL_EXT_texture_rg
-#define GL_RED_EXT                                              0x1903
-#define GL_RG_EXT                                               0x8227
-#define GL_R8_EXT                                               0x8229
-#define GL_RG8_EXT                                              0x822B
-#endif
-
-/* GL_EXT_texture_storage */
-#ifndef GL_EXT_texture_storage
-#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT                         0x912F
-#define GL_ALPHA8_EXT                                           0x803C
-#define GL_LUMINANCE8_EXT                                       0x8040
-#define GL_LUMINANCE8_ALPHA8_EXT                                0x8045
-#define GL_RGBA32F_EXT                                          0x8814
-#define GL_RGB32F_EXT                                           0x8815
-#define GL_ALPHA32F_EXT                                         0x8816
-#define GL_LUMINANCE32F_EXT                                     0x8818
-#define GL_LUMINANCE_ALPHA32F_EXT                               0x8819
-/* reuse GL_RGBA16F_EXT */
-#define GL_RGB16F_EXT                                           0x881B
-#define GL_ALPHA16F_EXT                                         0x881C
-#define GL_LUMINANCE16F_EXT                                     0x881E
-#define GL_LUMINANCE_ALPHA16F_EXT                               0x881F
-#define GL_RGB10_A2_EXT                                         0x8059
-#define GL_RGB10_EXT                                            0x8052
-#define GL_BGRA8_EXT                                            0x93A1
-#endif
-
-/* GL_EXT_texture_type_2_10_10_10_REV */
-#ifndef GL_EXT_texture_type_2_10_10_10_REV
-#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT                      0x8368
-#endif
-
-/* GL_EXT_unpack_subimage */
-#ifndef GL_EXT_unpack_subimage
-#define GL_UNPACK_ROW_LENGTH                                    0x0CF2
-#define GL_UNPACK_SKIP_ROWS                                     0x0CF3
-#define GL_UNPACK_SKIP_PIXELS                                   0x0CF4
-#endif
-
-/*------------------------------------------------------------------------*
- * DMP extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_DMP_shader_binary */
-#ifndef GL_DMP_shader_binary
-#define GL_SHADER_BINARY_DMP                                    0x9250
-#endif
-
-/*------------------------------------------------------------------------*
- * IMG extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_IMG_program_binary */
-#ifndef GL_IMG_program_binary
-#define GL_SGX_PROGRAM_BINARY_IMG                               0x9130
-#endif
-
-/* GL_IMG_read_format */
-#ifndef GL_IMG_read_format
-#define GL_BGRA_IMG                                             0x80E1
-#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG                       0x8365
-#endif
-
-/* GL_IMG_shader_binary */
-#ifndef GL_IMG_shader_binary
-#define GL_SGX_BINARY_IMG                                       0x8C0A
-#endif
-
-/* GL_IMG_texture_compression_pvrtc */
-#ifndef GL_IMG_texture_compression_pvrtc
-#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG                      0x8C00
-#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG                      0x8C01
-#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG                     0x8C02
-#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG                     0x8C03
-#endif
-
-/* GL_IMG_multisampled_render_to_texture */
-#ifndef GL_IMG_multisampled_render_to_texture
-#define GL_RENDERBUFFER_SAMPLES_IMG                             0x9133
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG               0x9134
-#define GL_MAX_SAMPLES_IMG                                      0x9135
-#define GL_TEXTURE_SAMPLES_IMG                                  0x9136
-#endif
-
-/*------------------------------------------------------------------------*
- * NV extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_NV_coverage_sample */
-#ifndef GL_NV_coverage_sample
-#define GL_COVERAGE_COMPONENT_NV                                0x8ED0
-#define GL_COVERAGE_COMPONENT4_NV                               0x8ED1
-#define GL_COVERAGE_ATTACHMENT_NV                               0x8ED2
-#define GL_COVERAGE_BUFFERS_NV                                  0x8ED3
-#define GL_COVERAGE_SAMPLES_NV                                  0x8ED4
-#define GL_COVERAGE_ALL_FRAGMENTS_NV                            0x8ED5
-#define GL_COVERAGE_EDGE_FRAGMENTS_NV                           0x8ED6
-#define GL_COVERAGE_AUTOMATIC_NV                                0x8ED7
-#define GL_COVERAGE_BUFFER_BIT_NV                               0x8000
-#endif
-
-/* GL_NV_depth_nonlinear */
-#ifndef GL_NV_depth_nonlinear
-#define GL_DEPTH_COMPONENT16_NONLINEAR_NV                       0x8E2C
-#endif
-
-/* GL_NV_draw_buffers */
-#ifndef GL_NV_draw_buffers
-#define GL_MAX_DRAW_BUFFERS_NV                                  0x8824
-#define GL_DRAW_BUFFER0_NV                                      0x8825
-#define GL_DRAW_BUFFER1_NV                                      0x8826
-#define GL_DRAW_BUFFER2_NV                                      0x8827
-#define GL_DRAW_BUFFER3_NV                                      0x8828
-#define GL_DRAW_BUFFER4_NV                                      0x8829
-#define GL_DRAW_BUFFER5_NV                                      0x882A
-#define GL_DRAW_BUFFER6_NV                                      0x882B
-#define GL_DRAW_BUFFER7_NV                                      0x882C
-#define GL_DRAW_BUFFER8_NV                                      0x882D
-#define GL_DRAW_BUFFER9_NV                                      0x882E
-#define GL_DRAW_BUFFER10_NV                                     0x882F
-#define GL_DRAW_BUFFER11_NV                                     0x8830
-#define GL_DRAW_BUFFER12_NV                                     0x8831
-#define GL_DRAW_BUFFER13_NV                                     0x8832
-#define GL_DRAW_BUFFER14_NV                                     0x8833
-#define GL_DRAW_BUFFER15_NV                                     0x8834
-#define GL_COLOR_ATTACHMENT0_NV                                 0x8CE0
-#define GL_COLOR_ATTACHMENT1_NV                                 0x8CE1
-#define GL_COLOR_ATTACHMENT2_NV                                 0x8CE2
-#define GL_COLOR_ATTACHMENT3_NV                                 0x8CE3
-#define GL_COLOR_ATTACHMENT4_NV                                 0x8CE4
-#define GL_COLOR_ATTACHMENT5_NV                                 0x8CE5
-#define GL_COLOR_ATTACHMENT6_NV                                 0x8CE6
-#define GL_COLOR_ATTACHMENT7_NV                                 0x8CE7
-#define GL_COLOR_ATTACHMENT8_NV                                 0x8CE8
-#define GL_COLOR_ATTACHMENT9_NV                                 0x8CE9
-#define GL_COLOR_ATTACHMENT10_NV                                0x8CEA
-#define GL_COLOR_ATTACHMENT11_NV                                0x8CEB
-#define GL_COLOR_ATTACHMENT12_NV                                0x8CEC
-#define GL_COLOR_ATTACHMENT13_NV                                0x8CED
-#define GL_COLOR_ATTACHMENT14_NV                                0x8CEE
-#define GL_COLOR_ATTACHMENT15_NV                                0x8CEF
-#endif
-
-/* GL_NV_fbo_color_attachments */
-#ifndef GL_NV_fbo_color_attachments
-#define GL_MAX_COLOR_ATTACHMENTS_NV                             0x8CDF
-/* GL_COLOR_ATTACHMENT{0-15}_NV defined in GL_NV_draw_buffers already. */
-#endif
-
-/* GL_NV_fence */
-#ifndef GL_NV_fence
-#define GL_ALL_COMPLETED_NV                                     0x84F2
-#define GL_FENCE_STATUS_NV                                      0x84F3
-#define GL_FENCE_CONDITION_NV                                   0x84F4
-#endif
-
-/* GL_NV_read_buffer */
-#ifndef GL_NV_read_buffer
-#define GL_READ_BUFFER_NV                                       0x0C02
-#endif
-
-/* GL_NV_read_buffer_front */
-/* No new tokens introduced by this extension. */
-
-/* GL_NV_read_depth */
-/* No new tokens introduced by this extension. */
-
-/* GL_NV_read_depth_stencil */
-/* No new tokens introduced by this extension. */
-
-/* GL_NV_read_stencil */
-/* No new tokens introduced by this extension. */
-
-/* GL_NV_texture_compression_s3tc_update */
-/* No new tokens introduced by this extension. */
-
-/* GL_NV_texture_npot_2D_mipmap */
-/* No new tokens introduced by this extension. */
-
-/*------------------------------------------------------------------------*
- * QCOM extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_QCOM_alpha_test */
-#ifndef GL_QCOM_alpha_test
-#define GL_ALPHA_TEST_QCOM                                      0x0BC0
-#define GL_ALPHA_TEST_FUNC_QCOM                                 0x0BC1
-#define GL_ALPHA_TEST_REF_QCOM                                  0x0BC2
-#endif
-
-/* GL_QCOM_driver_control */
-/* No new tokens introduced by this extension. */
-
-/* GL_QCOM_extended_get */
-#ifndef GL_QCOM_extended_get
-#define GL_TEXTURE_WIDTH_QCOM                                   0x8BD2
-#define GL_TEXTURE_HEIGHT_QCOM                                  0x8BD3
-#define GL_TEXTURE_DEPTH_QCOM                                   0x8BD4
-#define GL_TEXTURE_INTERNAL_FORMAT_QCOM                         0x8BD5
-#define GL_TEXTURE_FORMAT_QCOM                                  0x8BD6
-#define GL_TEXTURE_TYPE_QCOM                                    0x8BD7
-#define GL_TEXTURE_IMAGE_VALID_QCOM                             0x8BD8
-#define GL_TEXTURE_NUM_LEVELS_QCOM                              0x8BD9
-#define GL_TEXTURE_TARGET_QCOM                                  0x8BDA
-#define GL_TEXTURE_OBJECT_VALID_QCOM                            0x8BDB
-#define GL_STATE_RESTORE                                        0x8BDC
-#endif
-
-/* GL_QCOM_extended_get2 */
-/* No new tokens introduced by this extension. */
-
-/* GL_QCOM_perfmon_global_mode */
-#ifndef GL_QCOM_perfmon_global_mode
-#define GL_PERFMON_GLOBAL_MODE_QCOM                             0x8FA0
-#endif
-
-/* GL_QCOM_writeonly_rendering */
-#ifndef GL_QCOM_writeonly_rendering
-#define GL_WRITEONLY_RENDERING_QCOM                             0x8823
-#endif
-
-/* GL_QCOM_tiled_rendering */
-#ifndef GL_QCOM_tiled_rendering
-#define GL_COLOR_BUFFER_BIT0_QCOM                               0x00000001
-#define GL_COLOR_BUFFER_BIT1_QCOM                               0x00000002
-#define GL_COLOR_BUFFER_BIT2_QCOM                               0x00000004
-#define GL_COLOR_BUFFER_BIT3_QCOM                               0x00000008
-#define GL_COLOR_BUFFER_BIT4_QCOM                               0x00000010
-#define GL_COLOR_BUFFER_BIT5_QCOM                               0x00000020
-#define GL_COLOR_BUFFER_BIT6_QCOM                               0x00000040
-#define GL_COLOR_BUFFER_BIT7_QCOM                               0x00000080
-#define GL_DEPTH_BUFFER_BIT0_QCOM                               0x00000100
-#define GL_DEPTH_BUFFER_BIT1_QCOM                               0x00000200
-#define GL_DEPTH_BUFFER_BIT2_QCOM                               0x00000400
-#define GL_DEPTH_BUFFER_BIT3_QCOM                               0x00000800
-#define GL_DEPTH_BUFFER_BIT4_QCOM                               0x00001000
-#define GL_DEPTH_BUFFER_BIT5_QCOM                               0x00002000
-#define GL_DEPTH_BUFFER_BIT6_QCOM                               0x00004000
-#define GL_DEPTH_BUFFER_BIT7_QCOM                               0x00008000
-#define GL_STENCIL_BUFFER_BIT0_QCOM                             0x00010000
-#define GL_STENCIL_BUFFER_BIT1_QCOM                             0x00020000
-#define GL_STENCIL_BUFFER_BIT2_QCOM                             0x00040000
-#define GL_STENCIL_BUFFER_BIT3_QCOM                             0x00080000
-#define GL_STENCIL_BUFFER_BIT4_QCOM                             0x00100000
-#define GL_STENCIL_BUFFER_BIT5_QCOM                             0x00200000
-#define GL_STENCIL_BUFFER_BIT6_QCOM                             0x00400000
-#define GL_STENCIL_BUFFER_BIT7_QCOM                             0x00800000
-#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM                         0x01000000
-#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM                         0x02000000
-#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM                         0x04000000
-#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM                         0x08000000
-#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM                         0x10000000
-#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM                         0x20000000
-#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM                         0x40000000
-#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM                         0x80000000
-#endif
-
-/*------------------------------------------------------------------------*
- * VIV extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_VIV_shader_binary */
-#ifndef GL_VIV_shader_binary
-#define GL_SHADER_BINARY_VIV                                    0x8FC4
-#endif
-
-/*------------------------------------------------------------------------*
- * End of extension tokens, start of corresponding extension functions
- *------------------------------------------------------------------------*/
-
-/*------------------------------------------------------------------------*
- * OES extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_OES_compressed_ETC1_RGB8_texture */
-#ifndef GL_OES_compressed_ETC1_RGB8_texture
-#define GL_OES_compressed_ETC1_RGB8_texture 1
-#endif
-
-/* GL_OES_compressed_paletted_texture */
-#ifndef GL_OES_compressed_paletted_texture
-#define GL_OES_compressed_paletted_texture 1
-#endif
-
-/* GL_OES_depth24 */
-#ifndef GL_OES_depth24
-#define GL_OES_depth24 1
-#endif
-
-/* GL_OES_depth32 */
-#ifndef GL_OES_depth32
-#define GL_OES_depth32 1
-#endif
-
-/* GL_OES_depth_texture */
-#ifndef GL_OES_depth_texture
-#define GL_OES_depth_texture 1
-#endif
-
-/* GL_OES_EGL_image */
-#ifndef GL_OES_EGL_image
-#define GL_OES_EGL_image 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glEGLImageTargetTexture2DOES GLES2_GET_FUN(EGLImageTargetTexture2DOES)
-#define glEGLImageTargetRenderbufferStorageOES GLES2_GET_FUN(EGLImageTargetRenderbufferStorageOES)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
-GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
-typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
-#endif
-
-/* GL_OES_EGL_image_external */
-#ifndef GL_OES_EGL_image_external
-#define GL_OES_EGL_image_external 1
-/* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */
-#endif
-
-/* GL_OES_element_index_uint */
-#ifndef GL_OES_element_index_uint
-#define GL_OES_element_index_uint 1
-#endif
-
-/* GL_OES_fbo_render_mipmap */
-#ifndef GL_OES_fbo_render_mipmap
-#define GL_OES_fbo_render_mipmap 1
-#endif
-
-/* GL_OES_fragment_precision_high */
-#ifndef GL_OES_fragment_precision_high
-#define GL_OES_fragment_precision_high 1
-#endif
-
-/* GL_OES_get_program_binary */
-#ifndef GL_OES_get_program_binary
-#define GL_OES_get_program_binary 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glGetProgramBinaryOES GLES2_GET_FUN(GetProgramBinaryOES)
-#define glProgramBinaryOES GLES2_GET_FUN(ProgramBinaryOES)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
-GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
-typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
-#endif
-
-/* GL_OES_mapbuffer */
-#ifndef GL_OES_mapbuffer
-#define GL_OES_mapbuffer 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glMapBufferOES GLES2_GET_FUN(MapBufferOES)
-#define glUnmapBufferOES GLES2_GET_FUN(UnmapBufferOES)
-#define glGetBufferPointervOES GLES2_GET_FUN(GetBufferPointervOES)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
-GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
-GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params);
-#endif
-#endif
-typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
-typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
-typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid** params);
-#endif
-
-/* GL_OES_packed_depth_stencil */
-#ifndef GL_OES_packed_depth_stencil
-#define GL_OES_packed_depth_stencil 1
-#endif
-
-/* GL_OES_rgb8_rgba8 */
-#ifndef GL_OES_rgb8_rgba8
-#define GL_OES_rgb8_rgba8 1
-#endif
-
-/* GL_OES_standard_derivatives */
-#ifndef GL_OES_standard_derivatives
-#define GL_OES_standard_derivatives 1
-#endif
-
-/* GL_OES_stencil1 */
-#ifndef GL_OES_stencil1
-#define GL_OES_stencil1 1
-#endif
-
-/* GL_OES_stencil4 */
-#ifndef GL_OES_stencil4
-#define GL_OES_stencil4 1
-#endif
-
-/* GL_OES_texture_3D */
-#ifndef GL_OES_texture_3D
-#define GL_OES_texture_3D 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glTexImage3DOES GLES2_GET_FUN(TexImage3DOES)
-#define glTexSubImage3DOES GLES2_GET_FUN(TexSubImage3DOES)
-#define glCopyTexSubImage3DOES GLES2_GET_FUN(CopyTexSubImage3DOES)
-#define glCompressedTexImage3DOES GLES2_GET_FUN(CompressedTexImage3DOES)
-#define glCompressedTexSubImage3DOES GLES2_GET_FUN(CompressedTexSubImage3DOES)
-#define glFramebufferTexture3DOES GLES2_GET_FUN(FramebufferTexture3DOES)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
-GL_APICALL void GL_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
-GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
-GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
-GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
-typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
-typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
-typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
-typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
-#endif
-
-/* GL_OES_texture_float */
-#ifndef GL_OES_texture_float
-#define GL_OES_texture_float 1
-#endif
-
-/* GL_OES_texture_float_linear */
-#ifndef GL_OES_texture_float_linear
-#define GL_OES_texture_float_linear 1
-#endif
-
-/* GL_OES_texture_half_float */
-#ifndef GL_OES_texture_half_float
-#define GL_OES_texture_half_float 1
-#endif
-
-/* GL_OES_texture_half_float_linear */
-#ifndef GL_OES_texture_half_float_linear
-#define GL_OES_texture_half_float_linear 1
-#endif
-
-/* GL_OES_texture_npot */
-#ifndef GL_OES_texture_npot
-#define GL_OES_texture_npot 1
-#endif
-
-/* GL_OES_vertex_array_object */
-#ifndef GL_OES_vertex_array_object
-#define GL_OES_vertex_array_object 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glBindVertexArrayOES GLES2_GET_FUN(BindVertexArrayOES)
-#define glDeleteVertexArraysOES GLES2_GET_FUN(DeleteVertexArraysOES)
-#define glGenVertexArraysOES GLES2_GET_FUN(GenVertexArraysOES)
-#define glIsVertexArrayOES GLES2_GET_FUN(IsVertexArrayOES)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
-GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
-GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
-GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
-typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
-typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
-typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array);
-#endif
-
-/* GL_OES_vertex_half_float */
-#ifndef GL_OES_vertex_half_float
-#define GL_OES_vertex_half_float 1
-#endif
-
-/* GL_OES_vertex_type_10_10_10_2 */
-#ifndef GL_OES_vertex_type_10_10_10_2
-#define GL_OES_vertex_type_10_10_10_2 1
-#endif
-
-/*------------------------------------------------------------------------*
- * AMD extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_AMD_compressed_3DC_texture */
-#ifndef GL_AMD_compressed_3DC_texture
-#define GL_AMD_compressed_3DC_texture 1
-#endif
-
-/* GL_AMD_compressed_ATC_texture */
-#ifndef GL_AMD_compressed_ATC_texture
-#define GL_AMD_compressed_ATC_texture 1
-#endif
-
-/* AMD_performance_monitor */
-#ifndef GL_AMD_performance_monitor
-#define GL_AMD_performance_monitor 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glGetPerfMonitorGroupsAMD GLES2_GET_FUN(GetPerfMonitorGroupsAMD)
-#define glGetPerfMonitorCountersAMD GLES2_GET_FUN(GetPerfMonitorCountersAMD)
-#define glGetPerfMonitorGroupStringAMD GLES2_GET_FUN(GetPerfMonitorGroupStringAMD)
-#define glGetPerfMonitorCounterStringAMD GLES2_GET_FUN(GetPerfMonitorCounterStringAMD)
-#define glGetPerfMonitorCounterInfoAMD GLES2_GET_FUN(GetPerfMonitorCounterInfoAMD)
-#define glGenPerfMonitorsAMD GLES2_GET_FUN(GenPerfMonitorsAMD)
-#define glDeletePerfMonitorsAMD GLES2_GET_FUN(DeletePerfMonitorsAMD)
-#define glSelectPerfMonitorCountersAMD GLES2_GET_FUN(SelectPerfMonitorCountersAMD)
-#define glBeginPerfMonitorAMD GLES2_GET_FUN(BeginPerfMonitorAMD)
-#define glEndPerfMonitorAMD GLES2_GET_FUN(EndPerfMonitorAMD)
-#define glGetPerfMonitorCounterDataAMD GLES2_GET_FUN(GetPerfMonitorCounterDataAMD)
-
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
-GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
-GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
-GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
-GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
-GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
-GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
-GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
-GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
-GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
-GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
-typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
-typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
-typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
-typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
-typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
-typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
-typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
-typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
-typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
-typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
-#endif
-
-/* GL_AMD_program_binary_Z400 */
-#ifndef GL_AMD_program_binary_Z400
-#define GL_AMD_program_binary_Z400 1
-#endif
-
-/*------------------------------------------------------------------------*
- * ANGLE extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_ANGLE_framebuffer_blit */
-#ifndef GL_ANGLE_framebuffer_blit
-#define GL_ANGLE_framebuffer_blit 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glBlitFramebufferANGLE GLES2_GET_FUN(BlitFramebufferANGLE)
-
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-#endif
-
-/* GL_ANGLE_framebuffer_multisample */
-#ifndef GL_ANGLE_framebuffer_multisample
-#define GL_ANGLE_framebuffer_multisample 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glRenderbufferStorageMultisampleANGLE GLES2_GET_FUN(RenderbufferStorageMultisampleANGLE)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-#endif
-
-/* GL_ANGLE_instanced_arrays */
-#ifndef GL_ANGLE_instanced_arrays
-#define GL_ANGLE_instanced_arrays 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE(GLuint index, GLuint divisor);
-GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
-GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
-#endif
-typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor);
-typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
-typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
-#endif
-
-/*------------------------------------------------------------------------*
- * APPLE extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_APPLE_rgb_422 */
-#ifndef GL_APPLE_rgb_422
-#define GL_APPLE_rgb_422 1
-#endif
-
-/* GL_APPLE_framebuffer_multisample */
-#ifndef GL_APPLE_framebuffer_multisample
-#define GL_APPLE_framebuffer_multisample 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glRenderbufferStorageMultisampleAPPLE GLES2_GET_FUN(RenderbufferStorageMultisampleAPPLE)
-#define glResolveMultisampleFramebufferAPPLE GLES2_GET_FUN(ResolveMultisampleFramebufferAPPLE)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
-GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void);
-#endif
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void);
-#endif
-
-/* GL_APPLE_texture_format_BGRA8888 */
-#ifndef GL_APPLE_texture_format_BGRA8888
-#define GL_APPLE_texture_format_BGRA8888 1
-#endif
-
-/* GL_APPLE_texture_max_level */
-#ifndef GL_APPLE_texture_max_level
-#define GL_APPLE_texture_max_level 1
-#endif
-
-/*------------------------------------------------------------------------*
- * ARM extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_ARM_mali_shader_binary */
-#ifndef GL_ARM_mali_shader_binary
-#define GL_ARM_mali_shader_binary 1
-#endif
-
-/* GL_ARM_rgba8 */
-#ifndef GL_ARM_rgba8
-#define GL_ARM_rgba8 1
-#endif
-
-/*------------------------------------------------------------------------*
- * EXT extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_EXT_blend_minmax */
-#ifndef GL_EXT_blend_minmax
-#define GL_EXT_blend_minmax 1
-#endif
-
-/* GL_EXT_color_buffer_half_float */
-#ifndef GL_EXT_color_buffer_half_float
-#define GL_EXT_color_buffer_half_float 1
-#endif
-
-/* GL_EXT_debug_label */
-#ifndef GL_EXT_debug_label
-#define GL_EXT_debug_label 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glLabelObjectEXT GLES2_GET_FUN(LabelObjectEXT)
-#define glGetObjectLabelEXT GLES2_GET_FUN(GetObjectLabelEXT)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label);
-GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label);
-typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
-#endif
-
-/* GL_EXT_debug_marker */
-#ifndef GL_EXT_debug_marker
-#define GL_EXT_debug_marker 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glInsertEventMarkerEXT GLES2_GET_FUN(InsertEventMarkerEXT)
-#define glPushGroupMarkerEXT GLES2_GET_FUN(PushGroupMarkerEXT)
-#define glPopGroupMarkerEXT GLES2_GET_FUN(PopGroupMarkerEXT)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker);
-GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker);
-GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker);
-typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker);
-typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void);
-#endif
-
-/* GL_EXT_discard_framebuffer */
-#ifndef GL_EXT_discard_framebuffer
-#define GL_EXT_discard_framebuffer 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glDiscardFramebufferEXT GLES2_GET_FUN(DiscardFramebufferEXT)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
-#endif
-
-/* GL_EXT_multisampled_render_to_texture */
-#ifndef GL_EXT_multisampled_render_to_texture
-#define GL_EXT_multisampled_render_to_texture 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glRenderbufferStorageMultisampleEXT GLES2_GET_FUN(RenderbufferStorageMultisampleEXT)
-#define glFramebufferTexture2DMultisampleEXT GLES2_GET_FUN(FramebufferTexture2DMultisampleEXT)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
-GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
-#endif
-
-#ifndef GL_EXT_multi_draw_arrays
-#define GL_EXT_multi_draw_arrays 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glMultiDrawArraysEXT GLES2_GET_FUN(MultiDrawArraysEXT)
-#define glMultiDrawElementsEXT GLES2_GET_FUN(MultiDrawElementsEXT)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
-GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
-#endif
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
-typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
-#endif
-
-/* GL_EXT_occlusion_query_boolean */
-#ifndef GL_EXT_occlusion_query_boolean
-#define GL_EXT_occlusion_query_boolean 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glGenQueriesEXT GLES2_GET_FUN(GenQueriesEXT)
-#define glDeleteQueriesEXT GLES2_GET_FUN(DeleteQueriesEXT)
-#define glIsQueryEXT GLES2_GET_FUN(IsQueryEXT)
-#define glBeginQueryEXT GLES2_GET_FUN(BeginQueryEXT)
-#define glEndQueryEXT GLES2_GET_FUN(EndQueryEXT)
-#define glGetQueryivEXT GLES2_GET_FUN(GetQueryivEXT)
-#define glGetQueryObjectuivEXT GLES2_GET_FUN(GetQueryObjectuivEXT)
-
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids);
-GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids);
-GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id);
-GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id);
-GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target);
-GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params);
-GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids);
-typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids);
-typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id);
-typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id);
-typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target);
-typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params);
-#endif
-
-/* GL_EXT_read_format_bgra */
-#ifndef GL_EXT_read_format_bgra
-#define GL_EXT_read_format_bgra 1
-#endif
-
-/* GL_EXT_robustness */
-#ifndef GL_EXT_robustness
-#define GL_EXT_robustness 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glGetGraphicsResetStatusEXT GLES2_GET_FUN(GetGraphicsResetStatusEXT)
-#define glReadnPixelsEXT GLES2_GET_FUN(ReadnPixelsEXT)
-#define glGetnUniformfvEXT GLES2_GET_FUN(GetnUniformfvEXT)
-#define glGetnUniformivEXT GLES2_GET_FUN(GetnUniformivEXT)
-
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void);
-GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
-GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, float *params);
-GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params);
-#endif
-#endif
-typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void);
-typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
-typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, float *params);
-typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params);
-#endif
-
-/* GL_EXT_separate_shader_objects */
-#ifndef GL_EXT_separate_shader_objects
-#define GL_EXT_separate_shader_objects 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glUseProgramStagesEXT GLES2_GET_FUN(UseProgramStagesEXT)
-#define glActiveShaderProgramEXT GLES2_GET_FUN(ActiveShaderProgramEXT)
-#define glCreateShaderProgramvEXT GLES2_GET_FUN(CreateShaderProgramvEXT)
-#define glBindProgramPipelineEXT GLES2_GET_FUN(BindProgramPipelineEXT)
-#define glDeleteProgramPipelinesEXT GLES2_GET_FUN(DeleteProgramPipelinesEXT)
-#define glGenProgramPipelinesEXT GLES2_GET_FUN(GenProgramPipelinesEXT)
-#define glIsProgramPipelineEXT GLES2_GET_FUN(IsProgramPipelineEXT)
-#define glProgramParameteriEXT GLES2_GET_FUN(ProgramParameteriEXT)
-#define glGetProgramPipelineivEXT GLES2_GET_FUN(GetProgramPipelineivEXT)
-#define glProgramUniform1iEXT GLES2_GET_FUN(ProgramUniform1iEXT)
-#define glProgramUniform2iEXT GLES2_GET_FUN(ProgramUniform2iEXT)
-#define glProgramUniform3iEXT GLES2_GET_FUN(ProgramUniform3iEXT)
-#define glProgramUniform4iEXT GLES2_GET_FUN(ProgramUniform4iEXT)
-#define glProgramUniform1fEXT GLES2_GET_FUN(ProgramUniform1fEXT)
-#define glProgramUniform2fEXT GLES2_GET_FUN(ProgramUniform2fEXT)
-#define glProgramUniform3fEXT GLES2_GET_FUN(ProgramUniform3fEXT)
-#define glProgramUniform4fEXT GLES2_GET_FUN(ProgramUniform4fEXT)
-#define glProgramUniform1ivEXT GLES2_GET_FUN(ProgramUniform1ivEXT)
-#define glProgramUniform2ivEXT GLES2_GET_FUN(ProgramUniform2ivEXT)
-#define glProgramUniform3ivEXT GLES2_GET_FUN(ProgramUniform3ivEXT)
-#define glProgramUniform4ivEXT GLES2_GET_FUN(ProgramUniform4ivEXT)
-#define glProgramUniform1fvEXT GLES2_GET_FUN(ProgramUniform1fvEXT)
-#define glProgramUniform2fvEXT GLES2_GET_FUN(ProgramUniform2fvEXT)
-#define glProgramUniform3fvEXT GLES2_GET_FUN(ProgramUniform3fvEXT)
-#define glProgramUniform4fvEXT GLES2_GET_FUN(ProgramUniform4fvEXT)
-#define glProgramUniformMatrix2fvEXT GLES2_GET_FUN(ProgramUniformMatrix2fvEXT)
-#define glProgramUniformMatrix3fvEXT GLES2_GET_FUN(ProgramUniformMatrix3fvEXT)
-#define glProgramUniformMatrix4fvEXT GLES2_GET_FUN(ProgramUniformMatrix4fvEXT)
-#define glValidateProgramPipelineEXT GLES2_GET_FUN(ValidateProgramPipelineEXT)
-#define glGetProgramPipelineInfoLogEXT GLES2_GET_FUN(GetProgramPipelineInfoLogEXT)
-
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program);
-GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program);
-GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings);
-GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline);
-GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines);
-GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines);
-GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline);
-GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value);
-GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params);
-GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint x);
-GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint x, GLint y);
-GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z);
-GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
-GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat x);
-GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat x, GLfloat y);
-GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
-GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
-GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
-GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
-GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
-GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
-GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
-GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
-GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
-GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline);
-GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
-typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program);
-typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings);
-typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
-typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines);
-typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines);
-typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
-typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
-typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint x);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint x, GLint y);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat x);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
-typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
-#endif
-
-/* GL_EXT_shader_texture_lod */
-#ifndef GL_EXT_shader_texture_lod
-#define GL_EXT_shader_texture_lod 1
-#endif
-
-/* GL_EXT_shadow_samplers */
-#ifndef GL_EXT_shadow_samplers
-#define GL_EXT_shadow_samplers 1
-#endif
-
-/* GL_EXT_sRGB */
-#ifndef GL_EXT_sRGB
-#define GL_EXT_sRGB 1
-#endif
-
-/* GL_EXT_texture_compression_dxt1 */
-#ifndef GL_EXT_texture_compression_dxt1
-#define GL_EXT_texture_compression_dxt1 1
-#endif
-
-/* GL_EXT_texture_filter_anisotropic */
-#ifndef GL_EXT_texture_filter_anisotropic
-#define GL_EXT_texture_filter_anisotropic 1
-#endif
-
-/* GL_EXT_texture_format_BGRA8888 */
-#ifndef GL_EXT_texture_format_BGRA8888
-#define GL_EXT_texture_format_BGRA8888 1
-#endif
-
-/* GL_EXT_texture_rg */
-#ifndef GL_EXT_texture_rg
-#define GL_EXT_texture_rg 1
-#endif
-
-/* GL_EXT_texture_storage */
-#ifndef GL_EXT_texture_storage
-#define GL_EXT_texture_storage 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glTexStorage1DEXT     GLES2_GET_FUN(TexStorage1DEXT)
-#define glTexStorage2DEXT     GLES2_GET_FUN(TexStorage2DEXT)
-#define glTexStorage3DEXT     GLES2_GET_FUN(TexStorage3DEXT)
-#define glTextureStorage1DEXT GLES2_GET_FUN(TextureStorage1DEXT)
-#define glTextureStorage2DEXT GLES2_GET_FUN(TextureStorage2DEXT)
-#define glTextureStorage3DEXT GLES2_GET_FUN(TextureStorage3DEXT)
-
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
-GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
-GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
-GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
-GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
-GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
-typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
-typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
-typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
-#endif
-
-/* GL_EXT_texture_type_2_10_10_10_REV */
-#ifndef GL_EXT_texture_type_2_10_10_10_REV
-#define GL_EXT_texture_type_2_10_10_10_REV 1
-#endif
-
-/* GL_EXT_unpack_subimage */
-#ifndef GL_EXT_unpack_subimage
-#define GL_EXT_unpack_subimage 1
-#endif
-
-/*------------------------------------------------------------------------*
- * DMP extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_DMP_shader_binary */
-#ifndef GL_DMP_shader_binary
-#define GL_DMP_shader_binary 1
-#endif
-
-/*------------------------------------------------------------------------*
- * IMG extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_IMG_program_binary */
-#ifndef GL_IMG_program_binary
-#define GL_IMG_program_binary 1
-#endif
-
-/* GL_IMG_read_format */
-#ifndef GL_IMG_read_format
-#define GL_IMG_read_format 1
-#endif
-
-/* GL_IMG_shader_binary */
-#ifndef GL_IMG_shader_binary
-#define GL_IMG_shader_binary 1
-#endif
-
-/* GL_IMG_texture_compression_pvrtc */
-#ifndef GL_IMG_texture_compression_pvrtc
-#define GL_IMG_texture_compression_pvrtc 1
-#endif
-
-/* GL_IMG_multisampled_render_to_texture */
-#ifndef GL_IMG_multisampled_render_to_texture
-#define GL_IMG_multisampled_render_to_texture 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glRenderbufferStorageMultisampleIMG GLES2_GET_FUN(RenderbufferStorageMultisampleIMG)
-#define glFramebufferTexture2DMultisampleIMG GLES2_GET_FUN(FramebufferTexture2DMultisampleIMG)
-
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
-GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
-#endif
-
-/*------------------------------------------------------------------------*
- * NV extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_NV_coverage_sample */
-#ifndef GL_NV_coverage_sample
-#define GL_NV_coverage_sample 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glCoverageMaskNV GLES2_GET_FUN(CoverageMaskNV)
-#define glCoverageOperationNV GLES2_GET_FUN(CoverageOperationNV)
-
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask);
-GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask);
-typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation);
-#endif
-
-/* GL_NV_depth_nonlinear */
-#ifndef GL_NV_depth_nonlinear
-#define GL_NV_depth_nonlinear 1
-#endif
-
-/* GL_NV_draw_buffers */
-#ifndef GL_NV_draw_buffers
-#define GL_NV_draw_buffers 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glDrawBuffersNV GLES2_GET_FUN(DrawBuffersNV)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs);
-#endif
-
-/* GL_NV_fbo_color_attachments */
-#ifndef GL_NV_fbo_color_attachments
-#define GL_NV_fbo_color_attachments 1
-#endif
-
-/* GL_NV_fence */
-#ifndef GL_NV_fence
-#define GL_NV_fence 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glDeleteFencesNV GLES2_GET_FUN(DeleteFencesNV)
-#define glGenFencesNV GLES2_GET_FUN(GenFencesNV)
-#define glIsFenceNV GLES2_GET_FUN(IsFenceNV)
-#define glTestFenceNV GLES2_GET_FUN(TestFenceNV)
-#define glGetFenceivNV GLES2_GET_FUN(GetFenceivNV)
-#define glFinishFenceNV GLES2_GET_FUN(FinishFenceNV)
-#define glSetFenceNV GLES2_GET_FUN(SetFenceNV)
-
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
-GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
-GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint);
-GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint);
-GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
-GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint);
-GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
-typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
-typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
-typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
-typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
-typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
-typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
-#endif
-
-/* GL_NV_read_buffer */
-#ifndef GL_NV_read_buffer
-#define GL_NV_read_buffer 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glReadBufferNV GLES2_GET_FUN(ReadBufferNV)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode);
-#endif
-
-/* GL_NV_read_buffer_front */
-#ifndef GL_NV_read_buffer_front
-#define GL_NV_read_buffer_front 1
-#endif
-
-/* GL_NV_read_depth */
-#ifndef GL_NV_read_depth
-#define GL_NV_read_depth 1
-#endif
-
-/* GL_NV_read_depth_stencil */
-#ifndef GL_NV_read_depth_stencil
-#define GL_NV_read_depth_stencil 1
-#endif
-
-/* GL_NV_read_stencil */
-#ifndef GL_NV_read_stencil
-#define GL_NV_read_stencil 1
-#endif
-
-/* GL_NV_texture_compression_s3tc_update */
-#ifndef GL_NV_texture_compression_s3tc_update
-#define GL_NV_texture_compression_s3tc_update 1
-#endif
-
-/* GL_NV_texture_npot_2D_mipmap */
-#ifndef GL_NV_texture_npot_2D_mipmap
-#define GL_NV_texture_npot_2D_mipmap 1
-#endif
-
-/*------------------------------------------------------------------------*
- * QCOM extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_QCOM_alpha_test */
-#ifndef GL_QCOM_alpha_test
-#define GL_QCOM_alpha_test 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glAlphaFuncQCOM GLES2_GET_FUN(AlphaFuncQCOM)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref);
-#endif
-
-/* GL_QCOM_driver_control */
-#ifndef GL_QCOM_driver_control
-#define GL_QCOM_driver_control 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glGetDriverControlsQCOM GLES2_GET_FUN(GetDriverControlsQCOM)
-#define glGetDriverControlStringQCOM GLES2_GET_FUN(GetDriverControlStringQCOM)
-#define glEnableDriverControlQCOM GLES2_GET_FUN(EnableDriverControlQCOM)
-#define glDisableDriverControlQCOM GLES2_GET_FUN(DisableDriverControlQCOM)
-
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
-GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
-GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
-GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
-typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
-typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
-typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
-#endif
-
-/* GL_QCOM_extended_get */
-#ifndef GL_QCOM_extended_get
-#define GL_QCOM_extended_get 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glExtGetTexturesQCOM GLES2_GET_FUN(ExtGetTexturesQCOM)
-#define glExtGetBuffersQCOM GLES2_GET_FUN(ExtGetBuffersQCOM)
-#define glExtGetRenderbuffersQCOM GLES2_GET_FUN(ExtGetRenderbuffersQCOM)
-#define glExtGetFramebuffersQCOM GLES2_GET_FUN(ExtGetFramebuffersQCOM)
-#define glExtGetTexLevelParameterivQCOM GLES2_GET_FUN(ExtGetTexLevelParameterivQCOM)
-#define glExtTexObjectStateOverrideiQCOM GLES2_GET_FUN(ExtTexObjectStateOverrideiQCOM)
-#define glExtGetTexSubImageQCOM GLES2_GET_FUN(ExtGetTexSubImageQCOM)
-#define glExtGetBufferPointervQCOM GLES2_GET_FUN(ExtGetBufferPointervQCOM)
-
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
-GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
-GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
-GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
-GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
-GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
-GL_APICALL void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
-GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
-typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
-typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
-typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
-typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
-typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
-typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
-typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params);
-#endif
-
-/* GL_QCOM_extended_get2 */
-#ifndef GL_QCOM_extended_get2
-#define GL_QCOM_extended_get2 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glExtGetShadersQCOM GLES2_GET_FUN(ExtGetShadersQCOM)
-#define glExtGetProgramsQCOM GLES2_GET_FUN(ExtGetProgramsQCOM)
-#define glExtIsProgramBinaryQCOM GLES2_GET_FUN(ExtIsProgramBinaryQCOM)
-#define glExtGetProgramBinarySourceQCOM GLES2_GET_FUN(ExtGetProgramBinarySourceQCOM)
-
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
-GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
-GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
-GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
-typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
-typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
-typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
-#endif
-
-/* GL_QCOM_perfmon_global_mode */
-#ifndef GL_QCOM_perfmon_global_mode
-#define GL_QCOM_perfmon_global_mode 1
-#endif
-
-/* GL_QCOM_writeonly_rendering */
-#ifndef GL_QCOM_writeonly_rendering
-#define GL_QCOM_writeonly_rendering 1
-#endif
-
-/* GL_QCOM_tiled_rendering */
-#ifndef GL_QCOM_tiled_rendering
-#define GL_QCOM_tiled_rendering 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glStartTilingQCOM GLES2_GET_FUN(StartTilingQCOM)
-#define glEndTilingQCOM GLES2_GET_FUN(EndTilingQCOM)
-
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
-GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
-typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
-#endif
-
-/*------------------------------------------------------------------------*
- * VIV extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_VIV_shader_binary */
-#ifndef GL_VIV_shader_binary
-#define GL_VIV_shader_binary 1
-#endif
-
-/* GL_EXT_framebuffer_multisample */
-#ifndef GL_EXT_framebuffer_multisample
-#define GL_EXT_framebuffer_multisample 1
-
-#ifndef GL_DRAW_FRAMEBUFFER_BINDING
-#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
-#endif
-#ifndef GL_DRAW_FRAMEBUFFER_BINDING_EXT
-#define GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_DRAW_FRAMEBUFFER_BINDING
-#endif
-#ifndef GL_FRAMEBUFFER_BINDING
-#define GL_FRAMEBUFFER_BINDING 0x8CA6
-#endif
-#ifndef GL_FRAMEBUFFER_BINDING_EXT
-#define GL_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING
-#endif
-#ifndef GL_RENDERBUFFER_BINDING
-#define GL_RENDERBUFFER_BINDING 0x8CA7
-#endif
-#ifndef GL_RENDERBUFFER_BINDING_EXT
-#define GL_RENDERBUFFER_BINDING_EXT GL_RENDERBUFFER_BINDING
-#endif
-#ifndef GL_READ_FRAMEBUFFER
-#define GL_READ_FRAMEBUFFER 0x8CA8
-#endif
-#ifndef GL_READ_FRAMEBUFFER_EXT
-#define GL_READ_FRAMEBUFFER_EXT GL_READ_FRAMEBUFFER
-#endif
-#ifndef GL_DRAW_FRAMEBUFFER
-#define GL_DRAW_FRAMEBUFFER 0x8CA9
-#endif
-#ifndef GL_DRAW_FRAMEBUFFER_EXT
-#define GL_DRAW_FRAMEBUFFER_EXT GL_DRAW_FRAMEBUFFER
-#endif
-#ifndef GL_READ_FRAMEBUFFER_BINDING
-#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
-#endif
-#ifndef GL_READ_FRAMEBUFFER_BINDING_EXT
-#define GL_READ_FRAMEBUFFER_BINDING_EXT GL_READ_FRAMEBUFFER_BINDING
-#endif
-#ifndef GL_RENDERBUFFER_SAMPLES
-#define GL_RENDERBUFFER_SAMPLES 0x8CAB
-#endif
-#ifndef GL_RENDERBUFFER_SAMPLES_EXT
-#define GL_RENDERBUFFER_SAMPLES_EXT GL_RENDERBUFFER_SAMPLES
-#endif
-#ifndef GL_MAX_SAMPLES
-#define GL_MAX_SAMPLES 0x8D57
-#endif
-#ifndef GL_MAX_SAMPLES_EXT
-#define GL_MAX_SAMPLES_EXT GL_MAX_SAMPLES
-#endif
-#ifndef GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
-#endif
-#ifndef GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
-#endif
-
-#if 0  // Defined in GL_EXT_multisampled_render_to_texture
-#ifdef GL_GLEXT_PROTOTYPES
-#define glRenderbufferStorageMultisampleEXT GLES2_GET_FUN(RenderbufferStorageMultisampleEXT)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-#endif
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-#endif
-#endif
-
-#ifndef GL_EXT_framebuffer_blit
-#define GL_EXT_framebuffer_blit 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glBlitFramebufferEXT GLES2_GET_FUN(BlitFramebufferEXT)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glBlitFramebufferEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-#endif
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-#endif
-
-/* GL_CHROMIUM_map_sub */
-#ifndef GL_CHROMIUM_map_sub
-#define GL_CHROMIUM_map_sub 1
-#ifndef GL_READ_ONLY
-#define GL_READ_ONLY 0x88B8
-#endif
-#ifndef GL_WRITE_ONLY
-#define GL_WRITE_ONLY 0x88B9
-#endif
-#ifdef GL_GLEXT_PROTOTYPES
-#define glMapBufferSubDataCHROMIUM GLES2_GET_FUN(MapBufferSubDataCHROMIUM)
-#define glUnmapBufferSubDataCHROMIUM GLES2_GET_FUN(UnmapBufferSubDataCHROMIUM)
-#define glMapTexSubImage2DCHROMIUM GLES2_GET_FUN(MapTexSubImage2DCHROMIUM)
-#define glUnmapTexSubImage2DCHROMIUM GLES2_GET_FUN(UnmapTexSubImage2DCHROMIUM)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void* GL_APIENTRY glMapBufferSubDataCHROMIUM (GLuint target, GLintptr offset, GLsizeiptr size, GLenum access);
-GL_APICALL void  GL_APIENTRY glUnmapBufferSubDataCHROMIUM (const void* mem);
-GL_APICALL void* GL_APIENTRY glMapTexSubImage2DCHROMIUM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLenum access);
-GL_APICALL void  GL_APIENTRY glUnmapTexSubImage2DCHROMIUM (const void* mem);
-#endif
-#endif
-typedef void* (GL_APIENTRYP PFNGLMAPBUFFERSUBDATACHROMIUM) (GLuint target, GLintptr offset, GLsizeiptr size, GLenum access);
-typedef void  (GL_APIENTRYP PFNGLUNMAPBUFFERSUBDATACHROMIUM) (const void* mem);
-typedef void* (GL_APIENTRYP PFNGLMAPTEXSUBIMAGE2DCHROMIUM) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLenum access);
-typedef void  (GL_APIENTRYP PFNGLUNMAPTEXSUBIMAGE2DCHROMIUM) (const void* mem);
-#endif
-
-/* GL_CHROMIUM_resize */
-#ifndef GL_CHROMIUM_resize
-#define GL_CHROMIUM_resize 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glResizeCHROMIUM GLES2_GET_FUN(ResizeCHROMIUM)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glResizeCHROMIUM (
-    GLuint width, GLuint height, GLfloat scale_factor);
-#endif
-#else
-typedef void (GL_APIENTRYP PFNGLRESIZECHROMIUM) (GLuint width, GLuint height);
-#endif
-#endif
-
-/* GL_CHROMIUM_request_extension */
-/*
- * This extension allows other extensions to be turned on at run time.
- *
- * glGetRequestableExtensionsCHROMIUM returns a space-separated and
- * null-terminated string containing all of the extension names that
- * can be successfully requested on the current hardware. This may
- * include the names of extensions that have already been enabled.
- *
- * glRequestExtensionCHROMIUM requests that the given extension be
- * enabled. Call glGetString(GL_EXTENSIONS) to find out whether the
- * extension request succeeded.
- */
-#ifndef GL_CHROMIUM_request_extension
-#define GL_CHROMIUM_request_extension 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glGetRequestableExtensionsCHROMIUM GLES2_GET_FUN(GetRequestableExtensionsCHROMIUM)
-#define glRequestExtensionCHROMIUM GLES2_GET_FUN(RequestExtensionCHROMIUM)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL const GLchar* GL_APIENTRY glGetRequestableExtensionsCHROMIUM (void);
-GL_APICALL void GL_APIENTRY glRequestExtensionCHROMIUM (const GLchar *extension);
-#endif
-#else
-typedef const GLchar* (GL_APIENTRYP PFNGLGETREQUESTABLEEXTENSIONSCHROMIUM) (void);
-typedef void (GL_APIENTRYP PFNGLREQUESTEXTENSIONCHROMIUM) (const GLchar *extension);
-#endif
-#endif
-
-/* GL_CHROMIUM_get_multiple */
-/*
- * This extension provides functions for quering multiple GL state with a single
- * call.
- */
-#ifndef GL_CHROMIUM_get_multiple
-#define GL_CHROMIUM_get_multiple 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glGetProgramInfoCHROMIUM  GLES2_GET_FUN(GetProgramInfovCHROMIUM)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glGetProgramInfoCHROMIUM (GLuint program, GLsizei bufsize, GLsizei* size, void* info);
-#endif
-#else
-typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOCHROMIUM) ();
-#endif
-#endif
-
-/* GL_CHROMIUM_texture_compression_dxt3 */
-#ifndef GL_CHROMIUM_texture_compression_dxt3
-#define GL_CHROMIUM_texture_compression_dxt3 1
-#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT  0x83F2
-#endif
-
-/* GL_CHROMIUM_texture_compression_dxt5 */
-#ifndef GL_CHROMIUM_texture_compression_dxt5
-#define GL_CHROMIUM_texture_compression_dxt5 1
-#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT  0x83F3
-#endif
-
-/* GL_CHROMIUM_enable_feature */
-#ifndef GL_CHROMIUM_enable_feature
-#define GL_CHROMIUM_enable_feature 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glEnableFeatureCHROMIUM GLES2_GET_FUN(EnableFeatureCHROMIUM)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL GLboolean GL_APIENTRY glEnableFeatureCHROMIUM (const GLchar *feature);
-#endif
-#else
-typedef void (GL_APIENTRYP PFNGLENABLEFEATURECHROMIUM) (const GLchar *feature);
-#endif
-#endif
-
-/* GL_CHROMIUM_post_sub_buffer */
-/* This extension is modeled after EGL_NV_post_sub_buffer and
- * GLX_MESA_copy_sub_buffer. It's like a SwapBuffers, but it pushes a region
- * of the back buffer to the front buffer.
- */
-#ifndef GL_CHROMIUM_post_sub_buffer
-#define GL_CHROMIUM_post_sub_buffer 1
-#ifdef GL_GLEXT_PROTOTYPES
-#define glPostSubBufferCHROMIUM GLES2_GET_FUN(PostSubBufferCHROMIUM)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glPostSubBufferCHROMIUM (GLint x, GLint y, GLint width, GLint height);
-#endif
-#else
-typedef void (GL_APIENTRYP PFNGLPOSTSUBBUFFERCHROMIUM) (GLint x, GLint y, GLint width, GLint height);
-#endif
-#endif
-
-/* GL_ARB_robustness */
-/* This extension is subsetted for the moment, incorporating only the
- * enums necessary to describe the reasons that we might encounter for
- * losing the context. The entry point querying the reset status is
- * not yet incorporated; to do so, a spec will be needed of a GLES2
- * subset of GL_ARB_robustness.
- */
-#ifndef GL_ARB_robustness
-#define GL_ARB_robustness 1
-#ifndef GL_GUILTY_CONTEXT_RESET_ARB
-#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253
-#endif
-#ifndef GL_INNOCENT_CONTEXT_RESET_ARB
-#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
-#endif
-#ifndef GL_UNKNOWN_CONTEXT_RESET_ARB
-#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
-#endif
-#endif
-
-/* GL_ANGLE_translated_shader_source */
-#ifndef GL_ANGLE_translated_shader_source
-#define GL_ANGLE_translated_shader_source 1
-#ifndef GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE
-#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0
-#endif
-#ifdef GL_GLEXT_PROTOTYPES
-#define glGetTranslatedShaderSourceANGLE GLES2_GET_FUN(GetTranslatedShaderSourceANGLE)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
-#endif
-#endif
-typedef void (GL_APIENTRYP PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
-#endif
-
-/* GL_ARB_texture_rectangle */
-/* Exposes only the subset necessary to support GL_CHROMIUM_iosurface.
- */
-#ifndef GL_ARB_texture_rectangle
-#define GL_ARB_texture_rectangle 1
-#ifndef GL_TEXTURE_RECTANGLE_ARB
-#define GL_TEXTURE_RECTANGLE_ARB 0x84F5
-#endif
-#ifndef GL_TEXTURE_BINDING_RECTANGLE_ARB
-#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
-#endif
-#ifndef GL_SAMPLER_2D_RECT_ARB
-#define GL_SAMPLER_2D_RECT_ARB 0x8B63
-#endif
-#endif
-
-/* GL_CHROMIUM_copy_texture */
-#ifndef GL_CHROMIUM_copy_texture
-#ifndef GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM
-#define GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM 0x9241
-#endif
-#ifndef GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM
-#define GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM 0x9243
-#endif
-#ifdef GL_GLEXT_PROTOTYPES
-#define glCopyTextureCHROMIUM GLES2_GET_FUN(CopyTextureCHROMIUM)
-#define glCopySubTextureCHROMIUM GLES2_GET_FUN(CopySubTextureCHROMIUM)
-#if !defined(GLES2_USE_CPP_BINDINGS)
-GL_APICALL void GL_APIENTRY
-glCopyTextureCHROMIUM(GLenum source_id,
-                      GLint source_level,
-                      GLenum dest_target,
-                      GLenum dest_id,
-                      GLint dest_level,
-                      GLint internalformat,
-                      GLenum dest_type,
-                      GLboolean unpack_flip_y,
-                      GLboolean unpack_premultiply_alpha,
-                      GLboolean unpack_unmultiply_alpha);
-GL_APICALL void GL_APIENTRY
-glCopySubTextureCHROMIUM(GLenum source_id,
-                         GLint source_level,
-                         GLenum dest_target,
-                         GLenum dest_id,
-                         GLint dest_level,
-                         GLint xoffset,
-                         GLint yoffset,
-                         GLint x,
-                         GLint y,
-                         GLsizei width,
-                         GLsizei height,
-                         GLboolean unpack_flip_y,
-                         GLboolean unpack_premultiply_alpha,
-                         GLboolean unpack_unmultiply_alpha);
-#endif
-#else
-typedef void(GL_APIENTRYP PFNGLCOPYTEXTURECHROMIUM)(
-    GLenum source_id,
-    GLint source_level,
-    GLenum dest_target,
-    GLenum dest_id,
-    GLint dest_level,
-    GLint internalformat,
-    GLenum dest_type,
-    GLboolean unpack_flip_y,
-    GLboolean unpack_premultiply_alpha,
-    GLboolean unpack_unmultiply_alpha);
-typedef void(GL_APIENTRYP PFNGLCOPYSUBTEXTURECHROMIUM)(
-    GLenum source_id,
-    GLint source_level,
-    GLenum dest_target,
-    GLenum dest_id,
-    GLint dest_level,
-    GLint xoffset,
-    GLint yoffset,
-    GLint x,
-    GLint y,
-    GLsizei width,
-    GLsizei height,
-    GLboolean unpack_flip_y,
-    GLboolean unpack_premultiply_alpha,
-    GLboolean unpack_unmultiply_alpha);
-#endif
-#endif
-
-/* GL_CHROMIUM_command_buffer_query */
-/* Exposes GL_CHROMIUM_command_buffer_query.
- */
-#ifndef GL_CHROMIUM_command_buffer_query
-#define GL_CHROMIUM_command_buffer_query 1
-// TODO(andrescj): Get official numbers for these constants.
-#define GL_COMMANDS_ISSUED_CHROMIUM 0x6004
-#define GL_COMMANDS_ISSUED_TIMESTAMP_CHROMIUM 0x6005
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gl2ext_h_ */
diff --git a/lib/gl/include/GLES2/gl2platform.h b/lib/gl/include/GLES2/gl2platform.h
deleted file mode 100644
index c9fa3c4..0000000
--- a/lib/gl/include/GLES2/gl2platform.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef __gl2platform_h_
-#define __gl2platform_h_
-
-/* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */
-
-/*
- * This document is licensed under the SGI Free Software B License Version
- * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
- */
-
-/* Platform-specific types and definitions for OpenGL ES 2.X  gl2.h
- *
- * Adopters may modify khrplatform.h and this file to suit their platform.
- * You are encouraged to submit all modifications to the Khronos group so that
- * they can be included in future versions of this file.  Please submit changes
- * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
- * by filing a bug against product "OpenGL-ES" component "Registry".
- */
-
-#include <KHR/khrplatform.h>
-
-#ifndef GL_APICALL
-#define GL_APICALL  KHRONOS_APICALL
-#endif
-
-#ifndef GL_APIENTRY
-#define GL_APIENTRY KHRONOS_APIENTRY
-#endif
-
-#endif /* __gl2platform_h_ */
diff --git a/lib/gl/include/KHR/khrplatform.h b/lib/gl/include/KHR/khrplatform.h
deleted file mode 100644
index 1eb0b48..0000000
--- a/lib/gl/include/KHR/khrplatform.h
+++ /dev/null
@@ -1,292 +0,0 @@
-#ifndef __khrplatform_h_
-#define __khrplatform_h_
-
-/*
-** Copyright (c) 2008-2009 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-
-/* Khronos platform-specific types and definitions.
- *
- * $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $
- *
- * Adopters may modify this file to suit their platform. Adopters are
- * encouraged to submit platform specific modifications to the Khronos
- * group so that they can be included in future versions of this file.
- * Please submit changes by sending them to the public Khronos Bugzilla
- * (http://khronos.org/bugzilla) by filing a bug against product
- * "Khronos (general)" component "Registry".
- *
- * A predefined template which fills in some of the bug fields can be
- * reached using http://tinyurl.com/khrplatform-h-bugreport, but you
- * must create a Bugzilla login first.
- *
- *
- * See the Implementer's Guidelines for information about where this file
- * should be located on your system and for more details of its use:
- *    http://www.khronos.org/registry/implementers_guide.pdf
- *
- * This file should be included as
- *        #include <KHR/khrplatform.h>
- * by Khronos client API header files that use its types and defines.
- *
- * The types in khrplatform.h should only be used to define API-specific types.
- *
- * Types defined in khrplatform.h:
- *    khronos_int8_t              signed   8  bit
- *    khronos_uint8_t             unsigned 8  bit
- *    khronos_int16_t             signed   16 bit
- *    khronos_uint16_t            unsigned 16 bit
- *    khronos_int32_t             signed   32 bit
- *    khronos_uint32_t            unsigned 32 bit
- *    khronos_int64_t             signed   64 bit
- *    khronos_uint64_t            unsigned 64 bit
- *    khronos_intptr_t            signed   same number of bits as a pointer
- *    khronos_uintptr_t           unsigned same number of bits as a pointer
- *    khronos_ssize_t             signed   size
- *    khronos_usize_t             unsigned size
- *    khronos_float_t             signed   32 bit floating point
- *    khronos_time_ns_t           unsigned 64 bit time in nanoseconds
- *    khronos_utime_nanoseconds_t unsigned time interval or absolute time in
- *                                         nanoseconds
- *    khronos_stime_nanoseconds_t signed time interval in nanoseconds
- *    khronos_boolean_enum_t      enumerated boolean type. This should
- *      only be used as a base type when a client API's boolean type is
- *      an enum. Client APIs which use an integer or other type for
- *      booleans cannot use this as the base type for their boolean.
- *
- * Tokens defined in khrplatform.h:
- *
- *    KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
- *
- *    KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
- *    KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
- *
- * Calling convention macros defined in this file:
- *    KHRONOS_APICALL
- *    KHRONOS_APIENTRY
- *    KHRONOS_APIATTRIBUTES
- *
- * These may be used in function prototypes as:
- *
- *      KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
- *                                  int arg1,
- *                                  int arg2) KHRONOS_APIATTRIBUTES;
- */
-
-/*-------------------------------------------------------------------------
- * Definition of KHRONOS_APICALL
- *-------------------------------------------------------------------------
- * This precedes the return type of the function in the function prototype.
- */
-
-/*
- * TODO(alokp): Support both static and dynamic linking.
- * Dynamic linking is not too important at present so punting.
- */
-
-#define KHRONOS_APICALL
-
-/*
-#if defined(_WIN32) && !defined(__SCITECH_SNAP__)
-#   define KHRONOS_APICALL __declspec(dllimport)
-#elif defined (__SYMBIAN32__)
-#   define KHRONOS_APICALL IMPORT_C
-#else
-#   define KHRONOS_APICALL
-#endif
-*/
-
-/*-------------------------------------------------------------------------
- * Definition of KHRONOS_APIENTRY
- *-------------------------------------------------------------------------
- * This follows the return type of the function  and precedes the function
- * name in the function prototype.
- */
-#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
-    /* Win32 but not WinCE */
-#   define KHRONOS_APIENTRY __stdcall
-#else
-#   define KHRONOS_APIENTRY
-#endif
-
-/*-------------------------------------------------------------------------
- * Definition of KHRONOS_APIATTRIBUTES
- *-------------------------------------------------------------------------
- * This follows the closing parenthesis of the function prototype arguments.
- */
-#if defined (__ARMCC_2__)
-#define KHRONOS_APIATTRIBUTES __softfp
-#else
-#define KHRONOS_APIATTRIBUTES
-#endif
-
-/*-------------------------------------------------------------------------
- * basic type definitions
- *-----------------------------------------------------------------------*/
-#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
-
-
-/*
- * Using <stdint.h>
- */
-#include <stdint.h>
-typedef int32_t                 khronos_int32_t;
-typedef uint32_t                khronos_uint32_t;
-typedef int64_t                 khronos_int64_t;
-typedef uint64_t                khronos_uint64_t;
-#define KHRONOS_SUPPORT_INT64   1
-#define KHRONOS_SUPPORT_FLOAT   1
-
-#elif defined(__VMS ) || defined(__sgi)
-
-/*
- * Using <inttypes.h>
- */
-#include <inttypes.h>
-typedef int32_t                 khronos_int32_t;
-typedef uint32_t                khronos_uint32_t;
-typedef int64_t                 khronos_int64_t;
-typedef uint64_t                khronos_uint64_t;
-#define KHRONOS_SUPPORT_INT64   1
-#define KHRONOS_SUPPORT_FLOAT   1
-
-#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
-
-/*
- * Win32
- */
-typedef __int32                 khronos_int32_t;
-typedef unsigned __int32        khronos_uint32_t;
-typedef __int64                 khronos_int64_t;
-typedef unsigned __int64        khronos_uint64_t;
-#define KHRONOS_SUPPORT_INT64   1
-#define KHRONOS_SUPPORT_FLOAT   1
-
-#elif defined(__sun__) || defined(__digital__)
-
-/*
- * Sun or Digital
- */
-typedef int                     khronos_int32_t;
-typedef unsigned int            khronos_uint32_t;
-#if defined(__arch64__) || defined(_LP64)
-typedef long int                khronos_int64_t;
-typedef unsigned long int       khronos_uint64_t;
-#else
-typedef long long int           khronos_int64_t;
-typedef unsigned long long int  khronos_uint64_t;
-#endif /* __arch64__ */
-#define KHRONOS_SUPPORT_INT64   1
-#define KHRONOS_SUPPORT_FLOAT   1
-
-#elif 0
-
-/*
- * Hypothetical platform with no float or int64 support
- */
-typedef int                     khronos_int32_t;
-typedef unsigned int            khronos_uint32_t;
-#define KHRONOS_SUPPORT_INT64   0
-#define KHRONOS_SUPPORT_FLOAT   0
-
-#else
-
-/*
- * Generic fallback
- */
-#include <stdint.h>
-typedef int32_t                 khronos_int32_t;
-typedef uint32_t                khronos_uint32_t;
-typedef int64_t                 khronos_int64_t;
-typedef uint64_t                khronos_uint64_t;
-#define KHRONOS_SUPPORT_INT64   1
-#define KHRONOS_SUPPORT_FLOAT   1
-
-#endif
-
-
-/*
- * Types that are (so far) the same on all platforms
- */
-typedef signed   char          khronos_int8_t;
-typedef unsigned char          khronos_uint8_t;
-typedef signed   short int     khronos_int16_t;
-typedef unsigned short int     khronos_uint16_t;
-
-/*
- * Types that differ between LLP64 and LP64 architectures - in LLP64,
- * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
- * to be the only LLP64 architecture in current use.
- */
-#ifdef _WIN64
-typedef signed   long long int khronos_intptr_t;
-typedef unsigned long long int khronos_uintptr_t;
-typedef signed   long long int khronos_ssize_t;
-typedef unsigned long long int khronos_usize_t;
-#else
-typedef signed   long  int     khronos_intptr_t;
-typedef unsigned long  int     khronos_uintptr_t;
-typedef signed   long  int     khronos_ssize_t;
-typedef unsigned long  int     khronos_usize_t;
-#endif
-
-#if KHRONOS_SUPPORT_FLOAT
-/*
- * Float type
- */
-typedef          float         khronos_float_t;
-#endif
-
-#if KHRONOS_SUPPORT_INT64
-/* Time types
- *
- * These types can be used to represent a time interval in nanoseconds or
- * an absolute Unadjusted System Time.  Unadjusted System Time is the number
- * of nanoseconds since some arbitrary system event (e.g. since the last
- * time the system booted).  The Unadjusted System Time is an unsigned
- * 64 bit value that wraps back to 0 every 584 years.  Time intervals
- * may be either signed or unsigned.
- */
-typedef khronos_uint64_t       khronos_utime_nanoseconds_t;
-typedef khronos_int64_t        khronos_stime_nanoseconds_t;
-#endif
-
-/*
- * Dummy value used to pad enum types to 32 bits.
- */
-#ifndef KHRONOS_MAX_ENUM
-#define KHRONOS_MAX_ENUM 0x7FFFFFFF
-#endif
-
-/*
- * Enumerated boolean type
- *
- * Values other than zero should be considered to be true.  Therefore
- * comparisons should not be made against KHRONOS_TRUE.
- */
-typedef enum {
-    KHRONOS_FALSE = 0,
-    KHRONOS_TRUE  = 1,
-    KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
-} khronos_boolean_enum_t;
-
-#endif /* __khrplatform_h_ */
diff --git a/proxy/BUILD.gn b/proxy/BUILD.gn
deleted file mode 100644
index b2a3b49..0000000
--- a/proxy/BUILD.gn
+++ /dev/null
@@ -1,325 +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("//ppapi/buildflags/buildflags.gni")
-
-assert(enable_ppapi)
-
-config("proxy_implementation") {
-  defines = [ "PPAPI_PROXY_IMPLEMENTATION" ]
-}
-
-component("proxy") {
-  output_name = "ppapi_proxy"
-
-  sources = [
-    # Take some standalone files from the C++ wrapper allowing us to more
-    # easily make async callbacks in the proxy. We can't depend on the
-    # full C++ wrappers at this layer since the C++ wrappers expect
-    # symbols defining the globals for "being a plugin" which we are not.
-    #
-    # These callback files are supposed to be standalone, but are not; see
-    # http://crbug.com/1228394.
-    "../cpp/completion_callback.h",
-    "../cpp/logging.h",
-    "../utility/completion_callback_factory.h",
-    "audio_buffer_resource.cc",
-    "audio_buffer_resource.h",
-    "camera_capabilities_resource.cc",
-    "camera_capabilities_resource.h",
-    "camera_device_resource.cc",
-    "camera_device_resource.h",
-    "dispatcher.cc",
-    "enter_proxy.h",
-    "error_conversion.cc",
-    "error_conversion.h",
-    "file_chooser_resource.cc",
-    "file_chooser_resource.h",
-    "file_io_resource.cc",
-    "file_io_resource.h",
-    "file_ref_resource.cc",
-    "file_ref_resource.h",
-    "file_system_resource.cc",
-    "file_system_resource.h",
-    "gamepad_resource.cc",
-    "gamepad_resource.h",
-    "graphics_2d_resource.cc",
-    "graphics_2d_resource.h",
-    "host_resolver_private_resource.cc",
-    "host_resolver_resource.cc",
-    "host_resolver_resource.h",
-    "host_resolver_resource_base.cc",
-    "interface_list.cc",
-    "interface_proxy.cc",
-    "isolated_file_system_private_resource.cc",
-    "isolated_file_system_private_resource.h",
-    "locking_resource_releaser.h",
-    "media_stream_audio_track_resource.cc",
-    "media_stream_audio_track_resource.h",
-    "media_stream_track_resource_base.cc",
-    "media_stream_track_resource_base.h",
-    "media_stream_video_track_resource.cc",
-    "media_stream_video_track_resource.h",
-    "message_handler.cc",
-    "net_address_resource.cc",
-    "net_address_resource.h",
-    "network_list_resource.cc",
-    "network_monitor_resource.cc",
-    "network_monitor_resource.h",
-    "network_proxy_resource.cc",
-    "network_proxy_resource.h",
-    "plugin_array_buffer_var.cc",
-    "plugin_array_buffer_var.h",
-    "plugin_dispatcher.cc",
-    "plugin_globals.cc",
-    "plugin_globals.h",
-    "plugin_message_filter.cc",
-    "plugin_message_filter.h",
-    "plugin_resource.cc",
-    "plugin_resource_tracker.cc",
-    "plugin_resource_tracker.h",
-    "plugin_resource_var.cc",
-    "plugin_resource_var.h",
-    "plugin_var_serialization_rules.cc",
-    "plugin_var_serialization_rules.h",
-    "plugin_var_tracker.cc",
-    "ppapi_command_buffer_proxy.cc",
-    "ppapi_command_buffer_proxy.h",
-    "ppb_audio_proxy.cc",
-    "ppb_audio_proxy.h",
-    "ppb_core_proxy.cc",
-    "ppb_core_proxy.h",
-    "ppb_graphics_3d_proxy.cc",
-    "ppb_graphics_3d_proxy.h",
-    "ppb_image_data_proxy.cc",
-    "ppb_image_data_proxy.h",
-    "ppb_instance_proxy.cc",
-    "ppb_instance_proxy.h",
-    "ppb_message_loop_proxy.cc",
-    "ppb_message_loop_proxy.h",
-    "ppb_testing_proxy.cc",
-    "ppb_testing_proxy.h",
-    "ppp_class_proxy.cc",
-    "ppp_class_proxy.h",
-    "ppp_graphics_3d_proxy.cc",
-    "ppp_graphics_3d_proxy.h",
-    "ppp_input_event_proxy.cc",
-    "ppp_input_event_proxy.h",
-    "ppp_instance_proxy.cc",
-    "ppp_instance_proxy.h",
-    "ppp_messaging_proxy.cc",
-    "ppp_messaging_proxy.h",
-    "ppp_mouse_lock_proxy.cc",
-    "ppp_mouse_lock_proxy.h",
-    "ppp_printing_proxy.cc",
-    "ppp_printing_proxy.h",
-    "ppp_text_input_proxy.cc",
-    "ppp_text_input_proxy.h",
-    "printing_resource.cc",
-    "printing_resource.h",
-    "proxy_array_output.cc",
-    "proxy_array_output.h",
-    "proxy_channel.cc",
-    "proxy_completion_callback_factory.h",
-    "proxy_object_var.cc",
-    "proxy_object_var.h",
-    "resource_creation_proxy.cc",
-    "resource_creation_proxy.h",
-    "resource_reply_thread_registrar.cc",
-    "tcp_server_socket_private_resource.cc",
-    "tcp_server_socket_private_resource.h",
-    "tcp_socket_private_resource.cc",
-    "tcp_socket_private_resource.h",
-    "tcp_socket_resource.cc",
-    "tcp_socket_resource.h",
-    "tcp_socket_resource_base.cc",
-    "tcp_socket_resource_base.h",
-    "udp_socket_filter.cc",
-    "udp_socket_filter.h",
-    "udp_socket_private_resource.cc",
-    "udp_socket_private_resource.h",
-    "udp_socket_resource.cc",
-    "udp_socket_resource.h",
-    "udp_socket_resource_base.cc",
-    "udp_socket_resource_base.h",
-    "uma_private_resource.cc",
-    "uma_private_resource.h",
-    "url_loader_resource.cc",
-    "url_loader_resource.h",
-    "url_request_info_resource.cc",
-    "url_request_info_resource.h",
-    "url_response_info_resource.cc",
-    "url_response_info_resource.h",
-    "video_decoder_resource.cc",
-    "video_decoder_resource.h",
-    "video_encoder_resource.cc",
-    "video_encoder_resource.h",
-    "video_frame_resource.cc",
-    "video_frame_resource.h",
-    "vpn_provider_resource.cc",
-    "vpn_provider_resource.h",
-    "websocket_resource.cc",
-    "websocket_resource.h",
-  ]
-
-  if (is_nacl) {
-    # Consistency check: Check that is_nacl_irt is set to true for this
-    # code that is built for the NaCl IRT.  Previously, there was a bug
-    # where is_nacl_irt was not always set to true for builds of the NaCl
-    # IRT.
-    assert(is_nacl_irt)
-
-    sources += [
-      "../nacl_irt/irt_interfaces.cc",
-      "../nacl_irt/irt_interfaces.h",
-      "../nacl_irt/irt_pnacl_translator_compile.cc",
-      "../nacl_irt/irt_pnacl_translator_link.cc",
-      "../nacl_irt/irt_ppapi.cc",
-      "../nacl_irt/irt_ppapi.h",
-      "../nacl_irt/irt_start.cc",
-      "../nacl_irt/manifest_service.cc",
-      "../nacl_irt/manifest_service.h",
-      "../nacl_irt/plugin_startup.cc",
-      "../nacl_irt/plugin_startup.h",
-      "../nacl_irt/ppapi_dispatcher.cc",
-      "../nacl_irt/ppapi_dispatcher.h",
-    ]
-  } else {
-    sources += [
-      "audio_input_resource.cc",
-      "audio_input_resource.h",
-      "audio_output_resource.cc",
-      "audio_output_resource.h",
-      "browser_font_singleton_resource.cc",
-      "browser_font_singleton_resource.h",
-      "device_enumeration_resource_helper.cc",
-      "device_enumeration_resource_helper.h",
-      "host_dispatcher.cc",
-      "host_dispatcher.h",
-      "host_var_serialization_rules.cc",
-      "host_var_serialization_rules.h",
-      "ppb_buffer_proxy.cc",
-      "ppb_var_deprecated_proxy.cc",
-      "ppb_var_deprecated_proxy.h",
-      "ppb_video_decoder_proxy.cc",
-      "ppb_video_decoder_proxy.h",
-      "ppb_x509_certificate_private_proxy.cc",
-      "ppb_x509_certificate_private_proxy.h",
-      "ppp_instance_private_proxy.cc",
-      "ppp_instance_private_proxy.h",
-      "ppp_video_decoder_proxy.cc",
-      "ppp_video_decoder_proxy.h",
-      "video_capture_resource.cc",
-      "video_capture_resource.h",
-    ]
-  }
-
-  configs += [
-    ":proxy_implementation",
-    "//build/config:precompiled_headers",
-  ]
-
-  public_deps = [
-    "//ipc",
-    "//ppapi/proxy:ipc_sources",
-  ]
-
-  deps = [
-    ":common",
-    "//base",
-    "//device/base/synchronization",
-    "//device/gamepad/public/cpp:shared_with_blink",
-    "//gpu/command_buffer/client:client",
-    "//gpu/command_buffer/client:gles2_cmd_helper",
-    "//gpu/command_buffer/client:gles2_implementation",
-    "//gpu/command_buffer/common",
-    "//gpu/ipc/common:command_buffer_traits",
-    "//media:shared_memory_support",
-    "//mojo/core/embedder",
-    "//ppapi/c",
-    "//ppapi/shared_impl",
-    "//third_party/icu",
-    "//ui/gfx/geometry",
-    "//ui/gfx/ipc/geometry",
-  ]
-
-  if (!is_nacl) {
-    deps += [
-      "//gin",
-      "//skia",
-      "//ui/events:events_base",
-      "//ui/surface",
-    ]
-  }
-}
-
-source_set("common") {
-  sources = [
-    "tcp_socket_resource_constants.h",
-    "udp_socket_resource_constants.h",
-  ]
-
-  deps = [ "//base:base" ]
-}
-
-group("ipc") {
-  if (is_component_build) {
-    public_deps = [ "//ppapi/proxy" ]
-  } else {
-    public_deps = [ ":ipc_sources" ]
-  }
-}
-
-source_set("ipc_sources") {
-  sources = [
-    "connection.h",
-    "dispatcher.h",
-    "host_resolver_private_resource.h",
-    "host_resolver_resource_base.h",
-    "interface_list.h",
-    "interface_proxy.h",
-    "message_handler.h",
-    "nacl_message_scanner.cc",
-    "nacl_message_scanner.h",
-    "network_list_resource.h",
-    "plugin_dispatcher.h",
-    "plugin_resource.h",
-    "plugin_var_tracker.h",
-    "ppapi_message_utils.h",
-    "ppapi_messages.cc",
-    "ppapi_messages.h",
-    "ppapi_param_traits.cc",
-    "ppapi_param_traits.h",
-    "ppb_buffer_proxy.h",
-    "proxy_channel.h",
-    "raw_var_data.cc",
-    "raw_var_data.h",
-    "resource_message_params.cc",
-    "resource_message_params.h",
-    "resource_reply_thread_registrar.h",
-    "serialized_handle.cc",
-    "serialized_handle.h",
-    "serialized_structs.cc",
-    "serialized_structs.h",
-    "serialized_var.cc",
-    "serialized_var.h",
-    "var_serialization_rules.h",
-  ]
-
-  configs += [ ":proxy_implementation" ]
-
-  deps = [
-    "//base",
-    "//gpu/ipc/common:command_buffer_traits",
-    "//ppapi/c",
-    "//ppapi/shared_impl",
-  ]
-
-  public_deps = [ "//ipc" ]
-
-  if (!is_nacl) {
-    deps += [ "//skia" ]
-  }
-}
diff --git a/proxy/DEPS b/proxy/DEPS
deleted file mode 100644
index 06e0731..0000000
--- a/proxy/DEPS
+++ /dev/null
@@ -1,25 +0,0 @@
-include_rules = [
-  "+base",
-  "+device",
-  "+gin",
-  "+gpu",
-  "+ipc",
-  "+media/audio",
-  "+media/base",
-  "+skia",
-  "+ui/surface",
-
-  # We don't want the proxy to depend on the C++ layer, which is appropriate
-  # for plugins only. However, the completion callback factory is a very useful
-  # tool that we would otherwise have to duplicate, and has no other
-  # dependencies, so we allow that (and the output traits it depends on).
-  "-ppapi/cpp",
-  "+ppapi/cpp/completion_callback.h",
-  "+ppapi/cpp/output_traits.h",
-]
-
-specific_include_rules = {
-  "ppapi_perftests\.cc": [
-    "+mojo/core/embedder/embedder.h",
-  ]
-}
diff --git a/proxy/OWNERS b/proxy/OWNERS
deleted file mode 100644
index a7e6c89..0000000
--- a/proxy/OWNERS
+++ /dev/null
@@ -1,8 +0,0 @@
-per-file *_messages*.h=set noparent
-per-file *_messages*.h=file://ipc/SECURITY_OWNERS
-
-per-file *_messages.cc=set noparent
-per-file *_messages.cc=file://ipc/SECURITY_OWNERS
-
-per-file *_param_traits*.*=set noparent
-per-file *_param_traits*.*=file://ipc/SECURITY_OWNERS
diff --git a/proxy/audio_buffer_resource.cc b/proxy/audio_buffer_resource.cc
deleted file mode 100644
index ce6ae65..0000000
--- a/proxy/audio_buffer_resource.cc
+++ /dev/null
@@ -1,112 +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/proxy/audio_buffer_resource.h"
-
-#include "base/logging.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/shared_impl/media_stream_buffer.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-AudioBufferResource::AudioBufferResource(PP_Instance instance,
-                                       int32_t index,
-                                       MediaStreamBuffer* buffer)
-    : Resource(OBJECT_IS_PROXY, instance),
-      index_(index),
-      buffer_(buffer) {
-  DCHECK_EQ(buffer_->header.type, MediaStreamBuffer::TYPE_AUDIO);
-}
-
-AudioBufferResource::~AudioBufferResource() {
-  CHECK(!buffer_) << "An unused (or unrecycled) buffer is destroyed.";
-}
-
-thunk::PPB_AudioBuffer_API* AudioBufferResource::AsPPB_AudioBuffer_API() {
-  return this;
-}
-
-PP_TimeDelta AudioBufferResource::GetTimestamp() {
-  if (!buffer_) {
-    VLOG(1) << "Buffer is invalid";
-    return 0.0;
-  }
-  return buffer_->audio.timestamp;
-}
-
-void AudioBufferResource::SetTimestamp(PP_TimeDelta timestamp) {
-  if (!buffer_) {
-    VLOG(1) << "Buffer is invalid";
-    return;
-  }
-  buffer_->audio.timestamp = timestamp;
-}
-
-PP_AudioBuffer_SampleRate AudioBufferResource::GetSampleRate() {
-  if (!buffer_) {
-    VLOG(1) << "Buffer is invalid";
-    return PP_AUDIOBUFFER_SAMPLERATE_UNKNOWN;
-  }
-  return buffer_->audio.sample_rate;
-}
-
-PP_AudioBuffer_SampleSize AudioBufferResource::GetSampleSize() {
-  if (!buffer_) {
-    VLOG(1) << "Buffer is invalid";
-    return PP_AUDIOBUFFER_SAMPLESIZE_UNKNOWN;
-  }
-  return PP_AUDIOBUFFER_SAMPLESIZE_16_BITS;
-}
-
-uint32_t AudioBufferResource::GetNumberOfChannels() {
-  if (!buffer_) {
-    VLOG(1) << "Buffer is invalid";
-    return 0;
-  }
-  return buffer_->audio.number_of_channels;
-}
-
-uint32_t AudioBufferResource::GetNumberOfSamples() {
-  if (!buffer_) {
-    VLOG(1) << "Buffer is invalid";
-    return 0;
-  }
-  return buffer_->audio.number_of_samples;
-}
-
-void* AudioBufferResource::GetDataBuffer() {
-  if (!buffer_) {
-    VLOG(1) << "Buffer is invalid";
-    return NULL;
-  }
-  return buffer_->audio.data;
-}
-
-uint32_t AudioBufferResource::GetDataBufferSize() {
-  if (!buffer_) {
-    VLOG(1) << "Buffer is invalid";
-    return 0;
-  }
-  return buffer_->audio.data_size;
-}
-
-MediaStreamBuffer* AudioBufferResource::GetBuffer() {
-  return buffer_;
-}
-
-int32_t AudioBufferResource::GetBufferIndex() {
-  return index_;
-}
-
-void AudioBufferResource::Invalidate() {
-  DCHECK(buffer_);
-  DCHECK_GE(index_, 0);
-  buffer_ = NULL;
-  index_ = -1;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/audio_buffer_resource.h b/proxy/audio_buffer_resource.h
deleted file mode 100644
index 81e528f..0000000
--- a/proxy/audio_buffer_resource.h
+++ /dev/null
@@ -1,59 +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_PROXY_AUDIO_BUFFER_RESOURCE_H_
-#define PPAPI_PROXY_AUDIO_BUFFER_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_audio_buffer_api.h"
-
-namespace ppapi {
-
-union MediaStreamBuffer;
-
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT AudioBufferResource
-    : public Resource,
-      public thunk::PPB_AudioBuffer_API {
- public:
-  AudioBufferResource(PP_Instance instance,
-                     int32_t index,
-                     MediaStreamBuffer* buffer);
-
-  AudioBufferResource(const AudioBufferResource&) = delete;
-  AudioBufferResource& operator=(const AudioBufferResource&) = delete;
-
-  ~AudioBufferResource() override;
-
-  // PluginResource overrides:
-  thunk::PPB_AudioBuffer_API* AsPPB_AudioBuffer_API() override;
-
-  // PPB_AudioBuffer_API overrides:
-  PP_TimeDelta GetTimestamp() override;
-  void SetTimestamp(PP_TimeDelta timestamp) override;
-  PP_AudioBuffer_SampleRate GetSampleRate() override;
-  PP_AudioBuffer_SampleSize GetSampleSize() override;
-  uint32_t GetNumberOfChannels() override;
-  uint32_t GetNumberOfSamples() override;
-  void* GetDataBuffer() override;
-  uint32_t GetDataBufferSize() override;
-  MediaStreamBuffer* GetBuffer() override;
-  int32_t GetBufferIndex() override;
-  void Invalidate() override;
-
-  // Buffer index
-  int32_t index_;
-
-  MediaStreamBuffer* buffer_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_AUDIO_BUFFER_RESOURCE_H_
diff --git a/proxy/audio_encoder_resource.cc b/proxy/audio_encoder_resource.cc
deleted file mode 100644
index db410eb..0000000
--- a/proxy/audio_encoder_resource.cc
+++ /dev/null
@@ -1,348 +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/proxy/audio_encoder_resource.h"
-
-#include <memory>
-
-#include "base/functional/bind.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_codecs.h"
-#include "ppapi/proxy/audio_buffer_resource.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/array_writer.h"
-#include "ppapi/shared_impl/media_stream_buffer.h"
-#include "ppapi/thunk/enter.h"
-
-namespace ppapi {
-namespace proxy {
-
-AudioEncoderResource::AudioEncoderResource(Connection connection,
-                                           PP_Instance instance)
-    : PluginResource(connection, instance),
-      encoder_last_error_(PP_ERROR_FAILED),
-      initialized_(false),
-      audio_buffer_manager_(this),
-      bitstream_buffer_manager_(this) {
-  SendCreate(RENDERER, PpapiHostMsg_AudioEncoder_Create());
-}
-
-AudioEncoderResource::~AudioEncoderResource() {
-}
-
-thunk::PPB_AudioEncoder_API* AudioEncoderResource::AsPPB_AudioEncoder_API() {
-  return this;
-}
-
-int32_t AudioEncoderResource::GetSupportedProfiles(
-    const PP_ArrayOutput& output,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (TrackedCallback::IsPending(get_supported_profiles_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  get_supported_profiles_callback_ = callback;
-  Call<PpapiPluginMsg_AudioEncoder_GetSupportedProfilesReply>(
-      RENDERER, PpapiHostMsg_AudioEncoder_GetSupportedProfiles(),
-      base::BindOnce(
-          &AudioEncoderResource::OnPluginMsgGetSupportedProfilesReply, this,
-          output));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t AudioEncoderResource::Initialize(
-    uint32_t channels,
-    PP_AudioBuffer_SampleRate input_sample_rate,
-    PP_AudioBuffer_SampleSize input_sample_size,
-    PP_AudioProfile output_profile,
-    uint32_t initial_bitrate,
-    PP_HardwareAcceleration acceleration,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (initialized_)
-    return PP_ERROR_FAILED;
-  if (TrackedCallback::IsPending(initialize_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  initialize_callback_ = callback;
-
-  PPB_AudioEncodeParameters parameters;
-  parameters.channels = channels;
-  parameters.input_sample_rate = input_sample_rate;
-  parameters.input_sample_size = input_sample_size;
-  parameters.output_profile = output_profile;
-  parameters.initial_bitrate = initial_bitrate;
-  parameters.acceleration = acceleration;
-
-  Call<PpapiPluginMsg_AudioEncoder_InitializeReply>(
-      RENDERER, PpapiHostMsg_AudioEncoder_Initialize(parameters),
-      base::BindOnce(&AudioEncoderResource::OnPluginMsgInitializeReply, this));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t AudioEncoderResource::GetNumberOfSamples() {
-  if (encoder_last_error_)
-    return encoder_last_error_;
-  return number_of_samples_;
-}
-
-int32_t AudioEncoderResource::GetBuffer(
-    PP_Resource* audio_buffer,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (encoder_last_error_)
-    return encoder_last_error_;
-  if (TrackedCallback::IsPending(get_buffer_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  get_buffer_data_ = audio_buffer;
-  get_buffer_callback_ = callback;
-
-  TryGetAudioBuffer();
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t AudioEncoderResource::Encode(
-    PP_Resource audio_buffer,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (encoder_last_error_)
-    return encoder_last_error_;
-
-  AudioBufferMap::iterator it = audio_buffers_.find(audio_buffer);
-  if (it == audio_buffers_.end())
-    // TODO(llandwerlin): accept MediaStreamAudioTrack's audio buffers.
-    return PP_ERROR_BADRESOURCE;
-
-  scoped_refptr<AudioBufferResource> buffer_resource = it->second;
-
-  encode_callbacks_.insert(
-      std::make_pair(buffer_resource->GetBufferIndex(), callback));
-
-  Post(RENDERER,
-       PpapiHostMsg_AudioEncoder_Encode(buffer_resource->GetBufferIndex()));
-
-  // Invalidate the buffer to prevent a CHECK failure when the
-  // AudioBufferResource is destructed.
-  buffer_resource->Invalidate();
-  audio_buffers_.erase(it);
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t AudioEncoderResource::GetBitstreamBuffer(
-    PP_AudioBitstreamBuffer* bitstream_buffer,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (encoder_last_error_)
-    return encoder_last_error_;
-  if (TrackedCallback::IsPending(get_bitstream_buffer_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  get_bitstream_buffer_callback_ = callback;
-  get_bitstream_buffer_data_ = bitstream_buffer;
-
-  TryWriteBitstreamBuffer();
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void AudioEncoderResource::RecycleBitstreamBuffer(
-    const PP_AudioBitstreamBuffer* bitstream_buffer) {
-  if (encoder_last_error_)
-    return;
-
-  BufferMap::const_iterator it =
-      bitstream_buffer_map_.find(bitstream_buffer->buffer);
-  if (it != bitstream_buffer_map_.end())
-    Post(RENDERER,
-         PpapiHostMsg_AudioEncoder_RecycleBitstreamBuffer(it->second));
-}
-
-void AudioEncoderResource::RequestBitrateChange(uint32_t bitrate) {
-  if (encoder_last_error_)
-    return;
-  Post(RENDERER, PpapiHostMsg_AudioEncoder_RequestBitrateChange(bitrate));
-}
-
-void AudioEncoderResource::Close() {
-  if (encoder_last_error_)
-    return;
-  Post(RENDERER, PpapiHostMsg_AudioEncoder_Close());
-  if (!encoder_last_error_ || !initialized_)
-    NotifyError(PP_ERROR_ABORTED);
-  ReleaseBuffers();
-}
-
-void AudioEncoderResource::OnReplyReceived(
-    const ResourceMessageReplyParams& params,
-    const IPC::Message& msg) {
-  PPAPI_BEGIN_MESSAGE_MAP(AudioEncoderResource, msg)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_AudioEncoder_BitstreamBufferReady,
-        OnPluginMsgBitstreamBufferReady)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(PpapiPluginMsg_AudioEncoder_EncodeReply,
-                                        OnPluginMsgEncodeReply)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(PpapiPluginMsg_AudioEncoder_NotifyError,
-                                        OnPluginMsgNotifyError)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(
-        PluginResource::OnReplyReceived(params, msg))
-  PPAPI_END_MESSAGE_MAP()
-}
-
-void AudioEncoderResource::OnPluginMsgGetSupportedProfilesReply(
-    const PP_ArrayOutput& output,
-    const ResourceMessageReplyParams& params,
-    const std::vector<PP_AudioProfileDescription>& profiles) {
-  ArrayWriter writer(output);
-  if (params.result() != PP_OK || !writer.is_valid() ||
-      !writer.StoreVector(profiles)) {
-    SafeRunCallback(&get_supported_profiles_callback_, PP_ERROR_FAILED);
-    return;
-  }
-
-  SafeRunCallback(&get_supported_profiles_callback_,
-                  base::checked_cast<int32_t>(profiles.size()));
-}
-
-void AudioEncoderResource::OnPluginMsgInitializeReply(
-    const ResourceMessageReplyParams& params,
-    int32_t number_of_samples,
-    int32_t audio_buffer_count,
-    int32_t audio_buffer_size,
-    int32_t bitstream_buffer_count,
-    int32_t bitstream_buffer_size) {
-  DCHECK(!initialized_);
-
-  int32_t error = params.result();
-  if (error) {
-    SafeRunCallback(&initialize_callback_, error);
-    return;
-  }
-
-  // Get audio buffers shared memory buffer.
-  base::UnsafeSharedMemoryRegion region;
-  if (!params.TakeUnsafeSharedMemoryRegionAtIndex(0, &region) ||
-      !audio_buffer_manager_.SetBuffers(audio_buffer_count, audio_buffer_size,
-                                        std::move(region), true)) {
-    SafeRunCallback(&initialize_callback_, PP_ERROR_NOMEMORY);
-    return;
-  }
-
-  // Get bitstream buffers shared memory buffer.
-  if (!params.TakeUnsafeSharedMemoryRegionAtIndex(1, &region) ||
-      !bitstream_buffer_manager_.SetBuffers(bitstream_buffer_count,
-                                            bitstream_buffer_size,
-                                            std::move(region), false)) {
-    SafeRunCallback(&initialize_callback_, PP_ERROR_NOMEMORY);
-    return;
-  }
-
-  for (int32_t i = 0; i < bitstream_buffer_manager_.number_of_buffers(); i++)
-    bitstream_buffer_map_.insert(std::make_pair(
-        bitstream_buffer_manager_.GetBufferPointer(i)->bitstream.data, i));
-
-  encoder_last_error_ = PP_OK;
-  number_of_samples_ = number_of_samples;
-  initialized_ = true;
-
-  SafeRunCallback(&initialize_callback_, PP_OK);
-}
-
-void AudioEncoderResource::OnPluginMsgEncodeReply(
-    const ResourceMessageReplyParams& params,
-    int32_t buffer_id) {
-  // We need to ensure there are still callbacks to be called before
-  // processing this message. We might receive an EncodeReply message after
-  // having sent a Close message to the renderer. In this case, we don't
-  // have any callback left to call.
-  if (encode_callbacks_.empty())
-    return;
-
-  EncodeMap::iterator it = encode_callbacks_.find(buffer_id);
-  CHECK(encode_callbacks_.end() != it);
-
-  scoped_refptr<TrackedCallback> callback = it->second;
-  encode_callbacks_.erase(it);
-  SafeRunCallback(&callback, encoder_last_error_);
-
-  audio_buffer_manager_.EnqueueBuffer(buffer_id);
-  // If the plugin is waiting for an audio buffer, we can give the one
-  // that just became available again.
-  if (TrackedCallback::IsPending(get_buffer_callback_))
-    TryGetAudioBuffer();
-}
-
-void AudioEncoderResource::OnPluginMsgBitstreamBufferReady(
-    const ResourceMessageReplyParams& params,
-    int32_t buffer_id) {
-  bitstream_buffer_manager_.EnqueueBuffer(buffer_id);
-
-  if (TrackedCallback::IsPending(get_bitstream_buffer_callback_))
-    TryWriteBitstreamBuffer();
-}
-
-void AudioEncoderResource::OnPluginMsgNotifyError(
-    const ResourceMessageReplyParams& params,
-    int32_t error) {
-  NotifyError(error);
-}
-
-void AudioEncoderResource::NotifyError(int32_t error) {
-  DCHECK(error);
-
-  encoder_last_error_ = error;
-  SafeRunCallback(&get_supported_profiles_callback_, error);
-  SafeRunCallback(&initialize_callback_, error);
-  SafeRunCallback(&get_buffer_callback_, error);
-  get_buffer_data_ = nullptr;
-  SafeRunCallback(&get_bitstream_buffer_callback_, error);
-  get_bitstream_buffer_data_ = nullptr;
-  for (EncodeMap::iterator it = encode_callbacks_.begin();
-       it != encode_callbacks_.end(); ++it)
-    SafeRunCallback(&it->second, error);
-  encode_callbacks_.clear();
-}
-
-void AudioEncoderResource::TryGetAudioBuffer() {
-  DCHECK(TrackedCallback::IsPending(get_buffer_callback_));
-
-  if (!audio_buffer_manager_.HasAvailableBuffer())
-    return;
-
-  int32_t buffer_id = audio_buffer_manager_.DequeueBuffer();
-  scoped_refptr<AudioBufferResource> resource = new AudioBufferResource(
-      pp_instance(), buffer_id,
-      audio_buffer_manager_.GetBufferPointer(buffer_id));
-  audio_buffers_.insert(
-      AudioBufferMap::value_type(resource->pp_resource(), resource));
-
-  // Take a reference for the plugin.
-  *get_buffer_data_ = resource->GetReference();
-  get_buffer_data_ = nullptr;
-  SafeRunCallback(&get_buffer_callback_, PP_OK);
-}
-
-void AudioEncoderResource::TryWriteBitstreamBuffer() {
-  DCHECK(TrackedCallback::IsPending(get_bitstream_buffer_callback_));
-
-  if (!bitstream_buffer_manager_.HasAvailableBuffer())
-    return;
-
-  int32_t buffer_id = bitstream_buffer_manager_.DequeueBuffer();
-  MediaStreamBuffer* buffer =
-      bitstream_buffer_manager_.GetBufferPointer(buffer_id);
-
-  get_bitstream_buffer_data_->buffer = buffer->bitstream.data;
-  get_bitstream_buffer_data_->size = buffer->bitstream.data_size;
-  get_bitstream_buffer_data_ = nullptr;
-  SafeRunCallback(&get_bitstream_buffer_callback_, PP_OK);
-}
-
-void AudioEncoderResource::ReleaseBuffers() {
-  for (AudioBufferMap::iterator it = audio_buffers_.begin();
-       it != audio_buffers_.end(); ++it)
-    it->second->Invalidate();
-  audio_buffers_.clear();
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/audio_input_resource.cc b/proxy/audio_input_resource.cc
deleted file mode 100644
index d26e3ab..0000000
--- a/proxy/audio_input_resource.cc
+++ /dev/null
@@ -1,361 +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/proxy/audio_input_resource.h"
-
-#include <memory>
-#include <string>
-
-#include "base/check_op.h"
-#include "base/containers/span.h"
-#include "base/functional/bind.h"
-#include "base/numerics/safe_conversions.h"
-#include "ipc/ipc_platform_file.h"
-#include "media/base/audio_bus.h"
-#include "media/base/audio_parameters.h"
-#include "media/base/audio_sample_types.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/resource_message_params.h"
-#include "ppapi/proxy/serialized_handle.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/ppb_audio_config_shared.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_audio_config_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-AudioInputResource::AudioInputResource(Connection connection,
-                                       PP_Instance instance)
-    : PluginResource(connection, instance),
-      open_state_(BEFORE_OPEN),
-      capturing_(false),
-      shared_memory_size_(0),
-      audio_input_callback_0_3_(NULL),
-      audio_input_callback_(NULL),
-      user_data_(NULL),
-      enumeration_helper_(this),
-      bytes_per_second_(0),
-      sample_frame_count_(0),
-      client_buffer_size_bytes_(0) {
-  SendCreate(RENDERER, PpapiHostMsg_AudioInput_Create());
-}
-
-AudioInputResource::~AudioInputResource() {
-  Close();
-}
-
-thunk::PPB_AudioInput_API* AudioInputResource::AsPPB_AudioInput_API() {
-  return this;
-}
-
-void AudioInputResource::OnReplyReceived(
-    const ResourceMessageReplyParams& params,
-    const IPC::Message& msg) {
-  if (!enumeration_helper_.HandleReply(params, msg))
-    PluginResource::OnReplyReceived(params, msg);
-}
-
-int32_t AudioInputResource::EnumerateDevices(
-    const PP_ArrayOutput& output,
-    scoped_refptr<TrackedCallback> callback) {
-  return enumeration_helper_.EnumerateDevices(output, callback);
-}
-
-int32_t AudioInputResource::MonitorDeviceChange(
-    PP_MonitorDeviceChangeCallback callback,
-    void* user_data) {
-  return enumeration_helper_.MonitorDeviceChange(callback, user_data);
-}
-
-int32_t AudioInputResource::Open0_3(
-    PP_Resource device_ref,
-    PP_Resource config,
-    PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
-    void* user_data,
-    scoped_refptr<TrackedCallback> callback) {
-  return CommonOpen(device_ref, config, audio_input_callback_0_3, NULL,
-                    user_data, callback);
-}
-
-int32_t AudioInputResource::Open(PP_Resource device_ref,
-                                 PP_Resource config,
-                                 PPB_AudioInput_Callback audio_input_callback,
-                                 void* user_data,
-                                 scoped_refptr<TrackedCallback> callback) {
-  return CommonOpen(device_ref, config, NULL, audio_input_callback, user_data,
-                    callback);
-}
-
-PP_Resource AudioInputResource::GetCurrentConfig() {
-  // AddRef for the caller.
-  if (config_.get())
-    PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(config_);
-  return config_;
-}
-
-PP_Bool AudioInputResource::StartCapture() {
-  if (open_state_ == CLOSED || (open_state_ == BEFORE_OPEN &&
-                                !TrackedCallback::IsPending(open_callback_))) {
-    return PP_FALSE;
-  }
-  if (capturing_)
-    return PP_TRUE;
-
-  capturing_ = true;
-  // Return directly if the audio input device hasn't been opened. Capturing
-  // will be started once the open operation is completed.
-  if (open_state_ == BEFORE_OPEN)
-    return PP_TRUE;
-
-  StartThread();
-
-  Post(RENDERER, PpapiHostMsg_AudioInput_StartOrStop(true));
-  return PP_TRUE;
-}
-
-PP_Bool AudioInputResource::StopCapture() {
-  if (open_state_ == CLOSED)
-    return PP_FALSE;
-  if (!capturing_)
-    return PP_TRUE;
-
-  // If the audio input device hasn't been opened, set |capturing_| to false and
-  // return directly.
-  if (open_state_ == BEFORE_OPEN) {
-    capturing_ = false;
-    return PP_TRUE;
-  }
-
-  Post(RENDERER, PpapiHostMsg_AudioInput_StartOrStop(false));
-
-  StopThread();
-  capturing_ = false;
-
-  return PP_TRUE;
-}
-
-void AudioInputResource::Close() {
-  if (open_state_ == CLOSED)
-    return;
-
-  open_state_ = CLOSED;
-  Post(RENDERER, PpapiHostMsg_AudioInput_Close());
-  StopThread();
-
-  if (TrackedCallback::IsPending(open_callback_))
-    open_callback_->PostAbort();
-}
-
-void AudioInputResource::LastPluginRefWasDeleted() {
-  enumeration_helper_.LastPluginRefWasDeleted();
-}
-
-void AudioInputResource::OnPluginMsgOpenReply(
-    const ResourceMessageReplyParams& params) {
-  if (open_state_ == BEFORE_OPEN && params.result() == PP_OK) {
-    IPC::PlatformFileForTransit socket_handle_for_transit =
-        IPC::InvalidPlatformFileForTransit();
-    params.TakeSocketHandleAtIndex(0, &socket_handle_for_transit);
-    base::SyncSocket::Handle socket_handle =
-        IPC::PlatformFileForTransitToPlatformFile(socket_handle_for_transit);
-    CHECK(socket_handle != base::SyncSocket::kInvalidHandle);
-
-    SerializedHandle serialized_shared_memory_handle =
-        params.TakeHandleOfTypeAtIndex(1,
-                                       SerializedHandle::SHARED_MEMORY_REGION);
-    CHECK(serialized_shared_memory_handle.IsHandleValid());
-
-    open_state_ = OPENED;
-    SetStreamInfo(base::ReadOnlySharedMemoryRegion::Deserialize(
-                      serialized_shared_memory_handle.TakeSharedMemoryRegion()),
-                  socket_handle);
-  } else {
-    capturing_ = false;
-  }
-
-  // The callback may have been aborted by Close().
-  if (TrackedCallback::IsPending(open_callback_))
-    open_callback_->Run(params.result());
-}
-
-void AudioInputResource::SetStreamInfo(
-    base::ReadOnlySharedMemoryRegion shared_memory_region,
-    base::SyncSocket::Handle socket_handle) {
-  socket_ = std::make_unique<base::CancelableSyncSocket>(socket_handle);
-  DCHECK(!shared_memory_mapping_.IsValid());
-
-  // Ensure that the allocated memory is enough for the audio bus and buffer
-  // parameters. Note that there might be slightly more allocated memory as
-  // some shared memory implementations round up to the closest 2^n when
-  // allocating.
-  // Example: DCHECK_GE(8208, 8192 + 16) for |sample_frame_count_| = 2048.
-  shared_memory_size_ = media::ComputeAudioInputBufferSize(
-      kAudioInputChannels, sample_frame_count_, 1u);
-  DCHECK_GE(shared_memory_region.GetSize(), shared_memory_size_);
-
-  // If we fail to map the shared memory into the caller's address space we
-  // might as well fail here since nothing will work if this is the case.
-  shared_memory_mapping_ = shared_memory_region.MapAt(0, shared_memory_size_);
-  CHECK(shared_memory_mapping_.IsValid());
-
-  // Create a new audio bus and wrap the audio data section in shared memory.
-  const media::AudioInputBuffer* buffer =
-      static_cast<const media::AudioInputBuffer*>(
-          shared_memory_mapping_.memory());
-  audio_bus_ = media::AudioBus::WrapReadOnlyMemory(
-      kAudioInputChannels, sample_frame_count_, buffer->audio);
-
-  // Create an extra integer audio buffer for user audio data callbacks.
-  // Data in shared memory will be copied to this buffer, after interleaving
-  // and truncation, before each input callback to match the format expected
-  // by the client.
-  client_buffer_size_bytes_ = audio_bus_->frames() * audio_bus_->channels() *
-      kBitsPerAudioInputSample / 8;
-  client_buffer_.reset(new uint8_t[client_buffer_size_bytes_]);
-
-  // There is a pending capture request before SetStreamInfo().
-  if (capturing_) {
-    // Set |capturing_| to false so that the state looks consistent to
-    // StartCapture(), which will reset it to true.
-    capturing_ = false;
-    StartCapture();
-  }
-}
-
-void AudioInputResource::StartThread() {
-  // Don't start the thread unless all our state is set up correctly.
-  if ((!audio_input_callback_0_3_ && !audio_input_callback_) ||
-      !socket_.get() || !capturing_ || !shared_memory_mapping_.memory() ||
-      !audio_bus_.get() || !client_buffer_.get()) {
-    return;
-  }
-  DCHECK(!audio_input_thread_.get());
-  audio_input_thread_ = std::make_unique<base::DelegateSimpleThread>(
-      this, "plugin_audio_input_thread");
-  audio_input_thread_->Start();
-}
-
-void AudioInputResource::StopThread() {
-  // Shut down the socket to escape any hanging |Receive|s.
-  if (socket_.get())
-    socket_->Shutdown();
-  if (audio_input_thread_.get()) {
-    audio_input_thread_->Join();
-    audio_input_thread_.reset();
-  }
-}
-
-void AudioInputResource::Run() {
-  // The shared memory represents AudioInputBufferParameters and the actual data
-  // buffer stored as an audio bus.
-  const media::AudioInputBuffer* buffer =
-      static_cast<const media::AudioInputBuffer*>(
-          shared_memory_mapping_.memory());
-  const uint32_t audio_bus_size_bytes =
-      base::checked_cast<uint32_t>(shared_memory_size_ -
-                                   sizeof(media::AudioInputBufferParameters));
-
-  // This is a constantly increasing counter that is used to verify on the
-  // browser side that buffers are in sync.
-  uint32_t buffer_index = 0;
-
-  while (true) {
-    int pending_data = 0;
-    size_t bytes_read =
-        socket_->Receive(base::byte_span_from_ref(pending_data));
-    if (bytes_read != sizeof(pending_data)) {
-      DCHECK_EQ(bytes_read, 0U);
-      break;
-    }
-    if (pending_data < 0)
-      break;
-
-    // Convert an AudioBus from deinterleaved float to interleaved integer data.
-    // Store the result in a preallocated |client_buffer_|.
-    static_assert(kBitsPerAudioInputSample == 16,
-                  "ToInterleaved expects 2 bytes.");
-    audio_bus_->ToInterleaved<media::SignedInt16SampleTypeTraits>(
-        audio_bus_->frames(), reinterpret_cast<int16_t*>(client_buffer_.get()));
-
-    // Inform other side that we have read the data from the shared memory.
-    ++buffer_index;
-    size_t bytes_sent = socket_->Send(base::byte_span_from_ref(buffer_index));
-    if (bytes_sent != sizeof(buffer_index)) {
-      DCHECK_EQ(bytes_sent, 0U);
-      break;
-    }
-
-    // While closing the stream, we may receive buffers whose size is different
-    // from |data_buffer_size|.
-    CHECK_LE(buffer->params.size, audio_bus_size_bytes);
-    if (buffer->params.size > 0) {
-      if (audio_input_callback_) {
-        PP_TimeDelta latency =
-            static_cast<double>(pending_data) / bytes_per_second_;
-        audio_input_callback_(client_buffer_.get(),
-                              client_buffer_size_bytes_,
-                              latency,
-                              user_data_);
-      } else {
-        audio_input_callback_0_3_(
-            client_buffer_.get(), client_buffer_size_bytes_, user_data_);
-      }
-    }
-  }
-}
-
-int32_t AudioInputResource::CommonOpen(
-    PP_Resource device_ref,
-    PP_Resource config,
-    PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
-    PPB_AudioInput_Callback audio_input_callback,
-    void* user_data,
-    scoped_refptr<TrackedCallback> callback) {
-  std::string device_id;
-  // |device_id| remains empty if |device_ref| is 0, which means the default
-  // device.
-  if (device_ref != 0) {
-    thunk::EnterResourceNoLock<thunk::PPB_DeviceRef_API> enter_device_ref(
-        device_ref, true);
-    if (enter_device_ref.failed())
-      return PP_ERROR_BADRESOURCE;
-    device_id = enter_device_ref.object()->GetDeviceRefData().id;
-  }
-
-  if (TrackedCallback::IsPending(open_callback_))
-    return PP_ERROR_INPROGRESS;
-  if (open_state_ != BEFORE_OPEN)
-    return PP_ERROR_FAILED;
-
-  if (!audio_input_callback_0_3 && !audio_input_callback)
-    return PP_ERROR_BADARGUMENT;
-  thunk::EnterResourceNoLock<thunk::PPB_AudioConfig_API> enter_config(config,
-                                                                      true);
-  if (enter_config.failed())
-    return PP_ERROR_BADARGUMENT;
-
-  config_ = config;
-  audio_input_callback_0_3_ = audio_input_callback_0_3;
-  audio_input_callback_ = audio_input_callback;
-  user_data_ = user_data;
-  open_callback_ = callback;
-  bytes_per_second_ = kAudioInputChannels * (kBitsPerAudioInputSample / 8) *
-                      enter_config.object()->GetSampleRate();
-  sample_frame_count_ = enter_config.object()->GetSampleFrameCount();
-
-  PpapiHostMsg_AudioInput_Open msg(
-      device_id, enter_config.object()->GetSampleRate(),
-      enter_config.object()->GetSampleFrameCount());
-  Call<PpapiPluginMsg_AudioInput_OpenReply>(
-      RENDERER, msg,
-      base::BindOnce(&AudioInputResource::OnPluginMsgOpenReply,
-                     base::Unretained(this)));
-  return PP_OK_COMPLETIONPENDING;
-}
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/audio_input_resource.h b/proxy/audio_input_resource.h
deleted file mode 100644
index f33fdd3..0000000
--- a/proxy/audio_input_resource.h
+++ /dev/null
@@ -1,156 +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_PROXY_AUDIO_INPUT_RESOURCE_H_
-#define PPAPI_PROXY_AUDIO_INPUT_RESOURCE_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <memory>
-
-#include "base/compiler_specific.h"
-#include "base/memory/read_only_shared_memory_region.h"
-#include "base/memory/scoped_refptr.h"
-#include "base/sync_socket.h"
-#include "base/threading/simple_thread.h"
-#include "ppapi/proxy/device_enumeration_resource_helper.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/shared_impl/scoped_pp_resource.h"
-#include "ppapi/thunk/ppb_audio_input_api.h"
-
-namespace media {
-class AudioBus;
-}
-
-namespace ppapi {
-namespace proxy {
-
-class ResourceMessageReplyParams;
-
-class AudioInputResource : public PluginResource,
-                           public thunk::PPB_AudioInput_API,
-                           public base::DelegateSimpleThread::Delegate {
- public:
-  AudioInputResource(Connection connection, PP_Instance instance);
-
-  AudioInputResource(const AudioInputResource&) = delete;
-  AudioInputResource& operator=(const AudioInputResource&) = delete;
-
-  ~AudioInputResource() override;
-
-  // Resource overrides.
-  thunk::PPB_AudioInput_API* AsPPB_AudioInput_API() override;
-  void OnReplyReceived(const ResourceMessageReplyParams& params,
-                       const IPC::Message& msg) override;
-
-  // PPB_AudioInput_API implementation.
-  int32_t EnumerateDevices(const PP_ArrayOutput& output,
-                           scoped_refptr<TrackedCallback> callback) override;
-  int32_t MonitorDeviceChange(PP_MonitorDeviceChangeCallback callback,
-                              void* user_data) override;
-  int32_t Open0_3(PP_Resource device_ref,
-                  PP_Resource config,
-                  PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
-                  void* user_data,
-                  scoped_refptr<TrackedCallback> callback) override;
-  int32_t Open(PP_Resource device_ref,
-               PP_Resource config,
-               PPB_AudioInput_Callback audio_input_callback,
-               void* user_data,
-               scoped_refptr<TrackedCallback> callback) override;
-  PP_Resource GetCurrentConfig() override;
-  PP_Bool StartCapture() override;
-  PP_Bool StopCapture() override;
-  void Close() override;
-
- protected:
-  // Resource override.
-  void LastPluginRefWasDeleted() override;
-
- private:
-  enum OpenState {
-    BEFORE_OPEN,
-    OPENED,
-    CLOSED
-  };
-
-  void OnPluginMsgOpenReply(const ResourceMessageReplyParams& params);
-
-  // Sets the shared memory and socket handles. This will automatically start
-  // capture if we're currently set to capture.
-  void SetStreamInfo(base::ReadOnlySharedMemoryRegion shared_memory_region,
-                     base::SyncSocket::Handle socket_handle);
-
-  // Starts execution of the audio input thread.
-  void StartThread();
-
-  // Stops execution of the audio input thread.
-  void StopThread();
-
-  // DelegateSimpleThread::Delegate implementation.
-  // Run on the audio input thread.
-  void Run() override;
-
-  int32_t CommonOpen(PP_Resource device_ref,
-                     PP_Resource config,
-                     PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
-                     PPB_AudioInput_Callback audio_input_callback,
-                     void* user_data,
-                     scoped_refptr<TrackedCallback> callback);
-
-  OpenState open_state_;
-
-  // True if capturing the stream.
-  bool capturing_;
-
-  // Socket used to notify us when new samples are available. This pointer is
-  // created in SetStreamInfo().
-  std::unique_ptr<base::CancelableSyncSocket> socket_;
-
-  // Sample buffer in shared memory. This pointer is created in
-  // SetStreamInfo(). The memory is only mapped when the audio thread is
-  // created.
-  base::ReadOnlySharedMemoryMapping shared_memory_mapping_;
-
-  // The size of the sample buffer in bytes.
-  size_t shared_memory_size_;
-
-  // When the callback is set, this thread is spawned for calling it.
-  std::unique_ptr<base::DelegateSimpleThread> audio_input_thread_;
-
-  // Callback to call when new samples are available.
-  PPB_AudioInput_Callback_0_3 audio_input_callback_0_3_;
-  PPB_AudioInput_Callback audio_input_callback_;
-
-  // User data pointer passed verbatim to the callback function.
-  void* user_data_;
-
-  // The callback is not directly passed to OnPluginMsgOpenReply() because we
-  // would like to be able to cancel it early in Close().
-  scoped_refptr<TrackedCallback> open_callback_;
-
-  // Owning reference to the current config object. This isn't actually used,
-  // we just dish it out as requested by the plugin.
-  ScopedPPResource config_;
-
-  DeviceEnumerationResourceHelper enumeration_helper_;
-
-  // The data size (in bytes) of one second of audio input. Used to calculate
-  // latency.
-  size_t bytes_per_second_;
-
-  // AudioBus for shuttling data across the shared memory.
-  std::unique_ptr<const media::AudioBus> audio_bus_;
-  int sample_frame_count_;
-
-  // Internal buffer for client's integer audio data.
-  int client_buffer_size_bytes_;
-  std::unique_ptr<uint8_t[]> client_buffer_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_AUDIO_INPUT_RESOURCE_H_
diff --git a/proxy/audio_output_resource.cc b/proxy/audio_output_resource.cc
deleted file mode 100644
index 62da7db..0000000
--- a/proxy/audio_output_resource.cc
+++ /dev/null
@@ -1,324 +0,0 @@
-// Copyright 2017 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/proxy/audio_output_resource.h"
-
-#include <memory>
-
-#include "base/check_op.h"
-#include "base/functional/bind.h"
-#include "base/numerics/safe_conversions.h"
-#include "ipc/ipc_platform_file.h"
-#include "media/base/audio_bus.h"
-#include "media/base/audio_parameters.h"
-#include "media/base/audio_sample_types.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/resource_message_params.h"
-#include "ppapi/proxy/serialized_handle.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/ppb_audio_config_shared.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_audio_config_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-AudioOutputResource::AudioOutputResource(Connection connection,
-                                         PP_Instance instance)
-    : PluginResource(connection, instance),
-      open_state_(BEFORE_OPEN),
-      playing_(false),
-      shared_memory_size_(0),
-      audio_output_callback_(NULL),
-      user_data_(NULL),
-      enumeration_helper_(this),
-      bytes_per_second_(0),
-      sample_frame_count_(0),
-      client_buffer_size_bytes_(0) {
-  SendCreate(RENDERER, PpapiHostMsg_AudioOutput_Create());
-}
-
-AudioOutputResource::~AudioOutputResource() {
-  Close();
-}
-
-thunk::PPB_AudioOutput_API* AudioOutputResource::AsPPB_AudioOutput_API() {
-  return this;
-}
-
-void AudioOutputResource::OnReplyReceived(
-    const ResourceMessageReplyParams& params,
-    const IPC::Message& msg) {
-  if (!enumeration_helper_.HandleReply(params, msg))
-    PluginResource::OnReplyReceived(params, msg);
-}
-
-int32_t AudioOutputResource::EnumerateDevices(
-    const PP_ArrayOutput& output,
-    scoped_refptr<TrackedCallback> callback) {
-  return enumeration_helper_.EnumerateDevices(output, callback);
-}
-
-int32_t AudioOutputResource::MonitorDeviceChange(
-    PP_MonitorDeviceChangeCallback callback,
-    void* user_data) {
-  return enumeration_helper_.MonitorDeviceChange(callback, user_data);
-}
-
-int32_t AudioOutputResource::Open(
-    PP_Resource device_ref,
-    PP_Resource config,
-    PPB_AudioOutput_Callback audio_output_callback,
-    void* user_data,
-    scoped_refptr<TrackedCallback> callback) {
-  return CommonOpen(device_ref, config, audio_output_callback, user_data,
-                    callback);
-}
-
-PP_Resource AudioOutputResource::GetCurrentConfig() {
-  // AddRef for the caller.
-  if (config_.get())
-    PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(config_);
-  return config_;
-}
-
-PP_Bool AudioOutputResource::StartPlayback() {
-  if (open_state_ == CLOSED || (open_state_ == BEFORE_OPEN &&
-                                !TrackedCallback::IsPending(open_callback_))) {
-    return PP_FALSE;
-  }
-  if (playing_)
-    return PP_TRUE;
-
-  playing_ = true;
-
-  StartThread();
-
-  Post(RENDERER, PpapiHostMsg_AudioOutput_StartOrStop(true));
-  return PP_TRUE;
-}
-
-PP_Bool AudioOutputResource::StopPlayback() {
-  if (open_state_ == CLOSED)
-    return PP_FALSE;
-  if (!playing_)
-    return PP_TRUE;
-
-  // If the audio output device hasn't been opened, set |playing_| to false and
-  // return directly.
-  if (open_state_ == BEFORE_OPEN) {
-    playing_ = false;
-    return PP_TRUE;
-  }
-
-  Post(RENDERER, PpapiHostMsg_AudioOutput_StartOrStop(false));
-
-  StopThread();
-  playing_ = false;
-
-  return PP_TRUE;
-}
-
-void AudioOutputResource::Close() {
-  if (open_state_ == CLOSED)
-    return;
-
-  open_state_ = CLOSED;
-  Post(RENDERER, PpapiHostMsg_AudioOutput_Close());
-  StopThread();
-
-  if (TrackedCallback::IsPending(open_callback_))
-    open_callback_->PostAbort();
-}
-
-void AudioOutputResource::LastPluginRefWasDeleted() {
-  enumeration_helper_.LastPluginRefWasDeleted();
-}
-
-void AudioOutputResource::OnPluginMsgOpenReply(
-    const ResourceMessageReplyParams& params) {
-  if (open_state_ == BEFORE_OPEN && params.result() == PP_OK) {
-    IPC::PlatformFileForTransit socket_handle_for_transit =
-        IPC::InvalidPlatformFileForTransit();
-    params.TakeSocketHandleAtIndex(0, &socket_handle_for_transit);
-    base::SyncSocket::Handle socket_handle =
-        IPC::PlatformFileForTransitToPlatformFile(socket_handle_for_transit);
-    CHECK(socket_handle != base::SyncSocket::kInvalidHandle);
-
-    SerializedHandle serialized_shared_memory_handle =
-        params.TakeHandleOfTypeAtIndex(1,
-                                       SerializedHandle::SHARED_MEMORY_REGION);
-    CHECK(serialized_shared_memory_handle.IsHandleValid());
-
-    open_state_ = OPENED;
-    SetStreamInfo(base::UnsafeSharedMemoryRegion::Deserialize(
-                      serialized_shared_memory_handle.TakeSharedMemoryRegion()),
-                  socket_handle);
-  } else {
-    playing_ = false;
-  }
-
-  // The callback may have been aborted by Close().
-  if (TrackedCallback::IsPending(open_callback_))
-    open_callback_->Run(params.result());
-}
-
-void AudioOutputResource::SetStreamInfo(
-    base::UnsafeSharedMemoryRegion shared_memory_region,
-    base::SyncSocket::Handle socket_handle) {
-  socket_ = std::make_unique<base::CancelableSyncSocket>(socket_handle);
-
-  // Ensure that the allocated memory is enough for the audio bus and buffer
-  // parameters. Note that there might be slightly more allocated memory as
-  // some shared memory implementations round up to the closest 2^n when
-  // allocating.
-  // Example: DCHECK_GE(8208, 8192 + 16) for |sample_frame_count_| = 2048.
-  shared_memory_size_ = media::ComputeAudioOutputBufferSize(
-      kAudioOutputChannels, sample_frame_count_);
-  DCHECK_GE(shared_memory_region.GetSize(), shared_memory_size_);
-
-  // If we fail to map the shared memory into the caller's address space we
-  // might as well fail here since nothing will work if this is the case.
-  shared_memory_mapping_ = shared_memory_region.MapAt(0, shared_memory_size_);
-  CHECK(shared_memory_mapping_.IsValid());
-
-  // Create a new audio bus and wrap the audio data section in shared memory.
-  media::AudioOutputBuffer* buffer =
-      static_cast<media::AudioOutputBuffer*>(shared_memory_mapping_.memory());
-  audio_bus_ = media::AudioBus::WrapMemory(kAudioOutputChannels,
-                                           sample_frame_count_, buffer->audio);
-
-  // Setup integer audio buffer for user audio data
-  client_buffer_size_bytes_ = audio_bus_->frames() * audio_bus_->channels() *
-                              kBitsPerAudioOutputSample / 8;
-  client_buffer_.reset(new uint8_t[client_buffer_size_bytes_]);
-}
-
-void AudioOutputResource::StartThread() {
-  // Don't start the thread unless all our state is set up correctly.
-  if (!audio_output_callback_ || !socket_.get() ||
-      !shared_memory_mapping_.memory() || !audio_bus_.get() ||
-      !client_buffer_.get() || bytes_per_second_ == 0)
-    return;
-
-  // Clear contents of shm buffer before starting audio thread. This will
-  // prevent a burst of static if for some reason the audio thread doesn't
-  // start up quickly enough.
-  memset(shared_memory_mapping_.memory(), 0, shared_memory_size_);
-  memset(client_buffer_.get(), 0, client_buffer_size_bytes_);
-
-  DCHECK(!audio_output_thread_.get());
-  audio_output_thread_ = std::make_unique<base::DelegateSimpleThread>(
-      this, "plugin_audio_output_thread");
-  audio_output_thread_->Start();
-}
-
-void AudioOutputResource::StopThread() {
-  // Shut down the socket to escape any hanging |Receive|s.
-  if (socket_.get())
-    socket_->Shutdown();
-  if (audio_output_thread_.get()) {
-    audio_output_thread_->Join();
-    audio_output_thread_.reset();
-  }
-}
-
-void AudioOutputResource::Run() {
-  // The shared memory represents AudioOutputBufferParameters and the actual
-  // data buffer stored as an audio bus.
-  media::AudioOutputBuffer* buffer =
-      static_cast<media::AudioOutputBuffer*>(shared_memory_mapping_.memory());
-
-  // This is a constantly increasing counter that is used to verify on the
-  // browser side that buffers are in sync.
-  uint32_t buffer_index = 0;
-
-  while (true) {
-    int pending_data = 0;
-    size_t bytes_read =
-        socket_->Receive(base::byte_span_from_ref(pending_data));
-    if (bytes_read != sizeof(pending_data)) {
-      DCHECK_EQ(bytes_read, 0U);
-      break;
-    }
-    if (pending_data < 0)
-      break;
-
-    {
-      base::TimeDelta delay = base::Microseconds(buffer->params.delay_us);
-
-      audio_output_callback_(client_buffer_.get(), client_buffer_size_bytes_,
-                             delay.InSecondsF(), user_data_);
-    }
-
-    // Deinterleave the audio data into the shared memory as floats.
-    static_assert(kBitsPerAudioOutputSample == 16,
-                  "FromInterleaved expects 2 bytes.");
-    audio_bus_->FromInterleaved<media::SignedInt16SampleTypeTraits>(
-        reinterpret_cast<int16_t*>(client_buffer_.get()), audio_bus_->frames());
-
-    // Inform other side that we have read the data from the shared memory.
-    // Let the other end know which buffer we just filled.  The buffer index is
-    // used to ensure the other end is getting the buffer it expects.  For more
-    // details on how this works see AudioSyncReader::WaitUntilDataIsReady().
-    ++buffer_index;
-    size_t bytes_sent = socket_->Send(base::byte_span_from_ref(buffer_index));
-    if (bytes_sent != sizeof(buffer_index)) {
-      DCHECK_EQ(bytes_sent, 0U);
-      break;
-    }
-  }
-}
-
-int32_t AudioOutputResource::CommonOpen(
-    PP_Resource device_ref,
-    PP_Resource config,
-    PPB_AudioOutput_Callback audio_output_callback,
-    void* user_data,
-    scoped_refptr<TrackedCallback> callback) {
-  std::string device_id;
-  // |device_id| remains empty if |device_ref| is 0, which means the default
-  // device.
-  if (device_ref != 0) {
-    thunk::EnterResourceNoLock<thunk::PPB_DeviceRef_API> enter_device_ref(
-        device_ref, true);
-    if (enter_device_ref.failed())
-      return PP_ERROR_BADRESOURCE;
-    device_id = enter_device_ref.object()->GetDeviceRefData().id;
-  }
-
-  if (TrackedCallback::IsPending(open_callback_))
-    return PP_ERROR_INPROGRESS;
-  if (open_state_ != BEFORE_OPEN)
-    return PP_ERROR_FAILED;
-
-  if (!audio_output_callback)
-    return PP_ERROR_BADARGUMENT;
-  thunk::EnterResourceNoLock<thunk::PPB_AudioConfig_API> enter_config(config,
-                                                                      true);
-  if (enter_config.failed())
-    return PP_ERROR_BADARGUMENT;
-
-  config_ = config;
-  audio_output_callback_ = audio_output_callback;
-  user_data_ = user_data;
-  open_callback_ = callback;
-  bytes_per_second_ = kAudioOutputChannels * (kBitsPerAudioOutputSample / 8) *
-                      enter_config.object()->GetSampleRate();
-  sample_frame_count_ = enter_config.object()->GetSampleFrameCount();
-
-  PpapiHostMsg_AudioOutput_Open msg(
-      device_id, enter_config.object()->GetSampleRate(),
-      enter_config.object()->GetSampleFrameCount());
-  Call<PpapiPluginMsg_AudioOutput_OpenReply>(
-      RENDERER, msg,
-      base::BindOnce(&AudioOutputResource::OnPluginMsgOpenReply,
-                     base::Unretained(this)));
-  return PP_OK_COMPLETIONPENDING;
-}
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/audio_output_resource.h b/proxy/audio_output_resource.h
deleted file mode 100644
index a22d008..0000000
--- a/proxy/audio_output_resource.h
+++ /dev/null
@@ -1,149 +0,0 @@
-// Copyright 2017 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_PROXY_AUDIO_OUTPUT_RESOURCE_H_
-#define PPAPI_PROXY_AUDIO_OUTPUT_RESOURCE_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <memory>
-
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_refptr.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "base/sync_socket.h"
-#include "base/threading/simple_thread.h"
-#include "ppapi/c/ppb_audio_config.h"
-#include "ppapi/proxy/device_enumeration_resource_helper.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/shared_impl/scoped_pp_resource.h"
-#include "ppapi/thunk/ppb_audio_output_api.h"
-
-namespace media {
-class AudioBus;
-}
-
-namespace ppapi {
-namespace proxy {
-
-class ResourceMessageReplyParams;
-
-class AudioOutputResource : public PluginResource,
-                            public thunk::PPB_AudioOutput_API,
-                            public base::DelegateSimpleThread::Delegate {
- public:
-  AudioOutputResource(Connection connection, PP_Instance instance);
-
-  AudioOutputResource(const AudioOutputResource&) = delete;
-  AudioOutputResource& operator=(const AudioOutputResource&) = delete;
-
-  ~AudioOutputResource() override;
-
-  // Resource overrides.
-  thunk::PPB_AudioOutput_API* AsPPB_AudioOutput_API() override;
-  void OnReplyReceived(const ResourceMessageReplyParams& params,
-                       const IPC::Message& msg) override;
-
-  // PPB_AudioOutput_API implementation.
-  int32_t EnumerateDevices(const PP_ArrayOutput& output,
-                           scoped_refptr<TrackedCallback> callback) override;
-  int32_t MonitorDeviceChange(PP_MonitorDeviceChangeCallback callback,
-                              void* user_data) override;
-  int32_t Open(PP_Resource device_ref,
-               PP_Resource config,
-               PPB_AudioOutput_Callback audio_output_callback,
-               void* user_data,
-               scoped_refptr<TrackedCallback> callback) override;
-
-  PP_Resource GetCurrentConfig() override;
-
-  bool playing() const { return playing_; }
-
-  PP_Bool StartPlayback() override;
-  PP_Bool StopPlayback() override;
-  void Close() override;
-
- protected:
-  // Resource override.
-  void LastPluginRefWasDeleted() override;
-
- private:
-  enum OpenState { BEFORE_OPEN, OPENED, CLOSED };
-
-  void OnPluginMsgOpenReply(const ResourceMessageReplyParams& params);
-
-  // Sets the shared memory and socket handles.
-  void SetStreamInfo(base::UnsafeSharedMemoryRegion shared_memory_region,
-                     base::SyncSocket::Handle socket_handle);
-
-  // Starts execution of the audio output thread.
-  void StartThread();
-
-  // Stops execution of the audio output thread.
-  void StopThread();
-
-  // DelegateSimpleThread::Delegate implementation.
-  // Run on the audio output thread.
-  void Run() override;
-
-  int32_t CommonOpen(PP_Resource device_ref,
-                     PP_Resource config,
-                     PPB_AudioOutput_Callback audio_output_callback,
-                     void* user_data,
-                     scoped_refptr<TrackedCallback> callback);
-
-  OpenState open_state_;
-
-  // True if playing the stream.
-  bool playing_;
-
-  // Socket used to notify us when new samples are available. This pointer is
-  // created in SetStreamInfo().
-  std::unique_ptr<base::CancelableSyncSocket> socket_;
-
-  // Sample buffer in shared memory. This pointer is created in
-  // SetStreamInfo(). The memory is only mapped when the audio thread is
-  // created.
-  base::WritableSharedMemoryMapping shared_memory_mapping_;
-
-  // The size of the sample buffer in bytes.
-  size_t shared_memory_size_;
-
-  // When the callback is set, this thread is spawned for calling it.
-  std::unique_ptr<base::DelegateSimpleThread> audio_output_thread_;
-
-  // Callback to call when new samples are available.
-  PPB_AudioOutput_Callback audio_output_callback_;
-
-  // User data pointer passed verbatim to the callback function.
-  void* user_data_;
-
-  // The callback is not directly passed to OnPluginMsgOpenReply() because we
-  // would like to be able to cancel it early in Close().
-  scoped_refptr<TrackedCallback> open_callback_;
-
-  // Owning reference to the current config object. This isn't actually used,
-  // we just dish it out as requested by the plugin.
-  ScopedPPResource config_;
-
-  DeviceEnumerationResourceHelper enumeration_helper_;
-
-  // The data size (in bytes) of one second of audio output. Used to calculate
-  // latency.
-  size_t bytes_per_second_;
-
-  // AudioBus for shuttling data across the shared memory.
-  std::unique_ptr<media::AudioBus> audio_bus_;
-  int sample_frame_count_;
-
-  // Internal buffer for client's integer audio data.
-  int client_buffer_size_bytes_;
-  std::unique_ptr<uint8_t[]> client_buffer_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_AUDIO_OUTPUT_RESOURCE_H_
diff --git a/proxy/browser_font_singleton_resource.cc b/proxy/browser_font_singleton_resource.cc
deleted file mode 100644
index c2fe97c..0000000
--- a/proxy/browser_font_singleton_resource.cc
+++ /dev/null
@@ -1,38 +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/proxy/browser_font_singleton_resource.h"
-
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-BrowserFontSingletonResource::BrowserFontSingletonResource(
-    Connection connection,
-    PP_Instance instance)
-    : PluginResource(connection, instance) {
-  SendCreate(BROWSER, PpapiHostMsg_BrowserFontSingleton_Create());
-}
-
-BrowserFontSingletonResource::~BrowserFontSingletonResource() {
-}
-
-thunk::PPB_BrowserFont_Singleton_API*
-BrowserFontSingletonResource::AsPPB_BrowserFont_Singleton_API() {
-  return this;
-}
-
-PP_Var BrowserFontSingletonResource::GetFontFamilies(PP_Instance instance) {
-  if (families_.empty()) {
-    SyncCall<PpapiPluginMsg_BrowserFontSingleton_GetFontFamiliesReply>(
-        BROWSER, PpapiHostMsg_BrowserFontSingleton_GetFontFamilies(),
-        &families_);
-  }
-  return StringVar::StringToPPVar(families_);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/browser_font_singleton_resource.h b/proxy/browser_font_singleton_resource.h
deleted file mode 100644
index ce784e7..0000000
--- a/proxy/browser_font_singleton_resource.h
+++ /dev/null
@@ -1,44 +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_PROXY_BROWSER_FONT_SINGLETON_RESOURCE_H_
-#define PPAPI_PROXY_BROWSER_FONT_SINGLETON_RESOURCE_H_
-
-#include "ppapi/proxy/connection.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/thunk/ppb_browser_font_singleton_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-// This handles the singleton calls (that don't take a PP_Resource parameter)
-// on the browser font interface
-class BrowserFontSingletonResource
-    : public PluginResource,
-      public thunk::PPB_BrowserFont_Singleton_API {
- public:
-  BrowserFontSingletonResource(Connection connection, PP_Instance instance);
-
-  BrowserFontSingletonResource(const BrowserFontSingletonResource&) = delete;
-  BrowserFontSingletonResource& operator=(const BrowserFontSingletonResource&) =
-      delete;
-
-  ~BrowserFontSingletonResource() override;
-
-  // Resource override.
-  thunk::PPB_BrowserFont_Singleton_API*
-      AsPPB_BrowserFont_Singleton_API() override;
-
-  // thunk::PPB_BrowserFontSingleton_API implementation.
-  PP_Var GetFontFamilies(PP_Instance instance) override;
-
- private:
-  // Lazily-filled-in list of font families.
-  std::string families_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_BROWSER_FONT_SINGLETON_RESOURCE_H_
diff --git a/proxy/camera_capabilities_resource.cc b/proxy/camera_capabilities_resource.cc
deleted file mode 100644
index 68b055d..0000000
--- a/proxy/camera_capabilities_resource.cc
+++ /dev/null
@@ -1,37 +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/numerics/safe_conversions.h"
-#include "ppapi/proxy/camera_capabilities_resource.h"
-
-namespace ppapi {
-namespace proxy {
-
-CameraCapabilitiesResource::CameraCapabilitiesResource(
-    PP_Instance instance,
-    const std::vector<PP_VideoCaptureFormat>& formats)
-    : Resource(OBJECT_IS_PROXY, instance),
-      num_video_capture_formats_(formats.size()),
-      video_capture_formats_(
-          new PP_VideoCaptureFormat[num_video_capture_formats_]) {
-  std::copy(formats.begin(), formats.end(), video_capture_formats_.get());
-}
-
-CameraCapabilitiesResource::~CameraCapabilitiesResource() {
-}
-
-thunk::PPB_CameraCapabilities_API*
-CameraCapabilitiesResource::AsPPB_CameraCapabilities_API() {
-  return this;
-}
-
-void CameraCapabilitiesResource::GetSupportedVideoCaptureFormats(
-    uint32_t* array_size,
-    PP_VideoCaptureFormat** formats) {
-  *array_size = base::checked_cast<uint32_t>(num_video_capture_formats_);
-  *formats = video_capture_formats_.get();
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/camera_capabilities_resource.h b/proxy/camera_capabilities_resource.h
deleted file mode 100644
index 298a781..0000000
--- a/proxy/camera_capabilities_resource.h
+++ /dev/null
@@ -1,50 +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_PROXY_CAMERA_CAPABILITIES_RESOURCE_H_
-#define PPAPI_PROXY_CAMERA_CAPABILITIES_RESOURCE_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <memory>
-#include <vector>
-
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_camera_capabilities_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT CameraCapabilitiesResource
-    : public Resource,
-      public thunk::PPB_CameraCapabilities_API {
- public:
-  CameraCapabilitiesResource(PP_Instance instance,
-                             const std::vector<PP_VideoCaptureFormat>& formats);
-
-  CameraCapabilitiesResource(const CameraCapabilitiesResource&) = delete;
-  CameraCapabilitiesResource& operator=(const CameraCapabilitiesResource&) =
-      delete;
-
-  ~CameraCapabilitiesResource() override;
-
-  // Resource overrides.
-  thunk::PPB_CameraCapabilities_API* AsPPB_CameraCapabilities_API() override;
-
-  // PPB_CameraCapabilities_API implementation.
-  void GetSupportedVideoCaptureFormats(
-      uint32_t* array_size,
-      PP_VideoCaptureFormat** formats) override;
-
- private:
-  size_t num_video_capture_formats_;
-  std::unique_ptr<PP_VideoCaptureFormat[]> video_capture_formats_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_CAMERA_CAPABILITIES_RESOURCE_H_
diff --git a/proxy/camera_device_resource.cc b/proxy/camera_device_resource.cc
deleted file mode 100644
index 458becc..0000000
--- a/proxy/camera_device_resource.cc
+++ /dev/null
@@ -1,122 +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/proxy/camera_device_resource.h"
-
-#include "base/functional/bind.h"
-#include "ppapi/proxy/camera_capabilities_resource.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-CameraDeviceResource::CameraDeviceResource(Connection connection,
-                                           PP_Instance instance)
-    : PluginResource(connection, instance),
-      open_state_(OpenState::BEFORE_OPEN) {
-  SendCreate(RENDERER, PpapiHostMsg_CameraDevice_Create());
-}
-
-CameraDeviceResource::~CameraDeviceResource() {
-}
-
-int32_t CameraDeviceResource::Open(
-    PP_Var device_id,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (open_state_ != OpenState::BEFORE_OPEN)
-    return PP_ERROR_FAILED;
-
-  if (TrackedCallback::IsPending(open_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  scoped_refptr<StringVar> source_string_var(StringVar::FromPPVar(device_id));
-  if (!source_string_var || source_string_var->value().empty())
-    return PP_ERROR_BADARGUMENT;
-
-  open_callback_ = callback;
-
-  Call<PpapiPluginMsg_CameraDevice_OpenReply>(
-      RENDERER, PpapiHostMsg_CameraDevice_Open(source_string_var->value()),
-      base::BindOnce(&CameraDeviceResource::OnPluginMsgOpenReply,
-                     base::Unretained(this)));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void CameraDeviceResource::Close() {
-  if (open_state_ == OpenState::CLOSED)
-    return;
-
-  if (TrackedCallback::IsPending(open_callback_)) {
-    open_callback_->PostAbort();
-    open_callback_ = nullptr;
-  }
-
-  if (TrackedCallback::IsPending(get_capabilities_callback_)) {
-    get_capabilities_callback_->PostAbort();
-    get_capabilities_callback_ = nullptr;
-  }
-
-  Post(RENDERER, PpapiHostMsg_CameraDevice_Close());
-
-  open_state_ = OpenState::CLOSED;
-}
-
-int32_t CameraDeviceResource::GetCameraCapabilities(
-    PP_Resource* capabilities,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (!is_opened())
-    return PP_ERROR_FAILED;
-
-  if (TrackedCallback::IsPending(get_capabilities_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  if (camera_capabilities_.get()) {
-    *capabilities = camera_capabilities_->GetReference();
-    return PP_OK;
-  }
-
-  get_capabilities_callback_ = callback;
-  Call<PpapiPluginMsg_CameraDevice_GetSupportedVideoCaptureFormatsReply>(
-      RENDERER, PpapiHostMsg_CameraDevice_GetSupportedVideoCaptureFormats(),
-      base::BindOnce(
-          &CameraDeviceResource::OnPluginMsgGetVideoCaptureFormatsReply,
-          base::Unretained(this), capabilities));
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void CameraDeviceResource::OnPluginMsgOpenReply(
-    const ResourceMessageReplyParams& params) {
-  // The callback may have been aborted by Close().
-  if (TrackedCallback::IsPending(open_callback_)) {
-    if (open_state_ == OpenState::BEFORE_OPEN && params.result() == PP_OK)
-      open_state_ = OpenState::OPENED;
-
-    open_callback_->Run(params.result());
-  }
-}
-
-void CameraDeviceResource::OnPluginMsgGetVideoCaptureFormatsReply(
-    PP_Resource* capabilities_output,
-    const ResourceMessageReplyParams& params,
-    const std::vector<PP_VideoCaptureFormat>& formats) {
-  if (!TrackedCallback::IsPending(get_capabilities_callback_))
-    return;
-
-  // Return camera capabilities.
-  int32_t result = params.result();
-  scoped_refptr<TrackedCallback> callback;
-  callback.swap(get_capabilities_callback_);
-  if (result == PP_OK) {
-    camera_capabilities_ =
-        new CameraCapabilitiesResource(pp_instance(), formats);
-    *capabilities_output = camera_capabilities_->GetReference();
-  }
-  callback->Run(result == PP_OK ? PP_OK : PP_ERROR_FAILED);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/camera_device_resource.h b/proxy/camera_device_resource.h
deleted file mode 100644
index 3ca8b2f..0000000
--- a/proxy/camera_device_resource.h
+++ /dev/null
@@ -1,70 +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_PROXY_CAMERA_DEVICE_RESOURCE_H_
-#define PPAPI_PROXY_CAMERA_DEVICE_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/private/pp_video_capture_format.h"
-#include "ppapi/proxy/connection.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_camera_device_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class CameraCapabilitiesResource;
-
-class PPAPI_PROXY_EXPORT CameraDeviceResource
-    : public PluginResource,
-      public thunk::PPB_CameraDevice_API {
- public:
-  CameraDeviceResource(Connection connection, PP_Instance instance);
-
-  CameraDeviceResource(const CameraDeviceResource&) = delete;
-  CameraDeviceResource& operator=(const CameraDeviceResource&) = delete;
-
-  ~CameraDeviceResource() override;
-
-  // Resource overrides:
-  thunk::PPB_CameraDevice_API* AsPPB_CameraDevice_API() override {
-    return this;
-  }
-
-  // PPB_CameraDevice_API implementation.
-  int32_t Open(PP_Var device_id,
-               const scoped_refptr<TrackedCallback>& callback) override;
-  void Close() override;
-  int32_t GetCameraCapabilities(
-      PP_Resource* capabilities,
-      const scoped_refptr<TrackedCallback>& callback) override;
-
- private:
-  enum class OpenState { BEFORE_OPEN, OPENED, CLOSED };
-
-  void OnPluginMsgGetVideoCaptureFormatsReply(
-      PP_Resource* capabilities_output,
-      const ResourceMessageReplyParams& params,
-      const std::vector<PP_VideoCaptureFormat>& formats);
-
-  void OnPluginMsgOpenReply(const ResourceMessageReplyParams& params);
-
-  bool is_opened() const { return open_state_ == OpenState::OPENED; }
-
-  // Holds a reference of the callback so that Close() can cancel it.
-  scoped_refptr<TrackedCallback> open_callback_;
-  OpenState open_state_;
-
-  scoped_refptr<TrackedCallback> get_capabilities_callback_;
-  scoped_refptr<CameraCapabilitiesResource> camera_capabilities_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_CAMERA_DEVICE_RESOURCE_H_
diff --git a/proxy/connection.h b/proxy/connection.h
deleted file mode 100644
index 75bfccf..0000000
--- a/proxy/connection.h
+++ /dev/null
@@ -1,69 +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_PROXY_CONNECTION_H_
-#define PPAPI_PROXY_CONNECTION_H_
-
-#include "ipc/ipc_message.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-
-namespace IPC {
-class Sender;
-}
-
-namespace ppapi {
-namespace proxy {
-
-// This struct holds the channels that a resource uses to send message to the
-// browser and renderer.
-class Connection {
- public:
-  Connection()
-      : browser_sender_(nullptr),
-        in_process_renderer_sender_(nullptr),
-        in_process_(false),
-        browser_sender_routing_id_(MSG_ROUTING_NONE) {}
-  Connection(
-      IPC::Sender* browser,
-      scoped_refptr<PluginDispatcher::Sender> out_of_process_renderer_sender)
-      : browser_sender_(browser),
-        in_process_renderer_sender_(nullptr),
-        out_of_process_renderer_sender_(out_of_process_renderer_sender),
-        in_process_(false),
-        browser_sender_routing_id_(MSG_ROUTING_NONE) {}
-  Connection(IPC::Sender* browser,
-             IPC::Sender* in_process_renderer_sender,
-             int routing_id)
-      : browser_sender_(browser),
-        in_process_renderer_sender_(in_process_renderer_sender),
-        in_process_(true),
-        browser_sender_routing_id_(routing_id) {}
-
-  IPC::Sender* GetRendererSender() {
-    return in_process_ ? in_process_renderer_sender_
-                       : out_of_process_renderer_sender_.get();
-  }
-  IPC::Sender* browser_sender() { return browser_sender_; }
-  bool in_process() { return in_process_; }
-  int browser_sender_routing_id() { return browser_sender_routing_id_; }
-
- private:
-  IPC::Sender* browser_sender_;
-
-  IPC::Sender* in_process_renderer_sender_;
-  scoped_refptr<PluginDispatcher::Sender> out_of_process_renderer_sender_;
-
-  bool in_process_;
-  // We need to use a routing ID when a plugin is in-process, and messages are
-  // sent back from the browser to the renderer. This is so that messages are
-  // routed to the proper RenderFrameImpl.
-  int browser_sender_routing_id_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-
-#endif  // PPAPI_PROXY_CONNECTION_H_
-
diff --git a/proxy/device_enumeration_resource_helper.cc b/proxy/device_enumeration_resource_helper.cc
deleted file mode 100644
index 1e25b9a..0000000
--- a/proxy/device_enumeration_resource_helper.cc
+++ /dev/null
@@ -1,187 +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/proxy/device_enumeration_resource_helper.h"
-
-#include <stddef.h>
-
-#include <memory>
-
-#include "base/check.h"
-#include "base/functional/bind.h"
-#include "ipc/ipc_message.h"
-#include "ipc/ipc_message_macros.h"
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/dispatch_reply_message.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/resource_message_params.h"
-#include "ppapi/shared_impl/array_writer.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/ppb_device_ref_shared.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-
-namespace ppapi {
-namespace proxy {
-
-DeviceEnumerationResourceHelper::DeviceEnumerationResourceHelper(
-    PluginResource* owner)
-    : owner_(owner),
-      pending_enumerate_devices_(false),
-      monitor_callback_id_(0),
-      monitor_user_data_(NULL) {
-}
-
-DeviceEnumerationResourceHelper::~DeviceEnumerationResourceHelper() {
-}
-
-int32_t DeviceEnumerationResourceHelper::EnumerateDevices(
-    const PP_ArrayOutput& output,
-    scoped_refptr<TrackedCallback> callback) {
-  if (pending_enumerate_devices_)
-    return PP_ERROR_INPROGRESS;
-
-  pending_enumerate_devices_ = true;
-  PpapiHostMsg_DeviceEnumeration_EnumerateDevices msg;
-  owner_->Call<PpapiPluginMsg_DeviceEnumeration_EnumerateDevicesReply>(
-      PluginResource::RENDERER, msg,
-      base::BindOnce(
-          &DeviceEnumerationResourceHelper::OnPluginMsgEnumerateDevicesReply,
-          weak_ptr_factory_.GetWeakPtr(), output, callback));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t DeviceEnumerationResourceHelper::EnumerateDevicesSync(
-    const PP_ArrayOutput& output) {
-  std::vector<DeviceRefData> devices;
-  int32_t result =
-      owner_->SyncCall<PpapiPluginMsg_DeviceEnumeration_EnumerateDevicesReply>(
-          PluginResource::RENDERER,
-          PpapiHostMsg_DeviceEnumeration_EnumerateDevices(),
-          &devices);
-
-  if (result == PP_OK)
-    result = WriteToArrayOutput(devices, output);
-
-  return result;
-}
-
-int32_t DeviceEnumerationResourceHelper::MonitorDeviceChange(
-    PP_MonitorDeviceChangeCallback callback,
-    void* user_data) {
-  monitor_callback_id_++;
-  monitor_user_data_ = user_data;
-  if (callback) {
-    monitor_callback_.reset(
-        ThreadAwareCallback<PP_MonitorDeviceChangeCallback>::Create(callback));
-    if (!monitor_callback_.get())
-      return PP_ERROR_NO_MESSAGE_LOOP;
-
-    owner_->Post(PluginResource::RENDERER,
-                 PpapiHostMsg_DeviceEnumeration_MonitorDeviceChange(
-                     monitor_callback_id_));
-  } else {
-    monitor_callback_.reset(NULL);
-
-    owner_->Post(PluginResource::RENDERER,
-                 PpapiHostMsg_DeviceEnumeration_StopMonitoringDeviceChange());
-  }
-  return PP_OK;
-}
-
-bool DeviceEnumerationResourceHelper::HandleReply(
-    const ResourceMessageReplyParams& params,
-    const IPC::Message& msg) {
-  PPAPI_BEGIN_MESSAGE_MAP(DeviceEnumerationResourceHelper, msg)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_DeviceEnumeration_NotifyDeviceChange,
-        OnPluginMsgNotifyDeviceChange)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(return false)
-  PPAPI_END_MESSAGE_MAP()
-
-  return true;
-}
-
-void DeviceEnumerationResourceHelper::LastPluginRefWasDeleted() {
-  // Make sure that no further notifications are sent to the plugin.
-  monitor_callback_id_++;
-  monitor_callback_.reset(NULL);
-  monitor_user_data_ = NULL;
-
-  // There is no need to do anything with pending callback of
-  // EnumerateDevices(), because OnPluginMsgEnumerateDevicesReply*() will handle
-  // that properly.
-}
-
-void DeviceEnumerationResourceHelper::OnPluginMsgEnumerateDevicesReply(
-    const PP_ArrayOutput& output,
-    scoped_refptr<TrackedCallback> callback,
-    const ResourceMessageReplyParams& params,
-    const std::vector<DeviceRefData>& devices) {
-  pending_enumerate_devices_ = false;
-
-  // We shouldn't access |output| if the callback has been called, which is
-  // possible if the last plugin reference to the corresponding resource has
-  // gone away, and the callback has been aborted.
-  if (!TrackedCallback::IsPending(callback))
-    return;
-
-  int32_t result = params.result();
-  if (result == PP_OK)
-    result = WriteToArrayOutput(devices, output);
-
-  callback->Run(result);
-}
-
-void DeviceEnumerationResourceHelper::OnPluginMsgNotifyDeviceChange(
-    const ResourceMessageReplyParams& /* params */,
-    uint32_t callback_id,
-    const std::vector<DeviceRefData>& devices) {
-  if (monitor_callback_id_ != callback_id) {
-    // A new callback or NULL has been set.
-    return;
-  }
-
-  CHECK(monitor_callback_.get());
-
-  std::unique_ptr<PP_Resource[]> elements;
-  uint32_t size = static_cast<uint32_t>(devices.size());
-  if (size > 0) {
-    elements.reset(new PP_Resource[size]);
-    for (size_t index = 0; index < size; ++index) {
-      PPB_DeviceRef_Shared* device_object = new PPB_DeviceRef_Shared(
-          OBJECT_IS_PROXY, owner_->pp_instance(), devices[index]);
-      elements[index] = device_object->GetReference();
-    }
-  }
-
-  monitor_callback_->RunOnTargetThread(monitor_user_data_, size,
-                                       elements.get());
-  for (size_t index = 0; index < size; ++index)
-    PpapiGlobals::Get()->GetResourceTracker()->ReleaseResource(elements[index]);
-}
-
-int32_t DeviceEnumerationResourceHelper::WriteToArrayOutput(
-    const std::vector<DeviceRefData>& devices,
-    const PP_ArrayOutput& output) {
-  ArrayWriter writer(output);
-  if (!writer.is_valid())
-    return PP_ERROR_BADARGUMENT;
-
-  std::vector<scoped_refptr<Resource> > device_resources;
-  for (size_t i = 0; i < devices.size(); ++i) {
-    device_resources.push_back(new PPB_DeviceRef_Shared(
-        OBJECT_IS_PROXY, owner_->pp_instance(), devices[i]));
-  }
-  if (!writer.StoreResourceVector(device_resources))
-    return PP_ERROR_FAILED;
-
-  return PP_OK;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/device_enumeration_resource_helper.h b/proxy/device_enumeration_resource_helper.h
deleted file mode 100644
index 37eff3e..0000000
--- a/proxy/device_enumeration_resource_helper.h
+++ /dev/null
@@ -1,87 +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_PROXY_DEVICE_ENUMERATION_RESOURCE_HELPER_H_
-#define PPAPI_PROXY_DEVICE_ENUMERATION_RESOURCE_HELPER_H_
-
-#include <stdint.h>
-
-#include <memory>
-#include <vector>
-
-#include "base/memory/scoped_refptr.h"
-#include "base/memory/weak_ptr.h"
-#include "ppapi/c/dev/ppb_device_ref_dev.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/thread_aware_callback.h"
-
-namespace IPC {
-class Message;
-}
-
-struct PP_ArrayOutput;
-
-namespace ppapi {
-
-struct DeviceRefData;
-class TrackedCallback;
-
-namespace proxy {
-
-class PluginResource;
-class ResourceMessageReplyParams;
-
-class PPAPI_PROXY_EXPORT DeviceEnumerationResourceHelper final {
- public:
-  // |owner| must outlive this object.
-  explicit DeviceEnumerationResourceHelper(PluginResource* owner);
-
-  DeviceEnumerationResourceHelper(const DeviceEnumerationResourceHelper&) =
-      delete;
-  DeviceEnumerationResourceHelper& operator=(
-      const DeviceEnumerationResourceHelper&) = delete;
-
-  ~DeviceEnumerationResourceHelper();
-
-  int32_t EnumerateDevices(const PP_ArrayOutput& output,
-                           scoped_refptr<TrackedCallback> callback);
-  int32_t EnumerateDevicesSync(const PP_ArrayOutput& output);
-  int32_t MonitorDeviceChange(PP_MonitorDeviceChangeCallback callback,
-                              void* user_data);
-
-  // Returns true if the message has been handled.
-  bool HandleReply(const ResourceMessageReplyParams& params,
-                   const IPC::Message& msg);
-
-  void LastPluginRefWasDeleted();
-
- private:
-  void OnPluginMsgEnumerateDevicesReply(
-      const PP_ArrayOutput& output,
-      scoped_refptr<TrackedCallback> callback,
-      const ResourceMessageReplyParams& params,
-      const std::vector<DeviceRefData>& devices);
-  void OnPluginMsgNotifyDeviceChange(const ResourceMessageReplyParams& params,
-                                     uint32_t callback_id,
-                                     const std::vector<DeviceRefData>& devices);
-
-  int32_t WriteToArrayOutput(const std::vector<DeviceRefData>& devices,
-                             const PP_ArrayOutput& output);
-
-  // Not owned by this object.
-  PluginResource* owner_;
-
-  bool pending_enumerate_devices_;
-
-  uint32_t monitor_callback_id_;
-  std::unique_ptr<ThreadAwareCallback<PP_MonitorDeviceChangeCallback>>
-      monitor_callback_;
-  void* monitor_user_data_;
-  base::WeakPtrFactory<DeviceEnumerationResourceHelper> weak_ptr_factory_{this};
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_DEVICE_ENUMERATION_RESOURCE_HELPER_H_
diff --git a/proxy/dispatch_reply_message.h b/proxy/dispatch_reply_message.h
deleted file mode 100644
index 5b9167e..0000000
--- a/proxy/dispatch_reply_message.h
+++ /dev/null
@@ -1,202 +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.
-
-// This file provides infrastructure for dispatching messasges from host
-// resource, inlcuding reply messages or unsolicited replies. Normal IPC Reply
-// handlers can't take extra parameters. We want to take a
-// ResourceMessageReplyParams as a parameter.
-
-#ifndef PPAPI_PROXY_DISPATCH_REPLY_MESSAGE_H_
-#define PPAPI_PROXY_DISPATCH_REPLY_MESSAGE_H_
-
-#include <tuple>
-#include <utility>
-
-#include "base/functional/callback.h"
-#include "base/notreached.h"
-#include "base/tuple.h"
-#include "ipc/ipc_message_macros.h"
-#include "ppapi/c/pp_errors.h"
-
-namespace ppapi {
-namespace proxy {
-
-class ResourceMessageReplyParams;
-
-template <typename ObjT, typename Method, typename TupleType, size_t... indices>
-inline void DispatchResourceReplyImpl(ObjT* obj,
-                                      Method method,
-                                      const ResourceMessageReplyParams& params,
-                                      TupleType&& args_tuple,
-                                      std::index_sequence<indices...>) {
-  (obj->*method)(params,
-                 std::get<indices>(std::forward<TupleType>(args_tuple))...);
-}
-
-// Runs |method| on |obj| with |params| and expanded |args_tuple|.
-// I.e. Followings are equivalent.
-//   DispatchResourceReply(obj, &Obj::Method, params, std::tie(a, b, c));
-//   obj->Method(params, a, b, c);
-template <typename ObjT, typename Method, typename TupleType>
-inline void DispatchResourceReply(ObjT* obj,
-                                  Method method,
-                                  const ResourceMessageReplyParams& params,
-                                  TupleType&& args_tuple) {
-  constexpr size_t size = std::tuple_size<std::decay_t<TupleType>>::value;
-  DispatchResourceReplyImpl(obj, method, params,
-                            std::forward<TupleType>(args_tuple),
-                            std::make_index_sequence<size>());
-}
-
-template <typename CallbackType, typename TupleType, size_t... indices>
-inline void DispatchResourceReplyImpl(CallbackType&& callback,
-                                      const ResourceMessageReplyParams& params,
-                                      TupleType&& args_tuple,
-                                      std::index_sequence<indices...>) {
-  std::forward<CallbackType>(callback).Run(
-      params, std::get<indices>(std::forward<TupleType>(args_tuple))...);
-}
-
-// Runs |callback| with |params| and expanded |args_tuple|.
-// I.e. Followings are equivalent.
-//   DispatchResourceReply(callback, params, std::tie(a, b, c));
-//   callback.Run(params, a, b, c);
-template <typename CallbackType, typename TupleType>
-inline void DispatchResourceReply(CallbackType&& callback,
-                                  const ResourceMessageReplyParams& params,
-                                  TupleType&& args_tuple) {
-  constexpr size_t size = std::tuple_size<std::decay_t<TupleType>>::value;
-  DispatchResourceReplyImpl(std::forward<CallbackType>(callback), params,
-                            std::forward<TupleType>(args_tuple),
-                            std::make_index_sequence<size>());
-}
-
-// Used to dispatch resource replies. In most cases, you should not call this
-// function to dispatch a resource reply manually, but instead use
-// |PluginResource::CallBrowser|/|PluginResource::CallRenderer| with a
-// |base::OnceCallback| which will be called when a reply message is received
-// (see plugin_resource.h).
-//
-// This function will call your callback with the nested reply message's
-// parameters on success. On failure, your callback will be called with each
-// parameter having its default constructed value.
-//
-// Resource replies are a bit weird in that the host will automatically
-// generate a reply in error cases (when the call handler returns error rather
-// than returning "completion pending"). This makes it more convenient to write
-// the call message handlers. But this also means that the reply handler has to
-// handle both the success case (when all of the reply message paramaters are
-// specified) and the error case (when the nested reply message is empty).
-// In both cases the resource will want to issue completion callbacks to the
-// plugin.
-//
-// This function handles the error case by calling your reply handler with the
-// default value for each paramater in the error case. In most situations this
-// will be the right thing. You should always dispatch completion callbacks
-// using the result code present in the ResourceMessageReplyParams.
-template<class MsgClass, class ObjT, class Method>
-void DispatchResourceReplyOrDefaultParams(
-    ObjT* obj,
-    Method method,
-    const ResourceMessageReplyParams& reply_params,
-    const IPC::Message& msg) {
-  typename MsgClass::Schema::Param msg_params;
-  // We either expect the nested message type to match, or that there is no
-  // nested message. No nested message indicates a default reply sent from
-  // the host: when the resource message handler returns an error, a reply
-  // is implicitly sent with no nested message.
-  DCHECK(msg.type() == MsgClass::ID || msg.type() == 0)
-      << "Resource reply message of unexpected type.";
-  if (msg.type() == MsgClass::ID && MsgClass::Read(&msg, &msg_params)) {
-    // Message type matches and the parameters were successfully read.
-    DispatchResourceReply(obj, method, reply_params, msg_params);
-  } else {
-    // The nested message is empty because the host handler didn't explicitly
-    // send a reply (likely), or you screwed up and didn't use the correct
-    // message type when calling this function (you should have hit the
-    // assertion above, Einstein).
-    //
-    // Dispatch the reply function with the default parameters. We explicitly
-    // use a new Params() structure since if the Read failed due to an invalid
-    // message, the params could have been partially filled in.
-    DispatchResourceReply(obj, method, reply_params,
-        typename MsgClass::Schema::Param());
-  }
-}
-
-template <typename MsgClass, typename CallbackType>
-void DispatchResourceReplyOrDefaultParams(
-    CallbackType&& callback,
-    const ResourceMessageReplyParams& reply_params,
-    const IPC::Message& msg) {
-  typename MsgClass::Schema::Param msg_params;
-  // We either expect the nested message type to match, or that there is no
-  // nested message. No nested message indicates a default reply sent from
-  // the host: when the resource message handler returns an error, a reply
-  // is implicitly sent with no nested message.
-  DCHECK(msg.type() == MsgClass::ID || msg.type() == 0)
-      << "Resource reply message of unexpected type.";
-  if (msg.type() == MsgClass::ID && MsgClass::Read(&msg, &msg_params)) {
-    // Message type matches and the parameters were successfully read.
-    DispatchResourceReply(std::forward<CallbackType>(callback), reply_params,
-                          msg_params);
-  } else {
-    // The nested message is empty because the host handler didn't explicitly
-    // send a reply (likely), or you screwed up and didn't use the correct
-    // message type when calling this function (you should have hit the
-    // assertion above, Einstein).
-    //
-    // Dispatch the reply function with the default parameters. We explicitly
-    // use a new Params() structure since if the Read failed due to an invalid
-    // message, the params could have been partially filled in.
-    DispatchResourceReply(std::forward<CallbackType>(callback), reply_params,
-                          typename MsgClass::Schema::Param());
-  }
-}
-
-// When using PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL* below, use this macro to
-// begin the map instead of IPC_BEGIN_MESSAGE_MAP. The reason is that the macros
-// in src/ipc are all closely tied together, and there might be errors for
-// unused variables or other errors if they're used with these macros.
-#define PPAPI_BEGIN_MESSAGE_MAP(class_name, msg)                 \
-  {                                                              \
-    using _IpcMessageHandlerClass [[maybe_unused]] = class_name; \
-    const IPC::Message& ipc_message__ = msg;                     \
-    switch (ipc_message__.type()) {
-
-// Note that this only works for message with 1 or more parameters. For
-// 0-parameter messages you need to use the _0 version below (since there are
-// no params in the message).
-#define PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(msg_class, member_func) \
-  case msg_class::ID: {                                             \
-    msg_class::Schema::Param p;                                     \
-    if (msg_class::Read(&ipc_message__, &p)) {                      \
-      ppapi::proxy::DispatchResourceReply(                          \
-          this, &_IpcMessageHandlerClass::member_func, params, p);  \
-    } else {                                                        \
-      NOTREACHED();                                                 \
-    }                                                               \
-    break;                                                          \
-  }
-
-#define PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_0(msg_class, member_func) \
-  case msg_class::ID: { \
-    member_func(params); \
-    break; \
-  }
-
-#define PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(code) \
-    default: { \
-        code; \
-    } \
-    break;
-
-#define PPAPI_END_MESSAGE_MAP() \
-  } \
-}
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_DISPATCH_REPLY_MESSAGE_H_
diff --git a/proxy/dispatcher.cc b/proxy/dispatcher.cc
deleted file mode 100644
index 57898ba..0000000
--- a/proxy/dispatcher.cc
+++ /dev/null
@@ -1,81 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/proxy/dispatcher.h"
-
-#include <string.h>  // For memset.
-
-#include <map>
-
-#include "base/check.h"
-#include "base/compiler_specific.h"
-#include "base/memory/singleton.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/var_serialization_rules.h"
-
-namespace IPC {
-class MessageFilter;
-}
-
-namespace ppapi {
-namespace proxy {
-
-Dispatcher::Dispatcher(PP_GetInterface_Func local_get_interface,
-                       const PpapiPermissions& permissions)
-    : local_get_interface_(local_get_interface),
-      permissions_(permissions) {
-}
-
-Dispatcher::~Dispatcher() {
-}
-
-InterfaceProxy* Dispatcher::GetInterfaceProxy(ApiID id) {
-  InterfaceProxy* proxy = proxies_[id].get();
-  if (!proxy) {
-    // Handle the first time for a given API by creating the proxy for it.
-    InterfaceProxy::Factory factory =
-        InterfaceList::GetInstance()->GetFactoryForID(id);
-    CHECK(factory);
-    proxy = factory(this);
-    DCHECK(proxy);
-    proxies_[id].reset(proxy);
-  }
-  return proxy;
-}
-
-void Dispatcher::AddIOThreadMessageFilter(
-    scoped_refptr<IPC::MessageFilter> filter) {
-  // Our filter is refcounted. The channel will call the destruct method on the
-  // filter when the channel is done with it, so the corresponding Release()
-  // happens there.
-  channel()->AddFilter(filter.get());
-}
-
-bool Dispatcher::OnMessageReceived(const IPC::Message& msg) {
-  if (msg.routing_id() <= 0 || msg.routing_id() >= API_ID_COUNT) {
-    OnInvalidMessageReceived();
-    return true;
-  }
-
-  InterfaceProxy* proxy = GetInterfaceProxy(
-      static_cast<ApiID>(msg.routing_id()));
-  CHECK(proxy);
-  return proxy->OnMessageReceived(msg);
-}
-
-void Dispatcher::SetSerializationRules(
-    VarSerializationRules* var_serialization_rules) {
-  serialization_rules_ = var_serialization_rules;
-}
-
-void Dispatcher::OnInvalidMessageReceived() {
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/dispatcher.h b/proxy/dispatcher.h
deleted file mode 100644
index 36f6b40..0000000
--- a/proxy/dispatcher.h
+++ /dev/null
@@ -1,105 +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_PROXY_DISPATCHER_H_
-#define PPAPI_PROXY_DISPATCHER_H_
-
-#include <memory>
-
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_refptr.h"
-#include "ipc/message_filter.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_module.h"
-#include "ppapi/c/ppp.h"
-#include "ppapi/proxy/interface_list.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/proxy/plugin_var_tracker.h"
-#include "ppapi/proxy/proxy_channel.h"
-#include "ppapi/shared_impl/api_id.h"
-
-namespace IPC {
-class MessageFilter;
-}
-
-namespace ppapi {
-namespace proxy {
-
-class VarSerializationRules;
-
-// An interface proxy can represent either end of a cross-process interface
-// call. The "source" side is where the call is invoked, and the "target" side
-// is where the call ends up being executed.
-//
-// Plugin side                          | Browser side
-// -------------------------------------|--------------------------------------
-//                                      |
-//    "Source"                          |    "Target"
-//    InterfaceProxy ----------------------> InterfaceProxy
-//                                      |
-//                                      |
-//    "Target"                          |    "Source"
-//    InterfaceProxy <---------------------- InterfaceProxy
-//                                      |
-class PPAPI_PROXY_EXPORT Dispatcher : public ProxyChannel {
- public:
-  Dispatcher(const Dispatcher&) = delete;
-  Dispatcher& operator=(const Dispatcher&) = delete;
-
-  ~Dispatcher() override;
-
-  // Returns true if the dispatcher is on the plugin side, or false if it's the
-  // browser side.
-  virtual bool IsPlugin() const = 0;
-
-  VarSerializationRules* serialization_rules() const {
-    return serialization_rules_.get();
-  }
-
-  // Returns a non-owning pointer to the interface proxy for the given ID, or
-  // NULL if the ID isn't found. This will create the proxy if it hasn't been
-  // created so far.
-  InterfaceProxy* GetInterfaceProxy(ApiID id);
-
-  // Adds the given filter to the IO thread.
-  void AddIOThreadMessageFilter(scoped_refptr<IPC::MessageFilter> filter);
-
-  // IPC::Listener implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
-  PP_GetInterface_Func local_get_interface() const {
-    return local_get_interface_;
-  }
-
-  const PpapiPermissions& permissions() const { return permissions_; }
-
- protected:
-  explicit Dispatcher(PP_GetInterface_Func local_get_interface,
-                      const PpapiPermissions& permissions);
-
-  // Setter for the derived classes to set the appropriate var serialization.
-  // Takes one reference of the given pointer, which must be on the heap.
-  void SetSerializationRules(VarSerializationRules* var_serialization_rules);
-
-  // Called when an invalid message is received from the remote site. The
-  // default implementation does nothing, derived classes can override.
-  virtual void OnInvalidMessageReceived();
-
- private:
-  friend class PluginDispatcherTest;
-
-  // Lists all lazily-created interface proxies.
-  std::unique_ptr<InterfaceProxy> proxies_[API_ID_COUNT];
-
-  PP_GetInterface_Func local_get_interface_;
-
-  scoped_refptr<VarSerializationRules> serialization_rules_;
-
-  PpapiPermissions permissions_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_DISPATCHER_H_
diff --git a/proxy/enter_proxy.h b/proxy/enter_proxy.h
deleted file mode 100644
index 7838f1d..0000000
--- a/proxy/enter_proxy.h
+++ /dev/null
@@ -1,206 +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_PROXY_ENTER_PROXY_H_
-#define PPAPI_PROXY_ENTER_PROXY_H_
-
-#include <stdint.h>
-
-#include "base/check.h"
-#include "base/notreached.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/proxy/host_dispatcher.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/thunk/enter.h"
-
-namespace ppapi {
-
-namespace proxy {
-
-// Wrapper around EnterResourceNoLock that takes a host resource. This is used
-// when handling messages in the plugin from the host and we need to convert to
-// an object in the plugin side corresponding to that.
-//
-// This never locks since we assume the host Resource is coming from IPC, and
-// never logs errors since we assume the host is doing reasonable things.
-template<typename ResourceT>
-class EnterPluginFromHostResource
-    : public thunk::EnterResourceNoLock<ResourceT> {
- public:
-  explicit EnterPluginFromHostResource(const HostResource& host_resource)
-      : thunk::EnterResourceNoLock<ResourceT>(
-            PluginGlobals::Get()->plugin_resource_tracker()->
-                PluginResourceForHostResource(host_resource),
-            false) {
-    // Validate that we're in the plugin rather than the host. Otherwise this
-    // object will do the wrong thing. In the plugin, the instance should have
-    // a corresponding plugin dispatcher (assuming the resource is valid).
-    DCHECK(this->failed() ||
-           PluginDispatcher::GetForInstance(host_resource.instance()));
-  }
-};
-
-template<typename ResourceT>
-class EnterHostFromHostResource
-    : public thunk::EnterResourceNoLock<ResourceT> {
- public:
-  explicit EnterHostFromHostResource(const HostResource& host_resource)
-      : thunk::EnterResourceNoLock<ResourceT>(host_resource.host_resource(),
-                                              false) {
-    // Validate that we're in the host rather than the plugin. Otherwise this
-    // object will do the wrong thing. In the host, the instance should have
-    // a corresponding host disptacher (assuming the resource is valid).
-    DCHECK(this->failed() ||
-           HostDispatcher::GetForInstance(host_resource.instance()));
-  }
-
-  EnterHostFromHostResource(const HostResource& host_resource,
-                            const pp::CompletionCallback& callback)
-      : thunk::EnterResourceNoLock<ResourceT>(host_resource.host_resource(),
-                                              callback.pp_completion_callback(),
-                                              false) {
-    // Validate that we're in the host rather than the plugin. Otherwise this
-    // object will do the wrong thing. In the host, the instance should have
-    // a corresponding host disptacher (assuming the resource is valid).
-    DCHECK(this->failed() ||
-           HostDispatcher::GetForInstance(host_resource.instance()));
-  }
-};
-
-// Enters a resource and forces a completion callback to be issued.
-//
-// This is used when implementing the host (renderer) side of a resource
-// function that issues a completion callback. In all cases, we need to issue
-// the callback to avoid hanging the plugin.
-//
-// This class automatically constructs a callback with the given factory
-// calling the given method. The method will generally be the one that sends
-// the message to trigger the completion callback in the plugin process.
-//
-// It will automatically issue the callback with PP_ERROR_NOINTERFACE if the
-// host resource is invalid (i.e. failed() is set). In all other cases you
-// should call SetResult(), which will issue the callback immediately if the
-// result value isn't PP_OK_COMPLETIONPENDING. In the "completion pending"
-// case, it's assumed the function the proxy is calling will take responsibility
-// of executing the callback (returned by callback()).
-//
-// Example:
-//   EnterHostFromHostResourceForceCallback<PPB_Foo_API> enter(
-//       resource, callback_factory_, &MyClass::SendResult, resource);
-//   if (enter.failed())
-//     return;  // SendResult automatically called with PP_ERROR_BADRESOURCE.
-//   enter.SetResult(enter.object()->DoFoo(enter.callback()));
-//
-// Where DoFoo's signature looks like this:
-//   int32_t DoFoo(PP_CompletionCallback callback);
-// And SendResult's implementation looks like this:
-//   void MyClass::SendResult(int32_t result, const HostResource& res) {
-//     Send(new FooMsg_FooComplete(..., result, res));
-//   }
-template<typename ResourceT>
-class EnterHostFromHostResourceForceCallback
-    : public EnterHostFromHostResource<ResourceT> {
- public:
-  EnterHostFromHostResourceForceCallback(
-      const HostResource& host_resource,
-      const pp::CompletionCallback& callback)
-      : EnterHostFromHostResource<ResourceT>(host_resource, callback),
-        needs_running_(true) {
-  }
-
-  // For callbacks that take no parameters except the "int32_t result". Most
-  // implementations will use the 1-extra-argument constructor below.
-  template<class CallbackFactory, typename Method>
-  EnterHostFromHostResourceForceCallback(
-      const HostResource& host_resource,
-      CallbackFactory& factory,
-      Method method)
-      : EnterHostFromHostResource<ResourceT>(host_resource,
-            factory.NewOptionalCallback(method)),
-        needs_running_(true) {
-    if (this->failed())
-      RunCallback(PP_ERROR_BADRESOURCE);
-  }
-
-  // For callbacks that take an extra parameter as a closure.
-  template<class CallbackFactory, typename Method, typename A>
-  EnterHostFromHostResourceForceCallback(
-      const HostResource& host_resource,
-      CallbackFactory& factory,
-      Method method,
-      const A& a)
-      : EnterHostFromHostResource<ResourceT>(host_resource,
-            factory.NewOptionalCallback(method, a)),
-        needs_running_(true) {
-    if (this->failed())
-      RunCallback(PP_ERROR_BADRESOURCE);
-  }
-
-  // For callbacks that take two extra parameters as a closure.
-  template<class CallbackFactory, typename Method, typename A, typename B>
-  EnterHostFromHostResourceForceCallback(
-      const HostResource& host_resource,
-      CallbackFactory& factory,
-      Method method,
-      const A& a,
-      const B& b)
-      : EnterHostFromHostResource<ResourceT>(host_resource,
-            factory.NewOptionalCallback(method, a, b)),
-        needs_running_(true) {
-    if (this->failed())
-      RunCallback(PP_ERROR_BADRESOURCE);
-  }
-
-  // For callbacks that take three extra parameters as a closure.
-  template<class CallbackFactory, typename Method, typename A, typename B,
-           typename C>
-  EnterHostFromHostResourceForceCallback(
-      const HostResource& host_resource,
-      CallbackFactory& factory,
-      Method method,
-      const A& a,
-      const B& b,
-      const C& c)
-      : EnterHostFromHostResource<ResourceT>(host_resource,
-            factory.NewOptionalCallback(method, a, b, c)),
-        needs_running_(true) {
-    if (this->failed())
-      RunCallback(PP_ERROR_BADRESOURCE);
-  }
-
-  ~EnterHostFromHostResourceForceCallback() {
-    if (needs_running_) {
-      NOTREACHED() << "Should always call SetResult except in the "
-                      "initialization failed case.";
-    }
-  }
-
-  void SetResult(int32_t result) {
-    DCHECK(needs_running_) << "Don't call SetResult when there already is one.";
-    if (result != PP_OK_COMPLETIONPENDING)
-      RunCallback(result);
-    needs_running_ = false;
-    // Either we already ran the callback, or it will be run asynchronously. We
-    // clear the callback so it isn't accidentally run again (and because
-    // EnterBase checks that the callback has been cleared).
-    this->ClearCallback();
-  }
-
- private:
-  void RunCallback(int32_t result) {
-    DCHECK(needs_running_);
-    needs_running_ = false;
-    this->callback()->Run(result);
-    this->ClearCallback();
-  }
-
-  bool needs_running_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_ENTER_PROXY_H_
diff --git a/proxy/error_conversion.cc b/proxy/error_conversion.cc
deleted file mode 100644
index 15a9154..0000000
--- a/proxy/error_conversion.cc
+++ /dev/null
@@ -1,26 +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.
-
-#include "ppapi/proxy/error_conversion.h"
-
-#include "ppapi/c/pp_errors.h"
-
-namespace ppapi {
-namespace proxy {
-
-int32_t ConvertNetworkAPIErrorForCompatibility(int32_t pp_error,
-                                               bool private_api) {
-  // The private API doesn't return network-specific error codes or
-  // PP_ERROR_NOACCESS. In order to preserve the behavior, we convert those to
-  // PP_ERROR_FAILED.
-  if (private_api &&
-      (pp_error <= PP_ERROR_CONNECTION_CLOSED ||
-       pp_error == PP_ERROR_NOACCESS)) {
-    return PP_ERROR_FAILED;
-  }
-  return pp_error;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/error_conversion.h b/proxy/error_conversion.h
deleted file mode 100644
index f3c7996..0000000
--- a/proxy/error_conversion.h
+++ /dev/null
@@ -1,24 +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.
-
-#ifndef PPAPI_PROXY_ERROR_CONVERSION_H_
-#define PPAPI_PROXY_ERROR_CONVERSION_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-
-namespace ppapi {
-namespace proxy {
-
-// When |private_api| is true, coverts all network-related errors +;
-// PP_ERROR_NOACCESS to PP_ERROR_FAILED. Otherwise, returns |pp_error|
-// as is.
-PPAPI_PROXY_EXPORT int32_t ConvertNetworkAPIErrorForCompatibility(
-    int32_t pp_error,
-    bool private_api);
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_ERROR_CONVERSION_H_
diff --git a/proxy/file_chooser_resource.cc b/proxy/file_chooser_resource.cc
deleted file mode 100644
index 27da4f2..0000000
--- a/proxy/file_chooser_resource.cc
+++ /dev/null
@@ -1,158 +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/proxy/file_chooser_resource.h"
-
-#include <stddef.h>
-
-#include "base/functional/bind.h"
-#include "base/strings/string_split.h"
-#include "base/strings/string_util.h"
-#include "ipc/ipc_message.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/dispatch_reply_message.h"
-#include "ppapi/proxy/file_ref_resource.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-FileChooserResource::FileChooserResource(Connection connection,
-                                         PP_Instance instance,
-                                         PP_FileChooserMode_Dev mode,
-                                         const std::string& accept_types)
-    : PluginResource(connection, instance),
-      mode_(mode) {
-  PopulateAcceptTypes(accept_types, &accept_types_);
-}
-
-FileChooserResource::~FileChooserResource() {
-}
-
-thunk::PPB_FileChooser_API* FileChooserResource::AsPPB_FileChooser_API() {
-  return this;
-}
-
-int32_t FileChooserResource::Show(const PP_ArrayOutput& output,
-                                  scoped_refptr<TrackedCallback> callback) {
-  return ShowWithoutUserGesture(PP_FALSE, PP_MakeUndefined(), output, callback);
-}
-
-int32_t FileChooserResource::ShowWithoutUserGesture(
-    PP_Bool save_as,
-    PP_Var suggested_file_name,
-    const PP_ArrayOutput& output,
-    scoped_refptr<TrackedCallback> callback) {
-  int32_t result = ShowInternal(save_as, suggested_file_name, callback);
-  if (result == PP_OK_COMPLETIONPENDING)
-    output_.set_pp_array_output(output);
-  return result;
-}
-
-int32_t FileChooserResource::Show0_5(scoped_refptr<TrackedCallback> callback) {
-  return ShowInternal(PP_FALSE, PP_MakeUndefined(), callback);
-}
-
-PP_Resource FileChooserResource::GetNextChosenFile() {
- if (file_queue_.empty())
-    return 0;
-
-  // Return the next resource in the queue. It will already have been addrefed
-  // (they're currently owned by the FileChooser) and returning it transfers
-  // ownership of that reference to the plugin.
-  PP_Resource next = file_queue_.front();
-  file_queue_.pop();
-  return next;
-}
-
-int32_t FileChooserResource::ShowWithoutUserGesture0_5(
-    PP_Bool save_as,
-    PP_Var suggested_file_name,
-    scoped_refptr<TrackedCallback> callback) {
-  return ShowInternal(save_as, suggested_file_name, callback);
-}
-
-// static
-void FileChooserResource::PopulateAcceptTypes(
-    const std::string& input,
-    std::vector<std::string>* output) {
-  if (input.empty())
-    return;
-
-  std::vector<std::string> type_list = base::SplitString(
-      input, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
-  output->reserve(type_list.size());
-
-  for (size_t i = 0; i < type_list.size(); ++i) {
-    std::string type = type_list[i];
-    base::TrimWhitespaceASCII(type, base::TRIM_ALL, &type);
-
-    // If the type is a single character, it definitely cannot be valid. In the
-    // case of a file extension it would be a single ".". In the case of a MIME
-    // type it would just be a "/".
-    if (type.length() < 2)
-      continue;
-    if (type.find_first_of('/') == std::string::npos && type[0] != '.')
-      continue;
-    output->push_back(base::ToLowerASCII(type));
-  }
-}
-
-void FileChooserResource::OnPluginMsgShowReply(
-    const ResourceMessageReplyParams& params,
-    const std::vector<FileRefCreateInfo>& chosen_files) {
-  if (output_.is_valid()) {
-    // Using v0.6 of the API with the output array.
-    std::vector<PP_Resource> files;
-    for (size_t i = 0; i < chosen_files.size(); i++) {
-      files.push_back(FileRefResource::CreateFileRef(
-          connection(),
-          pp_instance(),
-          chosen_files[i]));
-    }
-    output_.StoreResourceVector(files);
-  } else {
-    // Convert each of the passed in file infos to resources. These will be
-    // owned by the FileChooser object until they're passed to the plugin.
-    DCHECK(file_queue_.empty());
-    for (size_t i = 0; i < chosen_files.size(); i++) {
-      file_queue_.push(FileRefResource::CreateFileRef(
-          connection(),
-          pp_instance(),
-          chosen_files[i]));
-    }
-  }
-
-  // Notify the plugin of the new data.
-  callback_->Run(params.result());
-  // DANGER: May delete |this|!
-}
-
-int32_t FileChooserResource::ShowInternal(
-    PP_Bool save_as,
-    const PP_Var& suggested_file_name,
-    scoped_refptr<TrackedCallback> callback) {
-  if (TrackedCallback::IsPending(callback_))
-    return PP_ERROR_INPROGRESS;
-
-  if (!sent_create_to_renderer())
-    SendCreate(RENDERER, PpapiHostMsg_FileChooser_Create());
-
-  callback_ = callback;
-  StringVar* sugg_str = StringVar::FromPPVar(suggested_file_name);
-
-  PpapiHostMsg_FileChooser_Show msg(
-        PP_ToBool(save_as),
-        mode_ == PP_FILECHOOSERMODE_OPENMULTIPLE,
-        sugg_str ? sugg_str->value() : std::string(),
-        accept_types_);
-  Call<PpapiPluginMsg_FileChooser_ShowReply>(
-      RENDERER, msg,
-      base::BindOnce(&FileChooserResource::OnPluginMsgShowReply, this));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/file_chooser_resource.h b/proxy/file_chooser_resource.h
deleted file mode 100644
index d7d5096..0000000
--- a/proxy/file_chooser_resource.h
+++ /dev/null
@@ -1,89 +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_PROXY_FILE_CHOOSER_RESOURCE_H_
-#define PPAPI_PROXY_FILE_CHOOSER_RESOURCE_H_
-
-#include <stdint.h>
-
-#include <string>
-#include <vector>
-
-#include "base/containers/queue.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/array_writer.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/ppb_file_chooser_api.h"
-
-namespace ppapi {
-
-struct FileRefCreateInfo;
-
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT FileChooserResource
-    : public PluginResource,
-      public thunk::PPB_FileChooser_API {
- public:
-  FileChooserResource(Connection connection,
-                      PP_Instance instance,
-                      PP_FileChooserMode_Dev mode,
-                      const std::string& accept_types);
-
-  FileChooserResource(const FileChooserResource&) = delete;
-  FileChooserResource& operator=(const FileChooserResource&) = delete;
-
-  ~FileChooserResource() override;
-
-  // Resource overrides.
-  thunk::PPB_FileChooser_API* AsPPB_FileChooser_API() override;
-
-  // PPB_FileChooser_API.
-  int32_t Show(const PP_ArrayOutput& output,
-               scoped_refptr<TrackedCallback> callback) override;
-  int32_t ShowWithoutUserGesture(
-      PP_Bool save_as,
-      PP_Var suggested_file_name,
-      const PP_ArrayOutput& output,
-      scoped_refptr<TrackedCallback> callback) override;
-  int32_t Show0_5(scoped_refptr<TrackedCallback> callback) override;
-  PP_Resource GetNextChosenFile() override;
-  int32_t ShowWithoutUserGesture0_5(
-      PP_Bool save_as,
-      PP_Var suggested_file_name,
-      scoped_refptr<TrackedCallback> callback) override;
-
-  // Parses the accept string into the given vector.
-  static void PopulateAcceptTypes(const std::string& input,
-                                  std::vector<std::string>* output);
-
- private:
-  void OnPluginMsgShowReply(
-      const ResourceMessageReplyParams& params,
-      const std::vector<FileRefCreateInfo>& chosen_files);
-
-  int32_t ShowInternal(PP_Bool save_as,
-                       const PP_Var& suggested_file_name,
-                       scoped_refptr<TrackedCallback> callback);
-
-  PP_FileChooserMode_Dev mode_;
-  std::vector<std::string> accept_types_;
-
-  // When using v0.6 of the API, contains the array output info.
-  ArrayWriter output_;
-
-  // When using v0.5 of the API, contains all files returned by the current
-  // show callback that haven't yet been given to the plugin. The plugin will
-  // repeatedly call us to get the next file, and we'll vend those out of this
-  // queue, removing them when ownership has transferred to the plugin.
-  base::queue<PP_Resource> file_queue_;
-
-  scoped_refptr<TrackedCallback> callback_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_FILE_CHOOSER_RESOURCE_H_
diff --git a/proxy/file_io_resource.cc b/proxy/file_io_resource.cc
deleted file mode 100644
index 0bd19af..0000000
--- a/proxy/file_io_resource.cc
+++ /dev/null
@@ -1,709 +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/proxy/file_io_resource.h"
-
-#include <limits>
-#include <utility>
-
-#include "base/check.h"
-#include "base/containers/heap_array.h"
-#include "base/functional/bind.h"
-#include "ipc/ipc_message.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/array_writer.h"
-#include "ppapi/shared_impl/file_ref_create_info.h"
-#include "ppapi/shared_impl/file_system_util.h"
-#include "ppapi/shared_impl/file_type_conversion.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_file_ref_api.h"
-#include "ppapi/thunk/ppb_file_system_api.h"
-
-using ppapi::thunk::EnterResourceNoLock;
-using ppapi::thunk::PPB_FileIO_API;
-using ppapi::thunk::PPB_FileRef_API;
-using ppapi::thunk::PPB_FileSystem_API;
-
-namespace {
-
-// We must allocate a buffer sized according to the request of the plugin. To
-// reduce the chance of out-of-memory errors, we cap the read and write size to
-// 32MB. This is OK since the API specifies that it may perform a partial read
-// or write.
-static const int32_t kMaxReadWriteSize = 32 * 1024 * 1024;  // 32MB
-
-// An adapter to let Read() share the same implementation with ReadToArray().
-void* DummyGetDataBuffer(void* user_data, uint32_t count, uint32_t size) {
-  return user_data;
-}
-
-// File thread task to close the file handle.
-void DoClose(base::File auto_close_file) {
-}
-
-}  // namespace
-
-namespace ppapi {
-namespace proxy {
-
-FileIOResource::QueryOp::QueryOp(scoped_refptr<FileHolder> file_holder)
-    : file_holder_(file_holder) {
-  DCHECK(file_holder_.get());
-}
-
-FileIOResource::QueryOp::~QueryOp() {
-}
-
-int32_t FileIOResource::QueryOp::DoWork() {
-  return file_holder_->file()->GetInfo(&file_info_) ? PP_OK : PP_ERROR_FAILED;
-}
-
-FileIOResource::ReadOp::ReadOp(scoped_refptr<FileHolder> file_holder,
-                               int64_t offset,
-                               int32_t bytes_to_read)
-  : file_holder_(file_holder),
-    offset_(offset),
-    bytes_to_read_(bytes_to_read) {
-  DCHECK(file_holder_.get());
-}
-
-FileIOResource::ReadOp::~ReadOp() {
-}
-
-int32_t FileIOResource::ReadOp::DoWork() {
-  DCHECK(buffer_.empty());
-  buffer_ = base::HeapArray<char>::Uninit(bytes_to_read_);
-  return UNSAFE_TODO(
-      file_holder_->file()->Read(offset_, buffer_.data(), bytes_to_read_));
-}
-
-FileIOResource::WriteOp::WriteOp(scoped_refptr<FileHolder> file_holder,
-                                 int64_t offset,
-                                 base::HeapArray<char> buffer,
-                                 bool append)
-    : file_holder_(file_holder),
-      offset_(offset),
-      buffer_(std::move(buffer)),
-      append_(append) {}
-
-FileIOResource::WriteOp::~WriteOp() {
-}
-
-int32_t FileIOResource::WriteOp::DoWork() {
-  // In append mode, we can't call Write, since NaCl doesn't implement fcntl,
-  // causing the function to call pwrite, which is incorrect.
-  if (append_) {
-    return UNSAFE_TODO(file_holder_->file()->WriteAtCurrentPos(buffer_.data(),
-                                                               buffer_.size()));
-  } else {
-    return UNSAFE_TODO(
-        file_holder_->file()->Write(offset_, buffer_.data(), buffer_.size()));
-  }
-}
-
-FileIOResource::FileIOResource(Connection connection, PP_Instance instance)
-    : PluginResource(connection, instance),
-      file_system_type_(PP_FILESYSTEMTYPE_INVALID),
-      open_flags_(0),
-      max_written_offset_(0),
-      append_mode_write_amount_(0),
-      check_quota_(false),
-      called_close_(false) {
-  SendCreate(BROWSER, PpapiHostMsg_FileIO_Create());
-}
-
-FileIOResource::~FileIOResource() {
-  Close();
-}
-
-PPB_FileIO_API* FileIOResource::AsPPB_FileIO_API() {
-  return this;
-}
-
-int32_t FileIOResource::Open(PP_Resource file_ref,
-                             int32_t open_flags,
-                             scoped_refptr<TrackedCallback> callback) {
-  EnterResourceNoLock<PPB_FileRef_API> enter_file_ref(file_ref, true);
-  if (enter_file_ref.failed())
-    return PP_ERROR_BADRESOURCE;
-
-  PPB_FileRef_API* file_ref_api = enter_file_ref.object();
-  const FileRefCreateInfo& create_info = file_ref_api->GetCreateInfo();
-  CHECK(FileSystemTypeIsValid(create_info.file_system_type));
-  int32_t rv = state_manager_.CheckOperationState(
-      FileIOStateManager::OPERATION_EXCLUSIVE, false);
-  if (rv != PP_OK)
-    return rv;
-
-  open_flags_ = open_flags;
-  file_system_type_ = create_info.file_system_type;
-
-  if (create_info.file_system_plugin_resource) {
-    EnterResourceNoLock<PPB_FileSystem_API> enter_file_system(
-        create_info.file_system_plugin_resource, true);
-    if (enter_file_system.failed())
-      return PP_ERROR_FAILED;
-    // Take a reference on the FileSystem resource. The FileIO host uses the
-    // FileSystem host for running tasks and checking quota.
-    file_system_resource_ = enter_file_system.resource();
-  }
-
-  // Take a reference on the FileRef resource while we're opening the file; we
-  // don't want the plugin destroying it during the Open operation.
-  file_ref_ = enter_file_ref.resource();
-
-  Call<PpapiPluginMsg_FileIO_OpenReply>(
-      BROWSER, PpapiHostMsg_FileIO_Open(file_ref, open_flags),
-      base::BindOnce(&FileIOResource::OnPluginMsgOpenFileComplete, this,
-                     callback));
-
-  state_manager_.SetPendingOperation(FileIOStateManager::OPERATION_EXCLUSIVE);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t FileIOResource::Query(PP_FileInfo* info,
-                              scoped_refptr<TrackedCallback> callback) {
-  int32_t rv = state_manager_.CheckOperationState(
-      FileIOStateManager::OPERATION_EXCLUSIVE, true);
-  if (rv != PP_OK)
-    return rv;
-  if (!info)
-    return PP_ERROR_BADARGUMENT;
-  if (!FileHolder::IsValid(file_holder_))
-    return PP_ERROR_FAILED;
-
-  state_manager_.SetPendingOperation(FileIOStateManager::OPERATION_EXCLUSIVE);
-
-  // If the callback is blocking, perform the task on the calling thread.
-  if (callback->is_blocking()) {
-    int32_t result = PP_ERROR_FAILED;
-    base::File::Info file_info;
-    // The plugin could release its reference to this instance when we release
-    // the proxy lock below.
-    scoped_refptr<FileIOResource> protect(this);
-    {
-      // Release the proxy lock while making a potentially slow file call.
-      ProxyAutoUnlock unlock;
-      if (file_holder_->file()->GetInfo(&file_info))
-        result = PP_OK;
-    }
-    if (result == PP_OK) {
-      // This writes the file info into the plugin's PP_FileInfo struct.
-      ppapi::FileInfoToPepperFileInfo(file_info,
-                                      file_system_type_,
-                                      info);
-    }
-    state_manager_.SetOperationFinished();
-    return result;
-  }
-
-  // For the non-blocking case, post a task to the file thread and add a
-  // completion task to write the result.
-  scoped_refptr<QueryOp> query_op(new QueryOp(file_holder_));
-  PpapiGlobals::Get()->GetFileTaskRunner()->PostTaskAndReplyWithResult(
-      FROM_HERE, base::BindOnce(&FileIOResource::QueryOp::DoWork, query_op),
-      RunWhileLocked(base::BindOnce(&TrackedCallback::Run, callback)));
-  callback->set_completion_task(
-      base::BindOnce(&FileIOResource::OnQueryComplete, this, query_op, info));
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t FileIOResource::Touch(PP_Time last_access_time,
-                              PP_Time last_modified_time,
-                              scoped_refptr<TrackedCallback> callback) {
-  int32_t rv = state_manager_.CheckOperationState(
-      FileIOStateManager::OPERATION_EXCLUSIVE, true);
-  if (rv != PP_OK)
-    return rv;
-
-  Call<PpapiPluginMsg_FileIO_GeneralReply>(
-      BROWSER, PpapiHostMsg_FileIO_Touch(last_access_time, last_modified_time),
-      base::BindOnce(&FileIOResource::OnPluginMsgGeneralComplete, this,
-                     callback));
-
-  state_manager_.SetPendingOperation(FileIOStateManager::OPERATION_EXCLUSIVE);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t FileIOResource::Read(int64_t offset,
-                             char* buffer,
-                             int32_t bytes_to_read,
-                             scoped_refptr<TrackedCallback> callback) {
-  int32_t rv = state_manager_.CheckOperationState(
-      FileIOStateManager::OPERATION_READ, true);
-  if (rv != PP_OK)
-    return rv;
-
-  PP_ArrayOutput output_adapter;
-  output_adapter.GetDataBuffer = &DummyGetDataBuffer;
-  output_adapter.user_data = buffer;
-  return ReadValidated(offset, bytes_to_read, output_adapter, callback);
-}
-
-int32_t FileIOResource::ReadToArray(int64_t offset,
-                                    int32_t max_read_length,
-                                    PP_ArrayOutput* array_output,
-                                    scoped_refptr<TrackedCallback> callback) {
-  DCHECK(array_output);
-  int32_t rv = state_manager_.CheckOperationState(
-      FileIOStateManager::OPERATION_READ, true);
-  if (rv != PP_OK)
-    return rv;
-
-  return ReadValidated(offset, max_read_length, *array_output, callback);
-}
-
-int32_t FileIOResource::Write(int64_t offset,
-                              const char* buffer,
-                              int32_t bytes_to_write,
-                              scoped_refptr<TrackedCallback> callback) {
-  if (!buffer)
-    return PP_ERROR_FAILED;
-  if (offset < 0 || bytes_to_write < 0)
-    return PP_ERROR_FAILED;
-  if (!FileHolder::IsValid(file_holder_))
-    return PP_ERROR_FAILED;
-
-  int32_t rv = state_manager_.CheckOperationState(
-      FileIOStateManager::OPERATION_WRITE, true);
-  if (rv != PP_OK)
-    return rv;
-
-  state_manager_.SetPendingOperation(FileIOStateManager::OPERATION_WRITE);
-
-  if (check_quota_) {
-    int64_t increase = 0;
-    uint64_t max_offset = 0;
-    bool append = (open_flags_ & PP_FILEOPENFLAG_APPEND) != 0;
-    if (append) {
-      increase = bytes_to_write;
-    } else {
-      max_offset = offset + bytes_to_write;
-      if (max_offset >
-          static_cast<uint64_t>(std::numeric_limits<int64_t>::max())) {
-        return PP_ERROR_FAILED;  // amount calculation would overflow.
-      }
-      increase = static_cast<int64_t>(max_offset) - max_written_offset_;
-    }
-
-    if (increase > 0) {
-      // Request a quota reservation. This makes the Write asynchronous, so we
-      // must copy the plugin's buffer.
-      auto copy = base::HeapArray<char>::Uninit(bytes_to_write);
-      memcpy(copy.data(), buffer, bytes_to_write);
-      int64_t result =
-          file_system_resource_->AsPPB_FileSystem_API()->RequestQuota(
-              increase,
-              base::BindOnce(&FileIOResource::OnRequestWriteQuotaComplete, this,
-                             offset, std::move(copy), callback));
-      if (result == PP_OK_COMPLETIONPENDING)
-        return PP_OK_COMPLETIONPENDING;
-      DCHECK(result == increase);
-
-      if (append)
-        append_mode_write_amount_ += bytes_to_write;
-      else
-        max_written_offset_ = max_offset;
-    }
-  }
-  return WriteValidated(offset, buffer, bytes_to_write, callback);
-}
-
-int32_t FileIOResource::SetLength(int64_t length,
-                                  scoped_refptr<TrackedCallback> callback) {
-  int32_t rv = state_manager_.CheckOperationState(
-      FileIOStateManager::OPERATION_EXCLUSIVE, true);
-  if (rv != PP_OK)
-    return rv;
-  if (length < 0)
-    return PP_ERROR_FAILED;
-
-  if (check_quota_) {
-    int64_t increase = length - max_written_offset_;
-    if (increase > 0) {
-      int32_t result =
-          file_system_resource_->AsPPB_FileSystem_API()->RequestQuota(
-              increase,
-              base::BindOnce(&FileIOResource::OnRequestSetLengthQuotaComplete,
-                             this, length, callback));
-      if (result == PP_OK_COMPLETIONPENDING) {
-        state_manager_.SetPendingOperation(
-            FileIOStateManager::OPERATION_EXCLUSIVE);
-        return PP_OK_COMPLETIONPENDING;
-      }
-      DCHECK(result == increase);
-      max_written_offset_ = length;
-    }
-  }
-
-  state_manager_.SetPendingOperation(FileIOStateManager::OPERATION_EXCLUSIVE);
-  SetLengthValidated(length, callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t FileIOResource::Flush(scoped_refptr<TrackedCallback> callback) {
-  int32_t rv = state_manager_.CheckOperationState(
-      FileIOStateManager::OPERATION_EXCLUSIVE, true);
-  if (rv != PP_OK)
-    return rv;
-
-  Call<PpapiPluginMsg_FileIO_GeneralReply>(
-      BROWSER, PpapiHostMsg_FileIO_Flush(),
-      base::BindOnce(&FileIOResource::OnPluginMsgGeneralComplete, this,
-                     callback));
-
-  state_manager_.SetPendingOperation(FileIOStateManager::OPERATION_EXCLUSIVE);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int64_t FileIOResource::GetMaxWrittenOffset() const {
-  return max_written_offset_;
-}
-
-int64_t FileIOResource::GetAppendModeWriteAmount() const {
-  return append_mode_write_amount_;
-}
-
-void FileIOResource::SetMaxWrittenOffset(int64_t max_written_offset) {
-  max_written_offset_ = max_written_offset;
-}
-
-void FileIOResource::SetAppendModeWriteAmount(
-    int64_t append_mode_write_amount) {
-  append_mode_write_amount_ = append_mode_write_amount;
-}
-
-void FileIOResource::Close() {
-  if (called_close_)
-    return;
-
-  called_close_ = true;
-  if (check_quota_) {
-    check_quota_ = false;
-    file_system_resource_->AsPPB_FileSystem_API()->CloseQuotaFile(
-        pp_resource());
-  }
-
-  if (file_holder_.get())
-    file_holder_.reset();
-
-  Post(BROWSER, PpapiHostMsg_FileIO_Close(
-      FileGrowth(max_written_offset_, append_mode_write_amount_)));
-}
-
-int32_t FileIOResource::RequestOSFileHandle(
-    PP_FileHandle* handle,
-    scoped_refptr<TrackedCallback> callback) {
-  int32_t rv = state_manager_.CheckOperationState(
-      FileIOStateManager::OPERATION_EXCLUSIVE, true);
-  if (rv != PP_OK)
-    return rv;
-
-  Call<PpapiPluginMsg_FileIO_RequestOSFileHandleReply>(
-      BROWSER, PpapiHostMsg_FileIO_RequestOSFileHandle(),
-      base::BindOnce(&FileIOResource::OnPluginMsgRequestOSFileHandleComplete,
-                     this, callback, handle));
-
-  state_manager_.SetPendingOperation(FileIOStateManager::OPERATION_EXCLUSIVE);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-FileIOResource::FileHolder::FileHolder(PP_FileHandle file_handle)
-    : file_(file_handle) {
-}
-
-// static
-bool FileIOResource::FileHolder::IsValid(
-    const scoped_refptr<FileIOResource::FileHolder>& handle) {
-  return handle.get() && handle->file_.IsValid();
-}
-
-FileIOResource::FileHolder::~FileHolder() {
-  if (file_.IsValid()) {
-    base::TaskRunner* file_task_runner =
-        PpapiGlobals::Get()->GetFileTaskRunner();
-    file_task_runner->PostTask(FROM_HERE,
-                               base::BindOnce(&DoClose, std::move(file_)));
-  }
-}
-
-int32_t FileIOResource::ReadValidated(int64_t offset,
-                                      int32_t bytes_to_read,
-                                      const PP_ArrayOutput& array_output,
-                                      scoped_refptr<TrackedCallback> callback) {
-  if (bytes_to_read < 0)
-    return PP_ERROR_FAILED;
-  if (!FileHolder::IsValid(file_holder_))
-    return PP_ERROR_FAILED;
-
-  state_manager_.SetPendingOperation(FileIOStateManager::OPERATION_READ);
-
-  bytes_to_read = std::min(bytes_to_read, kMaxReadWriteSize);
-  if (callback->is_blocking()) {
-    char* buffer = static_cast<char*>(
-        array_output.GetDataBuffer(array_output.user_data, bytes_to_read, 1));
-    int32_t result = PP_ERROR_FAILED;
-    // The plugin could release its reference to this instance when we release
-    // the proxy lock below.
-    scoped_refptr<FileIOResource> protect(this);
-    if (buffer) {
-      // Release the proxy lock while making a potentially slow file call.
-      ProxyAutoUnlock unlock;
-      result = UNSAFE_TODO(
-          file_holder_->file()->Read(offset, buffer, bytes_to_read));
-      if (result < 0)
-        result = PP_ERROR_FAILED;
-    }
-    state_manager_.SetOperationFinished();
-    return result;
-  }
-
-  // For the non-blocking case, post a task to the file thread.
-  scoped_refptr<ReadOp> read_op(
-      new ReadOp(file_holder_, offset, bytes_to_read));
-  PpapiGlobals::Get()->GetFileTaskRunner()->PostTaskAndReplyWithResult(
-      FROM_HERE, base::BindOnce(&FileIOResource::ReadOp::DoWork, read_op),
-      RunWhileLocked(base::BindOnce(&TrackedCallback::Run, callback)));
-  callback->set_completion_task(base::BindOnce(&FileIOResource::OnReadComplete,
-                                               this, read_op, array_output));
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t FileIOResource::WriteValidated(
-    int64_t offset,
-    const char* buffer,
-    int32_t bytes_to_write,
-    scoped_refptr<TrackedCallback> callback) {
-  bool append = (open_flags_ & PP_FILEOPENFLAG_APPEND) != 0;
-  if (callback->is_blocking()) {
-    int32_t result;
-    {
-      // Release the proxy lock while making a potentially slow file call.
-      ProxyAutoUnlock unlock;
-      if (append) {
-        result = UNSAFE_TODO(
-            file_holder_->file()->WriteAtCurrentPos(buffer, bytes_to_write));
-      } else {
-        result = UNSAFE_TODO(
-            file_holder_->file()->Write(offset, buffer, bytes_to_write));
-      }
-    }
-    if (result < 0)
-      result = PP_ERROR_FAILED;
-
-    state_manager_.SetOperationFinished();
-    return result;
-  }
-
-  // For the non-blocking case, post a task to the file thread. We must copy the
-  // plugin's buffer at this point.
-  auto copy = base::HeapArray<char>::Uninit(bytes_to_write);
-  memcpy(copy.data(), buffer, bytes_to_write);
-  scoped_refptr<WriteOp> write_op(
-      new WriteOp(file_holder_, offset, std::move(copy), append));
-  PpapiGlobals::Get()->GetFileTaskRunner()->PostTaskAndReplyWithResult(
-      FROM_HERE, base::BindOnce(&FileIOResource::WriteOp::DoWork, write_op),
-      RunWhileLocked(base::BindOnce(&TrackedCallback::Run, callback)));
-  callback->set_completion_task(
-      base::BindOnce(&FileIOResource::OnWriteComplete, this));
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void FileIOResource::SetLengthValidated(
-    int64_t length,
-    scoped_refptr<TrackedCallback> callback) {
-  Call<PpapiPluginMsg_FileIO_GeneralReply>(
-      BROWSER, PpapiHostMsg_FileIO_SetLength(length),
-      base::BindOnce(&FileIOResource::OnPluginMsgGeneralComplete, this,
-                     callback));
-
-  // On the browser side we grow |max_written_offset_| monotonically, due to the
-  // unpredictable ordering of plugin side Write and SetLength calls. Match that
-  // behavior here.
-  if (max_written_offset_ < length)
-    max_written_offset_ = length;
-}
-
-int32_t FileIOResource::OnQueryComplete(scoped_refptr<QueryOp> query_op,
-                                        PP_FileInfo* info,
-                                        int32_t result) {
-  DCHECK(state_manager_.get_pending_operation() ==
-         FileIOStateManager::OPERATION_EXCLUSIVE);
-
-  if (result == PP_OK) {
-    // This writes the file info into the plugin's PP_FileInfo struct.
-    ppapi::FileInfoToPepperFileInfo(query_op->file_info(),
-                                    file_system_type_,
-                                    info);
-  }
-  state_manager_.SetOperationFinished();
-  return result;
-}
-
-int32_t FileIOResource::OnReadComplete(scoped_refptr<ReadOp> read_op,
-                                       PP_ArrayOutput array_output,
-                                       int32_t result) {
-  DCHECK(state_manager_.get_pending_operation() ==
-         FileIOStateManager::OPERATION_READ);
-  if (result >= 0) {
-    ArrayWriter output;
-    output.set_pp_array_output(array_output);
-    if (output.is_valid())
-      output.StoreArray(read_op->buffer(), result);
-    else
-      result = PP_ERROR_FAILED;
-  } else {
-    // The read operation failed.
-    result = PP_ERROR_FAILED;
-  }
-  state_manager_.SetOperationFinished();
-  return result;
-}
-
-void FileIOResource::OnRequestWriteQuotaComplete(
-    int64_t offset,
-    base::HeapArray<char> buffer,
-    scoped_refptr<TrackedCallback> callback,
-    int64_t granted) {
-  const int64_t bytes_to_write = buffer.size();
-  DCHECK(granted >= 0);
-  if (granted == 0) {
-    callback->Run(PP_ERROR_NOQUOTA);
-    return;
-  }
-  if (open_flags_ & PP_FILEOPENFLAG_APPEND) {
-    DCHECK_LE(bytes_to_write, granted);
-    append_mode_write_amount_ += bytes_to_write;
-  } else {
-    DCHECK_LE(offset + bytes_to_write - max_written_offset_, granted);
-
-    int64_t max_offset = offset + bytes_to_write;
-    if (max_written_offset_ < max_offset)
-      max_written_offset_ = max_offset;
-  }
-
-  if (callback->is_blocking()) {
-    int32_t result =
-        WriteValidated(offset, buffer.data(), bytes_to_write, callback);
-    DCHECK(result != PP_OK_COMPLETIONPENDING);
-    callback->Run(result);
-  } else {
-    bool append = (open_flags_ & PP_FILEOPENFLAG_APPEND) != 0;
-    scoped_refptr<WriteOp> write_op(
-        new WriteOp(file_holder_, offset, std::move(buffer), append));
-    PpapiGlobals::Get()->GetFileTaskRunner()->PostTaskAndReplyWithResult(
-        FROM_HERE, base::BindOnce(&FileIOResource::WriteOp::DoWork, write_op),
-        RunWhileLocked(base::BindOnce(&TrackedCallback::Run, callback)));
-    callback->set_completion_task(
-        BindOnce(&FileIOResource::OnWriteComplete, this));
-  }
-}
-
-void FileIOResource::OnRequestSetLengthQuotaComplete(
-    int64_t length,
-    scoped_refptr<TrackedCallback> callback,
-    int64_t granted) {
-  DCHECK(granted >= 0);
-  if (granted == 0) {
-    callback->Run(PP_ERROR_NOQUOTA);
-    return;
-  }
-
-  DCHECK_LE(length - max_written_offset_, granted);
-  if (max_written_offset_ < length)
-    max_written_offset_ = length;
-  SetLengthValidated(length, callback);
-}
-
-int32_t FileIOResource::OnWriteComplete(int32_t result) {
-  DCHECK(state_manager_.get_pending_operation() ==
-         FileIOStateManager::OPERATION_WRITE);
-  // |result| is the return value of WritePlatformFile; -1 indicates failure.
-  if (result < 0)
-    result = PP_ERROR_FAILED;
-
-  state_manager_.SetOperationFinished();
-  return result;
-}
-
-void FileIOResource::OnPluginMsgGeneralComplete(
-    scoped_refptr<TrackedCallback> callback,
-    const ResourceMessageReplyParams& params) {
-  DCHECK(state_manager_.get_pending_operation() ==
-         FileIOStateManager::OPERATION_EXCLUSIVE ||
-         state_manager_.get_pending_operation() ==
-         FileIOStateManager::OPERATION_WRITE);
-  // End this operation now, so the user's callback can execute another FileIO
-  // operation, assuming there are no other pending operations.
-  state_manager_.SetOperationFinished();
-  callback->Run(params.result());
-}
-
-void FileIOResource::OnPluginMsgOpenFileComplete(
-    scoped_refptr<TrackedCallback> callback,
-    const ResourceMessageReplyParams& params,
-    PP_Resource quota_file_system,
-    int64_t max_written_offset) {
-  DCHECK(state_manager_.get_pending_operation() ==
-         FileIOStateManager::OPERATION_EXCLUSIVE);
-
-  // Release the FileRef resource.
-  file_ref_.reset();
-  int32_t result = params.result();
-  if (result == PP_OK) {
-    state_manager_.SetOpenSucceed();
-
-    if (quota_file_system) {
-      DCHECK(quota_file_system == file_system_resource_->pp_resource());
-      check_quota_ = true;
-      max_written_offset_ = max_written_offset;
-      file_system_resource_->AsPPB_FileSystem_API()->OpenQuotaFile(
-          pp_resource());
-    }
-
-    IPC::PlatformFileForTransit transit_file;
-    if (params.TakeFileHandleAtIndex(0, &transit_file)) {
-      file_holder_ = new FileHolder(
-          IPC::PlatformFileForTransitToPlatformFile(transit_file));
-    }
-  }
-  // End this operation now, so the user's callback can execute another FileIO
-  // operation, assuming there are no other pending operations.
-  state_manager_.SetOperationFinished();
-  callback->Run(result);
-}
-
-void FileIOResource::OnPluginMsgRequestOSFileHandleComplete(
-    scoped_refptr<TrackedCallback> callback,
-    PP_FileHandle* output_handle,
-    const ResourceMessageReplyParams& params) {
-  DCHECK(state_manager_.get_pending_operation() ==
-         FileIOStateManager::OPERATION_EXCLUSIVE);
-
-  if (!TrackedCallback::IsPending(callback)) {
-    state_manager_.SetOperationFinished();
-    return;
-  }
-
-  int32_t result = params.result();
-  IPC::PlatformFileForTransit transit_file;
-  if (!params.TakeFileHandleAtIndex(0, &transit_file))
-    result = PP_ERROR_FAILED;
-  *output_handle = IPC::PlatformFileForTransitToPlatformFile(transit_file);
-
-  // End this operation now, so the user's callback can execute another FileIO
-  // operation, assuming there are no other pending operations.
-  state_manager_.SetOperationFinished();
-  callback->Run(result);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/file_io_resource.h b/proxy/file_io_resource.h
deleted file mode 100644
index 045ee56..0000000
--- a/proxy/file_io_resource.h
+++ /dev/null
@@ -1,233 +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_PROXY_FILE_IO_RESOURCE_H_
-#define PPAPI_PROXY_FILE_IO_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "base/containers/heap_array.h"
-#include "base/files/file.h"
-#include "base/memory/ref_counted.h"
-#include "ppapi/c/private/pp_file_handle.h"
-#include "ppapi/proxy/connection.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/file_io_state_manager.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/shared_impl/scoped_pp_resource.h"
-#include "ppapi/thunk/ppb_file_io_api.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT FileIOResource
-    : public PluginResource,
-      public thunk::PPB_FileIO_API {
- public:
-  FileIOResource(Connection connection, PP_Instance instance);
-
-  FileIOResource(const FileIOResource&) = delete;
-  FileIOResource& operator=(const FileIOResource&) = delete;
-
-  ~FileIOResource() override;
-
-  // Resource overrides.
-  thunk::PPB_FileIO_API* AsPPB_FileIO_API() override;
-
-  // PPB_FileIO_API implementation.
-  int32_t Open(PP_Resource file_ref,
-               int32_t open_flags,
-               scoped_refptr<TrackedCallback> callback) override;
-  int32_t Query(PP_FileInfo* info,
-                scoped_refptr<TrackedCallback> callback) override;
-  int32_t Touch(PP_Time last_access_time,
-                PP_Time last_modified_time,
-                scoped_refptr<TrackedCallback> callback) override;
-  int32_t Read(int64_t offset,
-               char* buffer,
-               int32_t bytes_to_read,
-               scoped_refptr<TrackedCallback> callback) override;
-  int32_t ReadToArray(int64_t offset,
-                      int32_t max_read_length,
-                      PP_ArrayOutput* array_output,
-                      scoped_refptr<TrackedCallback> callback) override;
-  int32_t Write(int64_t offset,
-                const char* buffer,
-                int32_t bytes_to_write,
-                scoped_refptr<TrackedCallback> callback) override;
-  int32_t SetLength(int64_t length,
-                    scoped_refptr<TrackedCallback> callback) override;
-  int64_t GetMaxWrittenOffset() const override;
-  int64_t GetAppendModeWriteAmount() const override;
-  void SetMaxWrittenOffset(int64_t max_written_offset) override;
-  void SetAppendModeWriteAmount(int64_t append_mode_write_amount) override;
-  int32_t Flush(scoped_refptr<TrackedCallback> callback) override;
-  void Close() override;
-  int32_t RequestOSFileHandle(PP_FileHandle* handle,
-                              scoped_refptr<TrackedCallback> callback) override;
-
-  // FileHolder is used to guarantee that file operations will have a valid FD
-  // to operate on, even if they're in a different thread.
-  // If instead we just passed the raw FD, the FD could be closed before the
-  // file operation has a chance to run. It could interact with an invalid FD,
-  // or worse, the FD value could be reused if another file is opened quickly
-  // (POSIX is required to provide the lowest available value when opening a
-  // file). This could result in strange problems such as writing data to the
-  // wrong file.
-  //
-  // Operations that run on a background thread should hold one of these to
-  // ensure they have a valid file descriptor. The file handle is only closed
-  // when the last reference to the FileHolder is removed, so we are guaranteed
-  // to operate on the correct file descriptor. It *is* still possible that the
-  // FileIOResource will be destroyed and "Abort" callbacks just before the
-  // operation does its task (e.g., Reading). In that case, we might for example
-  // Read from a file even though the FileIO has been destroyed and the plugin's
-  // callback got a PP_ERROR_ABORTED result. In the case of a write, we could
-  // write some data to the file despite the plugin receiving a
-  // PP_ERROR_ABORTED instead of a successful result.
-  class FileHolder : public base::RefCountedThreadSafe<FileHolder> {
-   public:
-    explicit FileHolder(PP_FileHandle file_handle);
-    base::File* file() {
-      return &file_;
-    }
-    static bool IsValid(
-        const scoped_refptr<FileIOResource::FileHolder>& handle);
-   private:
-    friend class base::RefCountedThreadSafe<FileHolder>;
-    ~FileHolder();
-    base::File file_;
-  };
-
-  scoped_refptr<FileHolder> file_holder() {
-    return file_holder_;
-  }
-
- private:
-  // Class to perform file query operations across multiple threads.
-  class QueryOp : public base::RefCountedThreadSafe<QueryOp> {
-   public:
-    explicit QueryOp(scoped_refptr<FileHolder> file_holder);
-
-    // Queries the file. Called on the file thread (non-blocking) or the plugin
-    // thread (blocking). This should not be called when we hold the proxy lock.
-    int32_t DoWork();
-
-    const base::File::Info& file_info() const { return file_info_; }
-
-   private:
-    friend class base::RefCountedThreadSafe<QueryOp>;
-    ~QueryOp();
-
-    scoped_refptr<FileHolder> file_holder_;
-    base::File::Info file_info_;
-  };
-
-  // Class to perform file read operations across multiple threads.
-  class ReadOp : public base::RefCountedThreadSafe<ReadOp> {
-   public:
-    ReadOp(scoped_refptr<FileHolder> file_holder,
-           int64_t offset,
-           int32_t bytes_to_read);
-
-    // Reads the file. Called on the file thread (non-blocking) or the plugin
-    // thread (blocking). This should not be called when we hold the proxy lock.
-    int32_t DoWork();
-
-    const char* buffer() const { return buffer_.data(); }
-
-   private:
-    friend class base::RefCountedThreadSafe<ReadOp>;
-    ~ReadOp();
-
-    scoped_refptr<FileHolder> file_holder_;
-    int64_t offset_;
-    int32_t bytes_to_read_;
-    base::HeapArray<char> buffer_;
-  };
-
-  // Class to perform file write operations across multiple threads.
-  class WriteOp : public base::RefCountedThreadSafe<WriteOp> {
-   public:
-    WriteOp(scoped_refptr<FileHolder> file_holder,
-            int64_t offset,
-            base::HeapArray<char> buffer,
-            bool append);
-
-    // Writes the file. Called on the file thread (non-blocking) or the plugin
-    // thread (blocking). This should not be called when we hold the proxy lock.
-    int32_t DoWork();
-
-   private:
-    friend class base::RefCountedThreadSafe<WriteOp>;
-    ~WriteOp();
-
-    scoped_refptr<FileHolder> file_holder_;
-    int64_t offset_;
-    base::HeapArray<char> buffer_;
-    bool append_;
-  };
-
-  void OnRequestWriteQuotaComplete(int64_t offset,
-                                   base::HeapArray<char> buffer,
-                                   scoped_refptr<TrackedCallback> callback,
-                                   int64_t granted);
-  void OnRequestSetLengthQuotaComplete(int64_t length,
-                                       scoped_refptr<TrackedCallback> callback,
-                                       int64_t granted);
-
-  int32_t ReadValidated(int64_t offset,
-                        int32_t bytes_to_read,
-                        const PP_ArrayOutput& array_output,
-                        scoped_refptr<TrackedCallback> callback);
-  int32_t WriteValidated(int64_t offset,
-                         const char* buffer,
-                         int32_t bytes_to_write,
-                         scoped_refptr<TrackedCallback> callback);
-  void SetLengthValidated(int64_t length,
-                          scoped_refptr<TrackedCallback> callback);
-
-  // Completion tasks for file operations that are done in the plugin.
-  int32_t OnQueryComplete(scoped_refptr<QueryOp> query_op,
-                          PP_FileInfo* info,
-                          int32_t result);
-  int32_t OnReadComplete(scoped_refptr<ReadOp> read_op,
-                         PP_ArrayOutput array_output,
-                         int32_t result);
-  int32_t OnWriteComplete(int32_t result);
-
-  // Reply message handlers for operations that are done in the host.
-  void OnPluginMsgGeneralComplete(scoped_refptr<TrackedCallback> callback,
-                                  const ResourceMessageReplyParams& params);
-  void OnPluginMsgOpenFileComplete(scoped_refptr<TrackedCallback> callback,
-                                   const ResourceMessageReplyParams& params,
-                                   PP_Resource quota_file_system,
-                                   int64_t max_written_offset);
-  void OnPluginMsgRequestOSFileHandleComplete(
-      scoped_refptr<TrackedCallback> callback,
-      PP_FileHandle* output_handle,
-      const ResourceMessageReplyParams& params);
-
-  scoped_refptr<FileHolder> file_holder_;
-  PP_FileSystemType file_system_type_;
-  scoped_refptr<Resource> file_system_resource_;
-  FileIOStateManager state_manager_;
-
-  scoped_refptr<Resource> file_ref_;
-
-  int32_t open_flags_;
-  int64_t max_written_offset_;
-  int64_t append_mode_write_amount_;
-  bool check_quota_;
-  bool called_close_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_FILE_IO_RESOURCE_H_
diff --git a/proxy/file_ref_resource.cc b/proxy/file_ref_resource.cc
deleted file mode 100644
index 77ff823..0000000
--- a/proxy/file_ref_resource.cc
+++ /dev/null
@@ -1,263 +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.
-
-#include "ppapi/proxy/file_ref_resource.h"
-
-#include <stddef.h>
-
-#include "base/functional/bind.h"
-#include "base/numerics/safe_conversions.h"
-#include "ppapi/c/pp_directory_entry.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/array_writer.h"
-#include "ppapi/shared_impl/file_ref_util.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_file_system_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-FileRefResource::FileRefResource(
-    Connection connection,
-    PP_Instance instance,
-    const FileRefCreateInfo& create_info)
-    : PluginResource(connection, instance),
-      create_info_(create_info),
-      file_system_resource_(create_info.file_system_plugin_resource) {
-  if (uses_internal_paths()) {
-    // If path ends with a slash, then normalize it away unless path is
-    // the root path.
-    int path_size = base::checked_cast<int>(create_info_.internal_path.size());
-    if (path_size > 1 && create_info_.internal_path.at(path_size - 1) == '/')
-      create_info_.internal_path.erase(path_size - 1, 1);
-
-    path_var_ = new StringVar(create_info_.internal_path);
-    create_info_.display_name = GetNameForInternalFilePath(
-        create_info_.internal_path);
-  } else {
-    DCHECK(!create_info_.display_name.empty());
-  }
-  name_var_ = new StringVar(create_info_.display_name);
-
-  if (create_info_.browser_pending_host_resource_id != 0 &&
-      create_info_.renderer_pending_host_resource_id != 0) {
-    AttachToPendingHost(BROWSER, create_info_.browser_pending_host_resource_id);
-    AttachToPendingHost(RENDERER,
-                        create_info_.renderer_pending_host_resource_id);
-  } else {
-    CHECK_EQ(0, create_info_.browser_pending_host_resource_id);
-    CHECK_EQ(0, create_info_.renderer_pending_host_resource_id);
-    CHECK(uses_internal_paths());
-    SendCreate(BROWSER, PpapiHostMsg_FileRef_CreateForFileAPI(
-        create_info.file_system_plugin_resource,
-        create_info.internal_path));
-    SendCreate(RENDERER, PpapiHostMsg_FileRef_CreateForFileAPI(
-        create_info.file_system_plugin_resource,
-        create_info.internal_path));
-  }
-}
-
-FileRefResource::~FileRefResource() {
-}
-
-// static
-PP_Resource FileRefResource::CreateFileRef(
-    Connection connection,
-    PP_Instance instance,
-    const FileRefCreateInfo& create_info) {
-  // If we have a valid file_system resource, ensure that its type matches that
-  // of the fs_type parameter.
-  if (create_info.file_system_plugin_resource != 0) {
-    thunk::EnterResourceNoLock<thunk::PPB_FileSystem_API> enter(
-        create_info.file_system_plugin_resource, true);
-    if (enter.failed())
-      return 0;
-    if (enter.object()->GetType() != create_info.file_system_type) {
-      NOTREACHED() << "file system type mismatch with resource";
-    }
-  }
-
-  if (create_info.file_system_type == PP_FILESYSTEMTYPE_LOCALPERSISTENT ||
-      create_info.file_system_type == PP_FILESYSTEMTYPE_LOCALTEMPORARY) {
-    if (!IsValidInternalPath(create_info.internal_path))
-      return 0;
-  }
-  return (new FileRefResource(connection,
-                              instance,
-                              create_info))->GetReference();
-}
-
-thunk::PPB_FileRef_API* FileRefResource::AsPPB_FileRef_API() {
-  return this;
-}
-
-PP_FileSystemType FileRefResource::GetFileSystemType() const {
-  return create_info_.file_system_type;
-}
-
-PP_Var FileRefResource::GetName() const {
-  return name_var_->GetPPVar();
-}
-
-PP_Var FileRefResource::GetPath() const {
-  if (!uses_internal_paths())
-    return PP_MakeUndefined();
-  return path_var_->GetPPVar();
-}
-
-PP_Resource FileRefResource::GetParent() {
-  if (!uses_internal_paths())
-    return 0;
-
-  size_t pos = create_info_.internal_path.rfind('/');
-  CHECK(pos != std::string::npos);
-  if (pos == 0)
-    pos++;
-  std::string parent_path = create_info_.internal_path.substr(0, pos);
-
-  ppapi::FileRefCreateInfo parent_info;
-  parent_info.file_system_type = create_info_.file_system_type;
-  parent_info.internal_path = parent_path;
-  parent_info.display_name = GetNameForInternalFilePath(parent_path);
-  parent_info.file_system_plugin_resource =
-      create_info_.file_system_plugin_resource;
-
-  return (new FileRefResource(connection(),
-                              pp_instance(),
-                              parent_info))->GetReference();
-}
-
-int32_t FileRefResource::MakeDirectory(
-    int32_t make_directory_flags,
-    scoped_refptr<TrackedCallback> callback) {
-  Call<PpapiPluginMsg_FileRef_MakeDirectoryReply>(
-      BROWSER, PpapiHostMsg_FileRef_MakeDirectory(make_directory_flags),
-      base::BindOnce(&FileRefResource::RunTrackedCallback, this, callback));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t FileRefResource::Touch(PP_Time last_access_time,
-                               PP_Time last_modified_time,
-                               scoped_refptr<TrackedCallback> callback) {
-  Call<PpapiPluginMsg_FileRef_TouchReply>(
-      BROWSER, PpapiHostMsg_FileRef_Touch(last_access_time, last_modified_time),
-      base::BindOnce(&FileRefResource::RunTrackedCallback, this, callback));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t FileRefResource::Delete(scoped_refptr<TrackedCallback> callback) {
-  Call<PpapiPluginMsg_FileRef_DeleteReply>(
-      BROWSER, PpapiHostMsg_FileRef_Delete(),
-      base::BindOnce(&FileRefResource::RunTrackedCallback, this, callback));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t FileRefResource::Rename(PP_Resource new_file_ref,
-                                scoped_refptr<TrackedCallback> callback) {
-  Call<PpapiPluginMsg_FileRef_RenameReply>(
-      BROWSER, PpapiHostMsg_FileRef_Rename(new_file_ref),
-      base::BindOnce(&FileRefResource::RunTrackedCallback, this, callback));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t FileRefResource::Query(PP_FileInfo* info,
-                               scoped_refptr<TrackedCallback> callback) {
-  if (info == NULL)
-    return PP_ERROR_BADARGUMENT;
-
-  Call<PpapiPluginMsg_FileRef_QueryReply>(
-      BROWSER, PpapiHostMsg_FileRef_Query(),
-      base::BindOnce(&FileRefResource::OnQueryReply, this, info, callback));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t FileRefResource::ReadDirectoryEntries(
-    const PP_ArrayOutput& output,
-    scoped_refptr<TrackedCallback> callback) {
-  Call<PpapiPluginMsg_FileRef_ReadDirectoryEntriesReply>(
-      BROWSER, PpapiHostMsg_FileRef_ReadDirectoryEntries(),
-      base::BindOnce(&FileRefResource::OnDirectoryEntriesReply, this, output,
-                     callback));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-const FileRefCreateInfo& FileRefResource::GetCreateInfo() const {
-  return create_info_;
-}
-
-PP_Var FileRefResource::GetAbsolutePath() {
-  if (!absolute_path_var_.get()) {
-    std::string absolute_path;
-    int32_t result = SyncCall<PpapiPluginMsg_FileRef_GetAbsolutePathReply>(
-        BROWSER, PpapiHostMsg_FileRef_GetAbsolutePath(), &absolute_path);
-    if (result != PP_OK)
-      return PP_MakeUndefined();
-    absolute_path_var_ = new StringVar(absolute_path);
-  }
-  return absolute_path_var_->GetPPVar();
-}
-
-void FileRefResource::RunTrackedCallback(
-    scoped_refptr<TrackedCallback> callback,
-    const ResourceMessageReplyParams& params) {
-  if (TrackedCallback::IsPending(callback))
-    callback->Run(params.result());
-}
-
-void FileRefResource::OnQueryReply(
-    PP_FileInfo* out_info,
-    scoped_refptr<TrackedCallback> callback,
-    const ResourceMessageReplyParams& params,
-    const PP_FileInfo& info) {
-  if (!TrackedCallback::IsPending(callback))
-    return;
-
-  if (params.result() == PP_OK)
-    *out_info = info;
-  callback->Run(params.result());
-}
-
-void FileRefResource::OnDirectoryEntriesReply(
-    const PP_ArrayOutput& output,
-    scoped_refptr<TrackedCallback> callback,
-    const ResourceMessageReplyParams& params,
-    const std::vector<ppapi::FileRefCreateInfo>& infos,
-    const std::vector<PP_FileType>& file_types) {
-  if (!TrackedCallback::IsPending(callback))
-    return;
-
-  if (params.result() == PP_OK) {
-    ArrayWriter writer(output);
-    if (!writer.is_valid()) {
-      callback->Run(PP_ERROR_BADARGUMENT);
-      return;
-    }
-
-    std::vector<PP_DirectoryEntry> entries;
-    for (size_t i = 0; i < infos.size(); ++i) {
-      PP_DirectoryEntry entry;
-      entry.file_ref = FileRefResource::CreateFileRef(connection(),
-                                                      pp_instance(),
-                                                      infos[i]);
-      entry.file_type = file_types[i];
-      entries.push_back(entry);
-    }
-
-    writer.StoreVector(entries);
-  }
-  callback->Run(params.result());
-}
-
-bool FileRefResource::uses_internal_paths() const {
-  return (create_info_.file_system_type != PP_FILESYSTEMTYPE_EXTERNAL) ||
-         !create_info_.internal_path.empty();
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/file_ref_resource.h b/proxy/file_ref_resource.h
deleted file mode 100644
index 414cf28..0000000
--- a/proxy/file_ref_resource.h
+++ /dev/null
@@ -1,103 +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.
-
-#ifndef PPAPI_PROXY_FILE_REF_RESOURCE_H_
-#define PPAPI_PROXY_FILE_REF_RESOURCE_H_
-
-#include <stdint.h>
-
-#include <vector>
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_time.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/file_ref_create_info.h"
-#include "ppapi/shared_impl/scoped_pp_resource.h"
-#include "ppapi/thunk/ppb_file_ref_api.h"
-
-namespace ppapi {
-class StringVar;
-
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT FileRefResource
-    : public PluginResource,
-      public thunk::PPB_FileRef_API {
- public:
-  static PP_Resource CreateFileRef(Connection connection,
-                                   PP_Instance instance,
-                                   const FileRefCreateInfo& info);
-
-  FileRefResource(const FileRefResource&) = delete;
-  FileRefResource& operator=(const FileRefResource&) = delete;
-
-  ~FileRefResource() override;
-
-  // Resource implementation.
-  thunk::PPB_FileRef_API* AsPPB_FileRef_API() override;
-
-  // PPB_FileRef_API implementation.
-  PP_FileSystemType GetFileSystemType() const override;
-  PP_Var GetName() const override;
-  PP_Var GetPath() const override;
-  PP_Resource GetParent() override;
-  int32_t MakeDirectory(int32_t make_directory_flags,
-                        scoped_refptr<TrackedCallback> callback) override;
-  int32_t Touch(PP_Time last_access_time,
-                PP_Time last_modified_time,
-                scoped_refptr<TrackedCallback> callback) override;
-  int32_t Delete(scoped_refptr<TrackedCallback> callback) override;
-  int32_t Rename(PP_Resource new_file_ref,
-                 scoped_refptr<TrackedCallback> callback) override;
-  int32_t Query(PP_FileInfo* info,
-                scoped_refptr<TrackedCallback> callback) override;
-  int32_t ReadDirectoryEntries(
-      const PP_ArrayOutput& output,
-      scoped_refptr<TrackedCallback> callback) override;
-  const FileRefCreateInfo& GetCreateInfo() const override;
-
-  // Private API
-  PP_Var GetAbsolutePath() override;
-
- private:
-  FileRefResource(Connection connection,
-                  PP_Instance instance,
-                  const FileRefCreateInfo& info);
-
-  void RunTrackedCallback(scoped_refptr<TrackedCallback> callback,
-                          const ResourceMessageReplyParams& params);
-
-  void OnQueryReply(PP_FileInfo* out_info,
-                    scoped_refptr<TrackedCallback> callback,
-                    const ResourceMessageReplyParams& params,
-                    const PP_FileInfo& info);
-
-  void OnDirectoryEntriesReply(
-      const PP_ArrayOutput& output,
-      scoped_refptr<TrackedCallback> callback,
-      const ResourceMessageReplyParams& params,
-      const std::vector<ppapi::FileRefCreateInfo>& infos,
-      const std::vector<PP_FileType>& file_types);
-
-  bool uses_internal_paths() const;
-
-  // Populated after creation.
-  FileRefCreateInfo create_info_;
-
-  // Some file ref operations may fail if the the file system resource inside
-  // create_info_ is destroyed. Therefore, we explicitly hold a reference to
-  // the file system resource to make sure it outlives the file ref.
-  ScopedPPResource file_system_resource_;
-
-  scoped_refptr<StringVar> name_var_;
-  scoped_refptr<StringVar> path_var_;
-  scoped_refptr<StringVar> absolute_path_var_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_FILE_REF_RESOURCE_H_
diff --git a/proxy/file_system_resource.cc b/proxy/file_system_resource.cc
deleted file mode 100644
index 26909c8..0000000
--- a/proxy/file_system_resource.cc
+++ /dev/null
@@ -1,241 +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.
-
-#include "ppapi/proxy/file_system_resource.h"
-
-#include "base/barrier_closure.h"
-#include "base/check.h"
-#include "base/containers/contains.h"
-#include "base/functional/bind.h"
-#include "ipc/ipc_message.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/file_growth.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_file_io_api.h"
-
-using ppapi::thunk::EnterResourceNoLock;
-using ppapi::thunk::PPB_FileIO_API;
-using ppapi::thunk::PPB_FileSystem_API;
-
-namespace ppapi {
-namespace proxy {
-
-FileSystemResource::QuotaRequest::QuotaRequest(
-    int64_t amount_arg,
-    RequestQuotaCallback callback_arg)
-    : amount(amount_arg), callback(std::move(callback_arg)) {}
-
-FileSystemResource::QuotaRequest::QuotaRequest(QuotaRequest&& other) = default;
-
-FileSystemResource::QuotaRequest& FileSystemResource::QuotaRequest::operator=(
-    QuotaRequest&& other) = default;
-
-FileSystemResource::QuotaRequest::~QuotaRequest() = default;
-
-FileSystemResource::FileSystemResource(Connection connection,
-                                       PP_Instance instance,
-                                       PP_FileSystemType type)
-    : PluginResource(connection, instance),
-      type_(type),
-      called_open_(false),
-      callback_count_(0),
-      callback_result_(PP_OK),
-      reserved_quota_(0),
-      reserving_quota_(false) {
-  DCHECK(type_ != PP_FILESYSTEMTYPE_INVALID);
-  SendCreate(RENDERER, PpapiHostMsg_FileSystem_Create(type_));
-  SendCreate(BROWSER, PpapiHostMsg_FileSystem_Create(type_));
-}
-
-FileSystemResource::FileSystemResource(Connection connection,
-                                       PP_Instance instance,
-                                       int pending_renderer_id,
-                                       int pending_browser_id,
-                                       PP_FileSystemType type)
-    : PluginResource(connection, instance),
-      type_(type),
-      called_open_(true),
-      callback_count_(0),
-      callback_result_(PP_OK),
-      reserved_quota_(0),
-      reserving_quota_(false) {
-  DCHECK(type_ != PP_FILESYSTEMTYPE_INVALID);
-  AttachToPendingHost(RENDERER, pending_renderer_id);
-  AttachToPendingHost(BROWSER, pending_browser_id);
-}
-
-FileSystemResource::~FileSystemResource() {
-}
-
-PPB_FileSystem_API* FileSystemResource::AsPPB_FileSystem_API() {
-  return this;
-}
-
-int32_t FileSystemResource::Open(int64_t expected_size,
-                                 scoped_refptr<TrackedCallback> callback) {
-  DCHECK(type_ != PP_FILESYSTEMTYPE_ISOLATED);
-  if (called_open_)
-    return PP_ERROR_FAILED;
-  called_open_ = true;
-
-  Call<PpapiPluginMsg_FileSystem_OpenReply>(
-      RENDERER, PpapiHostMsg_FileSystem_Open(expected_size),
-      base::BindOnce(&FileSystemResource::OpenComplete, this, callback));
-  Call<PpapiPluginMsg_FileSystem_OpenReply>(
-      BROWSER, PpapiHostMsg_FileSystem_Open(expected_size),
-      base::BindOnce(&FileSystemResource::OpenComplete, this, callback));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-PP_FileSystemType FileSystemResource::GetType() {
-  return type_;
-}
-
-void FileSystemResource::OpenQuotaFile(PP_Resource file_io) {
-  DCHECK(!base::Contains(files_, file_io));
-  files_.insert(file_io);
-}
-
-void FileSystemResource::CloseQuotaFile(PP_Resource file_io) {
-  DCHECK(base::Contains(files_, file_io));
-  files_.erase(file_io);
-}
-
-int64_t FileSystemResource::RequestQuota(int64_t amount,
-                                         RequestQuotaCallback callback) {
-  DCHECK(amount >= 0);
-  if (!reserving_quota_ && reserved_quota_ >= amount) {
-    reserved_quota_ -= amount;
-    return amount;
-  }
-
-  // Queue up a pending quota request.
-  pending_quota_requests_.push(QuotaRequest(amount, std::move(callback)));
-
-  // Reserve more quota if we haven't already.
-  if (!reserving_quota_)
-    ReserveQuota(amount);
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t FileSystemResource::InitIsolatedFileSystem(
-    const std::string& fsid,
-    PP_IsolatedFileSystemType_Private type,
-    base::OnceCallback<void(int32_t)> callback) {
-  // This call is mutually exclusive with Open() above, so we can reuse the
-  // called_open state.
-  DCHECK(type_ == PP_FILESYSTEMTYPE_ISOLATED);
-  if (called_open_)
-    return PP_ERROR_FAILED;
-  called_open_ = true;
-
-  base::RepeatingClosure ipc_callback = base::BarrierClosure(
-      2, base::BindOnce(&FileSystemResource::InitIsolatedFileSystemComplete,
-                        this, std::move(callback)));
-
-  Call<PpapiPluginMsg_FileSystem_InitIsolatedFileSystemReply>(
-      RENDERER, PpapiHostMsg_FileSystem_InitIsolatedFileSystem(fsid, type),
-      base::BindOnce(&FileSystemResource::InitIsolatedFileSystemReply, this,
-                     ipc_callback));
-  Call<PpapiPluginMsg_FileSystem_InitIsolatedFileSystemReply>(
-      BROWSER, PpapiHostMsg_FileSystem_InitIsolatedFileSystem(fsid, type),
-      base::BindOnce(&FileSystemResource::InitIsolatedFileSystemReply, this,
-                     ipc_callback));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void FileSystemResource::OpenComplete(
-    scoped_refptr<TrackedCallback> callback,
-    const ResourceMessageReplyParams& params) {
-  ++callback_count_;
-  // Prioritize worse result since only one status can be returned.
-  if (params.result() != PP_OK)
-    callback_result_ = params.result();
-  // Received callback from browser and renderer.
-  if (callback_count_ == 2)
-    callback->Run(callback_result_);
-}
-
-void FileSystemResource::InitIsolatedFileSystemReply(
-    base::OnceClosure callback,
-    const ResourceMessageReplyParams& params) {
-  // Prioritize worse result since only one status can be returned.
-  if (params.result() != PP_OK)
-    callback_result_ = params.result();
-  // Received callback from browser and renderer.
-  std::move(callback).Run();
-}
-
-void FileSystemResource::InitIsolatedFileSystemComplete(
-    base::OnceCallback<void(int32_t)> callback) {
-  std::move(callback).Run(callback_result_);
-}
-
-void FileSystemResource::ReserveQuota(int64_t amount) {
-  DCHECK(!reserving_quota_);
-  reserving_quota_ = true;
-
-  FileGrowthMap file_growths;
-  for (std::set<PP_Resource>::iterator it = files_.begin();
-       it != files_.end(); ++it) {
-    EnterResourceNoLock<PPB_FileIO_API> enter(*it, true);
-    CHECK(!enter.failed());
-    PPB_FileIO_API* file_io_api = enter.object();
-    file_growths[*it] = FileGrowth(
-        file_io_api->GetMaxWrittenOffset(),
-        file_io_api->GetAppendModeWriteAmount());
-  }
-  Call<PpapiPluginMsg_FileSystem_ReserveQuotaReply>(
-      BROWSER, PpapiHostMsg_FileSystem_ReserveQuota(amount, file_growths),
-      base::BindOnce(&FileSystemResource::ReserveQuotaComplete, this));
-}
-
-void FileSystemResource::ReserveQuotaComplete(
-    const ResourceMessageReplyParams& params,
-    int64_t amount,
-    const FileSizeMap& file_sizes) {
-  DCHECK(reserving_quota_);
-  reserving_quota_ = false;
-  reserved_quota_ = amount;
-
-  for (FileSizeMap::const_iterator it = file_sizes.begin();
-       it != file_sizes.end(); ++it) {
-    EnterResourceNoLock<PPB_FileIO_API> enter(it->first, true);
-
-    // It is possible that the host has sent an offset for a file that has been
-    // destroyed in the plugin. Ignore it.
-    if (enter.failed())
-      continue;
-    PPB_FileIO_API* file_io_api = enter.object();
-    file_io_api->SetMaxWrittenOffset(it->second);
-    file_io_api->SetAppendModeWriteAmount(0);
-  }
-
-  DCHECK(!pending_quota_requests_.empty());
-  // If we can't grant the first request after refreshing reserved_quota_, then
-  // fail all pending quota requests to avoid an infinite refresh/fail loop.
-  bool fail_all = reserved_quota_ < pending_quota_requests_.front().amount;
-  while (!pending_quota_requests_.empty()) {
-    QuotaRequest& request = pending_quota_requests_.front();
-    if (fail_all) {
-      std::move(request.callback).Run(0);
-      pending_quota_requests_.pop();
-    } else if (reserved_quota_ >= request.amount) {
-      reserved_quota_ -= request.amount;
-      std::move(request.callback).Run(request.amount);
-      pending_quota_requests_.pop();
-    } else {
-      // Refresh the quota reservation for the first pending request that we
-      // can't satisfy.
-      ReserveQuota(request.amount);
-      break;
-    }
-  }
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/file_system_resource.h b/proxy/file_system_resource.h
deleted file mode 100644
index 126978f..0000000
--- a/proxy/file_system_resource.h
+++ /dev/null
@@ -1,111 +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.
-
-#ifndef PPAPI_PROXY_FILE_SYSTEM_RESOURCE_H_
-#define PPAPI_PROXY_FILE_SYSTEM_RESOURCE_H_
-
-#include <stdint.h>
-
-#include <map>
-#include <string>
-
-#include "base/containers/queue.h"
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/pp_file_info.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/private/ppb_isolated_file_system_private.h"
-#include "ppapi/proxy/connection.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/proxy/resource_message_params.h"
-#include "ppapi/thunk/ppb_file_system_api.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT FileSystemResource : public PluginResource,
-                                              public thunk::PPB_FileSystem_API {
- public:
-  // Creates a new FileSystemResource. The resource must be subsequently opened
-  // via Open() before use.
-  FileSystemResource(Connection connection,
-                     PP_Instance instance,
-                     PP_FileSystemType type);
-  // Creates a FileSystemResource, attached to an existing pending host
-  // resource. The |pending_renderer_id| and |pending_browser_id| must be
-  // already-opened file systems.
-  FileSystemResource(Connection connection,
-                     PP_Instance instance,
-                     int pending_renderer_id,
-                     int pending_browser_id,
-                     PP_FileSystemType type);
-
-  FileSystemResource(const FileSystemResource&) = delete;
-  FileSystemResource& operator=(const FileSystemResource&) = delete;
-
-  ~FileSystemResource() override;
-
-  // Resource overrides.
-  thunk::PPB_FileSystem_API* AsPPB_FileSystem_API() override;
-
-  // PPB_FileSystem_API implementation.
-  int32_t Open(int64_t expected_size,
-               scoped_refptr<TrackedCallback> callback) override;
-  PP_FileSystemType GetType() override;
-  void OpenQuotaFile(PP_Resource file_io) override;
-  void CloseQuotaFile(PP_Resource file_io) override;
-  int64_t RequestQuota(
-      int64_t amount,
-      thunk::PPB_FileSystem_API::RequestQuotaCallback callback) override;
-
-  int32_t InitIsolatedFileSystem(const std::string& fsid,
-                                 PP_IsolatedFileSystemType_Private type,
-                                 base::OnceCallback<void(int32_t)> callback);
-
- private:
-  struct QuotaRequest {
-    QuotaRequest(int64_t amount,
-                 thunk::PPB_FileSystem_API::RequestQuotaCallback callback);
-    QuotaRequest(QuotaRequest&& other);
-    QuotaRequest& operator=(QuotaRequest&& other);
-    ~QuotaRequest();
-
-    int64_t amount;
-    thunk::PPB_FileSystem_API::RequestQuotaCallback callback;
-  };
-
-  // Called when the host has responded to our open request.
-  void OpenComplete(scoped_refptr<TrackedCallback> callback,
-                    const ResourceMessageReplyParams& params);
-
-  // Called when the host has responded to our InitIsolatedFileSystem request.
-  void InitIsolatedFileSystemReply(base::OnceClosure callback,
-                                   const ResourceMessageReplyParams& params);
-  void InitIsolatedFileSystemComplete(
-      base::OnceCallback<void(int32_t)> callback);
-
-  void ReserveQuota(int64_t amount);
-  typedef std::map<int32_t, int64_t> OffsetMap;
-  void ReserveQuotaComplete(const ResourceMessageReplyParams& params,
-                            int64_t amount,
-                            const OffsetMap& max_written_offsets);
-
-  PP_FileSystemType type_;
-  bool called_open_;
-  uint32_t callback_count_;
-  int32_t callback_result_;
-
-  std::set<PP_Resource> files_;
-  base::queue<QuotaRequest> pending_quota_requests_;
-  int64_t reserved_quota_;
-  bool reserving_quota_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_FILE_SYSTEM_RESOURCE_H_
diff --git a/proxy/gamepad_resource.cc b/proxy/gamepad_resource.cc
deleted file mode 100644
index a30b9bc..0000000
--- a/proxy/gamepad_resource.cc
+++ /dev/null
@@ -1,89 +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/proxy/gamepad_resource.h"
-
-#include <string.h>
-
-#include "base/functional/bind.h"
-#include "base/memory/read_only_shared_memory_region.h"
-#include "base/threading/platform_thread.h"
-#include "device/gamepad/public/cpp/gamepads.h"
-#include "ppapi/proxy/dispatch_reply_message.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/ppb_gamepad_shared.h"
-
-namespace ppapi {
-namespace proxy {
-
-GamepadResource::GamepadResource(Connection connection, PP_Instance instance)
-    : PluginResource(connection, instance),
-      buffer_(NULL) {
-  memset(&last_read_, 0, sizeof(last_read_));
-
-  SendCreate(BROWSER, PpapiHostMsg_Gamepad_Create());
-  Call<PpapiPluginMsg_Gamepad_SendMemory>(
-      BROWSER, PpapiHostMsg_Gamepad_RequestMemory(),
-      base::BindOnce(&GamepadResource::OnPluginMsgSendMemory, this));
-}
-
-GamepadResource::~GamepadResource() {
-}
-
-thunk::PPB_Gamepad_API* GamepadResource::AsPPB_Gamepad_API() {
-  return this;
-}
-
-void GamepadResource::Sample(PP_Instance /* instance */,
-                             PP_GamepadsSampleData* data) {
-  if (!buffer_) {
-    // Browser hasn't sent back our shared memory, give the plugin gamepad
-    // data corresponding to "not connected".
-    memset(data, 0, sizeof(PP_GamepadsSampleData));
-    return;
-  }
-
-  // ==========
-  //   DANGER
-  // ==========
-  //
-  // This logic is duplicated in the renderer as well. If you change it, that
-  // also needs to be in sync. See gamepad_shared_memory_reader.cc.
-
-  // Only try to read this many times before failing to avoid waiting here
-  // very long in case of contention with the writer.
-  const int kMaximumContentionCount = 10;
-  int contention_count = -1;
-  base::subtle::Atomic32 version;
-  device::Gamepads read_into;
-  do {
-    version = buffer_->seqlock.ReadBegin();
-    memcpy(&read_into, &buffer_->data, sizeof(read_into));
-    ++contention_count;
-    if (contention_count == kMaximumContentionCount)
-      break;
-  } while (buffer_->seqlock.ReadRetry(version));
-
-  // In the event of a read failure, just leave the last read data as-is (the
-  // hardware thread is taking unusally long).
-  if (contention_count < kMaximumContentionCount)
-    ConvertDeviceGamepadData(read_into, &last_read_);
-
-  memcpy(data, &last_read_, sizeof(PP_GamepadsSampleData));
-}
-
-void GamepadResource::OnPluginMsgSendMemory(
-    const ResourceMessageReplyParams& params) {
-  // On failure, the handle will be null and the CHECK below will be tripped.
-  base::ReadOnlySharedMemoryRegion region;
-  params.TakeReadOnlySharedMemoryRegionAtIndex(0, &region);
-
-  shared_memory_mapping_ = region.Map();
-  CHECK(shared_memory_mapping_.IsValid());
-  buffer_ = static_cast<const device::GamepadHardwareBuffer*>(
-      shared_memory_mapping_.memory());
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/gamepad_resource.h b/proxy/gamepad_resource.h
deleted file mode 100644
index 4b2f1c5..0000000
--- a/proxy/gamepad_resource.h
+++ /dev/null
@@ -1,55 +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_PROXY_GAMEPAD_RESOURCE_H_
-#define PPAPI_PROXY_GAMEPAD_RESOURCE_H_
-
-#include "base/compiler_specific.h"
-#include "base/memory/shared_memory_mapping.h"
-#include "device/gamepad/public/mojom/gamepad_hardware_buffer.h"
-#include "ppapi/c/ppb_gamepad.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/thunk/ppb_gamepad_api.h"
-
-struct PP_GamepadsSampleData;
-
-namespace ppapi {
-namespace proxy {
-
-// This class is a bit weird. It isn't a true resource from the plugin's
-// perspective. But we need to make requests to the browser and get replies.
-// It's more convenient to do this as a resource, so the instance just
-// maintains an internal lazily instantiated copy of this resource.
-class PPAPI_PROXY_EXPORT GamepadResource
-      : public PluginResource,
-        public thunk::PPB_Gamepad_API {
- public:
-  GamepadResource(Connection connection, PP_Instance instance);
-
-  GamepadResource(const GamepadResource&) = delete;
-  GamepadResource& operator=(const GamepadResource&) = delete;
-
-  ~GamepadResource() override;
-
-  // Resource implementation.
-  thunk::PPB_Gamepad_API* AsPPB_Gamepad_API() override;
-
-  // PPB_Gamepad_API.
-  void Sample(PP_Instance instance, PP_GamepadsSampleData* data) override;
-
- private:
-  void OnPluginMsgSendMemory(const ResourceMessageReplyParams& params);
-
-  base::ReadOnlySharedMemoryMapping shared_memory_mapping_;
-  const device::GamepadHardwareBuffer* buffer_;
-
-  // Last data returned so we can use this in the event of a read failure.
-  PP_GamepadsSampleData last_read_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_GAMEPAD_RESOURCE_H_
diff --git a/proxy/graphics_2d_resource.cc b/proxy/graphics_2d_resource.cc
deleted file mode 100644
index 6caca91..0000000
--- a/proxy/graphics_2d_resource.cc
+++ /dev/null
@@ -1,163 +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/proxy/graphics_2d_resource.h"
-
-#include "base/functional/bind.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/ppb_graphics_2d.h"
-#include "ppapi/proxy/dispatch_reply_message.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_image_data_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-Graphics2DResource::Graphics2DResource(Connection connection,
-                                       PP_Instance instance,
-                                       const PP_Size& size,
-                                       PP_Bool is_always_opaque)
-    : PluginResource(connection, instance),
-      size_(size),
-      is_always_opaque_(is_always_opaque),
-      scale_(1.0f) {
-  // These checks are copied from PPB_ImageData_Impl::Init to make tests passed.
-  // Let's remove/refactor this when start to refactor ImageData.
-  bool bad_args =
-      size.width <= 0 || size.height <= 0 ||
-      static_cast<int64_t>(size.width) * static_cast<int64_t>(size.height) >=
-          std::numeric_limits<int32_t>::max() / 4;
-  if (!bad_args && !sent_create_to_renderer()) {
-    SendCreate(RENDERER,
-        PpapiHostMsg_Graphics2D_Create(size, is_always_opaque));
-  }
-}
-
-Graphics2DResource::~Graphics2DResource() {
-}
-
-PP_Bool Graphics2DResource::Describe(PP_Size* size, PP_Bool* is_always_opaque) {
-  *size = size_;
-  *is_always_opaque = is_always_opaque_;
-  return PP_TRUE;
-}
-
-thunk::PPB_Graphics2D_API* Graphics2DResource::AsPPB_Graphics2D_API() {
-  return this;
-}
-
-void Graphics2DResource::PaintImageData(PP_Resource image_data,
-                                        const PP_Point* top_left,
-                                        const PP_Rect* src_rect) {
-  Resource* image_object =
-      PpapiGlobals::Get()->GetResourceTracker()->GetResource(image_data);
-  if (!image_object || pp_instance() != image_object->pp_instance()) {
-    Log(PP_LOGLEVEL_ERROR,
-        "Graphics2DResource.PaintImageData: Bad image resource.");
-    return;
-  }
-
-  PP_Rect dummy;
-  memset(&dummy, 0, sizeof(PP_Rect));
-  Post(RENDERER, PpapiHostMsg_Graphics2D_PaintImageData(
-      image_object->host_resource(), *top_left,
-      !!src_rect, src_rect ? *src_rect : dummy));
-}
-
-void Graphics2DResource::Scroll(const PP_Rect* clip_rect,
-                                const PP_Point* amount) {
-  PP_Rect dummy;
-  memset(&dummy, 0, sizeof(PP_Rect));
-  Post(RENDERER, PpapiHostMsg_Graphics2D_Scroll(
-      !!clip_rect, clip_rect ? *clip_rect : dummy, *amount));
-}
-
-void Graphics2DResource::ReplaceContents(PP_Resource image_data) {
-  thunk::EnterResourceNoLock<thunk::PPB_ImageData_API> enter_image(
-      image_data, true);
-  if (enter_image.failed())
-    return;
-
-  // Check that the PP_Instance matches.
-  Resource* image_object =
-      PpapiGlobals::Get()->GetResourceTracker()->GetResource(image_data);
-  if (!image_object || pp_instance() != image_object->pp_instance()) {
-    Log(PP_LOGLEVEL_ERROR,
-        "Graphics2DResource.PaintImageData: Bad image resource.");
-    return;
-  }
-  enter_image.object()->SetIsCandidateForReuse();
-
-  Post(RENDERER, PpapiHostMsg_Graphics2D_ReplaceContents(
-      image_object->host_resource()));
-}
-
-PP_Bool Graphics2DResource::SetScale(float scale) {
-  if (scale <= 0.0f)
-    return PP_FALSE;
-  Post(RENDERER, PpapiHostMsg_Graphics2D_SetScale(scale));
-  scale_ = scale;
-  return PP_TRUE;
-}
-
-float Graphics2DResource::GetScale() {
-  return scale_;
-}
-
-PP_Bool Graphics2DResource::SetLayerTransform(float scale,
-                                              const PP_Point* origin,
-                                              const PP_Point* translate) {
-  if (scale <= 0.0f)
-    return PP_FALSE;
-  // Adding the origin to the transform.
-  PP_FloatPoint translate_with_origin;
-  translate_with_origin.x = (1 - scale) * origin->x - translate->x;
-  translate_with_origin.y = (1 - scale) * origin->y - translate->y;
-  Post(RENDERER,
-       PpapiHostMsg_Graphics2D_SetLayerTransform(scale, translate_with_origin));
-  return PP_TRUE;
-}
-
-int32_t Graphics2DResource::Flush(scoped_refptr<TrackedCallback> callback) {
-  // If host is not even created, return failure immediately.  This can happen
-  // when failed to initialize (in constructor).
-  if (!sent_create_to_renderer())
-    return PP_ERROR_FAILED;
-
-  if (TrackedCallback::IsPending(current_flush_callback_))
-    return PP_ERROR_INPROGRESS;  // Can't have >1 flush pending.
-  current_flush_callback_ = callback;
-
-  Call<PpapiPluginMsg_Graphics2D_FlushAck>(
-      RENDERER, PpapiHostMsg_Graphics2D_Flush(),
-      base::BindOnce(&Graphics2DResource::OnPluginMsgFlushACK, this));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-bool Graphics2DResource::ReadImageData(PP_Resource image,
-                                       const PP_Point* top_left) {
-  if (!top_left)
-    return false;
-  int32_t result = SyncCall<PpapiPluginMsg_Graphics2D_ReadImageDataAck>(
-      RENDERER,
-      PpapiHostMsg_Graphics2D_ReadImageData(image, *top_left));
-  return result == PP_OK;
-}
-
-void Graphics2DResource::OnPluginMsgFlushACK(
-    const ResourceMessageReplyParams& params) {
-  current_flush_callback_->Run(params.result());
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/graphics_2d_resource.h b/proxy/graphics_2d_resource.h
deleted file mode 100644
index 996b0c3..0000000
--- a/proxy/graphics_2d_resource.h
+++ /dev/null
@@ -1,65 +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_PROXY_GRAPHICS_2D_RESOURCE_H_
-#define PPAPI_PROXY_GRAPHICS_2D_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/thunk/ppb_graphics_2d_api.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT Graphics2DResource : public PluginResource,
-                                              public thunk::PPB_Graphics2D_API {
- public:
-  Graphics2DResource(Connection connection,
-                     PP_Instance instance,
-                     const PP_Size& size,
-                     PP_Bool is_always_opaque);
-
-  Graphics2DResource(const Graphics2DResource&) = delete;
-  Graphics2DResource& operator=(const Graphics2DResource&) = delete;
-
-  ~Graphics2DResource() override;
-
-  // Resource overrides.
-  thunk::PPB_Graphics2D_API* AsPPB_Graphics2D_API() override;
-
-  // PPB_Graphics2D_API overrides.
-  PP_Bool Describe(PP_Size* size, PP_Bool* is_always_opaque) override;
-  void PaintImageData(PP_Resource image_data,
-                      const PP_Point* top_left,
-                      const PP_Rect* src_rect) override;
-  void Scroll(const PP_Rect* clip_rect, const PP_Point* amount) override;
-  void ReplaceContents(PP_Resource image_data) override;
-  PP_Bool SetScale(float scale) override;
-  float GetScale() override;
-  PP_Bool SetLayerTransform(float scale,
-                            const PP_Point* origin,
-                            const PP_Point* translate) override;
-  int32_t Flush(scoped_refptr<TrackedCallback> callback) override;
-  bool ReadImageData(PP_Resource image, const PP_Point* top_left) override;
-
- private:
-  void OnPluginMsgFlushACK(const ResourceMessageReplyParams& params);
-
-  const PP_Size size_;
-  const PP_Bool is_always_opaque_;
-  float scale_;
-
-  scoped_refptr<TrackedCallback> current_flush_callback_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_GRAPHICS_2D_RESOURCE_H_
diff --git a/proxy/host_dispatcher.cc b/proxy/host_dispatcher.cc
deleted file mode 100644
index 3f80d55..0000000
--- a/proxy/host_dispatcher.cc
+++ /dev/null
@@ -1,294 +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/proxy/host_dispatcher.h"
-
-#include <stddef.h>
-
-#include "base/check.h"
-#include "base/functional/bind.h"
-#include "base/notreached.h"
-#include "base/observer_list.h"
-#include "base/task/single_thread_task_runner.h"
-#include "base/trace_event/trace_event.h"
-#include "ppapi/c/ppb_var.h"
-#include "ppapi/c/private/ppb_proxy_private.h"
-#include "ppapi/proxy/host_var_serialization_rules.h"
-#include "ppapi/proxy/interface_list.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/resource_creation_proxy.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-typedef std::map<PP_Instance, HostDispatcher*> InstanceToHostDispatcherMap;
-InstanceToHostDispatcherMap* g_instance_to_host_dispatcher = NULL;
-
-typedef std::map<PP_Module, HostDispatcher*> ModuleToDispatcherMap;
-ModuleToDispatcherMap* g_module_to_dispatcher = NULL;
-
-PP_Bool ReserveInstanceID(PP_Module module, PP_Instance instance) {
-  // Default to returning true (usable) failure. Otherwise, if there's some
-  // kind of communication error or the plugin just crashed, we'll get into an
-  // infinite loop generating new instnace IDs since we think they're all in
-  // use.
-  ModuleToDispatcherMap::const_iterator found =
-      g_module_to_dispatcher->find(module);
-  if (found == g_module_to_dispatcher->end()) {
-    NOTREACHED();
-  }
-
-  bool usable = true;
-  if (!found->second->Send(new PpapiMsg_ReserveInstanceId(instance, &usable)))
-    return PP_TRUE;
-  return PP_FromBool(usable);
-}
-
-// Saves the state of the given bool and puts it back when it goes out of
-// scope.
-class BoolRestorer {
- public:
-  BoolRestorer(bool* var) : var_(var), old_value_(*var) {
-  }
-  ~BoolRestorer() {
-    *var_ = old_value_;
-  }
- private:
-  bool* var_;
-  bool old_value_;
-};
-
-}  // namespace
-
-HostDispatcher::HostDispatcher(PP_Module module,
-                               PP_GetInterface_Func local_get_interface,
-                               const PpapiPermissions& permissions)
-    : Dispatcher(local_get_interface, permissions),
-      pp_module_(module),
-      ppb_proxy_(NULL),
-      allow_plugin_reentrancy_(false) {
-  if (!g_module_to_dispatcher)
-    g_module_to_dispatcher = new ModuleToDispatcherMap;
-  (*g_module_to_dispatcher)[pp_module_] = this;
-
-  SetSerializationRules(new HostVarSerializationRules);
-
-  ppb_proxy_ = reinterpret_cast<const PPB_Proxy_Private*>(
-      local_get_interface(PPB_PROXY_PRIVATE_INTERFACE));
-  DCHECK(ppb_proxy_) << "The proxy interface should always be supported.";
-
-  ppb_proxy_->SetReserveInstanceIDCallback(pp_module_, &ReserveInstanceID);
-}
-
-HostDispatcher::~HostDispatcher() {
-  g_module_to_dispatcher->erase(pp_module_);
-}
-
-bool HostDispatcher::InitHostWithChannel(
-    Delegate* delegate,
-    base::ProcessId peer_pid,
-    const IPC::ChannelHandle& channel_handle,
-    bool is_client,
-    const ppapi::Preferences& preferences,
-    scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
-  if (!Dispatcher::InitWithChannel(delegate, peer_pid, channel_handle,
-                                   is_client, task_runner))
-    return false;
-  Send(new PpapiMsg_SetPreferences(preferences));
-  return true;
-}
-
-// static
-HostDispatcher* HostDispatcher::GetForInstance(PP_Instance instance) {
-  if (!g_instance_to_host_dispatcher)
-    return NULL;
-  InstanceToHostDispatcherMap::iterator found =
-      g_instance_to_host_dispatcher->find(instance);
-  if (found == g_instance_to_host_dispatcher->end())
-    return NULL;
-  return found->second;
-}
-
-// static
-void HostDispatcher::SetForInstance(PP_Instance instance,
-                                    HostDispatcher* dispatcher) {
-  if (!g_instance_to_host_dispatcher)
-    g_instance_to_host_dispatcher = new InstanceToHostDispatcherMap;
-  (*g_instance_to_host_dispatcher)[instance] = dispatcher;
-}
-
-// static
-void HostDispatcher::RemoveForInstance(PP_Instance instance) {
-  if (!g_instance_to_host_dispatcher)
-    return;
-  InstanceToHostDispatcherMap::iterator found =
-      g_instance_to_host_dispatcher->find(instance);
-  if (found != g_instance_to_host_dispatcher->end())
-    g_instance_to_host_dispatcher->erase(found);
-}
-
-bool HostDispatcher::IsPlugin() const {
-  return false;
-}
-
-bool HostDispatcher::Send(IPC::Message* msg) {
-  TRACE_EVENT2("ppapi_proxy", "HostDispatcher::Send", "Class",
-               IPC_MESSAGE_ID_CLASS(msg->type()), "Line",
-               IPC_MESSAGE_ID_LINE(msg->type()));
-
-  // Normal sync messages are set to unblock, which would normally cause the
-  // plugin to be reentered to process them. We only want to do this when we
-  // know the plugin is in a state to accept reentrancy. Since the plugin side
-  // never clears this flag on messages it sends, we can't get deadlock, but we
-  // may still get reentrancy in the host as a result.
-  if (!allow_plugin_reentrancy_)
-    msg->set_unblock(false);
-
-  if (msg->is_sync()) {
-    // Don't allow sending sync messages during module shutdown. Seee the "else"
-    // block below for why.
-    CHECK(!PP_ToBool(ppb_proxy()->IsInModuleDestructor(pp_module())));
-
-    // Prevent the dispatcher from going away during sync calls. Scenarios
-    // where this could happen include a Send for a sync message which while
-    // waiting for the reply, dispatches an incoming ExecuteScript call which
-    // destroys the plugin module and in turn the dispatcher.
-    ScopedModuleReference scoped_ref(this);
-
-    for (auto& observer : sync_status_observer_list_)
-      observer.BeginBlockOnSyncMessage();
-    bool result = Dispatcher::Send(msg);
-    for (auto& observer : sync_status_observer_list_)
-      observer.EndBlockOnSyncMessage();
-
-    return result;
-  } else {
-    // We don't want to have a scoped ref for async message cases since since
-    // async messages are sent during module desruction. In this case, the
-    // module will have a 0 refcount and addrefing and releasing it will
-    // reenter the destructor and it will crash.
-    return Dispatcher::Send(msg);
-  }
-}
-
-bool HostDispatcher::OnMessageReceived(const IPC::Message& msg) {
-  // Prevent the dispatcher from going away during a message handler. This must
-  // be at the outermost scope so it's released last.
-  ScopedModuleReference death_grip(this);
-
-  TRACE_EVENT2("ppapi_proxy", "HostDispatcher::OnMessageReceived", "Class",
-               IPC_MESSAGE_ID_CLASS(msg.type()), "Line",
-               IPC_MESSAGE_ID_LINE(msg.type()));
-
-  // We only want to allow reentrancy when the most recent message from the
-  // plugin was a scripting message. We save the old state of the flag on the
-  // stack in case we're (we are the host) being reentered ourselves. The flag
-  // is set to false here for all messages, and then the scripting API will
-  // explicitly set it to true during processing of those messages that can be
-  // reentered.
-  BoolRestorer restorer(&allow_plugin_reentrancy_);
-  allow_plugin_reentrancy_ = false;
-
-  for (size_t i = 0; i < filters_.size(); i++) {
-    if (filters_[i]->OnMessageReceived(msg))
-      return true;
-  }
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(HostDispatcher, msg)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_LogWithSource, OnHostMsgLogWithSource)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-
-  if (handled)
-    return true;
-  return Dispatcher::OnMessageReceived(msg);
-
-  // Note: |this| may be deleted once the death_grip goes out of scope!
-}
-
-void HostDispatcher::OnChannelError() {
-  Dispatcher::OnChannelError();  // Stop using the channel.
-
-  // Tell the host about the crash so it can clean up and display notification.
-  ppb_proxy_->PluginCrashed(pp_module());
-}
-
-const void* HostDispatcher::GetProxiedInterface(const std::string& iface_name) {
-  const void* proxied_interface =
-      InterfaceList::GetInstance()->GetInterfaceForPPP(iface_name);
-  if (!proxied_interface)
-    return NULL;  // Don't have a proxy for this interface, don't query further.
-
-  PluginSupportedMap::iterator iter(plugin_supported_.find(iface_name));
-  if (iter == plugin_supported_.end()) {
-    // Need to query. Cache the result so we only do this once.
-    bool supported = false;
-
-    Send(new PpapiMsg_SupportsInterface(iface_name, &supported));
-
-    std::pair<PluginSupportedMap::iterator, bool> iter_success_pair;
-    iter_success_pair = plugin_supported_.insert(
-        PluginSupportedMap::value_type(iface_name, supported));
-    iter = iter_success_pair.first;
-  }
-  if (iter->second)
-    return proxied_interface;
-  return NULL;
-}
-
-base::OnceClosure HostDispatcher::AddSyncMessageStatusObserver(
-    SyncMessageStatusObserver* obs) {
-  sync_status_observer_list_.AddObserver(obs);
-  return base::BindOnce(&HostDispatcher::RemoveSyncMessageStatusObserver,
-                        weak_ptr_factory_.GetWeakPtr(), obs);
-}
-
-void HostDispatcher::RemoveSyncMessageStatusObserver(
-    SyncMessageStatusObserver* obs) {
-  sync_status_observer_list_.RemoveObserver(obs);
-}
-
-void HostDispatcher::AddFilter(IPC::Listener* listener) {
-  filters_.push_back(listener);
-}
-
-void HostDispatcher::OnInvalidMessageReceived() {
-  // TODO(brettw) bug 95345 kill the plugin when an invalid message is
-  // received.
-}
-
-void HostDispatcher::OnHostMsgLogWithSource(PP_Instance instance,
-                                            int int_log_level,
-                                            const std::string& source,
-                                            const std::string& value) {
-  PP_LogLevel level = static_cast<PP_LogLevel>(int_log_level);
-  if (instance) {
-    PpapiGlobals::Get()->LogWithSource(instance, level, source, value);
-  } else {
-    PpapiGlobals::Get()->BroadcastLogWithSource(pp_module_, level,
-                                                source, value);
-  }
-}
-
-// ScopedModuleReference -------------------------------------------------------
-
-ScopedModuleReference::ScopedModuleReference(Dispatcher* dispatcher)
-    : dispatcher_(NULL) {
-  if (!dispatcher->IsPlugin()) {
-    dispatcher_ = static_cast<HostDispatcher*>(dispatcher);
-    dispatcher_->ppb_proxy()->AddRefModule(dispatcher_->pp_module());
-  }
-}
-
-ScopedModuleReference::~ScopedModuleReference() {
-  if (dispatcher_)
-    dispatcher_->ppb_proxy()->ReleaseModule(dispatcher_->pp_module());
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/host_dispatcher.h b/proxy/host_dispatcher.h
deleted file mode 100644
index 17b27fd..0000000
--- a/proxy/host_dispatcher.h
+++ /dev/null
@@ -1,183 +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_PROXY_HOST_DISPATCHER_H_
-#define PPAPI_PROXY_HOST_DISPATCHER_H_
-
-#include <map>
-#include <string>
-#include <unordered_map>
-#include <vector>
-
-#include "base/compiler_specific.h"
-#include "base/memory/weak_ptr.h"
-#include "base/observer_list.h"
-#include "base/process/process.h"
-#include "base/task/single_thread_task_runner.h"
-#include "ipc/message_filter.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/proxy/dispatcher.h"
-
-struct PPB_Proxy_Private;
-
-namespace ppapi {
-
-struct Preferences;
-
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT HostDispatcher : public Dispatcher {
- public:
-  // This interface receives notifications about sync messages being sent by
-  // the dispatcher to the plugin process. Some parts of Chrome may need to
-  // know whether we are sending a synchronous message to the plugin; e.g. to
-  // detect a hung plugin or to avoid re-entering JavaScript.
-  //
-  // Note that there can be nested sync messages, so the begin/end status
-  // actually represents a stack of blocking messages.
-  class SyncMessageStatusObserver {
-   public:
-    // Notification that a sync message is about to be sent out.
-    virtual void BeginBlockOnSyncMessage() = 0;
-
-    // Notification that a sync message reply was received and the dispatcher
-    // is no longer blocked on a sync message.
-    virtual void EndBlockOnSyncMessage() = 0;
-
-   protected:
-    virtual ~SyncMessageStatusObserver() {}
-  };
-
-  // Constructor for the renderer side. This will take a reference to the
-  // SyncMessageStatusReceiver.
-  //
-  // You must call InitHostWithChannel after the constructor.
-  HostDispatcher(PP_Module module,
-                 PP_GetInterface_Func local_get_interface,
-                 const PpapiPermissions& permissions);
-
-  HostDispatcher(const HostDispatcher&) = delete;
-  HostDispatcher& operator=(const HostDispatcher&) = delete;
-
-  ~HostDispatcher();
-
-  // You must call this function before anything else. Returns true on success.
-  // The delegate pointer must outlive this class, ownership is not
-  // transferred.
-  virtual bool InitHostWithChannel(
-      Delegate* delegate,
-      base::ProcessId peer_pid,
-      const IPC::ChannelHandle& channel_handle,
-      bool is_client,
-      const Preferences& preferences,
-      scoped_refptr<base::SingleThreadTaskRunner> task_runner);
-
-  // The host side maintains a mapping from PP_Instance to Dispatcher so
-  // that we can send the messages to the right channel.
-  static HostDispatcher* GetForInstance(PP_Instance instance);
-  static void SetForInstance(PP_Instance instance,
-                             HostDispatcher* dispatcher);
-  static void RemoveForInstance(PP_Instance instance);
-
-  // Returns the host's notion of our PP_Module. This will be different than
-  // the plugin's notion of its PP_Module because the plugin process may be
-  // used by multiple renderer processes.
-  //
-  // Use this value instead of a value from the plugin whenever talking to the
-  // host.
-  PP_Module pp_module() const { return pp_module_; }
-
-  // Dispatcher overrides.
-  bool IsPlugin() const override;
-  bool Send(IPC::Message* msg) override;
-
-  // IPC::Listener.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-  void OnChannelError() override;
-
-  // Proxied version of calling GetInterface on the plugin. This will check
-  // if the plugin supports the given interface (with caching) and returns the
-  // pointer to the proxied interface if it is supported. Returns NULL if the
-  // given interface isn't supported by the plugin or the proxy.
-  const void* GetProxiedInterface(const std::string& iface_name);
-
-  // See the value below. Call this when processing a scripting message from
-  // the plugin that can be reentered. This is set to false at the beginning
-  // of processing of each message from the plugin.
-  void set_allow_plugin_reentrancy() {
-    allow_plugin_reentrancy_ = true;
-  }
-
-  // Returns the proxy interface for talking to the implementation.
-  const PPB_Proxy_Private* ppb_proxy() const { return ppb_proxy_; }
-
-  // Register an observer that will be invoked when the dispatcher begins
-  // sending a sync message and finishes sending a sync message.
-  // Returns a OnceClosure that can be used to unregister the observer (the
-  // OnceClosure is bound to a weak pointer, so is safe to call even after the
-  // HostDispatcher is gone.)
-  base::OnceClosure AddSyncMessageStatusObserver(
-      SyncMessageStatusObserver* obs);
-
-  void AddFilter(IPC::Listener* listener);
-
- protected:
-  // Overridden from Dispatcher.
-  void OnInvalidMessageReceived() override;
-
- private:
-  void OnHostMsgLogWithSource(PP_Instance instance,
-                              int int_log_level,
-                              const std::string& source,
-                              const std::string& value);
-
-  void RemoveSyncMessageStatusObserver(SyncMessageStatusObserver* obs);
-
-  PP_Module pp_module_;
-
-  // Maps interface name to whether that interface is supported. If an interface
-  // name is not in the map, that implies that we haven't queried for it yet.
-  typedef std::unordered_map<std::string, bool> PluginSupportedMap;
-  PluginSupportedMap plugin_supported_;
-
-  // Guaranteed non-NULL.
-  const PPB_Proxy_Private* ppb_proxy_;
-
-  // Set to true when the plugin is in a state that it can be reentered by a
-  // sync message from the host. We allow reentrancy only when we're processing
-  // a sync message from the renderer that is a scripting command. When the
-  // plugin is in this state, it needs to accept reentrancy since scripting may
-  // ultimately call back into the plugin.
-  bool allow_plugin_reentrancy_;
-
-  base::ObserverList<SyncMessageStatusObserver>::Unchecked
-      sync_status_observer_list_;
-
-  std::vector<IPC::Listener*> filters_;
-
-  base::WeakPtrFactory<HostDispatcher> weak_ptr_factory_{this};
-};
-
-// Create this object on the stack to prevent the module (and hence the
-// dispatcher) from being deleted out from under you. This is necessary when
-// calling some scripting functions that may delete the plugin.
-//
-// This class does nothing if used on the plugin side.
-class ScopedModuleReference {
- public:
-  explicit ScopedModuleReference(Dispatcher* dispatcher);
-
-  ScopedModuleReference(const ScopedModuleReference&) = delete;
-  ScopedModuleReference& operator=(const ScopedModuleReference&) = delete;
-
-  ~ScopedModuleReference();
-
- private:
-  HostDispatcher* dispatcher_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_HOST_DISPATCHER_H_
diff --git a/proxy/host_resolver_private_resource.cc b/proxy/host_resolver_private_resource.cc
deleted file mode 100644
index 8a7831e..0000000
--- a/proxy/host_resolver_private_resource.cc
+++ /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.
-
-#include "ppapi/proxy/host_resolver_private_resource.h"
-
-#include "ppapi/proxy/net_address_resource.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-
-namespace ppapi {
-namespace proxy {
-
-HostResolverPrivateResource::HostResolverPrivateResource(Connection connection,
-                                                         PP_Instance instance)
-    : HostResolverResourceBase(connection, instance, true) {
-}
-
-HostResolverPrivateResource::~HostResolverPrivateResource() {
-}
-
-thunk::PPB_HostResolver_Private_API*
-HostResolverPrivateResource::AsPPB_HostResolver_Private_API() {
-  return this;
-}
-
-int32_t HostResolverPrivateResource::Resolve(
-    const char* host,
-    uint16_t port,
-    const PP_HostResolver_Private_Hint* hint,
-    scoped_refptr<TrackedCallback> callback) {
-  return ResolveImpl(host, port, hint, callback);
-}
-
-PP_Var HostResolverPrivateResource::GetCanonicalName() {
-  return GetCanonicalNameImpl();
-}
-
-uint32_t HostResolverPrivateResource::GetSize() {
-  return GetSizeImpl();
-}
-
-bool HostResolverPrivateResource::GetNetAddress(
-    uint32_t index,
-    PP_NetAddress_Private* address) {
-  if (!address)
-    return false;
-
-  scoped_refptr<NetAddressResource> addr_resource = GetNetAddressImpl(index);
-  if (!addr_resource.get())
-    return false;
-
-  *address = addr_resource->GetNetAddressPrivate();
-  return true;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/host_resolver_private_resource.h b/proxy/host_resolver_private_resource.h
deleted file mode 100644
index 0912cdb..0000000
--- a/proxy/host_resolver_private_resource.h
+++ /dev/null
@@ -1,48 +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_PROXY_HOST_RESOLVER_PRIVATE_RESOURCE_H_
-#define PPAPI_PROXY_HOST_RESOLVER_PRIVATE_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "ppapi/proxy/host_resolver_resource_base.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/thunk/ppb_host_resolver_private_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT HostResolverPrivateResource
-    : public HostResolverResourceBase,
-      public thunk::PPB_HostResolver_Private_API {
- public:
-  HostResolverPrivateResource(Connection connection,
-                              PP_Instance instance);
-
-  HostResolverPrivateResource(const HostResolverPrivateResource&) = delete;
-  HostResolverPrivateResource& operator=(const HostResolverPrivateResource&) =
-      delete;
-
-  ~HostResolverPrivateResource() override;
-
-  // PluginResource overrides.
-  thunk::PPB_HostResolver_Private_API* AsPPB_HostResolver_Private_API()
-      override;
-
-  // PPB_HostResolver_Private_API implementation.
-  int32_t Resolve(const char* host,
-                  uint16_t port,
-                  const PP_HostResolver_Private_Hint* hint,
-                  scoped_refptr<TrackedCallback> callback) override;
-  PP_Var GetCanonicalName() override;
-  uint32_t GetSize() override;
-  bool GetNetAddress(uint32_t index, PP_NetAddress_Private* address) override;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_HOST_RESOLVER_PRIVATE_RESOURCE_H_
diff --git a/proxy/host_resolver_resource.cc b/proxy/host_resolver_resource.cc
deleted file mode 100644
index 3873043..0000000
--- a/proxy/host_resolver_resource.cc
+++ /dev/null
@@ -1,84 +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.
-
-#include "ppapi/proxy/host_resolver_resource.h"
-
-#include "base/notreached.h"
-#include "ppapi/c/private/ppb_host_resolver_private.h"
-#include "ppapi/proxy/net_address_resource.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-PP_HostResolver_Private_Hint ConvertToHostResolverPrivateHint(
-    const PP_HostResolver_Hint& hint) {
-  PP_HostResolver_Private_Hint private_hint;
-  switch (hint.family) {
-    case PP_NETADDRESS_FAMILY_UNSPECIFIED:
-      private_hint.family = PP_NETADDRESSFAMILY_PRIVATE_UNSPECIFIED;
-      break;
-    case PP_NETADDRESS_FAMILY_IPV4:
-      private_hint.family = PP_NETADDRESSFAMILY_PRIVATE_IPV4;
-      break;
-    case PP_NETADDRESS_FAMILY_IPV6:
-      private_hint.family = PP_NETADDRESSFAMILY_PRIVATE_IPV6;
-      break;
-    default:
-      NOTREACHED();
-  }
-
-  private_hint.flags = 0;
-  if (hint.flags & PP_HOSTRESOLVER_FLAG_CANONNAME)
-    private_hint.flags |= PP_HOST_RESOLVER_PRIVATE_FLAGS_CANONNAME;
-
-  return private_hint;
-}
-
-}  // namespace
-
-HostResolverResource::HostResolverResource(Connection connection,
-                                           PP_Instance instance)
-    : HostResolverResourceBase(connection, instance, false) {
-}
-
-HostResolverResource::~HostResolverResource() {
-}
-
-thunk::PPB_HostResolver_API* HostResolverResource::AsPPB_HostResolver_API() {
-  return this;
-}
-
-int32_t HostResolverResource::Resolve(const char* host,
-                                      uint16_t port,
-                                      const PP_HostResolver_Hint* hint,
-                                      scoped_refptr<TrackedCallback> callback) {
-  if (!hint)
-    return PP_ERROR_BADARGUMENT;
-
-  PP_HostResolver_Private_Hint private_hint =
-      ConvertToHostResolverPrivateHint(*hint);
-  return ResolveImpl(host, port, &private_hint, callback);
-}
-
-PP_Var HostResolverResource::GetCanonicalName() {
-  return GetCanonicalNameImpl();
-}
-
-uint32_t HostResolverResource::GetNetAddressCount() {
-  return GetSizeImpl();
-}
-
-PP_Resource HostResolverResource::GetNetAddress(uint32_t index) {
-  scoped_refptr<NetAddressResource> addr_resource = GetNetAddressImpl(index);
-  if (!addr_resource.get())
-    return 0;
-
-  return addr_resource->GetReference();
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/host_resolver_resource.h b/proxy/host_resolver_resource.h
deleted file mode 100644
index ae24cc6..0000000
--- a/proxy/host_resolver_resource.h
+++ /dev/null
@@ -1,45 +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.
-
-#ifndef PPAPI_PROXY_HOST_RESOLVER_RESOURCE_H_
-#define PPAPI_PROXY_HOST_RESOLVER_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "ppapi/proxy/host_resolver_resource_base.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/thunk/ppb_host_resolver_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT HostResolverResource
-    : public HostResolverResourceBase,
-      public thunk::PPB_HostResolver_API {
- public:
-  HostResolverResource(Connection connection, PP_Instance instance);
-
-  HostResolverResource(const HostResolverResource&) = delete;
-  HostResolverResource& operator=(const HostResolverResource&) = delete;
-
-  ~HostResolverResource() override;
-
-  // PluginResource overrides.
-  thunk::PPB_HostResolver_API* AsPPB_HostResolver_API() override;
-
-  // thunk::PPB_HostResolver_API implementation.
-  int32_t Resolve(const char* host,
-                  uint16_t port,
-                  const PP_HostResolver_Hint* hint,
-                  scoped_refptr<TrackedCallback> callback) override;
-  PP_Var GetCanonicalName() override;
-  uint32_t GetNetAddressCount() override;
-  PP_Resource GetNetAddress(uint32_t index) override;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_HOST_RESOLVER_RESOURCE_H_
diff --git a/proxy/host_resolver_resource_base.cc b/proxy/host_resolver_resource_base.cc
deleted file mode 100644
index f6e52c9..0000000
--- a/proxy/host_resolver_resource_base.cc
+++ /dev/null
@@ -1,114 +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.
-
-#include "ppapi/proxy/host_resolver_resource_base.h"
-
-#include "base/functional/bind.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/error_conversion.h"
-#include "ppapi/proxy/net_address_resource.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-HostResolverResourceBase::HostResolverResourceBase(Connection connection,
-                                                   PP_Instance instance,
-                                                   bool private_api)
-    : PluginResource(connection, instance),
-      private_api_(private_api),
-      allow_get_results_(false) {
-  if (private_api)
-    SendCreate(BROWSER, PpapiHostMsg_HostResolver_CreatePrivate());
-  else
-    SendCreate(BROWSER, PpapiHostMsg_HostResolver_Create());
-}
-
-HostResolverResourceBase::~HostResolverResourceBase() {
-}
-
-int32_t HostResolverResourceBase::ResolveImpl(
-    const char* host,
-    uint16_t port,
-    const PP_HostResolver_Private_Hint* hint,
-    scoped_refptr<TrackedCallback> callback) {
-  allow_get_results_ = false;
-  if (!host || !hint)
-    return PP_ERROR_BADARGUMENT;
-  if (ResolveInProgress())
-    return PP_ERROR_INPROGRESS;
-
-  resolve_callback_ = callback;
-
-  HostPortPair host_port;
-  host_port.host = host;
-  host_port.port = port;
-
-  SendResolve(host_port, hint);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-PP_Var HostResolverResourceBase::GetCanonicalNameImpl() {
-  if (!allow_get_results_)
-    return PP_MakeUndefined();
-
-  return StringVar::StringToPPVar(canonical_name_);
-}
-
-uint32_t HostResolverResourceBase::GetSizeImpl() {
-  if (!allow_get_results_)
-    return 0;
-  return static_cast<uint32_t>(net_address_list_.size());
-}
-
-scoped_refptr<NetAddressResource> HostResolverResourceBase::GetNetAddressImpl(
-    uint32_t index) {
-  if (!allow_get_results_ || index >= GetSizeImpl())
-    return scoped_refptr<NetAddressResource>();
-
-  return net_address_list_[index];
-}
-
-void HostResolverResourceBase::OnPluginMsgResolveReply(
-    const ResourceMessageReplyParams& params,
-    const std::string& canonical_name,
-    const std::vector<PP_NetAddress_Private>& net_address_list) {
-  if (params.result() == PP_OK) {
-    allow_get_results_ = true;
-    canonical_name_ = canonical_name;
-
-    net_address_list_.clear();
-    for (std::vector<PP_NetAddress_Private>::const_iterator iter =
-             net_address_list.begin();
-         iter != net_address_list.end();
-         ++iter) {
-      net_address_list_.push_back(
-          new NetAddressResource(connection(), pp_instance(), *iter));
-    }
-  } else {
-    canonical_name_.clear();
-    net_address_list_.clear();
-  }
-  resolve_callback_->Run(ConvertNetworkAPIErrorForCompatibility(params.result(),
-                                                                private_api_));
-}
-
-void HostResolverResourceBase::SendResolve(
-    const HostPortPair& host_port,
-    const PP_HostResolver_Private_Hint* hint) {
-  PpapiHostMsg_HostResolver_Resolve msg(host_port, *hint);
-  Call<PpapiPluginMsg_HostResolver_ResolveReply>(
-      BROWSER, msg,
-      base::BindOnce(&HostResolverResourceBase::OnPluginMsgResolveReply,
-                     base::Unretained(this)));
-}
-
-bool HostResolverResourceBase::ResolveInProgress() const {
-  return TrackedCallback::IsPending(resolve_callback_);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/host_resolver_resource_base.h b/proxy/host_resolver_resource_base.h
deleted file mode 100644
index 479ef5a..0000000
--- a/proxy/host_resolver_resource_base.h
+++ /dev/null
@@ -1,77 +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.
-
-#ifndef PPAPI_PROXY_HOST_RESOLVER_RESOURCE_BASE_H_
-#define PPAPI_PROXY_HOST_RESOLVER_RESOURCE_BASE_H_
-
-#include <stdint.h>
-
-#include <string>
-#include <vector>
-
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/private/ppb_host_resolver_private.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-struct HostPortPair {
-  std::string host;
-  uint16_t port;
-};
-
-namespace proxy {
-
-class NetAddressResource;
-
-class PPAPI_PROXY_EXPORT HostResolverResourceBase: public PluginResource {
- public:
-  HostResolverResourceBase(Connection connection,
-                           PP_Instance instance,
-                           bool private_api);
-
-  HostResolverResourceBase(const HostResolverResourceBase&) = delete;
-  HostResolverResourceBase& operator=(const HostResolverResourceBase&) = delete;
-
-  virtual ~HostResolverResourceBase();
-
-  int32_t ResolveImpl(const char* host,
-                      uint16_t port,
-                      const PP_HostResolver_Private_Hint* hint,
-                      scoped_refptr<TrackedCallback> callback);
-  PP_Var GetCanonicalNameImpl();
-  uint32_t GetSizeImpl();
-  scoped_refptr<NetAddressResource> GetNetAddressImpl(uint32_t index);
-
- private:
-  // IPC message handlers.
-  void OnPluginMsgResolveReply(
-      const ResourceMessageReplyParams& params,
-      const std::string& canonical_name,
-      const std::vector<PP_NetAddress_Private>& net_address_list);
-
-  void SendResolve(const HostPortPair& host_port,
-                   const PP_HostResolver_Private_Hint* hint);
-
-  bool ResolveInProgress() const;
-
-  bool private_api_;
-
-  scoped_refptr<TrackedCallback> resolve_callback_;
-
-  // Set to false if there is a pending resolve request or the previous request
-  // failed.
-  bool allow_get_results_;
-  std::string canonical_name_;
-  std::vector<scoped_refptr<NetAddressResource> > net_address_list_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_HOST_RESOLVER_RESOURCE_BASE_H_
diff --git a/proxy/host_var_serialization_rules.cc b/proxy/host_var_serialization_rules.cc
deleted file mode 100644
index 841ab84..0000000
--- a/proxy/host_var_serialization_rules.cc
+++ /dev/null
@@ -1,67 +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/proxy/host_var_serialization_rules.h"
-
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-using ppapi::PpapiGlobals;
-using ppapi::VarTracker;
-
-namespace ppapi {
-namespace proxy {
-
-HostVarSerializationRules::HostVarSerializationRules() {
-}
-
-HostVarSerializationRules::~HostVarSerializationRules() {
-}
-
-PP_Var HostVarSerializationRules::SendCallerOwned(const PP_Var& var) {
-  return var;
-}
-
-PP_Var HostVarSerializationRules::BeginReceiveCallerOwned(const PP_Var& var) {
-  return var;
-}
-
-void HostVarSerializationRules::EndReceiveCallerOwned(const PP_Var& var) {
-  if (var.type != PP_VARTYPE_OBJECT && var.type >= PP_VARTYPE_STRING) {
-    // Release our reference to the local Var.
-    PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(var);
-  }
-}
-
-PP_Var HostVarSerializationRules::ReceivePassRef(const PP_Var& var) {
-  // See PluginVarSerialization::BeginSendPassRef for an example.
-  if (var.type == PP_VARTYPE_OBJECT)
-    PpapiGlobals::Get()->GetVarTracker()->AddRefVar(var);
-  return var;
-}
-
-PP_Var HostVarSerializationRules::BeginSendPassRef(const PP_Var& var) {
-  return var;
-}
-
-void HostVarSerializationRules::EndSendPassRef(const PP_Var& var) {
-  // See PluginVarSerializationRules::ReceivePassRef for an example. We don't
-  // need to do anything here for "Object" vars; we continue holding one ref on
-  // behalf of the plugin.
-  if (var.type != PP_VARTYPE_OBJECT) {
-    // But for other ref-counted types (like String, Array, and Dictionary),
-    // the value will be re-constituted on the other side as a new Var with no
-    // connection to the host-side reference counting. We must therefore release
-    // our reference count; this is roughly equivalent to passing the ref to the
-    // plugin.
-    PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(var);
-  }
-}
-
-void HostVarSerializationRules::ReleaseObjectRef(const PP_Var& var) {
-  PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(var);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/host_var_serialization_rules.h b/proxy/host_var_serialization_rules.h
deleted file mode 100644
index efd577f..0000000
--- a/proxy/host_var_serialization_rules.h
+++ /dev/null
@@ -1,38 +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_PROXY_HOST_VAR_SERIALIZATION_RULES_H_
-#define PPAPI_PROXY_HOST_VAR_SERIALIZATION_RULES_H_
-
-#include "ppapi/c/ppb_var.h"
-#include "ppapi/proxy/var_serialization_rules.h"
-
-namespace ppapi {
-namespace proxy {
-
-// Implementation of the VarSerializationRules interface for the host side.
-class HostVarSerializationRules : public VarSerializationRules {
- public:
-  HostVarSerializationRules();
-
-  HostVarSerializationRules(const HostVarSerializationRules&) = delete;
-  HostVarSerializationRules& operator=(const HostVarSerializationRules&) =
-      delete;
-
-  ~HostVarSerializationRules();
-
-  // VarSerialization implementation.
-  virtual PP_Var SendCallerOwned(const PP_Var& var);
-  virtual PP_Var BeginReceiveCallerOwned(const PP_Var& var);
-  virtual void EndReceiveCallerOwned(const PP_Var& var);
-  virtual PP_Var ReceivePassRef(const PP_Var& var);
-  virtual PP_Var BeginSendPassRef(const PP_Var& var);
-  virtual void EndSendPassRef(const PP_Var& var);
-  virtual void ReleaseObjectRef(const PP_Var& var);
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_HOST_VAR_SERIALIZATION_RULES_H_
diff --git a/proxy/interface_list.cc b/proxy/interface_list.cc
deleted file mode 100644
index c7ce3f0..0000000
--- a/proxy/interface_list.cc
+++ /dev/null
@@ -1,386 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/proxy/interface_list.h"
-
-#include <memory>
-#include <stdint.h>
-
-#include "base/hash/hash.h"
-#include "base/lazy_instance.h"
-#include "base/memory/singleton.h"
-#include "base/metrics/histogram_functions.h"
-#include "build/build_config.h"
-#include "ppapi/c/dev/ppb_audio_input_dev.h"
-#include "ppapi/c/dev/ppb_audio_output_dev.h"
-#include "ppapi/c/dev/ppb_buffer_dev.h"
-#include "ppapi/c/dev/ppb_char_set_dev.h"
-#include "ppapi/c/dev/ppb_crypto_dev.h"
-#include "ppapi/c/dev/ppb_cursor_control_dev.h"
-#include "ppapi/c/dev/ppb_device_ref_dev.h"
-#include "ppapi/c/dev/ppb_gles_chromium_texture_mapping_dev.h"
-#include "ppapi/c/dev/ppb_ime_input_event_dev.h"
-#include "ppapi/c/dev/ppb_memory_dev.h"
-#include "ppapi/c/dev/ppb_opengles2ext_dev.h"
-#include "ppapi/c/dev/ppb_printing_dev.h"
-#include "ppapi/c/dev/ppb_text_input_dev.h"
-#include "ppapi/c/dev/ppb_trace_event_dev.h"
-#include "ppapi/c/dev/ppb_url_util_dev.h"
-#include "ppapi/c/dev/ppb_var_deprecated.h"
-#include "ppapi/c/dev/ppb_video_capture_dev.h"
-#include "ppapi/c/dev/ppb_view_dev.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_audio.h"
-#include "ppapi/c/ppb_audio_buffer.h"
-#include "ppapi/c/ppb_audio_config.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_fullscreen.h"
-#include "ppapi/c/ppb_graphics_2d.h"
-#include "ppapi/c/ppb_host_resolver.h"
-#include "ppapi/c/ppb_image_data.h"
-#include "ppapi/c/ppb_input_event.h"
-#include "ppapi/c/ppb_instance.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_opengles2.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_video_frame.h"
-#include "ppapi/c/ppb_view.h"
-#include "ppapi/c/ppb_vpn_provider.h"
-#include "ppapi/c/ppp_instance.h"
-#include "ppapi/c/private/ppb_camera_capabilities_private.h"
-#include "ppapi/c/private/ppb_camera_device_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_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/trusted/ppb_browser_font_trusted.h"
-#include "ppapi/c/trusted/ppb_char_set_trusted.h"
-#include "ppapi/c/trusted/ppb_file_chooser_trusted.h"
-#include "ppapi/c/trusted/ppb_url_loader_trusted.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/ppb_audio_proxy.h"
-#include "ppapi/proxy/ppb_buffer_proxy.h"
-#include "ppapi/proxy/ppb_core_proxy.h"
-#include "ppapi/proxy/ppb_graphics_3d_proxy.h"
-#include "ppapi/proxy/ppb_image_data_proxy.h"
-#include "ppapi/proxy/ppb_instance_proxy.h"
-#include "ppapi/proxy/ppb_message_loop_proxy.h"
-#include "ppapi/proxy/ppb_testing_proxy.h"
-#include "ppapi/proxy/ppb_var_deprecated_proxy.h"
-#include "ppapi/proxy/ppb_video_decoder_proxy.h"
-#include "ppapi/proxy/ppb_x509_certificate_private_proxy.h"
-#include "ppapi/proxy/ppp_class_proxy.h"
-#include "ppapi/proxy/ppp_graphics_3d_proxy.h"
-#include "ppapi/proxy/ppp_input_event_proxy.h"
-#include "ppapi/proxy/ppp_instance_private_proxy.h"
-#include "ppapi/proxy/ppp_instance_proxy.h"
-#include "ppapi/proxy/ppp_messaging_proxy.h"
-#include "ppapi/proxy/ppp_mouse_lock_proxy.h"
-#include "ppapi/proxy/ppp_printing_proxy.h"
-#include "ppapi/proxy/ppp_text_input_proxy.h"
-#include "ppapi/proxy/ppp_video_decoder_proxy.h"
-#include "ppapi/proxy/resource_creation_proxy.h"
-#include "ppapi/shared_impl/ppb_opengles2_shared.h"
-#include "ppapi/shared_impl/ppb_var_shared.h"
-#include "ppapi/thunk/thunk.h"
-
-// Helper to get the proxy name PPB_Foo_Proxy given the API name PPB_Foo.
-#define PROXY_CLASS_NAME(api_name) api_name##_Proxy
-
-// Helper to get the interface ID PPB_Foo_Proxy::kApiID given the API
-// name PPB_Foo.
-#define PROXY_API_ID(api_name) PROXY_CLASS_NAME(api_name)::kApiID
-
-// Helper to get the name of the templatized factory function.
-#define PROXY_FACTORY_NAME(api_name) ProxyFactory<PROXY_CLASS_NAME(api_name)>
-
-// Helper to get the name of the thunk GetPPB_Foo_1_0_Thunk given the interface
-// struct name PPB_Foo_1_0.
-#define INTERFACE_THUNK_NAME(iface_struct) thunk::Get##iface_struct##_Thunk
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-template<typename ProxyClass>
-InterfaceProxy* ProxyFactory(Dispatcher* dispatcher) {
-  return new ProxyClass(dispatcher);
-}
-
-base::LazyInstance<PpapiPermissions>::DestructorAtExit
-    g_process_global_permissions = LAZY_INSTANCE_INITIALIZER;
-
-}  // namespace
-
-InterfaceList::InterfaceList() {
-  memset(id_to_factory_, 0, sizeof(id_to_factory_));
-
-  // Register the API factories for each of the API types. This calls AddProxy
-  // for each InterfaceProxy type we support.
-  #define PROXIED_API(api_name) \
-      AddProxy(PROXY_API_ID(api_name), &PROXY_FACTORY_NAME(api_name));
-
-  // Register each proxied interface by calling AddPPB for each supported
-  // interface. Set current_required_permission to the appropriate value for
-  // the value you want expanded by this macro.
-  #define PROXIED_IFACE(iface_str, iface_struct) \
-      AddPPB(iface_str, \
-             INTERFACE_THUNK_NAME(iface_struct)(), \
-             current_required_permission);
-
-  // clang-format off
-  {
-    Permission current_required_permission = PERMISSION_NONE;
-    #include "ppapi/thunk/interfaces_ppb_private_no_permissions.h"
-    #include "ppapi/thunk/interfaces_ppb_public_stable.h"
-  }
-  {
-    Permission current_required_permission = PERMISSION_DEV;
-    #include "ppapi/thunk/interfaces_ppb_public_dev.h"
-  }
-#if !BUILDFLAG(IS_NACL)
-  {
-    Permission current_required_permission = PERMISSION_PRIVATE;
-    #include "ppapi/thunk/interfaces_ppb_private.h"
-  }
-#endif  // !BUILDFLAG(IS_NACL)
-  {
-    Permission current_required_permission = PERMISSION_DEV_CHANNEL;
-    #include "ppapi/thunk/interfaces_ppb_public_dev_channel.h"
-  }
-  {
-    Permission current_required_permission = PERMISSION_SOCKET;
-    #include "ppapi/thunk/interfaces_ppb_public_socket.h"
-  }
-  // clang-format on
-
-#undef PROXIED_API
-#undef PROXIED_IFACE
-
-  // Manually add some special proxies. Some of these don't have interfaces
-  // that they support, so aren't covered by the macros above, but have proxies
-  // for message routing. Others have different implementations between the
-  // proxy and the impl and there's no obvious message routing.
-  AddProxy(API_ID_RESOURCE_CREATION, &ResourceCreationProxy::Create);
-  AddProxy(API_ID_PPP_CLASS, &PPP_Class_Proxy::Create);
-  AddPPB(PPB_CORE_INTERFACE_1_0,
-         PPB_Core_Proxy::GetPPB_Core_Interface(), PERMISSION_NONE);
-  AddPPB(PPB_MESSAGELOOP_INTERFACE_1_0,
-         PPB_MessageLoop_Proxy::GetInterface(), PERMISSION_NONE);
-  AddPPB(PPB_OPENGLES2_INTERFACE_1_0,
-         PPB_OpenGLES2_Shared::GetInterface(), PERMISSION_NONE);
-  AddPPB(PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE_1_0,
-         PPB_OpenGLES2_Shared::GetInstancedArraysInterface(), PERMISSION_NONE);
-  AddPPB(PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE_1_0,
-         PPB_OpenGLES2_Shared::GetFramebufferBlitInterface(), PERMISSION_NONE);
-  AddPPB(PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE_1_0,
-         PPB_OpenGLES2_Shared::GetFramebufferMultisampleInterface(),
-         PERMISSION_NONE);
-  AddPPB(PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE_1_0,
-         PPB_OpenGLES2_Shared::GetChromiumEnableFeatureInterface(),
-         PERMISSION_NONE);
-  AddPPB(PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE_1_0,
-         PPB_OpenGLES2_Shared::GetChromiumMapSubInterface(), PERMISSION_NONE);
-  AddPPB(PPB_OPENGLES2_CHROMIUMMAPSUB_DEV_INTERFACE_1_0,
-         PPB_OpenGLES2_Shared::GetChromiumMapSubInterface(), PERMISSION_NONE);
-  AddPPB(PPB_OPENGLES2_QUERY_INTERFACE_1_0,
-         PPB_OpenGLES2_Shared::GetQueryInterface(), PERMISSION_NONE);
-  AddPPB(PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE_1_0,
-         PPB_OpenGLES2_Shared::GetVertexArrayObjectInterface(),
-         PERMISSION_NONE);
-  AddPPB(PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE_1_0,
-         PPB_OpenGLES2_Shared::GetDrawBuffersInterface(),
-         PERMISSION_DEV);
-  AddPPB(PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0,
-         PPB_Var_Shared::GetVarArrayBufferInterface1_0(),
-         PERMISSION_NONE);
-  AddPPB(PPB_VAR_INTERFACE_1_2,
-         PPB_Var_Shared::GetVarInterface1_2(), PERMISSION_NONE);
-  AddPPB(PPB_VAR_INTERFACE_1_1,
-         PPB_Var_Shared::GetVarInterface1_1(), PERMISSION_NONE);
-  AddPPB(PPB_VAR_INTERFACE_1_0,
-         PPB_Var_Shared::GetVarInterface1_0(), PERMISSION_NONE);
-
-#if !BUILDFLAG(IS_NACL)
-  // PPB (browser) interfaces.
-  // Do not add more stuff here, they should be added to interface_list*.h
-  // TODO(brettw) remove these.
-  AddProxy(API_ID_PPB_INSTANCE_PRIVATE, &ProxyFactory<PPB_Instance_Proxy>);
-  AddPPB(PPB_INSTANCE_PRIVATE_INTERFACE_0_1,
-         thunk::GetPPB_Instance_Private_0_1_Thunk(), PERMISSION_PRIVATE);
-
-  AddProxy(API_ID_PPB_VAR_DEPRECATED, &ProxyFactory<PPB_Var_Deprecated_Proxy>);
-  AddPPB(PPB_VAR_DEPRECATED_INTERFACE,
-         PPB_Var_Deprecated_Proxy::GetProxyInterface(), PERMISSION_FLASH);
-#endif
-  AddProxy(API_ID_PPB_TESTING, &ProxyFactory<PPB_Testing_Proxy>);
-  AddPPB(PPB_TESTING_PRIVATE_INTERFACE,
-         PPB_Testing_Proxy::GetProxyInterface(), PERMISSION_TESTING);
-
-  // PPP (plugin) interfaces.
-  // TODO(brettw) move these to interface_list*.h
-  AddProxy(API_ID_PPP_GRAPHICS_3D, &ProxyFactory<PPP_Graphics3D_Proxy>);
-  AddPPP(PPP_GRAPHICS_3D_INTERFACE, PPP_Graphics3D_Proxy::GetProxyInterface());
-  AddProxy(API_ID_PPP_INPUT_EVENT, &ProxyFactory<PPP_InputEvent_Proxy>);
-  AddPPP(PPP_INPUT_EVENT_INTERFACE, PPP_InputEvent_Proxy::GetProxyInterface());
-  AddProxy(API_ID_PPP_INSTANCE, &ProxyFactory<PPP_Instance_Proxy>);
-#if !BUILDFLAG(IS_NACL)
-  AddPPP(PPP_INSTANCE_INTERFACE_1_1,
-         PPP_Instance_Proxy::GetInstanceInterface());
-  AddProxy(API_ID_PPP_INSTANCE_PRIVATE,
-           &ProxyFactory<PPP_Instance_Private_Proxy>);
-  AddPPP(PPP_INSTANCE_PRIVATE_INTERFACE,
-         PPP_Instance_Private_Proxy::GetProxyInterface());
-#endif
-  AddProxy(API_ID_PPP_MESSAGING, &ProxyFactory<PPP_Messaging_Proxy>);
-  AddProxy(API_ID_PPP_MOUSE_LOCK, &ProxyFactory<PPP_MouseLock_Proxy>);
-  AddPPP(PPP_MOUSELOCK_INTERFACE, PPP_MouseLock_Proxy::GetProxyInterface());
-  AddProxy(API_ID_PPP_PRINTING, &ProxyFactory<PPP_Printing_Proxy>);
-  AddPPP(PPP_PRINTING_DEV_INTERFACE, PPP_Printing_Proxy::GetProxyInterface());
-  AddProxy(API_ID_PPP_TEXT_INPUT, &ProxyFactory<PPP_TextInput_Proxy>);
-  AddPPP(PPP_TEXTINPUT_DEV_INTERFACE, PPP_TextInput_Proxy::GetProxyInterface());
-#if !BUILDFLAG(IS_NACL)
-  AddProxy(API_ID_PPP_VIDEO_DECODER_DEV, &ProxyFactory<PPP_VideoDecoder_Proxy>);
-  AddPPP(PPP_VIDEODECODER_DEV_INTERFACE,
-         PPP_VideoDecoder_Proxy::GetProxyInterface());
-#endif
-}
-
-InterfaceList::~InterfaceList() {
-}
-
-// static
-InterfaceList* InterfaceList::GetInstance() {
-  // CAUTION: This function is called without the ProxyLock to avoid excessive
-  // excessive locking from C++ wrappers. (See also GetBrowserInterface.)
-  return base::Singleton<InterfaceList>::get();
-}
-
-// static
-void InterfaceList::SetProcessGlobalPermissions(
-    const PpapiPermissions& permissions) {
-  g_process_global_permissions.Get() = permissions;
-}
-
-InterfaceProxy::Factory InterfaceList::GetFactoryForID(ApiID id) const {
-  int index = static_cast<int>(id);
-  static_assert(API_ID_NONE == 0, "none must be zero");
-  if (id <= 0 || id >= API_ID_COUNT)
-    return nullptr;
-  return id_to_factory_[index];
-}
-
-const void* InterfaceList::GetInterfaceForPPB(const std::string& name) {
-  // CAUTION: This function is called without the ProxyLock to avoid excessive
-  // excessive locking from C++ wrappers. (See also GetBrowserInterface.)
-  auto found = name_to_browser_info_.find(name);
-  if (found == name_to_browser_info_.end())
-    return nullptr;
-
-  if (g_process_global_permissions.Get().HasPermission(
-          found->second->required_permission())) {
-    // Only log interface use once per plugin.
-    found->second->LogWithUmaOnce(name);
-    return found->second->iface();
-  }
-  return nullptr;
-}
-
-const void* InterfaceList::GetInterfaceForPPP(const std::string& name) {
-  auto found = name_to_plugin_info_.find(name);
-  if (found == name_to_plugin_info_.end())
-    return nullptr;
-  found->second->LogWithUmaOnce(name);
-  return found->second->iface();
-}
-
-void InterfaceList::InterfaceInfo::LogWithUmaOnce(const std::string& name) {
-  {
-    base::AutoLock acquire(sent_to_uma_lock_);
-    if (sent_to_uma_)
-      return;
-    sent_to_uma_ = true;
-  }
-  int hash = InterfaceList::HashInterfaceName(name);
-  base::UmaHistogramSparse("Pepper.InterfaceUsed", hash);
-}
-
-void InterfaceList::AddProxy(ApiID id,
-                             InterfaceProxy::Factory factory) {
-  // For interfaces with no corresponding _Proxy objects, the macros will
-  // generate calls to this function with API_ID_NONE. This means we
-  // should just skip adding a factory for these functions.
-  if (id == API_ID_NONE)
-    return;
-
-  // The factory should be an exact dupe of the one we already have if it
-  // has already been registered before.
-  int index = static_cast<int>(id);
-  DCHECK(!id_to_factory_[index] || id_to_factory_[index] == factory);
-
-  id_to_factory_[index] = factory;
-}
-
-void InterfaceList::AddPPB(const char* name,
-                           const void* iface,
-                           Permission perm) {
-  DCHECK(name_to_browser_info_.find(name) == name_to_browser_info_.end());
-  name_to_browser_info_[name] = std::make_unique<InterfaceInfo>(iface, perm);
-}
-
-void InterfaceList::AddPPP(const char* name,
-                           const void* iface) {
-  DCHECK(name_to_plugin_info_.find(name) == name_to_plugin_info_.end());
-  name_to_plugin_info_[name] =
-      std::make_unique<InterfaceInfo>(iface, PERMISSION_NONE);
-}
-
-int InterfaceList::HashInterfaceName(const std::string& name) {
-  uint32_t data = base::Hash(name);
-  // Strip off the signed bit because UMA doesn't support negative values,
-  // but takes a signed int as input.
-  return static_cast<int>(data & 0x7fffffff);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/interface_list.h b/proxy/interface_list.h
deleted file mode 100644
index cdb7161..0000000
--- a/proxy/interface_list.h
+++ /dev/null
@@ -1,114 +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_PROXY_INTERFACE_LIST_H_
-#define PPAPI_PROXY_INTERFACE_LIST_H_
-
-#include <map>
-#include <memory>
-#include <string>
-#include <unordered_map>
-
-#include "base/synchronization/lock.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/ppapi_permissions.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT InterfaceList {
- public:
-  InterfaceList();
-
-  InterfaceList(const InterfaceList&) = delete;
-  InterfaceList& operator=(const InterfaceList&) = delete;
-
-  ~InterfaceList();
-
-  static InterfaceList* GetInstance();
-
-  // Sets the permissions that the interface list will use to compute
-  // whether an interface is available to the current process. By default,
-  // this will be "no permissions", which will give only access to public
-  // stable interfaces via GetInterface.
-  //
-  // IMPORTANT: This is not a security boundary. Malicious plugins can bypass
-  // this check since they run in the same address space as this code in the
-  // plugin process. A real security check is required for all IPC messages.
-  // This check just allows us to return NULL for interfaces you "shouldn't" be
-  // using to keep honest plugins honest.
-  static void SetProcessGlobalPermissions(const PpapiPermissions& permissions);
-
-  // Looks up the factory function for the given ID. Returns NULL if not
-  // supported.
-  InterfaceProxy::Factory GetFactoryForID(ApiID id) const;
-
-  // Returns the interface pointer for the given browser or plugin interface,
-  // or NULL if it's not supported.
-  const void* GetInterfaceForPPB(const std::string& name);
-  const void* GetInterfaceForPPP(const std::string& name);
-
- private:
-  friend class InterfaceListTest;
-
-  class InterfaceInfo {
-   public:
-    InterfaceInfo(const void* in_interface, Permission in_perm)
-        : iface_(in_interface),
-          required_permission_(in_perm),
-          sent_to_uma_(false) {
-    }
-
-    InterfaceInfo(const InterfaceInfo&) = delete;
-    InterfaceInfo& operator=(const InterfaceInfo&) = delete;
-
-    const void* iface() { return iface_; }
-
-    // Permission required to return non-null for this interface. This will
-    // be checked with the value set via SetProcessGlobalPermissionBits when
-    // an interface is requested.
-    Permission required_permission() { return required_permission_; }
-
-    // Call this any time the interface is requested. It will log a UMA count
-    // only the first time. This is safe to call from any thread, regardless of
-    // whether the proxy lock is held.
-    void LogWithUmaOnce(const std::string& name);
-
-   private:
-    const void* const iface_;
-    const Permission required_permission_;
-
-    bool sent_to_uma_;
-    base::Lock sent_to_uma_lock_;
-  };
-  // Give friendship for HashInterfaceName.
-  friend class InterfaceInfo;
-
-  using NameToInterfaceInfoMap =
-      std::unordered_map<std::string, std::unique_ptr<InterfaceInfo>>;
-
-  void AddProxy(ApiID id, InterfaceProxy::Factory factory);
-
-  // Permissions is the type of permission required to access the corresponding
-  // interface. Currently this must be just one unique permission (rather than
-  // a bitfield).
-  void AddPPB(const char* name, const void* iface, Permission permission);
-  void AddPPP(const char* name, const void* iface);
-
-  // Hash the interface name for UMA logging.
-  static int HashInterfaceName(const std::string& name);
-
-  PpapiPermissions permissions_;
-
-  NameToInterfaceInfoMap name_to_browser_info_;
-  NameToInterfaceInfoMap name_to_plugin_info_;
-
-  InterfaceProxy::Factory id_to_factory_[API_ID_COUNT];
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_INTERFACE_LIST_H_
diff --git a/proxy/interface_proxy.cc b/proxy/interface_proxy.cc
deleted file mode 100644
index 446745b..0000000
--- a/proxy/interface_proxy.cc
+++ /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.
-
-#include "ppapi/proxy/interface_proxy.h"
-
-#include "ppapi/proxy/dispatcher.h"
-
-namespace ppapi {
-namespace proxy {
-
-InterfaceProxy::InterfaceProxy(Dispatcher* dispatcher)
-    : dispatcher_(dispatcher) {
-}
-
-InterfaceProxy::~InterfaceProxy() {
-}
-
-bool InterfaceProxy::Send(IPC::Message* msg) {
-  return dispatcher_->Send(msg);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/interface_proxy.h b/proxy/interface_proxy.h
deleted file mode 100644
index 6ceebc2..0000000
--- a/proxy/interface_proxy.h
+++ /dev/null
@@ -1,49 +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_PROXY_INTERFACE_PROXY_H_
-#define PPAPI_PROXY_INTERFACE_PROXY_H_
-
-#include "ipc/ipc_listener.h"
-#include "ipc/ipc_sender.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/api_id.h"
-
-namespace ppapi {
-namespace proxy {
-
-class Dispatcher;
-
-class InterfaceProxy : public IPC::Listener, public IPC::Sender {
- public:
-  // Factory function type for interfaces. Ownership of the returned pointer
-  // is transferred to the caller.
-  typedef InterfaceProxy* (*Factory)(Dispatcher* dispatcher);
-
-  ~InterfaceProxy() override;
-
-  Dispatcher* dispatcher() const { return dispatcher_; }
-
-  // IPC::Sender implementation.
-  bool Send(IPC::Message* msg) override;
-
-  // Sub-classes must implement IPC::Listener which contains this:
-  // virtual bool OnMessageReceived(const Message& message) = 0;
-
- protected:
-  // Creates the given interface associated with the given dispatcher. The
-  // dispatcher manages our lifetime.
-  explicit InterfaceProxy(Dispatcher* dispatcher);
-
- private:
-  Dispatcher* dispatcher_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_INTERFACE_PROXY_H_
-
diff --git a/proxy/isolated_file_system_private_resource.cc b/proxy/isolated_file_system_private_resource.cc
deleted file mode 100644
index b44488c..0000000
--- a/proxy/isolated_file_system_private_resource.cc
+++ /dev/null
@@ -1,80 +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.
-
-#include "ppapi/proxy/isolated_file_system_private_resource.h"
-
-#include "base/functional/bind.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/pp_file_info.h"
-#include "ppapi/proxy/file_system_resource.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/resource_message_params.h"
-#include "ppapi/shared_impl/host_resource.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-void RunTrackedCallback(scoped_refptr<TrackedCallback> callback,
-                        int32_t rc) {
-  callback->Run(rc);
-}
-}  // namespace
-
-IsolatedFileSystemPrivateResource::IsolatedFileSystemPrivateResource(
-    Connection connection, PP_Instance instance)
-    : PluginResource(connection, instance) {
-  SendCreate(BROWSER, PpapiHostMsg_IsolatedFileSystem_Create());
-}
-
-IsolatedFileSystemPrivateResource::~IsolatedFileSystemPrivateResource() {
-}
-
-thunk::PPB_IsolatedFileSystem_Private_API*
-IsolatedFileSystemPrivateResource::AsPPB_IsolatedFileSystem_Private_API() {
-  return this;
-}
-
-int32_t IsolatedFileSystemPrivateResource::Open(
-    PP_Instance /* unused */,
-    PP_IsolatedFileSystemType_Private type,
-    PP_Resource* file_system_resource,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!file_system_resource)
-    return PP_ERROR_BADARGUMENT;
-
-  Call<PpapiPluginMsg_IsolatedFileSystem_BrowserOpenReply>(
-      BROWSER, PpapiHostMsg_IsolatedFileSystem_BrowserOpen(type),
-      base::BindOnce(&IsolatedFileSystemPrivateResource::OnBrowserOpenComplete,
-                     this, type, file_system_resource, callback));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void IsolatedFileSystemPrivateResource::OnBrowserOpenComplete(
-    PP_IsolatedFileSystemType_Private type,
-    PP_Resource* file_system_resource,
-    scoped_refptr<TrackedCallback> callback,
-    const ResourceMessageReplyParams& params,
-    const std::string& fsid) {
-  if (!TrackedCallback::IsPending(callback))
-    return;
-
-  if (params.result() != PP_OK) {
-    callback->Run(params.result());
-    return;
-  }
-
-  FileSystemResource* fs = new FileSystemResource(
-      connection(), pp_instance(), PP_FILESYSTEMTYPE_ISOLATED);
-  *file_system_resource = fs->GetReference();
-  if (*file_system_resource == 0)
-    callback->Run(PP_ERROR_FAILED);
-  fs->InitIsolatedFileSystem(fsid, type,
-                             base::BindOnce(&RunTrackedCallback, callback));
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/isolated_file_system_private_resource.h b/proxy/isolated_file_system_private_resource.h
deleted file mode 100644
index f2aad14..0000000
--- a/proxy/isolated_file_system_private_resource.h
+++ /dev/null
@@ -1,75 +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.
-//
-// CRX filesystem is a filesystem that allows an extension to read its own
-// package directory tree.  See ppapi/examples/crxfs for example.
-//
-// IMPLEMENTATION
-//
-// The implementation involves both browser and renderer.  In order to provide
-// readonly access to CRX filesystem (i.e. extension directory), we create an
-// "isolated filesystem" pointing to current extension directory in browser.
-// Then browser grants read permission to renderer, and tells plugin the
-// filesystem id, or fsid.
-//
-// Once the plugin receives the fsid, it creates a PPB_FileSystem and forwards
-// the fsid to PepperFileSystemHost in order to construct root url.
-
-#ifndef PPAPI_PROXY_ISOLATED_FILE_SYSTEM_PRIVATE_RESOURCE_H_
-#define PPAPI_PROXY_ISOLATED_FILE_SYSTEM_PRIVATE_RESOURCE_H_
-
-#include <stdint.h>
-
-#include <string>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/proxy/connection.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/thunk/ppb_isolated_file_system_private_api.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace proxy {
-
-class ResourceMessageReplyParams;
-
-class PPAPI_PROXY_EXPORT IsolatedFileSystemPrivateResource
-    : public PluginResource,
-      public thunk::PPB_IsolatedFileSystem_Private_API {
- public:
-  IsolatedFileSystemPrivateResource(
-      Connection connection, PP_Instance instance);
-
-  IsolatedFileSystemPrivateResource(const IsolatedFileSystemPrivateResource&) =
-      delete;
-  IsolatedFileSystemPrivateResource& operator=(
-      const IsolatedFileSystemPrivateResource&) = delete;
-
-  ~IsolatedFileSystemPrivateResource() override;
-
-  // Resource overrides.
-  thunk::PPB_IsolatedFileSystem_Private_API*
-      AsPPB_IsolatedFileSystem_Private_API() override;
-
-  // PPB_IsolatedFileSystem_Private_API implementation.
-  int32_t Open(PP_Instance instance,
-               PP_IsolatedFileSystemType_Private type,
-               PP_Resource* file_system_resource,
-               scoped_refptr<TrackedCallback> callback) override;
-
- private:
-  void OnBrowserOpenComplete(PP_IsolatedFileSystemType_Private type,
-                             PP_Resource* file_system_resource,
-                             scoped_refptr<TrackedCallback> callback,
-                             const ResourceMessageReplyParams& params,
-                             const std::string& fsid);
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_ISOLATED_FILE_SYSTEM_PRIVATE_RESOURCE_H_
diff --git a/proxy/locking_resource_releaser.h b/proxy/locking_resource_releaser.h
deleted file mode 100644
index 41ea5a9..0000000
--- a/proxy/locking_resource_releaser.h
+++ /dev/null
@@ -1,43 +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.
-
-#ifndef PPAPI_PROXY_LOCKING_RESOURCE_RELEASER_H_
-#define PPAPI_PROXY_LOCKING_RESOURCE_RELEASER_H_
-
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-
-namespace ppapi {
-namespace proxy {
-
-// LockingResourceReleaser is a simple RAII class for releasing a resource at
-// the end of scope. This acquires the ProxyLock before releasing the resource.
-// It is for use in unit tests. Most proxy or implementation code should use
-// ScopedPPResource instead. Unit tests sometimes can't use ScopedPPResource
-// because it asserts that the ProxyLock is already held.
-class LockingResourceReleaser {
- public:
-  explicit LockingResourceReleaser(PP_Resource resource)
-      : resource_(resource) {
-  }
-
-  LockingResourceReleaser(const LockingResourceReleaser&) = delete;
-  LockingResourceReleaser& operator=(const LockingResourceReleaser&) = delete;
-
-  ~LockingResourceReleaser() {
-    ProxyAutoLock lock;
-    PpapiGlobals::Get()->GetResourceTracker()->ReleaseResource(resource_);
-  }
-
-  PP_Resource get() { return resource_; }
-
- private:
-  PP_Resource resource_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_LOCKING_RESOURCE_RELEASER_H_
diff --git a/proxy/media_stream_audio_track_resource.cc b/proxy/media_stream_audio_track_resource.cc
deleted file mode 100644
index fa7af39..0000000
--- a/proxy/media_stream_audio_track_resource.cc
+++ /dev/null
@@ -1,204 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/proxy/media_stream_audio_track_resource.h"
-
-#include "base/functional/bind.h"
-#include "ppapi/proxy/audio_buffer_resource.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/media_stream_audio_track_shared.h"
-#include "ppapi/shared_impl/media_stream_buffer.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-MediaStreamAudioTrackResource::MediaStreamAudioTrackResource(
-    Connection connection,
-    PP_Instance instance,
-    int pending_renderer_id,
-    const std::string& id)
-    : MediaStreamTrackResourceBase(
-        connection, instance, pending_renderer_id, id),
-      get_buffer_output_(NULL) {
-}
-
-MediaStreamAudioTrackResource::~MediaStreamAudioTrackResource() {
-  Close();
-}
-
-thunk::PPB_MediaStreamAudioTrack_API*
-MediaStreamAudioTrackResource::AsPPB_MediaStreamAudioTrack_API() {
-  return this;
-}
-
-PP_Var MediaStreamAudioTrackResource::GetId() {
-  return StringVar::StringToPPVar(id());
-}
-
-PP_Bool MediaStreamAudioTrackResource::HasEnded() {
-  return PP_FromBool(has_ended());
-}
-
-int32_t MediaStreamAudioTrackResource::Configure(
-    const int32_t attrib_list[],
-    scoped_refptr<TrackedCallback> callback) {
-  if (has_ended())
-    return PP_ERROR_FAILED;
-
-  if (TrackedCallback::IsPending(configure_callback_) ||
-      TrackedCallback::IsPending(get_buffer_callback_)) {
-    return PP_ERROR_INPROGRESS;
-  }
-
-  // Do not support configure if audio buffers are held by plugin.
-  if (!buffers_.empty())
-    return PP_ERROR_INPROGRESS;
-
-  MediaStreamAudioTrackShared::Attributes attributes;
-  int i = 0;
-  for (; attrib_list[i] != PP_MEDIASTREAMAUDIOTRACK_ATTRIB_NONE; i += 2) {
-    switch (attrib_list[i]) {
-      case PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS:
-        attributes.buffers = attrib_list[i + 1];
-        break;
-      case PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION:
-        attributes.duration = attrib_list[i + 1];
-        break;
-      case PP_MEDIASTREAMAUDIOTRACK_ATTRIB_SAMPLE_RATE:
-      case PP_MEDIASTREAMAUDIOTRACK_ATTRIB_SAMPLE_SIZE:
-      case PP_MEDIASTREAMAUDIOTRACK_ATTRIB_CHANNELS:
-        return PP_ERROR_NOTSUPPORTED;
-      default:
-        return PP_ERROR_BADARGUMENT;
-    }
-  }
-
-  if (!MediaStreamAudioTrackShared::VerifyAttributes(attributes))
-    return PP_ERROR_BADARGUMENT;
-
-  configure_callback_ = callback;
-  Call<PpapiPluginMsg_MediaStreamAudioTrack_ConfigureReply>(
-      RENDERER, PpapiHostMsg_MediaStreamAudioTrack_Configure(attributes),
-      base::BindOnce(&MediaStreamAudioTrackResource::OnPluginMsgConfigureReply,
-                     base::Unretained(this)),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t MediaStreamAudioTrackResource::GetAttrib(
-    PP_MediaStreamAudioTrack_Attrib attrib,
-    int32_t* value) {
-  // TODO(penghuang): Implement this function.
-  return PP_ERROR_NOTSUPPORTED;
-}
-
-int32_t MediaStreamAudioTrackResource::GetBuffer(
-    PP_Resource* buffer,
-    scoped_refptr<TrackedCallback> callback) {
-  if (has_ended())
-    return PP_ERROR_FAILED;
-
-  if (TrackedCallback::IsPending(configure_callback_) ||
-      TrackedCallback::IsPending(get_buffer_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  *buffer = GetAudioBuffer();
-  if (*buffer)
-    return PP_OK;
-
-  // TODO(penghuang): Use the callback as hints to determine which thread will
-  // use the resource, so we could deliver buffers to the target thread directly
-  // for better performance.
-  get_buffer_output_ = buffer;
-  get_buffer_callback_ = callback;
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t MediaStreamAudioTrackResource::RecycleBuffer(PP_Resource buffer) {
-  BufferMap::iterator it = buffers_.find(buffer);
-  if (it == buffers_.end())
-    return PP_ERROR_BADRESOURCE;
-
-  scoped_refptr<AudioBufferResource> buffer_resource = it->second;
-  buffers_.erase(it);
-
-  if (has_ended())
-    return PP_OK;
-
-  DCHECK_GE(buffer_resource->GetBufferIndex(), 0);
-
-  SendEnqueueBufferMessageToHost(buffer_resource->GetBufferIndex());
-  buffer_resource->Invalidate();
-  return PP_OK;
-}
-
-void MediaStreamAudioTrackResource::Close() {
-  if (has_ended())
-    return;
-
-  if (TrackedCallback::IsPending(get_buffer_callback_)) {
-    *get_buffer_output_ = 0;
-    get_buffer_callback_->PostAbort();
-    get_buffer_callback_.reset();
-    get_buffer_output_ = 0;
-  }
-
-  ReleaseBuffers();
-  MediaStreamTrackResourceBase::CloseInternal();
-}
-
-void MediaStreamAudioTrackResource::OnNewBufferEnqueued() {
-  if (!TrackedCallback::IsPending(get_buffer_callback_))
-    return;
-
-  *get_buffer_output_ = GetAudioBuffer();
-  int32_t result = *get_buffer_output_ ? PP_OK : PP_ERROR_FAILED;
-  get_buffer_output_ = NULL;
-  scoped_refptr<TrackedCallback> callback;
-  callback.swap(get_buffer_callback_);
-  callback->Run(result);
-}
-
-PP_Resource MediaStreamAudioTrackResource::GetAudioBuffer() {
-  int32_t index = buffer_manager()->DequeueBuffer();
-  if (index < 0)
-      return 0;
-
-  MediaStreamBuffer* buffer = buffer_manager()->GetBufferPointer(index);
-  DCHECK(buffer);
-  scoped_refptr<AudioBufferResource> resource =
-      new AudioBufferResource(pp_instance(), index, buffer);
-  // Add |pp_resource()| and |resource| into |buffers_|.
-  // |buffers_| uses std::unique_ptr<> to hold a ref of |resource|. It keeps the
-  // resource alive.
-  buffers_.insert(BufferMap::value_type(resource->pp_resource(), resource));
-  return resource->GetReference();
-}
-
-void MediaStreamAudioTrackResource::ReleaseBuffers() {
-  for (BufferMap::iterator it = buffers_.begin(); it != buffers_.end(); ++it) {
-    // Just invalidate and release VideoBufferResorce, but keep PP_Resource.
-    // So plugin can still use |RecycleBuffer()|.
-    it->second->Invalidate();
-    it->second.reset();
-  }
-}
-
-void MediaStreamAudioTrackResource::OnPluginMsgConfigureReply(
-    const ResourceMessageReplyParams& params) {
-  if (TrackedCallback::IsPending(configure_callback_)) {
-    scoped_refptr<TrackedCallback> callback;
-    callback.swap(configure_callback_);
-    callback->Run(params.result());
-  }
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/media_stream_audio_track_resource.h b/proxy/media_stream_audio_track_resource.h
deleted file mode 100644
index c8989e3..0000000
--- a/proxy/media_stream_audio_track_resource.h
+++ /dev/null
@@ -1,79 +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_PROXY_MEDIA_STREAM_AUDIO_TRACK_RESOURCE_H_
-#define PPAPI_PROXY_MEDIA_STREAM_AUDIO_TRACK_RESOURCE_H_
-
-#include <stdint.h>
-
-#include <map>
-#include <string>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/proxy/media_stream_track_resource_base.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/thunk/ppb_media_stream_audio_track_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class AudioBufferResource;
-
-class PPAPI_PROXY_EXPORT MediaStreamAudioTrackResource
-    : public MediaStreamTrackResourceBase,
-      public thunk::PPB_MediaStreamAudioTrack_API {
- public:
-  MediaStreamAudioTrackResource(Connection connection,
-                                PP_Instance instance,
-                                int pending_renderer_id,
-                                const std::string& id);
-
-  MediaStreamAudioTrackResource(const MediaStreamAudioTrackResource&) = delete;
-  MediaStreamAudioTrackResource& operator=(
-      const MediaStreamAudioTrackResource&) = delete;
-
-  ~MediaStreamAudioTrackResource() override;
-
-  // Resource overrides:
-  thunk::PPB_MediaStreamAudioTrack_API* AsPPB_MediaStreamAudioTrack_API()
-      override;
-
-  // PPB_MediaStreamAudioTrack_API overrides:
-  PP_Var GetId() override;
-  PP_Bool HasEnded() override;
-  int32_t Configure(const int32_t attrib_list[],
-                    scoped_refptr<TrackedCallback> callback) override;
-  int32_t GetAttrib(PP_MediaStreamAudioTrack_Attrib attrib,
-                    int32_t* value) override;
-  int32_t GetBuffer(PP_Resource* buffer,
-                    scoped_refptr<TrackedCallback> callback) override;
-  int32_t RecycleBuffer(PP_Resource buffer) override;
-  void Close() override;
-
-  // MediaStreamBufferManager::Delegate overrides:
-  void OnNewBufferEnqueued() override;
-
- private:
-  PP_Resource GetAudioBuffer();
-
-  void ReleaseBuffers();
-
-  // IPC message handlers.
-  void OnPluginMsgConfigureReply(const ResourceMessageReplyParams& params);
-
-  // Allocated buffer resources by |GetBuffer()|.
-  typedef std::map<PP_Resource, scoped_refptr<AudioBufferResource> > BufferMap;
-  BufferMap buffers_;
-
-  PP_Resource* get_buffer_output_;
-
-  scoped_refptr<TrackedCallback> configure_callback_;
-
-  scoped_refptr<TrackedCallback> get_buffer_callback_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_MEDIA_STREAM_AUDIO_TRACK_RESOURCE_H_
diff --git a/proxy/media_stream_track_resource_base.cc b/proxy/media_stream_track_resource_base.cc
deleted file mode 100644
index bbeaec1..0000000
--- a/proxy/media_stream_track_resource_base.cc
+++ /dev/null
@@ -1,100 +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/proxy/media_stream_track_resource_base.h"
-
-#include <stddef.h>
-
-#include "base/check_op.h"
-#include "ppapi/proxy/ppapi_messages.h"
-
-namespace ppapi {
-namespace proxy {
-
-MediaStreamTrackResourceBase::MediaStreamTrackResourceBase(
-    Connection connection,
-    PP_Instance instance,
-    int pending_renderer_id,
-    const std::string& id)
-    : PluginResource(connection, instance),
-      buffer_manager_(this),
-      id_(id),
-      has_ended_(false) {
-  AttachToPendingHost(RENDERER, pending_renderer_id);
-}
-
-MediaStreamTrackResourceBase::MediaStreamTrackResourceBase(
-    Connection connection,
-    PP_Instance instance)
-    : PluginResource(connection, instance),
-      buffer_manager_(this),
-      has_ended_(false) {
-}
-
-MediaStreamTrackResourceBase::~MediaStreamTrackResourceBase() {
-}
-
-void MediaStreamTrackResourceBase::SendEnqueueBufferMessageToHost(
-    int32_t index) {
-  DCHECK_GE(index, 0);
-  DCHECK_LT(index, buffer_manager()->number_of_buffers());
-  Post(RENDERER, PpapiHostMsg_MediaStreamTrack_EnqueueBuffer(index));
-}
-
-void MediaStreamTrackResourceBase::OnReplyReceived(
-    const ResourceMessageReplyParams& params,
-    const IPC::Message& msg) {
-  PPAPI_BEGIN_MESSAGE_MAP(MediaStreamTrackResourceBase, msg)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_MediaStreamTrack_InitBuffers, OnPluginMsgInitBuffers)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_MediaStreamTrack_EnqueueBuffer, OnPluginMsgEnqueueBuffer)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_MediaStreamTrack_EnqueueBuffers,
-        OnPluginMsgEnqueueBuffers)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(
-        PluginResource::OnReplyReceived(params, msg))
-  PPAPI_END_MESSAGE_MAP()
-}
-
-void MediaStreamTrackResourceBase::CloseInternal() {
-  if (!has_ended_) {
-    Post(RENDERER, PpapiHostMsg_MediaStreamTrack_Close());
-    has_ended_ = true;
-  }
-}
-
-void MediaStreamTrackResourceBase::OnPluginMsgInitBuffers(
-    const ResourceMessageReplyParams& params,
-    int32_t number_of_buffers,
-    int32_t buffer_size,
-    bool readonly) {
-  // |readonly| specifies only that the region can be mapped readonly, it does
-  // not specify that the passed region is readonly (and, in fact, it is
-  // not). In the current shared memory API the mapping of a region always
-  // matches the permissions on the handle, so the |readonly| parameter is
-  // ignored.
-  // TODO(crbug.com/40553989): could the region be shared readonly from the
-  // host?
-  base::UnsafeSharedMemoryRegion region;
-  params.TakeUnsafeSharedMemoryRegionAtIndex(0, &region);
-  buffer_manager_.SetBuffers(number_of_buffers, buffer_size, std::move(region),
-                             false);
-}
-
-void MediaStreamTrackResourceBase::OnPluginMsgEnqueueBuffer(
-    const ResourceMessageReplyParams& params,
-    int32_t index) {
-  buffer_manager_.EnqueueBuffer(index);
-}
-
-void MediaStreamTrackResourceBase::OnPluginMsgEnqueueBuffers(
-    const ResourceMessageReplyParams& params,
-    const std::vector<int32_t>& indices) {
-  for (size_t i = 0; i < indices.size(); ++i)
-    buffer_manager_.EnqueueBuffer(indices[i]);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/media_stream_track_resource_base.h b/proxy/media_stream_track_resource_base.h
deleted file mode 100644
index 90943f6..0000000
--- a/proxy/media_stream_track_resource_base.h
+++ /dev/null
@@ -1,75 +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_PROXY_MEDIA_STREAM_TRACK_RESOURCE_BASE_H_
-#define PPAPI_PROXY_MEDIA_STREAM_TRACK_RESOURCE_BASE_H_
-
-#include <stdint.h>
-
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/media_stream_buffer_manager.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT MediaStreamTrackResourceBase
-  : public PluginResource,
-    public MediaStreamBufferManager::Delegate {
- protected:
-  MediaStreamTrackResourceBase(Connection connection,
-                               PP_Instance instance,
-                               int pending_renderer_id,
-                               const std::string& id);
-
-  MediaStreamTrackResourceBase(Connection connection, PP_Instance instance);
-
-  MediaStreamTrackResourceBase(const MediaStreamTrackResourceBase&) = delete;
-  MediaStreamTrackResourceBase& operator=(const MediaStreamTrackResourceBase&) =
-      delete;
-
-  ~MediaStreamTrackResourceBase() override;
-
-  std::string id() const { return id_; }
-
-  void set_id(const std::string& id) { id_ = id; }
-
-  bool has_ended() const { return has_ended_; }
-
-  MediaStreamBufferManager* buffer_manager() { return &buffer_manager_; }
-
-  void CloseInternal();
-
-  // Sends a buffer index to the corresponding PepperMediaStreamTrackHostBase
-  // via an IPC message. The host adds the buffer index into its
-  // |buffer_manager_| for reading or writing.
-  // Also see |MediaStreamBufferManager|.
-  void SendEnqueueBufferMessageToHost(int32_t index);
-
-  // PluginResource overrides:
-  void OnReplyReceived(const ResourceMessageReplyParams& params,
-                       const IPC::Message& msg) override;
-
- private:
-  // Message handlers:
-  void OnPluginMsgInitBuffers(const ResourceMessageReplyParams& params,
-                              int32_t number_of_buffers,
-                              int32_t buffer_size,
-                              bool readonly);
-  void OnPluginMsgEnqueueBuffer(const ResourceMessageReplyParams& params,
-                                int32_t index);
-  void OnPluginMsgEnqueueBuffers(const ResourceMessageReplyParams& params,
-                                 const std::vector<int32_t>& indices);
-
-  MediaStreamBufferManager buffer_manager_;
-
-  std::string id_;
-
-  bool has_ended_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_MEDIA_STREAM_TRACK_RESOURCE_BASE_H_
diff --git a/proxy/media_stream_video_track_resource.cc b/proxy/media_stream_video_track_resource.cc
deleted file mode 100644
index 6ff75bd..0000000
--- a/proxy/media_stream_video_track_resource.cc
+++ /dev/null
@@ -1,230 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/proxy/media_stream_video_track_resource.h"
-
-#include "base/check_op.h"
-#include "base/functional/bind.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/video_frame_resource.h"
-#include "ppapi/shared_impl/media_stream_buffer.h"
-#include "ppapi/shared_impl/media_stream_video_track_shared.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-MediaStreamVideoTrackResource::MediaStreamVideoTrackResource(
-    Connection connection,
-    PP_Instance instance,
-    int pending_renderer_id,
-    const std::string& id)
-    : MediaStreamTrackResourceBase(
-        connection, instance, pending_renderer_id, id),
-      get_frame_output_(NULL) {
-}
-
-MediaStreamVideoTrackResource::MediaStreamVideoTrackResource(
-    Connection connection,
-    PP_Instance instance)
-    : MediaStreamTrackResourceBase(connection, instance),
-      get_frame_output_(NULL) {
-  SendCreate(RENDERER, PpapiHostMsg_MediaStreamVideoTrack_Create());
-}
-
-MediaStreamVideoTrackResource::~MediaStreamVideoTrackResource() {
-  Close();
-}
-
-thunk::PPB_MediaStreamVideoTrack_API*
-MediaStreamVideoTrackResource::AsPPB_MediaStreamVideoTrack_API() {
-  return this;
-}
-
-PP_Var MediaStreamVideoTrackResource::GetId() {
-  return StringVar::StringToPPVar(id());
-}
-
-PP_Bool MediaStreamVideoTrackResource::HasEnded() {
-  return PP_FromBool(has_ended());
-}
-
-int32_t MediaStreamVideoTrackResource::Configure(
-    const int32_t attrib_list[],
-    scoped_refptr<TrackedCallback> callback) {
-  if (has_ended())
-    return PP_ERROR_FAILED;
-
-  if (TrackedCallback::IsPending(configure_callback_) ||
-      TrackedCallback::IsPending(get_frame_callback_)) {
-    return PP_ERROR_INPROGRESS;
-  }
-
-  // Do not support configure, if frames are hold by plugin.
-  if (!frames_.empty())
-    return PP_ERROR_INPROGRESS;
-
-  MediaStreamVideoTrackShared::Attributes attributes;
-  int i = 0;
-  for (;attrib_list[i] != PP_MEDIASTREAMVIDEOTRACK_ATTRIB_NONE; i += 2) {
-    switch (attrib_list[i]) {
-    case PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES:
-      attributes.buffers = attrib_list[i + 1];
-      break;
-    case PP_MEDIASTREAMVIDEOTRACK_ATTRIB_WIDTH:
-      attributes.width = attrib_list[i + 1];
-      break;
-    case PP_MEDIASTREAMVIDEOTRACK_ATTRIB_HEIGHT:
-      attributes.height = attrib_list[i + 1];
-      break;
-    case PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT:
-      attributes.format = static_cast<PP_VideoFrame_Format>(attrib_list[i + 1]);
-      break;
-    default:
-      return PP_ERROR_BADARGUMENT;
-    }
-  }
-
-  if (!MediaStreamVideoTrackShared::VerifyAttributes(attributes))
-    return PP_ERROR_BADARGUMENT;
-
-  configure_callback_ = callback;
-  Call<PpapiPluginMsg_MediaStreamVideoTrack_ConfigureReply>(
-      RENDERER, PpapiHostMsg_MediaStreamVideoTrack_Configure(attributes),
-      base::BindOnce(&MediaStreamVideoTrackResource::OnPluginMsgConfigureReply,
-                     base::Unretained(this)),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t MediaStreamVideoTrackResource::GetAttrib(
-    PP_MediaStreamVideoTrack_Attrib attrib,
-    int32_t* value) {
-  // TODO(penghuang): implement this function.
-  return PP_ERROR_NOTSUPPORTED;
-}
-
-int32_t MediaStreamVideoTrackResource::GetFrame(
-    PP_Resource* frame,
-    scoped_refptr<TrackedCallback> callback) {
-  if (has_ended())
-    return PP_ERROR_FAILED;
-
-  if (TrackedCallback::IsPending(configure_callback_) ||
-      TrackedCallback::IsPending(get_frame_callback_)) {
-    return PP_ERROR_INPROGRESS;
-  }
-
-  *frame = GetVideoFrame();
-  if (*frame)
-    return PP_OK;
-
-  get_frame_output_ = frame;
-  get_frame_callback_ = callback;
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t MediaStreamVideoTrackResource::RecycleFrame(PP_Resource frame) {
-  FrameMap::iterator it = frames_.find(frame);
-  if (it == frames_.end())
-    return PP_ERROR_BADRESOURCE;
-
-  scoped_refptr<VideoFrameResource> frame_resource = it->second;
-  frames_.erase(it);
-
-  if (has_ended())
-    return PP_OK;
-
-  DCHECK_GE(frame_resource->GetBufferIndex(), 0);
-
-  SendEnqueueBufferMessageToHost(frame_resource->GetBufferIndex());
-  frame_resource->Invalidate();
-  return PP_OK;
-}
-
-void MediaStreamVideoTrackResource::Close() {
-  if (has_ended())
-    return;
-
-  if (TrackedCallback::IsPending(get_frame_callback_)) {
-    *get_frame_output_ = 0;
-    get_frame_callback_->PostAbort();
-    get_frame_callback_.reset();
-    get_frame_output_ = 0;
-  }
-
-  ReleaseFrames();
-  MediaStreamTrackResourceBase::CloseInternal();
-}
-
-int32_t MediaStreamVideoTrackResource::GetEmptyFrame(
-    PP_Resource* frame, scoped_refptr<TrackedCallback> callback) {
-  return GetFrame(frame, callback);
-}
-
-int32_t MediaStreamVideoTrackResource::PutFrame(PP_Resource frame) {
-  // TODO(ronghuawu): Consider to rename RecycleFrame to PutFrame and use
-  // one set of GetFrame and PutFrame for both input and output.
-  return RecycleFrame(frame);
-}
-
-void MediaStreamVideoTrackResource::OnNewBufferEnqueued() {
-  if (!TrackedCallback::IsPending(get_frame_callback_))
-    return;
-
-  *get_frame_output_ = GetVideoFrame();
-  int32_t result = *get_frame_output_ ? PP_OK : PP_ERROR_FAILED;
-  get_frame_output_ = NULL;
-  scoped_refptr<TrackedCallback> callback;
-  callback.swap(get_frame_callback_);
-  callback->Run(result);
-}
-
-PP_Resource MediaStreamVideoTrackResource::GetVideoFrame() {
-  int32_t index = buffer_manager()->DequeueBuffer();
-  if (index < 0)
-    return 0;
-
-  MediaStreamBuffer* buffer = buffer_manager()->GetBufferPointer(index);
-  DCHECK(buffer);
-  scoped_refptr<VideoFrameResource> resource =
-      new VideoFrameResource(pp_instance(), index, buffer);
-  // Add |pp_resource()| and |resource| into |frames_|.
-  // |frames_| uses std::unique_ptr<> to hold a ref of |resource|. It keeps the
-  // resource alive.
-  frames_.insert(FrameMap::value_type(resource->pp_resource(), resource));
-  return resource->GetReference();
-}
-
-void MediaStreamVideoTrackResource::ReleaseFrames() {
-  for (FrameMap::iterator it = frames_.begin(); it != frames_.end(); ++it) {
-    // Just invalidate and release VideoFrameResorce, but keep PP_Resource.
-    // So plugin can still use |RecycleFrame()|.
-    it->second->Invalidate();
-    it->second.reset();
-  }
-}
-
-void MediaStreamVideoTrackResource::OnPluginMsgConfigureReply(
-    const ResourceMessageReplyParams& params,
-    const std::string& track_id) {
-  if (id().empty()) {
-    set_id(track_id);
-  } else {
-    DCHECK_EQ(id(), track_id);
-  }
-  if (TrackedCallback::IsPending(configure_callback_)) {
-    scoped_refptr<TrackedCallback> callback;
-    callback.swap(configure_callback_);
-    callback->Run(params.result());
-  }
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/media_stream_video_track_resource.h b/proxy/media_stream_video_track_resource.h
deleted file mode 100644
index 3df8650..0000000
--- a/proxy/media_stream_video_track_resource.h
+++ /dev/null
@@ -1,83 +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_PROXY_MEDIA_STREAM_VIDEO_TRACK_RESOURCE_H_
-#define PPAPI_PROXY_MEDIA_STREAM_VIDEO_TRACK_RESOURCE_H_
-
-#include <stdint.h>
-
-#include <map>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/proxy/media_stream_track_resource_base.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/thunk/ppb_media_stream_video_track_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class VideoFrameResource;
-
-class PPAPI_PROXY_EXPORT MediaStreamVideoTrackResource
-    : public MediaStreamTrackResourceBase,
-      public thunk::PPB_MediaStreamVideoTrack_API {
- public:
-  MediaStreamVideoTrackResource(Connection connection,
-                                PP_Instance instance,
-                                int pending_renderer_id,
-                                const std::string& id);
-
-  MediaStreamVideoTrackResource(Connection connection, PP_Instance instance);
-
-  MediaStreamVideoTrackResource(const MediaStreamVideoTrackResource&) = delete;
-  MediaStreamVideoTrackResource& operator=(
-      const MediaStreamVideoTrackResource&) = delete;
-
-  ~MediaStreamVideoTrackResource() override;
-
-  // Resource overrides:
-  thunk::PPB_MediaStreamVideoTrack_API* AsPPB_MediaStreamVideoTrack_API()
-      override;
-
-  // PPB_MediaStreamVideoTrack_API overrides:
-  PP_Var GetId() override;
-  PP_Bool HasEnded() override;
-  int32_t Configure(const int32_t attrib_list[],
-                    scoped_refptr<TrackedCallback> callback) override;
-  int32_t GetAttrib(PP_MediaStreamVideoTrack_Attrib attrib,
-                    int32_t* value) override;
-  int32_t GetFrame(PP_Resource* frame,
-                   scoped_refptr<TrackedCallback> callback) override;
-  int32_t RecycleFrame(PP_Resource frame) override;
-  void Close() override;
-  int32_t GetEmptyFrame(PP_Resource* frame,
-                        scoped_refptr<TrackedCallback> callback) override;
-  int32_t PutFrame(PP_Resource frame) override;
-
-  // MediaStreamBufferManager::Delegate overrides:
-  void OnNewBufferEnqueued() override;
-
- private:
-  PP_Resource GetVideoFrame();
-
-  void ReleaseFrames();
-
-  // IPC message handlers.
-  void OnPluginMsgConfigureReply(const ResourceMessageReplyParams& params,
-                                 const std::string& track_id);
-
-  // Allocated frame resources by |GetFrame()|.
-  typedef std::map<PP_Resource, scoped_refptr<VideoFrameResource> > FrameMap;
-  FrameMap frames_;
-
-  PP_Resource* get_frame_output_;
-  scoped_refptr<TrackedCallback> get_frame_callback_;
-
-  scoped_refptr<TrackedCallback> configure_callback_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_MEDIA_STREAM_VIDEO_TRACK_RESOURCE_H_
diff --git a/proxy/message_handler.cc b/proxy/message_handler.cc
deleted file mode 100644
index a9e9800..0000000
--- a/proxy/message_handler.cc
+++ /dev/null
@@ -1,139 +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/proxy/message_handler.h"
-
-#include <utility>
-
-#include "base/functional/bind.h"
-#include "base/location.h"
-#include "base/task/single_thread_task_runner.h"
-#include "ipc/ipc_message.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/ppb_message_loop_proxy.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/scoped_pp_var.h"
-#include "ppapi/thunk/enter.h"
-
-namespace ppapi {
-namespace proxy {
-namespace {
-
-typedef void (*HandleMessageFunc)(PP_Instance, void*, const PP_Var*);
-typedef void (*HandleBlockingMessageFunc)(
-    PP_Instance, void*, const PP_Var*, PP_Var*);
-
-void HandleMessageWrapper(HandleMessageFunc function,
-                          PP_Instance instance,
-                          void* user_data,
-                          ScopedPPVar message_data) {
-  CallWhileUnlocked(function, instance, user_data,
-                    &message_data.get());
-}
-
-void HandleBlockingMessageWrapper(HandleBlockingMessageFunc function,
-                                  PP_Instance instance,
-                                  void* user_data,
-                                  ScopedPPVar message_data,
-                                  std::unique_ptr<IPC::Message> reply_msg) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return;
-  PP_Var result = PP_MakeUndefined();
-  MessageLoopResource::GetCurrent()->
-      set_currently_handling_blocking_message(true);
-  CallWhileUnlocked(
-      function, instance, user_data, &message_data.get(), &result);
-  MessageLoopResource::GetCurrent()->
-      set_currently_handling_blocking_message(false);
-  PpapiMsg_PPPMessageHandler_HandleBlockingMessage::WriteReplyParams(
-      reply_msg.get(),
-      SerializedVarReturnValue::Convert(dispatcher, result),
-      true /* was_handled */);
-  dispatcher->Send(reply_msg.release());
-}
-
-}  // namespace
-
-// static
-std::unique_ptr<MessageHandler> MessageHandler::Create(
-    PP_Instance instance,
-    const PPP_MessageHandler_0_2* handler_if,
-    void* user_data,
-    PP_Resource message_loop,
-    int32_t* error) {
-  std::unique_ptr<MessageHandler> result;
-  // The interface and all function pointers must be valid.
-  if (!handler_if ||
-      !handler_if->HandleMessage ||
-      !handler_if->HandleBlockingMessage ||
-      !handler_if->Destroy) {
-    *error = PP_ERROR_BADARGUMENT;
-    return result;
-  }
-  thunk::EnterResourceNoLock<thunk::PPB_MessageLoop_API>
-      enter_loop(message_loop, true);
-  if (enter_loop.failed()) {
-    *error = PP_ERROR_BADRESOURCE;
-    return result;
-  }
-  scoped_refptr<MessageLoopResource> message_loop_resource(
-      static_cast<MessageLoopResource*>(enter_loop.object()));
-  if (message_loop_resource->is_main_thread_loop()) {
-    *error = PP_ERROR_WRONG_THREAD;
-    return result;
-  }
-
-  result.reset(new MessageHandler(
-      instance, handler_if, user_data, message_loop_resource));
-  *error = PP_OK;
-  return result;
-}
-
-MessageHandler::~MessageHandler() {
-  // It's possible the message_loop_proxy is NULL if that loop has been quit.
-  // In that case, we unfortunately just can't call Destroy.
-  if (message_loop_->task_runner().get()) {
-    // The posted task won't have the proxy lock, but that's OK, it doesn't
-    // touch any internal state; it's a direct call on the plugin's function.
-    message_loop_->task_runner()->PostTask(
-        FROM_HERE, base::BindOnce(handler_if_->Destroy, instance_, user_data_));
-  }
-}
-
-bool MessageHandler::LoopIsValid() const {
-  return !!message_loop_->task_runner().get();
-}
-
-void MessageHandler::HandleMessage(ScopedPPVar var) {
-  message_loop_->task_runner()->PostTask(
-      FROM_HERE, RunWhileLocked(base::BindOnce(&HandleMessageWrapper,
-                                               handler_if_->HandleMessage,
-                                               instance_, user_data_, var)));
-}
-
-void MessageHandler::HandleBlockingMessage(
-    ScopedPPVar var,
-    std::unique_ptr<IPC::Message> reply_msg) {
-  message_loop_->task_runner()->PostTask(
-      FROM_HERE,
-      RunWhileLocked(base::BindOnce(
-          &HandleBlockingMessageWrapper, handler_if_->HandleBlockingMessage,
-          instance_, user_data_, var, std::move(reply_msg))));
-}
-
-MessageHandler::MessageHandler(
-    PP_Instance instance,
-    const PPP_MessageHandler_0_2* handler_if,
-    void* user_data,
-    scoped_refptr<MessageLoopResource> message_loop)
-    : instance_(instance),
-      handler_if_(handler_if),
-      user_data_(user_data),
-      message_loop_(message_loop) {
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/message_handler.h b/proxy/message_handler.h
deleted file mode 100644
index 43c09f4..0000000
--- a/proxy/message_handler.h
+++ /dev/null
@@ -1,79 +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_PROXY_MESSAGE_HANDLER_H_
-#define PPAPI_PROXY_MESSAGE_HANDLER_H_
-
-#include <stdint.h>
-
-#include <memory>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/ppp_message_handler.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-
-namespace IPC {
-class Message;
-}
-
-namespace ppapi {
-
-class ScopedPPVar;
-
-namespace proxy {
-
-class MessageLoopResource;
-
-// MessageHandler wraps a PPP_MessageHandler to encapsulate calling methods
-// on the right thread and calling the Destroy function when this
-// MessageHandler is destroyed.
-class PPAPI_PROXY_EXPORT MessageHandler {
- public:
-  // Create a MessageHandler. If any parameters are invalid, it will return a
-  // null scoped_ptr and set |*error| appropriately.
-  // |handler_if| is the struct of function pointers we will invoke. All of
-  //              the function pointers within must be valid, or we fail
-  //              with PP_ERROR_BADARGUMENT.
-  // |user_data| is a pointer provided by the plugin that we pass back when we
-  //             call functions in |handler_if|.
-  // |message_loop| is the message loop where we will invoke functions in
-  //                |handler_if|. Must not be the main thread message loop,
-  //                to try to force the plugin to not over-subscribe the main
-  //                thread. If it's the main thread loop, |error| will be set
-  //                to PP_ERROR_WRONGTHREAD.
-  // |error| is an out-param that will be set on failure.
-  static std::unique_ptr<MessageHandler> Create(
-      PP_Instance instance,
-      const PPP_MessageHandler_0_2* handler_if,
-      void* user_data,
-      PP_Resource message_loop,
-      int32_t* error);
-
-  MessageHandler(const MessageHandler&) = delete;
-  MessageHandler& operator=(const MessageHandler&) = delete;
-
-  ~MessageHandler();
-
-  bool LoopIsValid() const;
-
-  void HandleMessage(ScopedPPVar var);
-  void HandleBlockingMessage(ScopedPPVar var,
-                             std::unique_ptr<IPC::Message> reply_msg);
-
- private:
-  MessageHandler(PP_Instance instance,
-                 const PPP_MessageHandler_0_2* handler_if,
-                 void* user_data,
-                 scoped_refptr<MessageLoopResource> message_loop);
-  PP_Instance instance_;
-  const PPP_MessageHandler_0_2* handler_if_;
-  void* user_data_;
-  scoped_refptr<MessageLoopResource> message_loop_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_MESSAGE_HANDLER_H_
diff --git a/proxy/mock_resource.cc b/proxy/mock_resource.cc
deleted file mode 100644
index 11f18ce..0000000
--- a/proxy/mock_resource.cc
+++ /dev/null
@@ -1,18 +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/proxy/mock_resource.h"
-
-namespace ppapi {
-namespace proxy {
-
-MockResource::MockResource(const HostResource& resource)
-    : Resource(OBJECT_IS_PROXY, resource) {
-}
-
-MockResource::~MockResource() {
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/mock_resource.h b/proxy/mock_resource.h
deleted file mode 100644
index 99ba8db..0000000
--- a/proxy/mock_resource.h
+++ /dev/null
@@ -1,27 +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_PROXY_MOCK_RESOURCE_H_
-#define PPAPI_PROXY_MOCK_RESOURCE_H_
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/shared_impl/resource.h"
-
-namespace ppapi {
-namespace proxy {
-
-class MockResource : public ppapi::Resource {
- public:
-  MockResource(const ppapi::HostResource& resource);
-
-  MockResource(const MockResource&) = delete;
-  MockResource& operator=(const MockResource&) = delete;
-
-  virtual ~MockResource();
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_MOCK_RESOURCE_H_
diff --git a/proxy/nacl_message_scanner.cc b/proxy/nacl_message_scanner.cc
deleted file mode 100644
index 582ccb9..0000000
--- a/proxy/nacl_message_scanner.cc
+++ /dev/null
@@ -1,580 +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.
-
-#include "ppapi/proxy/nacl_message_scanner.h"
-
-#include <stddef.h>
-
-#include <memory>
-#include <tuple>
-#include <utility>
-#include <vector>
-
-#include "base/functional/bind.h"
-#include "build/build_config.h"
-#include "ipc/ipc_message.h"
-#include "ipc/ipc_message_macros.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/resource_message_params.h"
-#include "ppapi/proxy/serialized_handle.h"
-#include "ppapi/proxy/serialized_var.h"
-
-class NaClDescImcShm;
-
-namespace IPC {
-class Message;
-}
-
-using ppapi::proxy::ResourceMessageReplyParams;
-using ppapi::proxy::SerializedHandle;
-using ppapi::proxy::SerializedVar;
-
-namespace {
-
-typedef std::vector<SerializedHandle> Handles;
-
-struct ScanningResults {
-  ScanningResults() : handle_index(0), pp_resource(0) {}
-
-  // Vector to hold handles found in the message.
-  Handles handles;
-  // Current handle index in the rewritten message. During the scan, it will be
-  // be less than or equal to handles.size(). After the scan it should be equal.
-  int handle_index;
-  // The rewritten message. This may be NULL, so all ScanParam overloads should
-  // check for NULL before writing to it. In some cases, a ScanParam overload
-  // may set this to NULL when it can determine that there are no parameters
-  // that need conversion. (See the ResourceMessageReplyParams overload.)
-  std::unique_ptr<IPC::Message> new_msg;
-  // Resource id for resource messages. Save this when scanning resource replies
-  // so when we audit the nested message, we know which resource it is for.
-  PP_Resource pp_resource;
-  // Callback to receive the nested message in a resource message or reply.
-  base::RepeatingCallback<
-      void(PP_Resource, const IPC::Message&, SerializedHandle*)>
-      nested_msg_callback;
-};
-
-void WriteHandle(int handle_index,
-                 const SerializedHandle& handle,
-                 base::Pickle* msg) {
-  SerializedHandle::WriteHeader(handle.header(), msg);
-
-  if (handle.type() == SerializedHandle::SHARED_MEMORY_REGION) {
-    // Write the region in POSIX style.
-    // This serialization must be kept in sync with
-    // ParamTraits<PlatformSharedMemoryRegion>::Write.
-    const auto& region = handle.shmem_region();
-    if (region.IsValid()) {
-      IPC::WriteParam(msg, true);  // valid == true
-      IPC::WriteParam(msg, region.GetMode());
-      IPC::WriteParam(msg, static_cast<uint64_t>(region.GetSize()));
-      IPC::WriteParam(msg, region.GetGUID());
-      // Writable regions are not supported, so write only one handle index.
-      DCHECK_NE(region.GetMode(),
-                base::subtle::PlatformSharedMemoryRegion::Mode::kWritable);
-      IPC::WriteParam(msg, handle_index);
-    } else {
-      msg->WriteBool(false);  // valid == false
-    }
-  } else if (handle.type() != SerializedHandle::INVALID) {
-    // Now write the handle itself in POSIX style.
-    // This serialization must be kept in sync with
-    // ParamTraits<FileDescriptor>::Write.
-    msg->WriteBool(true);  // valid == true
-    msg->WriteInt(handle_index);
-  }
-}
-
-// Define overloads for each kind of message parameter that requires special
-// handling. See ScanTuple for how these get used.
-
-// Overload to match SerializedHandle.
-void ScanParam(SerializedHandle&& handle, ScanningResults* results) {
-  if (results->new_msg)
-    WriteHandle(results->handle_index++, handle, results->new_msg.get());
-  results->handles.push_back(std::move(handle));
-}
-
-void HandleWriter(int* handle_index,
-                  base::Pickle* m,
-                  const SerializedHandle& handle) {
-  WriteHandle((*handle_index)++, handle, m);
-}
-
-// Overload to match SerializedVar, which can contain handles.
-void ScanParam(SerializedVar&& var, ScanningResults* results) {
-  // Rewrite the message and then copy any handles.
-  if (results->new_msg)
-    var.WriteDataToMessage(
-        results->new_msg.get(),
-        base::BindRepeating(&HandleWriter, &results->handle_index));
-  for (SerializedHandle* var_handle : var.GetHandles())
-    results->handles.push_back(std::move(*var_handle));
-}
-
-// For PpapiMsg_ResourceReply and the reply to PpapiHostMsg_ResourceSyncCall,
-// the handles are carried inside the ResourceMessageReplyParams.
-// NOTE: We only intercept handles from host->NaCl. The only kind of
-//       ResourceMessageParams that travels this direction is
-//       ResourceMessageReplyParams, so that's the only one we need to handle.
-void ScanParam(ResourceMessageReplyParams&& params, ScanningResults* results) {
-  results->pp_resource = params.pp_resource();
-  // If the resource reply params don't contain handles, NULL the new message
-  // pointer to cancel further rewriting.
-  // NOTE: This works because only handles currently need rewriting, and we
-  //       know at this point that this message has none.
-  if (params.handles().empty()) {
-    results->new_msg.reset(NULL);
-    return;
-  }
-
-  // If we need to rewrite the message, write everything before the handles
-  // (there's nothing after the handles).
-  if (results->new_msg) {
-    params.WriteReplyHeader(results->new_msg.get());
-    // IPC writes the vector length as an int before the contents of the
-    // vector.
-    results->new_msg->WriteInt(static_cast<int>(params.handles().size()));
-  }
-  std::vector<SerializedHandle> handles;
-  params.TakeAllHandles(&handles);
-  for (SerializedHandle& handle : handles) {
-    // ScanParam will write each handle to the new message, if necessary.
-    ScanParam(std::move(handle), results);
-  }
-}
-
-// Overload to match nested messages. If we need to rewrite the message, write
-// the parameter.
-void ScanParam(IPC::Message&& param, ScanningResults* results) {
-  if (results->pp_resource && !results->nested_msg_callback.is_null()) {
-    SerializedHandle* handle = NULL;
-    if (results->handles.size() == 1)
-      handle = &results->handles[0];
-    results->nested_msg_callback.Run(results->pp_resource, param, handle);
-  }
-  if (results->new_msg)
-    IPC::WriteParam(results->new_msg.get(), param);
-}
-
-template <class T>
-void ScanParam(std::vector<T>&& vec, ScanningResults* results) {
-  if (results->new_msg)
-    IPC::WriteParam(results->new_msg.get(), static_cast<int>(vec.size()));
-  for (T& element : vec)
-    ScanParam(std::move(element), results);
-}
-
-// Overload to match all other types. If we need to rewrite the message, write
-// the parameter.
-template <class T>
-void ScanParam(T&& param, ScanningResults* results) {
-  if (results->new_msg)
-    IPC::WriteParam(results->new_msg.get(), param);
-}
-
-// These just break apart the given tuple and run ScanParam over each param.
-// The idea is to scan elements in the tuple which require special handling,
-// and write them into the |results| struct.
-template <class A>
-void ScanTuple(std::tuple<A>&& t1, ScanningResults* results) {
-  ScanParam(std::move(std::get<0>(t1)), results);
-}
-template <class A, class B>
-void ScanTuple(std::tuple<A, B>&& t1, ScanningResults* results) {
-  ScanParam(std::move(std::get<0>(t1)), results);
-  ScanParam(std::move(std::get<1>(t1)), results);
-}
-template <class A, class B, class C>
-void ScanTuple(std::tuple<A, B, C>&& t1, ScanningResults* results) {
-  ScanParam(std::move(std::get<0>(t1)), results);
-  ScanParam(std::move(std::get<1>(t1)), results);
-  ScanParam(std::move(std::get<2>(t1)), results);
-}
-template <class A, class B, class C, class D>
-void ScanTuple(std::tuple<A, B, C, D>&& t1, ScanningResults* results) {
-  ScanParam(std::move(std::get<0>(t1)), results);
-  ScanParam(std::move(std::get<1>(t1)), results);
-  ScanParam(std::move(std::get<2>(t1)), results);
-  ScanParam(std::move(std::get<3>(t1)), results);
-}
-template <class A, class B, class C, class D, class E>
-void ScanTuple(std::tuple<A, B, C, D, E>&& t1, ScanningResults* results) {
-  ScanParam(std::move(std::get<0>(t1)), results);
-  ScanParam(std::move(std::get<1>(t1)), results);
-  ScanParam(std::move(std::get<2>(t1)), results);
-  ScanParam(std::move(std::get<3>(t1)), results);
-  ScanParam(std::move(std::get<4>(t1)), results);
-}
-
-template <class MessageType>
-class MessageScannerImpl {
- public:
-  explicit MessageScannerImpl(const IPC::Message* msg) : msg_(msg) {}
-  bool ScanMessage(ScanningResults* results) {
-    typename MessageType::Param params;
-    if (!MessageType::Read(msg_, &params))
-      return false;
-    ScanTuple(std::move(params), results);
-    return true;
-  }
-
-  bool ScanSyncMessage(ScanningResults* results) {
-    typename MessageType::SendParam params;
-    if (!MessageType::ReadSendParam(msg_, &params))
-      return false;
-    // If we need to rewrite the message, write the message id first.
-    if (results->new_msg) {
-      results->new_msg->set_sync();
-      int id = IPC::SyncMessage::GetMessageId(*msg_);
-      results->new_msg->WriteInt(id);
-    }
-    ScanTuple(std::move(params), results);
-    return true;
-  }
-
-  bool ScanReply(ScanningResults* results) {
-    typename MessageType::ReplyParam params;
-    if (!MessageType::ReadReplyParam(msg_, &params))
-      return false;
-    // If we need to rewrite the message, write the message id first.
-    if (results->new_msg) {
-      results->new_msg->set_reply();
-      int id = IPC::SyncMessage::GetMessageId(*msg_);
-      results->new_msg->WriteInt(id);
-    }
-    ScanTuple(std::move(params), results);
-    return true;
-  }
-
- private:
-  const IPC::Message* msg_;
-};
-
-}  // namespace
-
-#define CASE_FOR_MESSAGE(MESSAGE_TYPE) \
-      case MESSAGE_TYPE::ID: { \
-        MessageScannerImpl<MESSAGE_TYPE> scanner(&msg); \
-        if (rewrite_msg) \
-          results.new_msg.reset( \
-              new IPC::Message(msg.routing_id(), msg.type(), \
-                               IPC::Message::PRIORITY_NORMAL)); \
-        if (!scanner.ScanMessage(&results)) \
-          return false; \
-        break; \
-      }
-#define CASE_FOR_SYNC_MESSAGE(MESSAGE_TYPE) \
-      case MESSAGE_TYPE::ID: { \
-        MessageScannerImpl<MESSAGE_TYPE> scanner(&msg); \
-        if (rewrite_msg) \
-          results.new_msg.reset( \
-              new IPC::Message(msg.routing_id(), msg.type(), \
-                               IPC::Message::PRIORITY_NORMAL)); \
-        if (!scanner.ScanSyncMessage(&results)) \
-          return false; \
-        break; \
-      }
-#define CASE_FOR_REPLY(MESSAGE_TYPE) \
-      case MESSAGE_TYPE::ID: { \
-        MessageScannerImpl<MESSAGE_TYPE> scanner(&msg); \
-        if (rewrite_msg) \
-          results.new_msg.reset( \
-              new IPC::Message(msg.routing_id(), msg.type(), \
-                               IPC::Message::PRIORITY_NORMAL)); \
-        if (!scanner.ScanReply(&results)) \
-          return false; \
-        break; \
-      }
-
-namespace ppapi {
-namespace proxy {
-
-class SerializedHandle;
-
-NaClMessageScanner::FileSystem::FileSystem()
-    : reserved_quota_(0) {
-}
-
-NaClMessageScanner::FileSystem::~FileSystem() {
-}
-
-bool NaClMessageScanner::FileSystem::UpdateReservedQuota(int64_t delta) {
-  base::AutoLock lock(lock_);
-  if (std::numeric_limits<int64_t>::max() - reserved_quota_ < delta)
-    return false;  // reserved_quota_ + delta would overflow.
-  if (reserved_quota_ + delta < 0)
-    return false;
-  reserved_quota_ += delta;
-  return true;
-}
-
-NaClMessageScanner::FileIO::FileIO(FileSystem* file_system,
-                                   int64_t max_written_offset)
-    : file_system_(file_system),
-      max_written_offset_(max_written_offset) {
-}
-
-NaClMessageScanner::FileIO::~FileIO() {
-}
-
-void NaClMessageScanner::FileIO::SetMaxWrittenOffset(
-    int64_t max_written_offset) {
-  base::AutoLock lock(lock_);
-  max_written_offset_ = max_written_offset;
-}
-
-bool NaClMessageScanner::FileIO::Grow(int64_t amount) {
-  base::AutoLock lock(lock_);
-  DCHECK(amount > 0);
-  if (!file_system_->UpdateReservedQuota(-amount))
-    return false;
-  max_written_offset_ += amount;
-  return true;
-}
-
-NaClMessageScanner::NaClMessageScanner() {
-}
-
-NaClMessageScanner::~NaClMessageScanner() {
-  for (FileSystemMap::iterator it = file_systems_.begin();
-      it != file_systems_.end(); ++it)
-    delete it->second;
-  for (FileIOMap::iterator it = files_.begin(); it != files_.end(); ++it)
-    delete it->second;
-}
-
-// Windows IPC differs from POSIX in that native handles are serialized in the
-// message body, rather than passed in a separate FileDescriptorSet. Therefore,
-// on Windows, any message containing handles must be rewritten in the POSIX
-// format before we can send it to the NaCl plugin.
-// On Mac, base::SharedMemoryHandle has a different serialization than
-// base::FileDescriptor (which base::SharedMemoryHandle is typedef-ed to in
-// OS_NACL).
-bool NaClMessageScanner::ScanMessage(
-    const IPC::Message& msg,
-    uint32_t type,
-    std::vector<SerializedHandle>* handles,
-    std::unique_ptr<IPC::Message>* new_msg_ptr) {
-  DCHECK(handles);
-  DCHECK(handles->empty());
-  DCHECK(new_msg_ptr);
-  DCHECK(!new_msg_ptr->get());
-
-  bool rewrite_msg =
-#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
-      true;
-#else
-      false;
-#endif
-
-  // We can't always tell from the message ID if rewriting is needed. Therefore,
-  // scan any message types that might contain a handle. If we later determine
-  // that there are no handles, we can cancel the rewriting by clearing the
-  // results.new_msg pointer.
-  ScanningResults results;
-  results.nested_msg_callback = base::BindRepeating(
-      &NaClMessageScanner::AuditNestedMessage, base::Unretained(this));
-  switch (type) {
-    CASE_FOR_MESSAGE(PpapiMsg_PPBAudio_NotifyAudioStreamCreated)
-    CASE_FOR_MESSAGE(PpapiMsg_PPPMessaging_HandleMessage)
-    CASE_FOR_MESSAGE(PpapiPluginMsg_ResourceReply)
-    CASE_FOR_SYNC_MESSAGE(PpapiMsg_PPPMessageHandler_HandleBlockingMessage)
-    CASE_FOR_SYNC_MESSAGE(PpapiMsg_PnaclTranslatorCompileInit)
-    CASE_FOR_SYNC_MESSAGE(PpapiMsg_PnaclTranslatorLink)
-    CASE_FOR_REPLY(PpapiHostMsg_OpenResource)
-    CASE_FOR_REPLY(PpapiHostMsg_PPBGraphics3D_Create)
-    CASE_FOR_REPLY(PpapiHostMsg_PPBGraphics3D_CreateTransferBuffer)
-    CASE_FOR_REPLY(PpapiHostMsg_PPBImageData_CreateSimple)
-    CASE_FOR_REPLY(PpapiHostMsg_ResourceSyncCall)
-    CASE_FOR_REPLY(PpapiHostMsg_SharedMemory_CreateSharedMemory)
-    default:
-      // Do nothing for messages we don't know.
-      break;
-  }
-
-  // Only messages containing handles need to be rewritten. If no handles are
-  // found, don't return the rewritten message either. This must be changed if
-  // we ever add new param types that also require rewriting.
-  if (!results.handles.empty()) {
-    handles->swap(results.handles);
-    *new_msg_ptr = std::move(results.new_msg);
-  }
-  return true;
-}
-
-void NaClMessageScanner::ScanUntrustedMessage(
-    const IPC::Message& untrusted_msg,
-    std::unique_ptr<IPC::Message>* new_msg_ptr) {
-  // Audit FileIO and FileSystem messages to ensure that the plugin doesn't
-  // exceed its file quota. If we find the message is malformed, just pass it
-  // through - we only care about well formed messages to the host.
-  if (untrusted_msg.type() == PpapiHostMsg_ResourceCall::ID) {
-    ResourceMessageCallParams params;
-    IPC::Message nested_msg;
-    if (!UnpackMessage<PpapiHostMsg_ResourceCall>(
-            untrusted_msg, &params, &nested_msg))
-      return;
-
-    switch (nested_msg.type()) {
-      case PpapiHostMsg_FileIO_Close::ID: {
-        FileIOMap::iterator it = files_.find(params.pp_resource());
-        if (it == files_.end())
-          return;
-        // Audit FileIO Close messages to make sure the plugin reports an
-        // accurate file size.
-        FileGrowth file_growth;
-        if (!UnpackMessage<PpapiHostMsg_FileIO_Close>(
-                nested_msg, &file_growth))
-          return;
-
-        int64_t trusted_max_written_offset = it->second->max_written_offset();
-        delete it->second;
-        files_.erase(it);
-        // If the plugin is under-reporting, rewrite the message with the
-        // trusted value.
-        if (trusted_max_written_offset > file_growth.max_written_offset) {
-          *new_msg_ptr = std::make_unique<PpapiHostMsg_ResourceCall>(
-              params, PpapiHostMsg_FileIO_Close(
-                          FileGrowth(trusted_max_written_offset, 0)));
-        }
-        break;
-      }
-      case PpapiHostMsg_FileIO_SetLength::ID: {
-        FileIOMap::iterator it = files_.find(params.pp_resource());
-        if (it == files_.end())
-          return;
-        // Audit FileIO SetLength messages to make sure the plugin is within
-        // the current quota reservation. In addition, deduct the file size
-        // increase from the quota reservation.
-        int64_t length = 0;
-        if (!UnpackMessage<PpapiHostMsg_FileIO_SetLength>(
-                nested_msg, &length))
-          return;
-
-        // Calculate file size increase, taking care to avoid overflows.
-        if (length < 0)
-          return;
-        int64_t trusted_max_written_offset = it->second->max_written_offset();
-        int64_t increase = length - trusted_max_written_offset;
-        if (increase <= 0)
-          return;
-        if (!it->second->Grow(increase)) {
-          *new_msg_ptr = std::make_unique<PpapiHostMsg_ResourceCall>(
-              params, PpapiHostMsg_FileIO_SetLength(-1));
-        }
-        break;
-      }
-      case PpapiHostMsg_FileSystem_ReserveQuota::ID: {
-        // Audit FileSystem ReserveQuota messages to make sure the plugin
-        // reports accurate file sizes.
-        int64_t amount = 0;
-        FileGrowthMap file_growths;
-        if (!UnpackMessage<PpapiHostMsg_FileSystem_ReserveQuota>(
-                nested_msg, &amount, &file_growths))
-          return;
-
-        bool audit_failed = false;
-        for (FileGrowthMap::iterator it = file_growths.begin();
-            it != file_growths.end(); ++it) {
-          FileIOMap::iterator file_it = files_.find(it->first);
-          if (file_it == files_.end())
-            continue;
-          int64_t trusted_max_written_offset =
-              file_it->second->max_written_offset();
-          if (trusted_max_written_offset > it->second.max_written_offset) {
-            audit_failed = true;
-            it->second.max_written_offset = trusted_max_written_offset;
-          }
-          if (it->second.append_mode_write_amount < 0) {
-            audit_failed = true;
-            it->second.append_mode_write_amount = 0;
-          }
-        }
-        if (audit_failed) {
-          *new_msg_ptr = std::make_unique<PpapiHostMsg_ResourceCall>(
-              params,
-              PpapiHostMsg_FileSystem_ReserveQuota(amount, file_growths));
-        }
-        break;
-      }
-      case PpapiHostMsg_ResourceDestroyed::ID: {
-        // Audit resource destroyed messages to release FileSystems.
-        PP_Resource resource;
-        if (!UnpackMessage<PpapiHostMsg_ResourceDestroyed>(
-                nested_msg, &resource))
-          return;
-        FileSystemMap::iterator fs_it = file_systems_.find(resource);
-        if (fs_it != file_systems_.end()) {
-          delete fs_it->second;
-          file_systems_.erase(fs_it);
-        }
-        break;
-      }
-    }
-  }
-}
-
-NaClMessageScanner::FileIO* NaClMessageScanner::GetFile(
-    PP_Resource file_io) {
-  FileIOMap::iterator it = files_.find(file_io);
-  CHECK(it != files_.end());
-  return it->second;
-}
-
-void NaClMessageScanner::AuditNestedMessage(PP_Resource resource,
-                                            const IPC::Message& msg,
-                                            SerializedHandle* handle) {
-  switch (msg.type()) {
-    case PpapiPluginMsg_FileIO_OpenReply::ID: {
-      // A file that requires quota checking was opened.
-      PP_Resource quota_file_system;
-      int64_t max_written_offset = 0;
-      if (ppapi::UnpackMessage<PpapiPluginMsg_FileIO_OpenReply>(
-              msg, &quota_file_system, &max_written_offset)) {
-        if (quota_file_system) {
-          // Look up the FileSystem by inserting a new one. If it was already
-          // present, get the existing one, otherwise construct it.
-          FileSystem* file_system = NULL;
-          std::pair<FileSystemMap::iterator, bool> insert_result =
-              file_systems_.insert(std::make_pair(quota_file_system,
-                                                  file_system));
-          if (insert_result.second)
-            insert_result.first->second = new FileSystem();
-          file_system = insert_result.first->second;
-          // Create the FileIO.
-          DCHECK(files_.find(resource) == files_.end());
-          files_.insert(std::make_pair(
-              resource,
-              new FileIO(file_system, max_written_offset)));
-        }
-      }
-      break;
-    }
-    case PpapiPluginMsg_FileSystem_ReserveQuotaReply::ID: {
-      // The amount of reserved quota for a FileSystem was refreshed.
-      int64_t amount = 0;
-      FileSizeMap file_sizes;
-      if (ppapi::UnpackMessage<PpapiPluginMsg_FileSystem_ReserveQuotaReply>(
-          msg, &amount, &file_sizes)) {
-        FileSystemMap::iterator it = file_systems_.find(resource);
-        CHECK(it != file_systems_.end());
-        it->second->UpdateReservedQuota(amount);
-
-        FileSizeMap::const_iterator offset_it = file_sizes.begin();
-        for (; offset_it != file_sizes.end(); ++offset_it) {
-          FileIOMap::iterator fio_it = files_.find(offset_it->first);
-          CHECK(fio_it != files_.end());
-          if (fio_it != files_.end())
-            fio_it->second->SetMaxWrittenOffset(offset_it->second);
-        }
-      }
-      break;
-    }
-  }
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/nacl_message_scanner.h b/proxy/nacl_message_scanner.h
deleted file mode 100644
index 446c861..0000000
--- a/proxy/nacl_message_scanner.h
+++ /dev/null
@@ -1,132 +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.
-
-#ifndef PPAPI_PROXY_NACL_MESSAGE_SCANNER_H_
-#define PPAPI_PROXY_NACL_MESSAGE_SCANNER_H_
-
-#include <stdint.h>
-
-#include <map>
-#include <memory>
-#include <vector>
-
-#include "base/synchronization/lock.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-
-namespace IPC {
-class Message;
-}
-
-namespace ppapi {
-namespace proxy {
-
-class SerializedHandle;
-
-class PPAPI_PROXY_EXPORT NaClMessageScanner {
- public:
-  NaClMessageScanner();
-
-  NaClMessageScanner(const NaClMessageScanner&) = delete;
-  NaClMessageScanner& operator=(const NaClMessageScanner&) = delete;
-
-  ~NaClMessageScanner();
-
-  // Scans the message for items that require special handling. Copies any
-  // SerializedHandles in the message into |handles| and if the message must be
-  // rewritten for NaCl, sets |new_msg_ptr| to the new message. If no handles
-  // are found, |handles| is left unchanged. If no rewriting is needed,
-  // |new_msg_ptr| is left unchanged.
-  //
-  // For normal messages, |type| is equivalent to |msg|.id(), but, if |msg| is
-  // a reply to a synchronous message, |type| is the id of the original
-  // message.
-  //
-  // See more explanation in the method definition.
-  //
-  // See chrome/nacl/nacl_ipc_adapter.cc for where this is used to help convert
-  // native handles to NaClDescs.
-  bool ScanMessage(const IPC::Message& msg,
-                   uint32_t type,
-                   std::vector<SerializedHandle>* handles,
-                   std::unique_ptr<IPC::Message>* new_msg_ptr);
-
-  // Scans an untrusted message for items that require special handling. If the
-  // message had to be rewritten, sets |new_msg_ptr| to the new message.
-  void ScanUntrustedMessage(const IPC::Message& untrusted_msg,
-                            std::unique_ptr<IPC::Message>* new_msg_ptr);
-
-  // FileSystem information for quota auditing.
-  class PPAPI_PROXY_EXPORT FileSystem {
-   public:
-    FileSystem();
-
-    FileSystem(const FileSystem&) = delete;
-    FileSystem& operator=(const FileSystem&) = delete;
-
-    ~FileSystem();
-
-    int64_t reserved_quota() const { return reserved_quota_; }
-
-    // Adds amount to reserved quota. Returns true if reserved quota >= 0.
-    bool UpdateReservedQuota(int64_t delta);
-
-   private:
-    base::Lock lock_;
-    // This is the remaining amount of quota reserved for the file system.
-    // Acquire the lock to modify this field, since it may be used on multiple
-    // threads.
-    int64_t reserved_quota_;
-  };
-
-  // FileIO information for quota auditing.
-  class PPAPI_PROXY_EXPORT FileIO {
-   public:
-    FileIO(FileSystem* file_system, int64_t max_written_offset);
-
-    FileIO(const FileIO&) = delete;
-    FileIO& operator=(const FileIO&) = delete;
-
-    ~FileIO();
-
-    int64_t max_written_offset() { return max_written_offset_; }
-
-    void SetMaxWrittenOffset(int64_t max_written_offset);
-
-    // Grows file by the given amount. Returns true on success.
-    bool Grow(int64_t amount);
-
-   private:
-    base::Lock lock_;
-
-    // The file system that contains this file.
-    FileSystem* file_system_;
-
-    // The maximum written offset. This is initialized by NaClMessageScanner
-    // when the file is opened and modified by a NaClDescQuotaInterface when the
-    // plugin writes to greater maximum offsets.
-    int64_t max_written_offset_;
-  };
-
-  FileIO* GetFile(PP_Resource file_io);
-
- private:
-  friend class NaClMessageScannerTest;
-  void AuditNestedMessage(PP_Resource resource,
-                          const IPC::Message& msg,
-                          SerializedHandle* handle);
-
-  // We intercept FileSystem and FileIO messages to maintain information about
-  // file systems and open files. This is used by NaClQuotaDescs to calculate
-  // quota consumption and check it against the reserved amount.
-  typedef std::map<int32_t, FileSystem*> FileSystemMap;
-  FileSystemMap file_systems_;
-  typedef std::map<int32_t, FileIO*> FileIOMap;
-  FileIOMap files_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_NACL_MESSAGE_SCANNER_H_
diff --git a/proxy/net_address_resource.cc b/proxy/net_address_resource.cc
deleted file mode 100644
index 4470571..0000000
--- a/proxy/net_address_resource.cc
+++ /dev/null
@@ -1,81 +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.
-
-#include "ppapi/proxy/net_address_resource.h"
-
-#include <string>
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/shared_impl/private/net_address_private_impl.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-NetAddressResource::NetAddressResource(
-    Connection connection,
-    PP_Instance instance,
-    const PP_NetAddress_IPv4& ipv4_addr)
-    : PluginResource(connection, instance) {
-  NetAddressPrivateImpl::CreateNetAddressPrivateFromIPv4Address(ipv4_addr,
-                                                                &address_);
-}
-
-NetAddressResource::NetAddressResource(
-    Connection connection,
-    PP_Instance instance,
-    const PP_NetAddress_IPv6& ipv6_addr)
-    : PluginResource(connection, instance) {
-  NetAddressPrivateImpl::CreateNetAddressPrivateFromIPv6Address(ipv6_addr,
-                                                                &address_);
-}
-
-NetAddressResource::NetAddressResource(
-    Connection connection,
-    PP_Instance instance,
-    const PP_NetAddress_Private& private_addr)
-    : PluginResource(connection, instance) {
-  address_ = private_addr;
-}
-
-NetAddressResource::~NetAddressResource() {
-}
-
-thunk::PPB_NetAddress_API* NetAddressResource::AsPPB_NetAddress_API() {
-  return this;
-}
-
-PP_NetAddress_Family NetAddressResource::GetFamily() {
-  return NetAddressPrivateImpl::GetFamilyFromNetAddressPrivate(address_);
-}
-
-PP_Var NetAddressResource::DescribeAsString(PP_Bool include_port) {
-  std::string description = NetAddressPrivateImpl::DescribeNetAddress(
-      address_, PP_ToBool(include_port));
-
-  if (description.empty())
-    return PP_MakeUndefined();
-  return StringVar::StringToPPVar(description);
-}
-
-PP_Bool NetAddressResource::DescribeAsIPv4Address(
-    PP_NetAddress_IPv4* ipv4_addr) {
-  return PP_FromBool(
-      NetAddressPrivateImpl::DescribeNetAddressPrivateAsIPv4Address(
-          address_, ipv4_addr));
-}
-
-PP_Bool NetAddressResource::DescribeAsIPv6Address(
-    PP_NetAddress_IPv6* ipv6_addr) {
-  return PP_FromBool(
-      NetAddressPrivateImpl::DescribeNetAddressPrivateAsIPv6Address(
-          address_, ipv6_addr));
-}
-
-const PP_NetAddress_Private& NetAddressResource::GetNetAddressPrivate() {
-  return address_;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/net_address_resource.h b/proxy/net_address_resource.h
deleted file mode 100644
index 7998f09..0000000
--- a/proxy/net_address_resource.h
+++ /dev/null
@@ -1,54 +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.
-
-#ifndef PPAPI_PROXY_NET_ADDRESS_RESOURCE_H_
-#define PPAPI_PROXY_NET_ADDRESS_RESOURCE_H_
-
-#include "base/compiler_specific.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/thunk/ppb_net_address_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT NetAddressResource : public PluginResource,
-                                              public thunk::PPB_NetAddress_API {
- public:
-  NetAddressResource(Connection connection,
-                     PP_Instance instance,
-                     const PP_NetAddress_IPv4& ipv4_addr);
-  NetAddressResource(Connection connection,
-                     PP_Instance instance,
-                     const PP_NetAddress_IPv6& ipv6_addr);
-  NetAddressResource(Connection connection,
-                     PP_Instance instance,
-                     const PP_NetAddress_Private& private_addr);
-
-  NetAddressResource(const NetAddressResource&) = delete;
-  NetAddressResource& operator=(const NetAddressResource&) = delete;
-
-  ~NetAddressResource() override;
-
-  // PluginResource implementation.
-  thunk::PPB_NetAddress_API* AsPPB_NetAddress_API() override;
-
-  // PPB_NetAddress_API implementation.
-  PP_NetAddress_Family GetFamily() override;
-  PP_Var DescribeAsString(PP_Bool include_port) override;
-  PP_Bool DescribeAsIPv4Address(PP_NetAddress_IPv4* ipv4_addr) override;
-  PP_Bool DescribeAsIPv6Address(PP_NetAddress_IPv6* ipv6_addr) override;
-  const PP_NetAddress_Private& GetNetAddressPrivate() override;
-
- private:
-  // TODO(yzshen): Refactor the code so that PPB_NetAddress resource doesn't
-  // use PP_NetAddress_Private as storage type.
-  PP_NetAddress_Private address_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_NET_ADDRESS_RESOURCE_H_
diff --git a/proxy/network_list_resource.cc b/proxy/network_list_resource.cc
deleted file mode 100644
index 3d288f3..0000000
--- a/proxy/network_list_resource.cc
+++ /dev/null
@@ -1,90 +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/proxy/network_list_resource.h"
-
-#include <stddef.h>
-
-#include <algorithm>
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/shared_impl/array_writer.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/thunk/enter.h"
-
-namespace ppapi {
-namespace proxy {
-
-NetworkListResource::NetworkListResource(PP_Instance instance,
-                                         const SerializedNetworkList& list)
-    : Resource(OBJECT_IS_PROXY, instance),
-      list_(list) {
-}
-
-NetworkListResource::~NetworkListResource() {}
-
-thunk::PPB_NetworkList_API* NetworkListResource::AsPPB_NetworkList_API() {
-  return this;
-}
-
-uint32_t NetworkListResource::GetCount() {
-  return static_cast<uint32_t>(list_.size());
-}
-
-PP_Var NetworkListResource::GetName(uint32_t index) {
-  if (index >= list_.size())
-    return PP_MakeUndefined();
-  return StringVar::StringToPPVar(list_.at(index).name);
-}
-
-PP_NetworkList_Type NetworkListResource::GetType(uint32_t index) {
-  if (index >= list_.size())
-    return PP_NETWORKLIST_TYPE_UNKNOWN;
-  return list_.at(index).type;
-}
-
-PP_NetworkList_State NetworkListResource::GetState(uint32_t index) {
-  if (index >= list_.size())
-    return PP_NETWORKLIST_STATE_DOWN;
-  return list_.at(index).state;
-}
-
-int32_t NetworkListResource::GetIpAddresses(uint32_t index,
-                                            const PP_ArrayOutput& output) {
-  ArrayWriter writer(output);
-  if (index >= list_.size() || !writer.is_valid())
-    return PP_ERROR_BADARGUMENT;
-
-  thunk::EnterResourceCreationNoLock enter(pp_instance());
-  if (enter.failed())
-    return PP_ERROR_FAILED;
-
-  const std::vector<PP_NetAddress_Private>& addresses =
-      list_.at(index).addresses;
-  std::vector<PP_Resource> addr_resources;
-  for (size_t i = 0; i < addresses.size(); ++i) {
-    addr_resources.push_back(
-        enter.functions()->CreateNetAddressFromNetAddressPrivate(
-            pp_instance(), addresses[i]));
-  }
-  if (!writer.StoreResourceVector(addr_resources))
-    return PP_ERROR_FAILED;
-
-  return PP_OK;
-}
-
-PP_Var NetworkListResource::GetDisplayName(uint32_t index) {
-  if (index >= list_.size())
-    return PP_MakeUndefined();
-  return StringVar::StringToPPVar(list_.at(index).display_name);
-}
-
-uint32_t NetworkListResource::GetMTU(uint32_t index) {
-  if (index >= list_.size())
-    return 0;
-  return list_.at(index).mtu;
-}
-
-}  // namespace proxy
-}  // namespace thunk
diff --git a/proxy/network_list_resource.h b/proxy/network_list_resource.h
deleted file mode 100644
index 7457116..0000000
--- a/proxy/network_list_resource.h
+++ /dev/null
@@ -1,50 +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_PROXY_NETWORK_LIST_RESOURCE_H_
-#define PPAPI_PROXY_NETWORK_LIST_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/private/ppb_net_address_private.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/proxy/serialized_structs.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_network_list_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class NetworkListResource
-    : public Resource,
-      public thunk::PPB_NetworkList_API {
- public:
-  NetworkListResource(PP_Instance instance,
-                      const SerializedNetworkList& list);
-
-  NetworkListResource(const NetworkListResource&) = delete;
-  NetworkListResource& operator=(const NetworkListResource&) = delete;
-
-  ~NetworkListResource() override;
-
-  // Resource override.
-  thunk::PPB_NetworkList_API* AsPPB_NetworkList_API() override;
-
-  // PPB_NetworkList_API implementation.
-  uint32_t GetCount() override;
-  PP_Var GetName(uint32_t index) override;
-  PP_NetworkList_Type GetType(uint32_t index) override;
-  PP_NetworkList_State GetState(uint32_t index) override;
-  int32_t GetIpAddresses(uint32_t index, const PP_ArrayOutput& output) override;
-  PP_Var GetDisplayName(uint32_t index) override;
-  uint32_t GetMTU(uint32_t index) override;
-
- private:
-  SerializedNetworkList list_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_NETWORK_LIST_RESOURCE_H_
diff --git a/proxy/network_monitor_resource.cc b/proxy/network_monitor_resource.cc
deleted file mode 100644
index 777652a..0000000
--- a/proxy/network_monitor_resource.cc
+++ /dev/null
@@ -1,85 +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.
-
-#include "ppapi/proxy/network_monitor_resource.h"
-
-#include "ppapi/proxy/dispatch_reply_message.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_network_monitor_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-NetworkMonitorResource::NetworkMonitorResource(Connection connection,
-                                               PP_Instance instance)
-    : PluginResource(connection, instance),
-      current_list_(0),
-      forbidden_(false),
-      network_list_(NULL) {
-  SendCreate(BROWSER, PpapiHostMsg_NetworkMonitor_Create());
-}
-
-NetworkMonitorResource::~NetworkMonitorResource() {}
-
-ppapi::thunk::PPB_NetworkMonitor_API*
-NetworkMonitorResource::AsPPB_NetworkMonitor_API() {
-  return this;
-}
-
-void NetworkMonitorResource::OnReplyReceived(
-    const ResourceMessageReplyParams& params,
-    const IPC::Message& msg) {
-  PPAPI_BEGIN_MESSAGE_MAP(NetworkMonitorResource, msg)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_NetworkMonitor_NetworkList, OnPluginMsgNetworkList)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_0(
-        PpapiPluginMsg_NetworkMonitor_Forbidden, OnPluginMsgForbidden)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(
-        PluginResource::OnReplyReceived(params, msg))
-  PPAPI_END_MESSAGE_MAP()
-}
-
-int32_t NetworkMonitorResource::UpdateNetworkList(
-    PP_Resource* network_list,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!network_list)
-    return PP_ERROR_BADARGUMENT;
-  if (TrackedCallback::IsPending(update_callback_))
-    return PP_ERROR_INPROGRESS;
-  if (forbidden_)
-    return PP_ERROR_NOACCESS;
-
-  if (current_list_.get()) {
-    *network_list = current_list_.Release();
-    return PP_OK;
-  }
-
-  network_list_ = network_list;
-  update_callback_ = callback;
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void NetworkMonitorResource::OnPluginMsgNetworkList(
-    const ResourceMessageReplyParams& params,
-    const SerializedNetworkList& list) {
-  current_list_ = ScopedPPResource(
-      new NetworkListResource(pp_instance(), list));
-
-  if (TrackedCallback::IsPending(update_callback_)) {
-    *network_list_ = current_list_.Release();
-    update_callback_->Run(PP_OK);
-  }
-}
-
-void NetworkMonitorResource::OnPluginMsgForbidden(
-    const ResourceMessageReplyParams& params) {
-  forbidden_ = true;
-
-  if (TrackedCallback::IsPending(update_callback_))
-    update_callback_->Run(PP_ERROR_NOACCESS);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/network_monitor_resource.h b/proxy/network_monitor_resource.h
deleted file mode 100644
index aff8d85..0000000
--- a/proxy/network_monitor_resource.h
+++ /dev/null
@@ -1,56 +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.
-
-#ifndef PPAPI_PROXY_NETWORK_MONITOR_RESOURCE_H_
-#define PPAPI_PROXY_NETWORK_MONITOR_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "ppapi/proxy/network_list_resource.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/shared_impl/scoped_pp_resource.h"
-#include "ppapi/thunk/ppb_network_monitor_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class NetworkMonitorResource : public PluginResource,
-                               public thunk::PPB_NetworkMonitor_API {
- public:
-  explicit NetworkMonitorResource(Connection connection,
-                                  PP_Instance instance);
-
-  NetworkMonitorResource(const NetworkMonitorResource&) = delete;
-  NetworkMonitorResource& operator=(const NetworkMonitorResource&) = delete;
-
-  ~NetworkMonitorResource() override;
-
-  // PluginResource overrides.
-  ppapi::thunk::PPB_NetworkMonitor_API* AsPPB_NetworkMonitor_API() override;
-  void OnReplyReceived(const ResourceMessageReplyParams& params,
-                       const IPC::Message& msg) override;
-
-  // thunk::PPB_NetworkMonitor_API interface
-  int32_t UpdateNetworkList(
-      PP_Resource* network_list,
-      scoped_refptr<TrackedCallback> callback) override;
-
- private:
-  // IPC message handlers for the messages received from the browser.
-  void OnPluginMsgNetworkList(const ResourceMessageReplyParams& params,
-                              const SerializedNetworkList& list);
-  void OnPluginMsgForbidden(const ResourceMessageReplyParams& params);
-
-  ScopedPPResource current_list_;
-  bool forbidden_;
-
-  // Parameters passed to UpdateNetworkList().
-  PP_Resource* network_list_;
-  scoped_refptr<TrackedCallback> update_callback_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_NETWORK_MONITOR_RESOURCE_H_
diff --git a/proxy/network_proxy_resource.cc b/proxy/network_proxy_resource.cc
deleted file mode 100644
index 2da5de8..0000000
--- a/proxy/network_proxy_resource.cc
+++ /dev/null
@@ -1,63 +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.
-
-#include "ppapi/proxy/network_proxy_resource.h"
-
-#include "base/functional/bind.h"
-#include "ppapi/proxy/dispatch_reply_message.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-NetworkProxyResource::NetworkProxyResource(Connection connection,
-                                           PP_Instance instance)
-    : PluginResource(connection, instance) {
-  SendCreate(BROWSER, PpapiHostMsg_NetworkProxy_Create());
-}
-
-NetworkProxyResource::~NetworkProxyResource() {
-}
-
-thunk::PPB_NetworkProxy_API* NetworkProxyResource::AsPPB_NetworkProxy_API() {
-  return this;
-}
-
-int32_t NetworkProxyResource::GetProxyForURL(
-      PP_Instance /* instance */,
-      PP_Var url,
-      PP_Var* proxy_string,
-      scoped_refptr<TrackedCallback> callback) {
-  StringVar* string_url = StringVar::FromPPVar(url);
-  if (!string_url)
-    return PP_ERROR_BADARGUMENT;
-  Call<PpapiPluginMsg_NetworkProxy_GetProxyForURLReply>(
-      BROWSER, PpapiHostMsg_NetworkProxy_GetProxyForURL(string_url->value()),
-      base::BindOnce(&NetworkProxyResource::OnPluginMsgGetProxyForURLReply,
-                     base::Unretained(this), base::Unretained(proxy_string),
-                     callback));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void NetworkProxyResource::OnPluginMsgGetProxyForURLReply(
-    PP_Var* proxy_string_out_param,
-    scoped_refptr<TrackedCallback> callback,
-    const ResourceMessageReplyParams& params,
-    const std::string& proxy_string) {
-  if (!TrackedCallback::IsPending(callback)) {
-    // The callback should not have already been run. If this resource is
-    // deleted, LastPluginRefWasReleased in PluginResource should abort the
-    // callback and should not run this callback.
-    NOTREACHED();
-  }
-  if (params.result() == PP_OK) {
-    *proxy_string_out_param = (new StringVar(proxy_string))->GetPPVar();
-  }
-  callback->Run(params.result());
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/network_proxy_resource.h b/proxy/network_proxy_resource.h
deleted file mode 100644
index 9890324..0000000
--- a/proxy/network_proxy_resource.h
+++ /dev/null
@@ -1,49 +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.
-
-#ifndef PPAPI_PROXY_NETWORK_PROXY_RESOURCE_H_
-#define PPAPI_PROXY_NETWORK_PROXY_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/thunk/ppb_network_proxy_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-// The proxy-side resource for PPB_NetworkProxy.
-class PPAPI_PROXY_EXPORT NetworkProxyResource
-      : public PluginResource,
-        public thunk::PPB_NetworkProxy_API {
- public:
-  NetworkProxyResource(Connection connection, PP_Instance instance);
-
-  NetworkProxyResource(const NetworkProxyResource&) = delete;
-  NetworkProxyResource& operator=(const NetworkProxyResource&) = delete;
-
-  ~NetworkProxyResource() override;
-
- private:
-  // Resource implementation.
-  thunk::PPB_NetworkProxy_API* AsPPB_NetworkProxy_API() override;
-
-  // PPB_NetworkProxy_API implementation.
-  int32_t GetProxyForURL(
-      PP_Instance instance,
-      PP_Var url,
-      PP_Var* proxy_string,
-      scoped_refptr<TrackedCallback> callback) override;
-
-  void OnPluginMsgGetProxyForURLReply(PP_Var* proxy_string_out_param,
-                                      scoped_refptr<TrackedCallback> callback,
-                                      const ResourceMessageReplyParams& params,
-                                      const std::string& proxy_string);
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_NETWORK_PROXY_RESOURCE_H_
diff --git a/proxy/plugin_array_buffer_var.cc b/proxy/plugin_array_buffer_var.cc
deleted file mode 100644
index 094daae..0000000
--- a/proxy/plugin_array_buffer_var.cc
+++ /dev/null
@@ -1,92 +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/proxy/plugin_array_buffer_var.h"
-
-#include <stdlib.h>
-
-#include <limits>
-
-#include "ppapi/c/dev/ppb_buffer_dev.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/serialized_structs.h"
-#include "ppapi/shared_impl/host_resource.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_buffer_api.h"
-
-using ppapi::proxy::PluginGlobals;
-using ppapi::proxy::PluginResourceTracker;
-
-namespace ppapi {
-
-PluginArrayBufferVar::PluginArrayBufferVar(uint32_t size_in_bytes)
-    : buffer_(size_in_bytes),
-      size_in_bytes_(size_in_bytes) {}
-
-PluginArrayBufferVar::PluginArrayBufferVar(
-    uint32_t size_in_bytes,
-    base::UnsafeSharedMemoryRegion plugin_handle)
-    : plugin_handle_(std::move(plugin_handle)), size_in_bytes_(size_in_bytes) {}
-
-PluginArrayBufferVar::~PluginArrayBufferVar() = default;
-
-void* PluginArrayBufferVar::Map() {
-  if (shmem_.IsValid())
-    return shmem_.memory();
-  if (plugin_handle_.IsValid()) {
-    shmem_ = plugin_handle_.MapAt(0, size_in_bytes_);
-    if (!shmem_.IsValid()) {
-      return nullptr;
-    }
-    return shmem_.memory();
-  }
-  if (buffer_.empty())
-    return nullptr;
-  return &(buffer_[0]);
-}
-
-void PluginArrayBufferVar::Unmap() {
-  shmem_ = base::WritableSharedMemoryMapping();
-}
-
-uint32_t PluginArrayBufferVar::ByteLength() {
-  return size_in_bytes_;
-}
-
-bool PluginArrayBufferVar::CopyToNewShmem(
-    PP_Instance instance,
-    int* host_handle_id,
-    base::UnsafeSharedMemoryRegion* plugin_out_handle) {
-  ppapi::proxy::PluginDispatcher* dispatcher =
-      ppapi::proxy::PluginDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return false;
-
-  ppapi::proxy::SerializedHandle plugin_handle;
-  dispatcher->Send(new PpapiHostMsg_SharedMemory_CreateSharedMemory(
-      instance, ByteLength(), host_handle_id, &plugin_handle));
-  if (!plugin_handle.IsHandleValid() || !plugin_handle.is_shmem_region() ||
-      *host_handle_id == -1)
-    return false;
-
-  base::UnsafeSharedMemoryRegion tmp_handle =
-      base::UnsafeSharedMemoryRegion::Deserialize(
-          plugin_handle.TakeSharedMemoryRegion());
-  base::WritableSharedMemoryMapping s = tmp_handle.MapAt(0, ByteLength());
-  if (!s.IsValid())
-    return false;
-  memcpy(s.memory(), Map(), ByteLength());
-
-  // We don't need to keep the shared memory around on the plugin side;
-  // we've already copied all our data into it. We'll make it invalid
-  // just to be safe.
-  *plugin_out_handle = base::UnsafeSharedMemoryRegion();
-
-  return true;
-}
-
-}  // namespace ppapi
diff --git a/proxy/plugin_array_buffer_var.h b/proxy/plugin_array_buffer_var.h
deleted file mode 100644
index d5de5a4..0000000
--- a/proxy/plugin_array_buffer_var.h
+++ /dev/null
@@ -1,52 +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_PROXY_PLUGIN_ARRAY_BUFFER_VAR_H_
-#define PPAPI_PROXY_PLUGIN_ARRAY_BUFFER_VAR_H_
-
-#include <memory>
-#include <vector>
-
-#include "base/memory/shared_memory_mapping.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-
-// Represents a plugin-side ArrayBufferVar. In the plugin process, it's
-// owned as a vector.
-class PluginArrayBufferVar : public ArrayBufferVar {
- public:
-  explicit PluginArrayBufferVar(uint32_t size_in_bytes);
-  PluginArrayBufferVar(uint32_t size_in_bytes,
-                       base::UnsafeSharedMemoryRegion plugin_handle);
-
-  PluginArrayBufferVar(const PluginArrayBufferVar&) = delete;
-  PluginArrayBufferVar& operator=(const PluginArrayBufferVar&) = delete;
-
-  ~PluginArrayBufferVar() override;
-
-  // ArrayBufferVar implementation.
-  void* Map() override;
-  void Unmap() override;
-  uint32_t ByteLength() override;
-  bool CopyToNewShmem(PP_Instance instance,
-                      int* host_handle,
-                      base::UnsafeSharedMemoryRegion* plugin_handle) override;
-
- private:
-  // Non-shared memory
-  std::vector<uint8_t> buffer_;
-
-  // Shared memory
-  base::UnsafeSharedMemoryRegion plugin_handle_;
-  base::WritableSharedMemoryMapping shmem_;
-  uint32_t size_in_bytes_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PLUGIN_ARRAY_BUFFER_VAR_H_
diff --git a/proxy/plugin_dispatcher.cc b/proxy/plugin_dispatcher.cc
deleted file mode 100644
index da6df20..0000000
--- a/proxy/plugin_dispatcher.cc
+++ /dev/null
@@ -1,370 +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/proxy/plugin_dispatcher.h"
-
-#include <map>
-#include <memory>
-
-#include "base/check.h"
-#include "base/compiler_specific.h"
-#include "base/notreached.h"
-#include "base/task/single_thread_task_runner.h"
-#include "base/trace_event/trace_event.h"
-#include "build/build_config.h"
-#include "ipc/ipc_message.h"
-#include "ipc/ipc_sync_channel.h"
-#include "ipc/ipc_sync_message_filter.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppp_instance.h"
-#include "ppapi/proxy/gamepad_resource.h"
-#include "ppapi/proxy/interface_list.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/plugin_message_filter.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/plugin_var_serialization_rules.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/ppb_instance_proxy.h"
-#include "ppapi/proxy/resource_creation_proxy.h"
-#include "ppapi/proxy/resource_reply_thread_registrar.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-typedef std::map<PP_Instance, PluginDispatcher*> InstanceToPluginDispatcherMap;
-InstanceToPluginDispatcherMap* g_instance_to_plugin_dispatcher = NULL;
-
-typedef std::set<PluginDispatcher*> DispatcherSet;
-DispatcherSet* g_live_dispatchers = NULL;
-
-}  // namespace
-
-InstanceData::InstanceData()
-    : is_request_surrounding_text_pending(false),
-      should_do_request_surrounding_text(false) {
-}
-
-InstanceData::~InstanceData() {
-  // Run any pending mouse lock callback to prevent leaks.
-  if (mouse_lock_callback.get())
-    mouse_lock_callback->Abort();
-}
-
-InstanceData::FlushInfo::FlushInfo()
-    : flush_pending(false),
-      put_offset(0) {
-}
-
-InstanceData::FlushInfo::~FlushInfo() {
-}
-
-PluginDispatcher::Sender::Sender(
-    base::WeakPtr<PluginDispatcher> plugin_dispatcher,
-    scoped_refptr<IPC::SyncMessageFilter> sync_filter)
-    : plugin_dispatcher_(plugin_dispatcher), sync_filter_(sync_filter) {}
-
-PluginDispatcher::Sender::~Sender() {}
-
-bool PluginDispatcher::Sender::SendMessage(IPC::Message* msg) {
-  // Currently we need to choose between two different mechanisms for sending.
-  // On the main thread we use the regular dispatch Send() method, on another
-  // thread we use SyncMessageFilter.
-  if (PpapiGlobals::Get()
-          ->GetMainThreadMessageLoop()
-          ->BelongsToCurrentThread()) {
-    // The PluginDispatcher may have been destroyed if the channel is gone, but
-    // resources are leaked and may still send messages. We ignore those
-    // messages. See crbug.com/725033.
-    if (plugin_dispatcher_) {
-      return plugin_dispatcher_.get()->Dispatcher::Send(msg);
-    } else {
-      delete msg;
-      return false;
-    }
-  }
-  return sync_filter_->Send(msg);
-}
-
-bool PluginDispatcher::Sender::Send(IPC::Message* msg) {
-  TRACE_EVENT2("ppapi_proxy", "PluginDispatcher::Send", "Class",
-               IPC_MESSAGE_ID_CLASS(msg->type()), "Line",
-               IPC_MESSAGE_ID_LINE(msg->type()));
-  // We always want plugin->renderer messages to arrive in-order. If some sync
-  // and some async messages are sent in response to a synchronous
-  // renderer->plugin call, the sync reply will be processed before the async
-  // reply, and everything will be confused.
-  //
-  // Allowing all async messages to unblock the renderer means more reentrancy
-  // there but gives correct ordering.
-  //
-  // We don't want reply messages to unblock however, as they will potentially
-  // end up on the wrong queue - see crbug.com/122443
-  if (!msg->is_reply())
-    msg->set_unblock(true);
-  if (msg->is_sync()) {
-    // Synchronous messages might be re-entrant, so we need to drop the lock.
-    ProxyAutoUnlock unlock;
-    return SendMessage(msg);
-  }
-  return SendMessage(msg);
-}
-
-PluginDispatcher::PluginDispatcher(PP_GetInterface_Func get_interface,
-                                   const PpapiPermissions& permissions,
-                                   bool incognito)
-    : Dispatcher(get_interface, permissions),
-      plugin_delegate_(NULL),
-      received_preferences_(false),
-      plugin_dispatcher_id_(0),
-      incognito_(incognito) {
-  sender_ = new Sender(weak_ptr_factory_.GetWeakPtr(),
-                       scoped_refptr<IPC::SyncMessageFilter>());
-  SetSerializationRules(
-      new PluginVarSerializationRules(weak_ptr_factory_.GetWeakPtr()));
-
-  if (!g_live_dispatchers)
-    g_live_dispatchers = new DispatcherSet;
-  g_live_dispatchers->insert(this);
-}
-
-PluginDispatcher::~PluginDispatcher() {
-  PluginGlobals::Get()->plugin_var_tracker()->DidDeleteDispatcher(this);
-
-  if (plugin_delegate_)
-    plugin_delegate_->Unregister(plugin_dispatcher_id_);
-
-  g_live_dispatchers->erase(this);
-  if (g_live_dispatchers->empty()) {
-    delete g_live_dispatchers;
-    g_live_dispatchers = NULL;
-  }
-}
-
-// static
-PluginDispatcher* PluginDispatcher::GetForInstance(PP_Instance instance) {
-  if (!g_instance_to_plugin_dispatcher)
-    return NULL;
-  InstanceToPluginDispatcherMap::iterator found =
-      g_instance_to_plugin_dispatcher->find(instance);
-  if (found == g_instance_to_plugin_dispatcher->end())
-    return NULL;
-  return found->second;
-}
-
-// static
-PluginDispatcher* PluginDispatcher::GetForResource(const Resource* resource) {
-  return GetForInstance(resource->pp_instance());
-}
-
-// static
-const void* PluginDispatcher::GetBrowserInterface(const char* interface_name) {
-  // CAUTION: This function is called directly from the plugin, but we *don't*
-  // lock the ProxyLock to avoid excessive locking from C++ wrappers.
-  return InterfaceList::GetInstance()->GetInterfaceForPPB(interface_name);
-}
-
-// static
-void PluginDispatcher::LogWithSource(PP_Instance instance,
-                                     PP_LogLevel level,
-                                     const std::string& source,
-                                     const std::string& value) {
-  if (!g_live_dispatchers || !g_instance_to_plugin_dispatcher)
-    return;
-
-  if (instance) {
-    InstanceToPluginDispatcherMap::iterator found =
-        g_instance_to_plugin_dispatcher->find(instance);
-    if (found != g_instance_to_plugin_dispatcher->end()) {
-      // Send just to this specific dispatcher.
-      found->second->Send(new PpapiHostMsg_LogWithSource(
-          instance, static_cast<int>(level), source, value));
-      return;
-    }
-  }
-
-  // Instance 0 or invalid, send to all dispatchers.
-  for (DispatcherSet::iterator i = g_live_dispatchers->begin();
-       i != g_live_dispatchers->end(); ++i) {
-    (*i)->Send(new PpapiHostMsg_LogWithSource(
-        instance, static_cast<int>(level), source, value));
-  }
-}
-
-const void* PluginDispatcher::GetPluginInterface(
-    const std::string& interface_name) {
-  InterfaceMap::iterator found = plugin_interfaces_.find(interface_name);
-  if (found == plugin_interfaces_.end()) {
-    const void* ret = local_get_interface()(interface_name.c_str());
-    plugin_interfaces_.insert(std::make_pair(interface_name, ret));
-    return ret;
-  }
-  return found->second;
-}
-
-bool PluginDispatcher::InitPluginWithChannel(
-    PluginDelegate* delegate,
-    base::ProcessId peer_pid,
-    const IPC::ChannelHandle& channel_handle,
-    bool is_client) {
-  if (!Dispatcher::InitWithChannel(
-          delegate, peer_pid, channel_handle, is_client,
-          base::SingleThreadTaskRunner::GetCurrentDefault()))
-    return false;
-  plugin_delegate_ = delegate;
-  plugin_dispatcher_id_ = plugin_delegate_->Register(this);
-
-  sender_ = new Sender(weak_ptr_factory_.GetWeakPtr(),
-                       channel()->CreateSyncMessageFilter());
-
-  // The message filter will intercept and process certain messages directly
-  // on the I/O thread.
-  channel()->AddFilter(
-      new PluginMessageFilter(
-          delegate->GetGloballySeenInstanceIDSet(),
-          PluginGlobals::Get()->resource_reply_thread_registrar()));
-  return true;
-}
-
-bool PluginDispatcher::IsPlugin() const {
-  return true;
-}
-
-bool PluginDispatcher::Send(IPC::Message* msg) {
-  return sender_->Send(msg);
-}
-
-bool PluginDispatcher::SendAndStayLocked(IPC::Message* msg) {
-  TRACE_EVENT2("ppapi_proxy", "PluginDispatcher::SendAndStayLocked", "Class",
-               IPC_MESSAGE_ID_CLASS(msg->type()), "Line",
-               IPC_MESSAGE_ID_LINE(msg->type()));
-  if (!msg->is_reply())
-    msg->set_unblock(true);
-  return sender_->SendMessage(msg);
-}
-
-bool PluginDispatcher::OnMessageReceived(const IPC::Message& msg) {
-  // We need to grab the proxy lock to ensure that we don't collide with the
-  // plugin making pepper calls on a different thread.
-  ProxyAutoLock lock;
-  TRACE_EVENT2("ppapi_proxy", "PluginDispatcher::OnMessageReceived", "Class",
-               IPC_MESSAGE_ID_CLASS(msg.type()), "Line",
-               IPC_MESSAGE_ID_LINE(msg.type()));
-
-  if (msg.routing_id() == MSG_ROUTING_CONTROL) {
-    // Handle some plugin-specific control messages.
-    bool handled = true;
-    IPC_BEGIN_MESSAGE_MAP(PluginDispatcher, msg)
-      IPC_MESSAGE_HANDLER(PpapiMsg_SupportsInterface, OnMsgSupportsInterface)
-      IPC_MESSAGE_HANDLER(PpapiMsg_SetPreferences, OnMsgSetPreferences)
-      IPC_MESSAGE_UNHANDLED(handled = false)
-    IPC_END_MESSAGE_MAP()
-    if (handled)
-      return true;
-  }
-  return Dispatcher::OnMessageReceived(msg);
-}
-
-void PluginDispatcher::OnChannelError() {
-  Dispatcher::OnChannelError();
-
-  // The renderer has crashed or exited. This channel and all instances
-  // associated with it are no longer valid.
-  ForceFreeAllInstances();
-  // TODO(brettw) free resources too!
-  delete this;
-}
-
-void PluginDispatcher::DidCreateInstance(PP_Instance instance) {
-  if (!g_instance_to_plugin_dispatcher)
-    g_instance_to_plugin_dispatcher = new InstanceToPluginDispatcherMap;
-  (*g_instance_to_plugin_dispatcher)[instance] = this;
-  instance_map_[instance] = std::make_unique<InstanceData>();
-}
-
-void PluginDispatcher::DidDestroyInstance(PP_Instance instance) {
-  instance_map_.erase(instance);
-
-  if (g_instance_to_plugin_dispatcher) {
-    InstanceToPluginDispatcherMap::iterator found =
-        g_instance_to_plugin_dispatcher->find(instance);
-    if (found != g_instance_to_plugin_dispatcher->end()) {
-      DCHECK(found->second == this);
-      g_instance_to_plugin_dispatcher->erase(found);
-    } else {
-      NOTREACHED();
-    }
-  }
-}
-
-InstanceData* PluginDispatcher::GetInstanceData(PP_Instance instance) {
-  auto it = instance_map_.find(instance);
-  if (it == instance_map_.end())
-    return nullptr;
-  return it->second.get();
-}
-
-thunk::PPB_Instance_API* PluginDispatcher::GetInstanceAPI() {
-  return static_cast<PPB_Instance_Proxy*>(
-      GetInterfaceProxy(API_ID_PPB_INSTANCE));
-}
-
-thunk::ResourceCreationAPI* PluginDispatcher::GetResourceCreationAPI() {
-  return static_cast<ResourceCreationProxy*>(
-      GetInterfaceProxy(API_ID_RESOURCE_CREATION));
-}
-
-void PluginDispatcher::ForceFreeAllInstances() {
-  if (!g_instance_to_plugin_dispatcher)
-    return;
-
-  // Iterating will remove each item from the map, so we need to make a copy
-  // to avoid things changing out from under is.
-  InstanceToPluginDispatcherMap temp_map = *g_instance_to_plugin_dispatcher;
-  for (InstanceToPluginDispatcherMap::iterator i = temp_map.begin();
-       i != temp_map.end(); ++i) {
-    if (i->second == this) {
-      // Synthesize an "instance destroyed" message, this will notify the
-      // plugin and also remove it from our list of tracked plugins.
-      PpapiMsg_PPPInstance_DidDestroy msg(API_ID_PPP_INSTANCE, i->first);
-      OnMessageReceived(msg);
-    }
-  }
-}
-
-void PluginDispatcher::OnMsgSupportsInterface(
-    const std::string& interface_name,
-    bool* result) {
-  *result = !!GetPluginInterface(interface_name);
-
-  // Do fallback for PPP_Instance. This is a hack here and if we have more
-  // cases like this it should be generalized. The PPP_Instance proxy always
-  // proxies the 1.1 interface, and then does fallback to 1.0 inside the
-  // plugin process (see PPP_Instance_Proxy). So here we return true for
-  // supporting the 1.1 interface if either 1.1 or 1.0 is supported.
-  if (!*result && interface_name == PPP_INSTANCE_INTERFACE)
-    *result = !!GetPluginInterface(PPP_INSTANCE_INTERFACE_1_0);
-}
-
-void PluginDispatcher::OnMsgSetPreferences(const Preferences& prefs) {
-  // The renderer may send us preferences more than once (currently this
-  // happens every time a new plugin instance is created). Since we don't have
-  // a way to signal to the plugin that the preferences have changed, changing
-  // the default fonts and such in the middle of a running plugin could be
-  // confusing to it. As a result, we never allow the preferences to be changed
-  // once they're set. The user will have to restart to get new font prefs
-  // propagated to plugins.
-  if (!received_preferences_) {
-    received_preferences_ = true;
-    preferences_ = prefs;
-  }
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/plugin_dispatcher.h b/proxy/plugin_dispatcher.h
deleted file mode 100644
index d37f0c0..0000000
--- a/proxy/plugin_dispatcher.h
+++ /dev/null
@@ -1,266 +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_PROXY_PLUGIN_DISPATCHER_H_
-#define PPAPI_PROXY_PLUGIN_DISPATCHER_H_
-
-#include <stdint.h>
-
-#include <set>
-#include <string>
-#include <unordered_map>
-
-#include "base/memory/ref_counted.h"
-#include "base/memory/weak_ptr.h"
-#include "base/process/process.h"
-#include "build/build_config.h"
-#include "ipc/ipc_sync_channel.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/ppb_console.h"
-#include "ppapi/proxy/dispatcher.h"
-#include "ppapi/proxy/message_handler.h"
-#include "ppapi/shared_impl/ppapi_preferences.h"
-#include "ppapi/shared_impl/ppb_view_shared.h"
-#include "ppapi/shared_impl/singleton_resource_id.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-
-namespace IPC {
-class SyncMessageFilter;
-}
-
-namespace ppapi {
-
-struct Preferences;
-class Resource;
-
-namespace thunk {
-class PPB_Instance_API;
-class ResourceCreationAPI;
-}
-
-namespace proxy {
-
-// Used to keep track of per-instance data.
-struct PPAPI_PROXY_EXPORT InstanceData {
-  InstanceData();
-  ~InstanceData();
-
-  ViewData view;
-
-  // When non-NULL, indicates the callback to execute when mouse lock is lost.
-  scoped_refptr<TrackedCallback> mouse_lock_callback;
-
-  // A map of singleton resources which are lazily created.
-  typedef std::map<SingletonResourceID, scoped_refptr<Resource>>
-      SingletonResourceMap;
-  SingletonResourceMap singleton_resources;
-
-  // Calls to |RequestSurroundingText()| are done by posted tasks. Track whether
-  // a) a task is pending, to avoid redundant calls, and b) whether we should
-  // actually call |RequestSurroundingText()|, to avoid stale calls (i.e.,
-  // calling when we shouldn't).
-  bool is_request_surrounding_text_pending;
-  bool should_do_request_surrounding_text;
-
-  // The message handler which should handle JavaScript->Plugin messages, if
-  // one has been registered, otherwise NULL.
-  std::unique_ptr<MessageHandler> message_handler;
-
-  // Flush info for PpapiCommandBufferProxy::OrderingBarrier().
-  struct PPAPI_PROXY_EXPORT FlushInfo {
-    FlushInfo();
-    ~FlushInfo();
-    bool flush_pending;
-    HostResource resource;
-    int32_t put_offset;
-  };
-  FlushInfo flush_info;
-};
-
-class PPAPI_PROXY_EXPORT LockedSender {
- public:
-  // Unlike |Send()|, this function continues to hold the Pepper proxy lock
-  // until we are finished sending |msg|, even if it is a synchronous message.
-  virtual bool SendAndStayLocked(IPC::Message* msg) = 0;
-
- protected:
-  virtual ~LockedSender() {}
-};
-
-class PPAPI_PROXY_EXPORT PluginDispatcher : public Dispatcher,
-                                            public LockedSender {
- public:
-  class PPAPI_PROXY_EXPORT PluginDelegate : public ProxyChannel::Delegate {
-   public:
-    // Returns the set used for globally uniquifying PP_Instances. This same
-    // set must be returned for all channels.
-    //
-    // DEREFERENCE ONLY ON THE I/O THREAD.
-    virtual std::set<PP_Instance>* GetGloballySeenInstanceIDSet() = 0;
-
-    // Registers the plugin dispatcher and returns an ID.
-    // Plugin dispatcher IDs will be used to dispatch messages from the browser.
-    // Each call to Register() has to be matched with a call to Unregister().
-    virtual uint32_t Register(PluginDispatcher* plugin_dispatcher) = 0;
-    virtual void Unregister(uint32_t plugin_dispatcher_id) = 0;
-  };
-
-  class Sender : public IPC::Sender,
-                 public base::RefCountedThreadSafe<PluginDispatcher::Sender> {
-   public:
-    Sender(base::WeakPtr<PluginDispatcher> plugin_dispatcher,
-           scoped_refptr<IPC::SyncMessageFilter> sync_filter);
-
-    Sender(const Sender&) = delete;
-    Sender& operator=(const Sender&) = delete;
-
-    ~Sender() override;
-
-    bool SendMessage(IPC::Message* msg);
-
-    // IPC::Sender
-    bool Send(IPC::Message* msg) override;
-
-   private:
-    base::WeakPtr<PluginDispatcher> plugin_dispatcher_;
-    scoped_refptr<IPC::SyncMessageFilter> sync_filter_;
-  };
-
-  // Constructor for the plugin side. The init and shutdown functions will be
-  // will be automatically called when requested by the renderer side. The
-  // module ID will be set upon receipt of the InitializeModule message.
-  //
-  // Note about permissions: On the plugin side, the dispatcher and the plugin
-  // run in the same address space (including in nacl). This means that the
-  // permissions here are subject to malicious modification and bypass, and
-  // an exploited or malicious plugin could send any IPC messages and just
-  // bypass the permissions. All permissions must be checked "for realz" in the
-  // host process when receiving messages. We check them on the plugin side
-  // primarily to keep honest plugins honest, especially with respect to
-  // dev interfaces that they "shouldn't" be using.
-  //
-  // You must call InitPluginWithChannel after the constructor.
-  PluginDispatcher(PP_GetInterface_Func get_interface,
-                   const PpapiPermissions& permissions,
-                   bool incognito);
-
-  PluginDispatcher(const PluginDispatcher&) = delete;
-  PluginDispatcher& operator=(const PluginDispatcher&) = delete;
-
-  virtual ~PluginDispatcher();
-
-  // The plugin side maintains a mapping from PP_Instance to Dispatcher so
-  // that we can send the messages to the right channel if there are multiple
-  // renderers sharing the same plugin. This mapping is maintained by
-  // DidCreateInstance/DidDestroyInstance.
-  static PluginDispatcher* GetForInstance(PP_Instance instance);
-
-  // Same as GetForInstance but retrieves the instance from the given resource
-  // object as a convenience. Returns NULL on failure.
-  static PluginDispatcher* GetForResource(const Resource* resource);
-
-  // Implements the GetInterface function for the plugin to call to retrieve
-  // a browser interface.
-  static const void* GetBrowserInterface(const char* interface_name);
-
-  // Logs the given log message to the given instance, or, if the instance is
-  // invalid, to all instances associated with all dispatchers. Used for
-  // global log messages.
-  static void LogWithSource(PP_Instance instance,
-                            PP_LogLevel level,
-                            const std::string& source,
-                            const std::string& value);
-
-  const void* GetPluginInterface(const std::string& interface_name);
-
-  // You must call this function before anything else. Returns true on success.
-  // The delegate pointer must outlive this class, ownership is not
-  // transferred.
-  bool InitPluginWithChannel(PluginDelegate* delegate,
-                             base::ProcessId peer_pid,
-                             const IPC::ChannelHandle& channel_handle,
-                             bool is_client);
-
-  // Dispatcher overrides.
-  bool IsPlugin() const override;
-  // Send the message to the renderer. If |msg| is a synchronous message, we
-  // will unlock the ProxyLock so that we can handle incoming messages from the
-  // renderer.
-  bool Send(IPC::Message* msg) override;
-
-  // Unlike |Send()|, this function continues to hold the Pepper proxy lock
-  // until we are finished sending |msg|, even if it is a synchronous message.
-  bool SendAndStayLocked(IPC::Message* msg) override;
-
-  // IPC::Listener implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-  void OnChannelError() override;
-
-  // Keeps track of which dispatcher to use for each instance, active instances
-  // and tracks associated data like the current size.
-  void DidCreateInstance(PP_Instance instance);
-  void DidDestroyInstance(PP_Instance instance);
-
-  // Gets the data for an existing instance, or NULL if the instance id doesn't
-  // correspond to a known instance.
-  InstanceData* GetInstanceData(PP_Instance instance);
-
-  // Returns the corresponding API. These are APIs not associated with a
-  // resource. Guaranteed non-NULL.
-  thunk::PPB_Instance_API* GetInstanceAPI();
-  thunk::ResourceCreationAPI* GetResourceCreationAPI();
-
-  // Returns the Preferences.
-  const Preferences& preferences() const { return preferences_; }
-
-  uint32_t plugin_dispatcher_id() const { return plugin_dispatcher_id_; }
-  bool incognito() const { return incognito_; }
-
-  scoped_refptr<Sender> sender() { return sender_; }
-
- private:
-  friend class PluginDispatcherTest;
-
-  // Notifies all live instances that they're now closed. This is used when
-  // a renderer crashes or some other error is received.
-  void ForceFreeAllInstances();
-
-  // IPC message handlers.
-  void OnMsgSupportsInterface(const std::string& interface_name, bool* result);
-  void OnMsgSetPreferences(const Preferences& prefs);
-
-  PluginDelegate* plugin_delegate_;
-
-  // Contains all the plugin interfaces we've queried. The mapped value will
-  // be the pointer to the interface pointer supplied by the plugin if it's
-  // supported, or NULL if it's not supported. This allows us to cache failures
-  // and not req-query if a plugin doesn't support the interface.
-  typedef std::unordered_map<std::string, const void*> InterfaceMap;
-  InterfaceMap plugin_interfaces_;
-
-  typedef std::unordered_map<PP_Instance, std::unique_ptr<InstanceData>>
-      InstanceDataMap;
-  InstanceDataMap instance_map_;
-
-  // The preferences sent from the host. We only want to set this once, which
-  // is what the received_preferences_ indicates. See OnMsgSetPreferences.
-  bool received_preferences_;
-  Preferences preferences_;
-
-  uint32_t plugin_dispatcher_id_;
-
-  // Set to true when the instances associated with this dispatcher are
-  // incognito mode.
-  bool incognito_;
-
-  scoped_refptr<Sender> sender_;
-
-  base::WeakPtrFactory<PluginDispatcher> weak_ptr_factory_{this};
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PLUGIN_DISPATCHER_H_
diff --git a/proxy/plugin_globals.cc b/proxy/plugin_globals.cc
deleted file mode 100644
index 3eda180..0000000
--- a/proxy/plugin_globals.cc
+++ /dev/null
@@ -1,228 +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/proxy/plugin_globals.h"
-
-#include <memory>
-
-#include "base/message_loop/message_pump_type.h"
-#include "base/task/single_thread_task_runner.h"
-#include "base/task/task_runner.h"
-#include "base/threading/thread.h"
-#include "ipc/ipc_message.h"
-#include "ipc/ipc_sender.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_message_filter.h"
-#include "ppapi/proxy/plugin_proxy_delegate.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/ppb_message_loop_proxy.h"
-#include "ppapi/proxy/resource_reply_thread_registrar.h"
-#include "ppapi/proxy/udp_socket_filter.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/thunk/enter.h"
-
-namespace ppapi {
-namespace proxy {
-
-// It performs necessary locking/unlocking of the proxy lock, and forwards all
-// messages to the underlying sender.
-class PluginGlobals::BrowserSender : public IPC::Sender {
- public:
-  // |underlying_sender| must outlive this object.
-  explicit BrowserSender(IPC::Sender* underlying_sender)
-      : underlying_sender_(underlying_sender) {
-  }
-
-  BrowserSender(const BrowserSender&) = delete;
-  BrowserSender& operator=(const BrowserSender&) = delete;
-
-  ~BrowserSender() override {}
-
-  // IPC::Sender implementation.
-  bool Send(IPC::Message* msg) override {
-    if (msg->is_sync()) {
-      // Synchronous messages might be re-entrant, so we need to drop the lock.
-      ProxyAutoUnlock unlock;
-      return underlying_sender_->Send(msg);
-    }
-
-    return underlying_sender_->Send(msg);
-  }
-
- private:
-  // Non-owning pointer.
-  IPC::Sender* underlying_sender_;
-};
-
-PluginGlobals* PluginGlobals::plugin_globals_ = NULL;
-
-PluginGlobals::PluginGlobals(
-    const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner)
-    : ppapi::PpapiGlobals(),
-      plugin_proxy_delegate_(NULL),
-      callback_tracker_(new CallbackTracker),
-      ipc_task_runner_(ipc_task_runner),
-      resource_reply_thread_registrar_(
-          new ResourceReplyThreadRegistrar(GetMainThreadMessageLoop())),
-      udp_socket_filter_(new UDPSocketFilter()) {
-  DCHECK(!plugin_globals_);
-  plugin_globals_ = this;
-
-  // ResourceTracker asserts that we have the lock when we add new resources,
-  // so we lock when creating the MessageLoopResource even though there is no
-  // chance of race conditions.
-  ProxyAutoLock lock;
-  loop_for_main_thread_ =
-      new MessageLoopResource(MessageLoopResource::ForMainThread());
-}
-
-PluginGlobals::PluginGlobals(
-    PerThreadForTest per_thread_for_test,
-    const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner)
-    : ppapi::PpapiGlobals(per_thread_for_test),
-      plugin_proxy_delegate_(NULL),
-      callback_tracker_(new CallbackTracker),
-      ipc_task_runner_(ipc_task_runner),
-      resource_reply_thread_registrar_(
-          new ResourceReplyThreadRegistrar(GetMainThreadMessageLoop())) {
-  DCHECK(!plugin_globals_);
-}
-
-PluginGlobals::~PluginGlobals() {
-  DCHECK(plugin_globals_ == this || !plugin_globals_);
-  {
-    ProxyAutoLock lock;
-    // Release the main-thread message loop. We should have the last reference
-    // count, so this will delete the MessageLoop resource. We do this before
-    // we clear plugin_globals_, because the Resource destructor tries to access
-    // this PluginGlobals.
-    DCHECK(!loop_for_main_thread_.get() || loop_for_main_thread_->HasOneRef());
-    loop_for_main_thread_.reset();
-  }
-  plugin_globals_ = NULL;
-}
-
-ResourceTracker* PluginGlobals::GetResourceTracker() {
-  return &plugin_resource_tracker_;
-}
-
-VarTracker* PluginGlobals::GetVarTracker() {
-  return &plugin_var_tracker_;
-}
-
-CallbackTracker* PluginGlobals::GetCallbackTrackerForInstance(
-    PP_Instance instance) {
-  // In the plugin process, the callback tracker is always the same, regardless
-  // of the instance.
-  return callback_tracker_.get();
-}
-
-thunk::PPB_Instance_API* PluginGlobals::GetInstanceAPI(PP_Instance instance) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (dispatcher)
-    return dispatcher->GetInstanceAPI();
-  return NULL;
-}
-
-thunk::ResourceCreationAPI* PluginGlobals::GetResourceCreationAPI(
-    PP_Instance instance) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (dispatcher)
-    return dispatcher->GetResourceCreationAPI();
-  return NULL;
-}
-
-PP_Module PluginGlobals::GetModuleForInstance(PP_Instance instance) {
-  // Currently proxied plugins don't use the PP_Module for anything useful.
-  return 0;
-}
-
-void PluginGlobals::LogWithSource(PP_Instance instance,
-                                  PP_LogLevel level,
-                                  const std::string& source,
-                                  const std::string& value) {
-  const std::string& fixed_up_source = source.empty() ? plugin_name_ : source;
-  PluginDispatcher::LogWithSource(instance, level, fixed_up_source, value);
-}
-
-void PluginGlobals::BroadcastLogWithSource(PP_Module /* module */,
-                                           PP_LogLevel level,
-                                           const std::string& source,
-                                           const std::string& value) {
-  // Since we have only one module in a plugin process, broadcast is always
-  // the same as "send to everybody" which is what the dispatcher implements
-  // for the "instance = 0" case.
-  LogWithSource(0, level, source, value);
-}
-
-MessageLoopShared* PluginGlobals::GetCurrentMessageLoop() {
-  return MessageLoopResource::GetCurrent();
-}
-
-base::TaskRunner* PluginGlobals::GetFileTaskRunner() {
-  if (!file_thread_.get()) {
-    file_thread_ = std::make_unique<base::Thread>("Plugin::File");
-    base::Thread::Options options;
-    options.message_pump_type = base::MessagePumpType::IO;
-    file_thread_->StartWithOptions(std::move(options));
-  }
-  return file_thread_->task_runner().get();
-}
-
-IPC::Sender* PluginGlobals::GetBrowserSender() {
-  // CAUTION: This function is called without the ProxyLock. See also
-  // InterfaceList::GetInterfaceForPPB.
-  //
-  // See also SetPluginProxyDelegate. That initializes browser_sender_ before
-  // the plugin can start threads, and it may be cleared after the
-  // plugin has torn down threads. So this pointer is expected to remain valid
-  // during the lifetime of the plugin.
-  return browser_sender_.get();
-}
-
-std::string PluginGlobals::GetUILanguage() {
-  return plugin_proxy_delegate_->GetUILanguage();
-}
-
-void PluginGlobals::SetActiveURL(const std::string& url) {
-  plugin_proxy_delegate_->SetActiveURL(url);
-}
-
-PP_Resource PluginGlobals::CreateBrowserFont(
-    Connection connection,
-    PP_Instance instance,
-    const PP_BrowserFont_Trusted_Description& desc,
-    const ppapi::Preferences& prefs) {
-  return plugin_proxy_delegate_->CreateBrowserFont(
-      connection, instance, desc, prefs);
-}
-
-void PluginGlobals::SetPluginProxyDelegate(PluginProxyDelegate* delegate) {
-  DCHECK(delegate && !plugin_proxy_delegate_);
-  plugin_proxy_delegate_ = delegate;
-  browser_sender_ = std::make_unique<BrowserSender>(
-      plugin_proxy_delegate_->GetBrowserSender());
-}
-
-void PluginGlobals::ResetPluginProxyDelegate() {
-  DCHECK(plugin_proxy_delegate_);
-  plugin_proxy_delegate_ = NULL;
-  browser_sender_.reset();
-}
-
-MessageLoopResource* PluginGlobals::loop_for_main_thread() {
-  return loop_for_main_thread_.get();
-}
-
-void PluginGlobals::RegisterResourceMessageFilters(
-    ppapi::proxy::PluginMessageFilter* plugin_filter) {
-  plugin_filter->AddResourceMessageFilter(udp_socket_filter_.get());
-}
-
-bool PluginGlobals::IsPluginGlobals() const {
-  return true;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/plugin_globals.h b/proxy/plugin_globals.h
deleted file mode 100644
index a0d99c8..0000000
--- a/proxy/plugin_globals.h
+++ /dev/null
@@ -1,197 +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_PROXY_PLUGIN_GLOBALS_H_
-#define PPAPI_PROXY_PLUGIN_GLOBALS_H_
-
-#include <memory>
-#include <string>
-
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_refptr.h"
-#include "base/threading/thread_local_storage.h"
-#include "ppapi/proxy/connection.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/plugin_var_tracker.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/callback_tracker.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-
-namespace base {
-class SingleThreadTaskRunner;
-class TaskRunner;
-class Thread;
-}
-
-namespace IPC {
-class Sender;
-}
-
-struct PP_BrowserFont_Trusted_Description;
-
-namespace ppapi {
-
-struct Preferences;
-
-namespace proxy {
-
-class MessageLoopResource;
-class PluginMessageFilter;
-class PluginProxyDelegate;
-class ResourceReplyThreadRegistrar;
-class UDPSocketFilter;
-
-class PPAPI_PROXY_EXPORT PluginGlobals : public PpapiGlobals {
- public:
-  explicit PluginGlobals(
-      const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner);
-  PluginGlobals(
-      PpapiGlobals::PerThreadForTest,
-      const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner);
-
-  PluginGlobals(const PluginGlobals&) = delete;
-  PluginGlobals& operator=(const PluginGlobals&) = delete;
-
-  ~PluginGlobals() override;
-
-  // Getter for the global singleton. Generally, you should use
-  // PpapiGlobals::Get() when possible. Use this only when you need some
-  // plugin-specific functionality.
-  inline static PluginGlobals* Get() {
-    // Explicitly crash if this is the wrong process type, we want to get
-    // crash reports.
-    CHECK(PpapiGlobals::Get()->IsPluginGlobals());
-    return static_cast<PluginGlobals*>(PpapiGlobals::Get());
-  }
-
-  // PpapiGlobals implementation.
-  ResourceTracker* GetResourceTracker() override;
-  VarTracker* GetVarTracker() override;
-  CallbackTracker* GetCallbackTrackerForInstance(PP_Instance instance) override;
-  thunk::PPB_Instance_API* GetInstanceAPI(PP_Instance instance) override;
-  thunk::ResourceCreationAPI* GetResourceCreationAPI(
-      PP_Instance instance) override;
-  PP_Module GetModuleForInstance(PP_Instance instance) override;
-  void LogWithSource(PP_Instance instance,
-                     PP_LogLevel level,
-                     const std::string& source,
-                     const std::string& value) override;
-  void BroadcastLogWithSource(PP_Module module,
-                              PP_LogLevel level,
-                              const std::string& source,
-                              const std::string& value) override;
-  MessageLoopShared* GetCurrentMessageLoop() override;
-  base::TaskRunner* GetFileTaskRunner() override;
-
-  // Returns the channel for sending to the browser.
-  IPC::Sender* GetBrowserSender();
-
-  base::SingleThreadTaskRunner* ipc_task_runner() {
-    return ipc_task_runner_.get();
-  }
-
-  // Returns the language code of the current UI language.
-  std::string GetUILanguage();
-
-  // Sets the active url which is reported by breakpad.
-  void SetActiveURL(const std::string& url);
-
-  PP_Resource CreateBrowserFont(
-      Connection connection,
-      PP_Instance instance,
-      const PP_BrowserFont_Trusted_Description& desc,
-      const Preferences& prefs);
-
-  // Getters for the plugin-specific versions.
-  PluginResourceTracker* plugin_resource_tracker() {
-    return &plugin_resource_tracker_;
-  }
-  PluginVarTracker* plugin_var_tracker() {
-    return &plugin_var_tracker_;
-  }
-
-  // The embedder should call SetPluginProxyDelegate during startup.
-  void SetPluginProxyDelegate(PluginProxyDelegate* d);
-  // The embedder may choose to call ResetPluginProxyDelegate during shutdown.
-  // After that point, it's unsafe to call most members of PluginGlobals,
-  // and GetBrowserSender will return NULL.
-  void ResetPluginProxyDelegate();
-
-  // Returns the TLS slot that holds the message loop TLS.
-  //
-  // If we end up needing more TLS storage for more stuff, we should probably
-  // have a struct in here for the different items.
-  base::ThreadLocalStorage::Slot* msg_loop_slot() {
-    return msg_loop_slot_.get();
-  }
-
-  // Sets the message loop slot, takes ownership of the given heap-alloated
-  // pointer.
-  void set_msg_loop_slot(base::ThreadLocalStorage::Slot* slot) {
-    msg_loop_slot_.reset(slot);
-  }
-
-  // Return the special Resource that represents the MessageLoop for the main
-  // thread. This Resource is not associated with any instance, and lives as
-  // long as the plugin.
-  MessageLoopResource* loop_for_main_thread();
-
-  // The embedder should call this function when the name of the plugin module
-  // is known. This will be used for error logging.
-  void set_plugin_name(const std::string& name) { plugin_name_ = name; }
-
-  ResourceReplyThreadRegistrar* resource_reply_thread_registrar() {
-    return resource_reply_thread_registrar_.get();
-  }
-
-  UDPSocketFilter* udp_socket_filter() const {
-    return udp_socket_filter_.get();
-  }
-  // Add any necessary ResourceMessageFilters to the PluginMessageFilter so
-  // that they can receive and handle appropriate messages on the IO thread.
-  void RegisterResourceMessageFilters(
-      ppapi::proxy::PluginMessageFilter* plugin_filter);
-
- private:
-  class BrowserSender;
-
-  // PpapiGlobals overrides.
-  bool IsPluginGlobals() const override;
-
-  static PluginGlobals* plugin_globals_;
-
-  PluginProxyDelegate* plugin_proxy_delegate_;
-  PluginResourceTracker plugin_resource_tracker_;
-  PluginVarTracker plugin_var_tracker_;
-  scoped_refptr<CallbackTracker> callback_tracker_;
-
-  std::unique_ptr<base::ThreadLocalStorage::Slot> msg_loop_slot_;
-  // Note that loop_for_main_thread's constructor sets msg_loop_slot_, so it
-  // must be initialized after msg_loop_slot_ (hence the order here).
-  scoped_refptr<MessageLoopResource> loop_for_main_thread_;
-
-  // Name of the plugin used for error logging. This will be empty until
-  // set_plugin_name is called.
-  std::string plugin_name_;
-
-  std::unique_ptr<BrowserSender> browser_sender_;
-
-  scoped_refptr<base::SingleThreadTaskRunner> ipc_task_runner_;
-
-  // Thread for performing potentially blocking file operations. It's created
-  // lazily, since it might not be needed.
-  std::unique_ptr<base::Thread> file_thread_;
-
-  scoped_refptr<ResourceReplyThreadRegistrar> resource_reply_thread_registrar_;
-
-  scoped_refptr<UDPSocketFilter> udp_socket_filter_;
-
-  // Member variables should appear before the WeakPtrFactory, see weak_ptr.h.
-  base::WeakPtrFactory<PluginGlobals> weak_factory_{this};
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif   // PPAPI_PROXY_PLUGIN_GLOBALS_H_
diff --git a/proxy/plugin_message_filter.cc b/proxy/plugin_message_filter.cc
deleted file mode 100644
index 5f8fae2..0000000
--- a/proxy/plugin_message_filter.cc
+++ /dev/null
@@ -1,120 +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/proxy/plugin_message_filter.h"
-
-#include "base/functional/bind.h"
-#include "base/location.h"
-#include "base/logging.h"
-#include "base/task/single_thread_task_runner.h"
-#include "ipc/ipc_channel.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/resource_message_params.h"
-#include "ppapi/proxy/resource_reply_thread_registrar.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-
-namespace ppapi {
-namespace proxy {
-
-PluginMessageFilter::PluginMessageFilter(
-    std::set<PP_Instance>* seen_instance_ids,
-    scoped_refptr<ResourceReplyThreadRegistrar> registrar)
-    : seen_instance_ids_(seen_instance_ids),
-      resource_reply_thread_registrar_(registrar),
-      sender_(NULL) {
-}
-
-PluginMessageFilter::~PluginMessageFilter() {
-}
-
-void PluginMessageFilter::OnFilterAdded(IPC::Channel* channel) {
-  sender_ = channel;
-}
-
-void PluginMessageFilter::OnFilterRemoved() {
-  sender_ = NULL;
-}
-
-bool PluginMessageFilter::OnMessageReceived(const IPC::Message& message) {
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PluginMessageFilter, message)
-    IPC_MESSAGE_HANDLER(PpapiMsg_ReserveInstanceId, OnMsgReserveInstanceId)
-    IPC_MESSAGE_HANDLER(PpapiPluginMsg_ResourceReply, OnMsgResourceReply)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-bool PluginMessageFilter::Send(IPC::Message* msg) {
-  if (sender_)
-    return sender_->Send(msg);
-  delete msg;
-  return false;
-}
-
-void PluginMessageFilter::AddResourceMessageFilter(
-    const scoped_refptr<ResourceMessageFilter>& filter) {
-  resource_filters_.push_back(filter);
-}
-
-// static
-void PluginMessageFilter::DispatchResourceReplyForTest(
-    const ResourceMessageReplyParams& reply_params,
-    const IPC::Message& nested_msg) {
-  DispatchResourceReply(reply_params, nested_msg);
-}
-
-void PluginMessageFilter::OnMsgReserveInstanceId(PP_Instance instance,
-                                                 bool* usable) {
-  // If |seen_instance_ids_| is set to NULL, we are not supposed to see this
-  // message.
-  CHECK(seen_instance_ids_);
-  // See the message definition for how this works.
-  if (seen_instance_ids_->find(instance) != seen_instance_ids_->end()) {
-    // Instance ID already seen, reject it.
-    *usable = false;
-    return;
-  }
-
-  // This instance ID is new so we can return that it's usable and mark it as
-  // used for future reference.
-  seen_instance_ids_->insert(instance);
-  *usable = true;
-}
-
-void PluginMessageFilter::OnMsgResourceReply(
-    const ResourceMessageReplyParams& reply_params,
-    const IPC::Message& nested_msg) {
-  for (const auto& filter_ptr : resource_filters_) {
-    if (filter_ptr->OnResourceReplyReceived(reply_params, nested_msg))
-      return;
-  }
-  scoped_refptr<base::SingleThreadTaskRunner> target =
-      resource_reply_thread_registrar_->GetTargetThread(reply_params,
-                                                        nested_msg);
-  target->PostTask(FROM_HERE, base::BindOnce(&DispatchResourceReply,
-                                             reply_params, nested_msg));
-}
-
-// static
-void PluginMessageFilter::DispatchResourceReply(
-    const ResourceMessageReplyParams& reply_params,
-    const IPC::Message& nested_msg) {
-  ProxyAutoLock lock;
-  Resource* resource = PpapiGlobals::Get()->GetResourceTracker()->GetResource(
-      reply_params.pp_resource());
-  if (!resource) {
-    DVLOG_IF(1, reply_params.sequence() != 0)
-        << "Pepper resource reply message received but the resource doesn't "
-           "exist (probably has been destroyed).";
-    return;
-  }
-  resource->OnReplyReceived(reply_params, nested_msg);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/plugin_message_filter.h b/proxy/plugin_message_filter.h
deleted file mode 100644
index ef5eb65..0000000
--- a/proxy/plugin_message_filter.h
+++ /dev/null
@@ -1,90 +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_PROXY_PLUGIN_MESSAGE_FILTER_H_
-#define PPAPI_PROXY_PLUGIN_MESSAGE_FILTER_H_
-
-#include <set>
-#include <vector>
-
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_refptr.h"
-#include "ipc/ipc_sender.h"
-#include "ipc/message_filter.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/proxy/resource_message_filter.h"
-
-namespace ppapi {
-namespace proxy {
-
-class ResourceMessageReplyParams;
-class ResourceReplyThreadRegistrar;
-
-// Listens for messages on the I/O thread of the plugin and handles some of
-// them to avoid needing to block on the plugin.
-//
-// There is one instance of this class for each renderer channel (same as for
-// the PluginDispatchers).
-class PPAPI_PROXY_EXPORT PluginMessageFilter : public IPC::MessageFilter,
-                                               public IPC::Sender {
- public:
-  // |seen_instance_ids| is a pointer to a set that will be used to uniquify
-  // PP_Instances across all renderer channels. The same pointer should be
-  // passed to each MessageFilter to ensure uniqueness, and the value should
-  // outlive this class. It could be NULL if this filter is for a browser
-  // channel.
-  // |thread_registrar| is used to look up handling threads for resource
-  // reply messages. It shouldn't be NULL.
-  PluginMessageFilter(
-      std::set<PP_Instance>* seen_instance_ids,
-      scoped_refptr<ResourceReplyThreadRegistrar> thread_registrar);
-  ~PluginMessageFilter() override;
-
-  // MessageFilter implementation.
-  void OnFilterAdded(IPC::Channel* channel) override;
-  void OnFilterRemoved() override;
-  bool OnMessageReceived(const IPC::Message& message) override;
-
-  // IPC::Sender implementation.
-  bool Send(IPC::Message* msg) override;
-
-  void AddResourceMessageFilter(
-      const scoped_refptr<ResourceMessageFilter>& filter);
-
-  // Simulates an incoming resource reply that is handled on the calling thread.
-  // For testing only.
-  static void DispatchResourceReplyForTest(
-      const ResourceMessageReplyParams& reply_params,
-      const IPC::Message& nested_msg);
-
- private:
-  void OnMsgReserveInstanceId(PP_Instance instance, bool* usable);
-  void OnMsgResourceReply(const ResourceMessageReplyParams& reply_params,
-                          const IPC::Message& nested_msg);
-
-  // Dispatches the given resource reply to the appropriate resource in the
-  // plugin process.
-  static void DispatchResourceReply(
-      const ResourceMessageReplyParams& reply_params,
-      const IPC::Message& nested_msg);
-
-  // All instance IDs ever queried by any renderer on this plugin. This is used
-  // to make sure that new instance IDs are unique. This is a non-owning
-  // pointer. It is managed by PluginDispatcher::PluginDelegate.
-  std::set<PP_Instance>* seen_instance_ids_;
-
-  scoped_refptr<ResourceReplyThreadRegistrar> resource_reply_thread_registrar_;
-
-  std::vector<scoped_refptr<ResourceMessageFilter>> resource_filters_;
-
-  // The IPC sender to the renderer. May be NULL if we're not currently
-  // attached as a filter.
-  IPC::Sender* sender_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PLUGIN_MESSAGE_FILTER_H_
diff --git a/proxy/plugin_proxy_delegate.h b/proxy/plugin_proxy_delegate.h
deleted file mode 100644
index dc4cce7..0000000
--- a/proxy/plugin_proxy_delegate.h
+++ /dev/null
@@ -1,45 +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_PROXY_PLUGIN_PROXY_DELEGATE_H_
-#define PPAPI_PROXY_PLUGIN_PROXY_DELEGATE_H_
-
-#include <string>
-
-namespace IPC {
-class Sender;
-}
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT PluginProxyDelegate {
- public:
-  virtual ~PluginProxyDelegate() {}
-
-  // Returns the channel for sending to the browser.
-  // Note: The returned sender must be thread-safe. It might be used while the
-  // proxy lock is not acquired. Please see the implementation of
-  // PluginGlobals::BrowserSender.
-  virtual IPC::Sender* GetBrowserSender() = 0;
-
-  // Returns the language code of the current UI language.
-  virtual std::string GetUILanguage() = 0;
-
-  // Sets the active url which is reported by breakpad.
-  virtual void SetActiveURL(const std::string& url) = 0;
-
-  // Validates the font description, and uses it to create a
-  // BrowserFontResource_Trusted resource.
-  virtual PP_Resource CreateBrowserFont(
-      Connection connection,
-      PP_Instance instance,
-      const PP_BrowserFont_Trusted_Description& desc,
-      const Preferences& prefs) = 0;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PLUGIN_PROXY_DELEGATE_H_
diff --git a/proxy/plugin_resource.cc b/proxy/plugin_resource.cc
deleted file mode 100644
index 813f15d..0000000
--- a/proxy/plugin_resource.cc
+++ /dev/null
@@ -1,175 +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/proxy/plugin_resource.h"
-
-#include <limits>
-
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-
-namespace ppapi {
-namespace proxy {
-
-void SafeRunCallback(scoped_refptr<TrackedCallback>* callback, int32_t error) {
-  if (TrackedCallback::IsPending(*callback)) {
-    scoped_refptr<TrackedCallback> temp;
-    callback->swap(temp);
-    temp->Run(error);
-  }
-}
-
-PluginResource::PluginResource(Connection connection, PP_Instance instance)
-    : Resource(OBJECT_IS_PROXY, instance),
-      connection_(connection),
-      next_sequence_number_(1),
-      sent_create_to_browser_(false),
-      sent_create_to_renderer_(false),
-      resource_reply_thread_registrar_(
-          PpapiGlobals::Get()->IsPluginGlobals() ?
-              PluginGlobals::Get()->resource_reply_thread_registrar() : NULL) {
-}
-
-PluginResource::~PluginResource() {
-  if (sent_create_to_browser_) {
-    connection_.browser_sender()->Send(
-        new PpapiHostMsg_ResourceDestroyed(pp_resource()));
-  }
-  if (sent_create_to_renderer_) {
-    connection_.GetRendererSender()->Send(
-        new PpapiHostMsg_ResourceDestroyed(pp_resource()));
-  }
-
-  if (resource_reply_thread_registrar_.get())
-    resource_reply_thread_registrar_->Unregister(pp_resource());
-}
-
-void PluginResource::OnReplyReceived(
-    const proxy::ResourceMessageReplyParams& params,
-    const IPC::Message& msg) {
-  TRACE_EVENT2("ppapi_proxy", "PluginResource::OnReplyReceived", "Class",
-               IPC_MESSAGE_ID_CLASS(msg.type()), "Line",
-               IPC_MESSAGE_ID_LINE(msg.type()));
-  // Grab the callback for the reply sequence number and run it with |msg|.
-  CallbackMap::iterator it = callbacks_.find(params.sequence());
-  if (it == callbacks_.end()) {
-    DCHECK(false) << "Callback does not exist for an expected sequence number.";
-  } else {
-    std::unique_ptr<PluginResourceCallbackBase> callback =
-        std::move(it->second);
-    callbacks_.erase(it);
-    callback->Run(params, msg);
-  }
-}
-
-void PluginResource::NotifyLastPluginRefWasDeleted() {
-  Resource::NotifyLastPluginRefWasDeleted();
-
-  // The callbacks may hold referrences to this object. Normally, we will get
-  // reply messages from the host side and remove them. However, it is possible
-  // that some replies from the host never arrive, e.g., the corresponding
-  // renderer crashes. In that case, we have to clean up the callbacks,
-  // otherwise this object will live forever.
-  callbacks_.clear();
-}
-
-void PluginResource::NotifyInstanceWasDeleted() {
-  Resource::NotifyInstanceWasDeleted();
-
-  // Please see comments in NotifyLastPluginRefWasDeleted() about why we must
-  // clean up the callbacks.
-  // It is possible that NotifyLastPluginRefWasDeleted() is never called for a
-  // resource. For example, those singleton-style resources such as
-  // GamepadResource never expose references to the plugin and thus won't
-  // receive a NotifyLastPluginRefWasDeleted() call. For those resources, we
-  // need to clean up callbacks when the instance goes away.
-  callbacks_.clear();
-}
-
-void PluginResource::SendCreate(Destination dest, const IPC::Message& msg) {
-  TRACE_EVENT2("ppapi_proxy", "PluginResource::SendCreate", "Class",
-               IPC_MESSAGE_ID_CLASS(msg.type()), "Line",
-               IPC_MESSAGE_ID_LINE(msg.type()));
-  if (dest == RENDERER) {
-    DCHECK(!sent_create_to_renderer_);
-    sent_create_to_renderer_ = true;
-  } else {
-    DCHECK(!sent_create_to_browser_);
-    sent_create_to_browser_ = true;
-  }
-  ResourceMessageCallParams params(pp_resource(), GetNextSequence());
-  GetSender(dest)->Send(
-      new PpapiHostMsg_ResourceCreated(params, pp_instance(), msg));
-}
-
-void PluginResource::AttachToPendingHost(Destination dest,
-                                         int pending_host_id) {
-  // Connecting to a pending host is a replacement for "create".
-  if (dest == RENDERER) {
-    DCHECK(!sent_create_to_renderer_);
-    sent_create_to_renderer_ = true;
-  } else {
-    DCHECK(!sent_create_to_browser_);
-    sent_create_to_browser_ = true;
-  }
-  GetSender(dest)->Send(
-      new PpapiHostMsg_AttachToPendingHost(pp_resource(), pending_host_id));
-}
-
-void PluginResource::Post(Destination dest, const IPC::Message& msg) {
-  TRACE_EVENT2("ppapi_proxy", "PluginResource::Post", "Class",
-               IPC_MESSAGE_ID_CLASS(msg.type()), "Line",
-               IPC_MESSAGE_ID_LINE(msg.type()));
-  ResourceMessageCallParams params(pp_resource(), GetNextSequence());
-  SendResourceCall(dest, params, msg);
-}
-
-bool PluginResource::SendResourceCall(
-    Destination dest,
-    const ResourceMessageCallParams& call_params,
-    const IPC::Message& nested_msg) {
-  // For in-process plugins, we need to send the routing ID with the request.
-  // The browser then uses that routing ID when sending the reply so it will be
-  // routed back to the correct RenderFrameImpl.
-  if (dest == BROWSER && connection_.in_process()) {
-    return GetSender(dest)->Send(new PpapiHostMsg_InProcessResourceCall(
-        connection_.browser_sender_routing_id(), call_params, nested_msg));
-  } else {
-    return GetSender(dest)->Send(
-        new PpapiHostMsg_ResourceCall(call_params, nested_msg));
-  }
-}
-
-int32_t PluginResource::GenericSyncCall(
-    Destination dest,
-    const IPC::Message& msg,
-    IPC::Message* reply,
-    ResourceMessageReplyParams* reply_params) {
-  TRACE_EVENT2("ppapi_proxy", "PluginResource::GenericSyncCall", "Class",
-               IPC_MESSAGE_ID_CLASS(msg.type()), "Line",
-               IPC_MESSAGE_ID_LINE(msg.type()));
-  ResourceMessageCallParams params(pp_resource(), GetNextSequence());
-  params.set_has_callback();
-  bool success = GetSender(dest)->Send(new PpapiHostMsg_ResourceSyncCall(
-      params, msg, reply_params, reply));
-  if (success)
-    return reply_params->result();
-  return PP_ERROR_FAILED;
-}
-
-int32_t PluginResource::GetNextSequence() {
-  // Return the value with wraparound, making sure we don't make a sequence
-  // number with a 0 ID. Note that signed wraparound is undefined in C++ so we
-  // manually check.
-  int32_t ret = next_sequence_number_;
-  if (next_sequence_number_ == std::numeric_limits<int32_t>::max())
-    next_sequence_number_ = 1;  // Skip 0 which is invalid.
-  else
-    next_sequence_number_++;
-  return ret;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/plugin_resource.h b/proxy/plugin_resource.h
deleted file mode 100644
index 2369200..0000000
--- a/proxy/plugin_resource.h
+++ /dev/null
@@ -1,294 +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_PROXY_PLUGIN_RESOURCE_H_
-#define PPAPI_PROXY_PLUGIN_RESOURCE_H_
-
-#include <stdint.h>
-
-#include <map>
-
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_refptr.h"
-#include "ipc/ipc_message.h"
-#include "ipc/ipc_sender.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/connection.h"
-#include "ppapi/proxy/plugin_resource_callback.h"
-#include "ppapi/proxy/ppapi_message_utils.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/proxy/resource_message_params.h"
-#include "ppapi/proxy/resource_reply_thread_registrar.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-namespace ppapi {
-namespace proxy {
-
-// A "safe" way to run callbacks, doing nothing if they are not
-// pending (active).
-void SafeRunCallback(scoped_refptr<TrackedCallback>* callback, int32_t error);
-
-class PPAPI_PROXY_EXPORT PluginResource : public Resource {
- public:
-  enum Destination {
-    RENDERER = 0,
-    BROWSER = 1
-  };
-
-  PluginResource(Connection connection, PP_Instance instance);
-
-  PluginResource(const PluginResource&) = delete;
-  PluginResource& operator=(const PluginResource&) = delete;
-
-  ~PluginResource() override;
-
-  // Returns true if we've previously sent a create message to the browser
-  // or renderer. Generally resources will use these to tell if they should
-  // lazily send create messages.
-  bool sent_create_to_browser() const { return sent_create_to_browser_; }
-  bool sent_create_to_renderer() const { return sent_create_to_renderer_; }
-
-  // This handles a reply to a resource call. It works by looking up the
-  // callback that was registered when CallBrowser/CallRenderer was called
-  // and calling it with |params| and |msg|.
-  void OnReplyReceived(const proxy::ResourceMessageReplyParams& params,
-                       const IPC::Message& msg) override;
-
-  // Resource overrides.
-  // Note: Subclasses shouldn't override these methods directly. Instead, they
-  // should implement LastPluginRefWasDeleted() or InstanceWasDeleted() to get
-  // notified.
-  void NotifyLastPluginRefWasDeleted() override;
-  void NotifyInstanceWasDeleted() override;
-
-  // Sends a create message to the browser or renderer for the current resource.
-  void SendCreate(Destination dest, const IPC::Message& msg);
-
-  // When the host returnes a resource to the plugin, it will create a pending
-  // ResourceHost and send an ID back to the plugin that identifies the pending
-  // object. The plugin uses this function to connect the plugin resource with
-  // the pending host resource. See also PpapiHostMsg_AttachToPendingHost. This
-  // is in lieu of sending a create message.
-  void AttachToPendingHost(Destination dest, int pending_host_id);
-
-  // Sends the given IPC message as a resource request to the host
-  // corresponding to this resource object and does not expect a reply.
-  void Post(Destination dest, const IPC::Message& msg);
-
-  // Like Post() but expects a response. |callback| is a |base::OnceCallback|
-  // that will be run when a reply message with a sequence number matching that
-  // of the call is received. |ReplyMsgClass| is the type of the reply message
-  // that is expected. An example of usage:
-  //
-  // Call<PpapiPluginMsg_MyResourceType_MyReplyMessage>(
-  //     BROWSER,
-  //     PpapiHostMsg_MyResourceType_MyRequestMessage(),
-  //     base::BindOnce(&MyPluginResource::ReplyHandler,
-  //                    base::Unretained(this)));
-  //
-  // If a reply message to this call is received whose type does not match
-  // |ReplyMsgClass| (for example, in the case of an error), the callback will
-  // still be invoked but with the default values of the message parameters.
-  //
-  // Returns the new request's sequence number which can be used to identify
-  // the callback. This value will never be 0, which you can use to identify
-  // an invalid callback.
-  //
-  // Note: 1) When all plugin references to this resource are gone or the
-  //          corresponding plugin instance is deleted, all pending callbacks
-  //          are abandoned.
-  //       2) It is *not* recommended to let |callback| hold any reference to
-  //          |this|, in which it will be stored. Otherwise, this object will
-  //          live forever if we fail to clean up the callback. It is safe to
-  //          use base::Unretained(this) or a weak pointer, because this object
-  //          will outlive the callback.
-  template <typename ReplyMsgClass, typename CallbackType>
-  int32_t Call(Destination dest,
-               const IPC::Message& msg,
-               CallbackType callback);
-
-  // Comparing with the previous Call() method, this method takes
-  // |reply_thread_hint| as a hint to determine which thread to handle the reply
-  // message.
-  //
-  // If |reply_thread_hint| is non-blocking, the reply message will be handled
-  // on the target thread of the callback; otherwise, it will be handled on the
-  // main thread.
-  //
-  // If handling a reply message will cause a TrackedCallback to be run, it is
-  // recommended to use this version of Call(). It eliminates unnecessary
-  // thread switching and therefore has better performance.
-  template <typename ReplyMsgClass, typename CallbackType>
-  int32_t Call(Destination dest,
-               const IPC::Message& msg,
-               CallbackType callback,
-               scoped_refptr<TrackedCallback> reply_thread_hint);
-
-  // Calls the browser/renderer with sync messages. Returns the pepper error
-  // code from the call.
-  // |ReplyMsgClass| is the type of the reply message that is expected. If it
-  // carries x parameters, then the method with x out parameters should be used.
-  // An example of usage:
-  //
-  // // Assuming the reply message carries a string and an integer.
-  // std::string param_1;
-  // int param_2 = 0;
-  // int32_t result = SyncCall<PpapiPluginMsg_MyResourceType_MyReplyMessage>(
-  //     RENDERER, PpapiHostMsg_MyResourceType_MyRequestMessage(),
-  //     &param_1, &param_2);
-  template <class ReplyMsgClass>
-  int32_t SyncCall(Destination dest, const IPC::Message& msg);
-  template <class ReplyMsgClass, class A>
-  int32_t SyncCall(Destination dest, const IPC::Message& msg, A* a);
-  template <class ReplyMsgClass, class A, class B>
-  int32_t SyncCall(Destination dest, const IPC::Message& msg, A* a, B* b);
-  template <class ReplyMsgClass, class A, class B, class C>
-  int32_t SyncCall(Destination dest, const IPC::Message& msg, A* a, B* b, C* c);
-  template <class ReplyMsgClass, class A, class B, class C, class D>
-  int32_t SyncCall(
-      Destination dest, const IPC::Message& msg, A* a, B* b, C* c, D* d);
-  template <class ReplyMsgClass, class A, class B, class C, class D, class E>
-  int32_t SyncCall(
-      Destination dest, const IPC::Message& msg, A* a, B* b, C* c, D* d, E* e);
-
-  int32_t GenericSyncCall(Destination dest,
-                          const IPC::Message& msg,
-                          IPC::Message* reply_msg,
-                          ResourceMessageReplyParams* reply_params);
-
-  const Connection& connection() { return connection_; }
-
- private:
-  IPC::Sender* GetSender(Destination dest) {
-    return dest == RENDERER ? connection_.GetRendererSender()
-                            : connection_.browser_sender();
-  }
-
-  // Helper function to send a |PpapiHostMsg_ResourceCall| to the given
-  // destination with |nested_msg| and |call_params|.
-  bool SendResourceCall(Destination dest,
-                        const ResourceMessageCallParams& call_params,
-                        const IPC::Message& nested_msg);
-
-  int32_t GetNextSequence();
-
-  Connection connection_;
-
-  // Use GetNextSequence to retrieve the next value.
-  int32_t next_sequence_number_;
-
-  bool sent_create_to_browser_;
-  bool sent_create_to_renderer_;
-
-  typedef std::map<int32_t, std::unique_ptr<PluginResourceCallbackBase>>
-      CallbackMap;
-  CallbackMap callbacks_;
-
-  scoped_refptr<ResourceReplyThreadRegistrar> resource_reply_thread_registrar_;
-};
-
-template <typename ReplyMsgClass, typename CallbackType>
-int32_t PluginResource::Call(Destination dest,
-                             const IPC::Message& msg,
-                             CallbackType callback) {
-  return Call<ReplyMsgClass>(dest, msg, std::move(callback), nullptr);
-}
-
-template <typename ReplyMsgClass, typename CallbackType>
-int32_t PluginResource::Call(Destination dest,
-                             const IPC::Message& msg,
-                             CallbackType callback,
-                             scoped_refptr<TrackedCallback> reply_thread_hint) {
-  TRACE_EVENT2("ppapi_proxy", "PluginResource::Call", "Class",
-               IPC_MESSAGE_ID_CLASS(msg.type()), "Line",
-               IPC_MESSAGE_ID_LINE(msg.type()));
-  ResourceMessageCallParams params(pp_resource(), next_sequence_number_++);
-  // Stash the |callback| in |callbacks_| identified by the sequence number of
-  // the call.
-  std::unique_ptr<PluginResourceCallbackBase> plugin_callback(
-      new PluginResourceCallback<ReplyMsgClass, CallbackType>(
-          std::move(callback)));
-  callbacks_.insert(
-      std::make_pair(params.sequence(), std::move(plugin_callback)));
-  params.set_has_callback();
-
-  if (resource_reply_thread_registrar_.get()) {
-    resource_reply_thread_registrar_->Register(
-        pp_resource(), params.sequence(), reply_thread_hint);
-  }
-  SendResourceCall(dest, params, msg);
-  return params.sequence();
-}
-
-template <class ReplyMsgClass>
-int32_t PluginResource::SyncCall(Destination dest, const IPC::Message& msg) {
-  IPC::Message reply;
-  ResourceMessageReplyParams reply_params;
-  return GenericSyncCall(dest, msg, &reply, &reply_params);
-}
-
-template <class ReplyMsgClass, class A>
-int32_t PluginResource::SyncCall(
-    Destination dest, const IPC::Message& msg, A* a) {
-  IPC::Message reply;
-  ResourceMessageReplyParams reply_params;
-  int32_t result = GenericSyncCall(dest, msg, &reply, &reply_params);
-
-  if (UnpackMessage<ReplyMsgClass>(reply, a))
-    return result;
-  return PP_ERROR_FAILED;
-}
-
-template <class ReplyMsgClass, class A, class B>
-int32_t PluginResource::SyncCall(
-    Destination dest, const IPC::Message& msg, A* a, B* b) {
-  IPC::Message reply;
-  ResourceMessageReplyParams reply_params;
-  int32_t result = GenericSyncCall(dest, msg, &reply, &reply_params);
-
-  if (UnpackMessage<ReplyMsgClass>(reply, a, b))
-    return result;
-  return PP_ERROR_FAILED;
-}
-
-template <class ReplyMsgClass, class A, class B, class C>
-int32_t PluginResource::SyncCall(
-    Destination dest, const IPC::Message& msg, A* a, B* b, C* c) {
-  IPC::Message reply;
-  ResourceMessageReplyParams reply_params;
-  int32_t result = GenericSyncCall(dest, msg, &reply, &reply_params);
-
-  if (UnpackMessage<ReplyMsgClass>(reply, a, b, c))
-    return result;
-  return PP_ERROR_FAILED;
-}
-
-template <class ReplyMsgClass, class A, class B, class C, class D>
-int32_t PluginResource::SyncCall(
-    Destination dest, const IPC::Message& msg, A* a, B* b, C* c, D* d) {
-  IPC::Message reply;
-  ResourceMessageReplyParams reply_params;
-  int32_t result = GenericSyncCall(dest, msg, &reply, &reply_params);
-
-  if (UnpackMessage<ReplyMsgClass>(reply, a, b, c, d))
-    return result;
-  return PP_ERROR_FAILED;
-}
-
-template <class ReplyMsgClass, class A, class B, class C, class D, class E>
-int32_t PluginResource::SyncCall(
-    Destination dest, const IPC::Message& msg, A* a, B* b, C* c, D* d, E* e) {
-  IPC::Message reply;
-  ResourceMessageReplyParams reply_params;
-  int32_t result = GenericSyncCall(dest, msg, &reply, &reply_params);
-
-  if (UnpackMessage<ReplyMsgClass>(reply, a, b, c, d, e))
-    return result;
-  return PP_ERROR_FAILED;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PLUGIN_RESOURCE_H_
diff --git a/proxy/plugin_resource_callback.h b/proxy/plugin_resource_callback.h
deleted file mode 100644
index 405a6e9..0000000
--- a/proxy/plugin_resource_callback.h
+++ /dev/null
@@ -1,50 +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_PROXY_PLUGIN_RESOURCE_CALLBACK_H_
-#define PPAPI_PROXY_PLUGIN_RESOURCE_CALLBACK_H_
-
-#include "ipc/ipc_message.h"
-#include "ppapi/proxy/dispatch_reply_message.h"
-#include "ppapi/proxy/resource_message_params.h"
-
-namespace ppapi {
-namespace proxy {
-
-// |PluginResourceCallback| wraps a |base::OnceCallback| on the plugin side
-// which will be triggered in response to a particular message type being
-// received. |MsgClass| is the reply message type that the callback will be
-// called with and |CallbackType| is the type of the |base::OnceCallback| that
-// will be called.
-class PluginResourceCallbackBase {
- public:
-  virtual ~PluginResourceCallbackBase() = default;
-
-  virtual void Run(const ResourceMessageReplyParams& params,
-                   const IPC::Message& msg) = 0;
-};
-
-template<typename MsgClass, typename CallbackType>
-class PluginResourceCallback : public PluginResourceCallbackBase {
- public:
-  explicit PluginResourceCallback(CallbackType callback)
-      : callback_(std::move(callback)) {}
-
-  void Run(
-      const ResourceMessageReplyParams& reply_params,
-      const IPC::Message& msg) override {
-    DispatchResourceReplyOrDefaultParams<MsgClass>(
-        std::forward<CallbackType>(callback_), reply_params, msg);
-  }
-
- private:
-  ~PluginResourceCallback() override {}
-
-  CallbackType callback_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PLUGIN_RESOURCE_CALLBACK_H_
diff --git a/proxy/plugin_resource_tracker.cc b/proxy/plugin_resource_tracker.cc
deleted file mode 100644
index 05278a3..0000000
--- a/proxy/plugin_resource_tracker.cc
+++ /dev/null
@@ -1,87 +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/proxy/plugin_resource_tracker.h"
-
-#include "base/check.h"
-#include "base/memory/singleton.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/serialized_var.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-PluginResourceTracker::PluginResourceTracker() : ResourceTracker(THREAD_SAFE) {
-  UseOddResourceValueInDebugMode();
-}
-
-PluginResourceTracker::~PluginResourceTracker() {
-}
-
-PP_Resource PluginResourceTracker::PluginResourceForHostResource(
-    const HostResource& resource) const {
-  HostResourceMap::const_iterator found = host_resource_map_.find(resource);
-  if (found == host_resource_map_.end())
-    return 0;
-  return found->second;
-}
-
-void PluginResourceTracker::AbandonResource(PP_Resource res) {
-  DCHECK(GetResource(res));
-  bool inserted = abandoned_resources_.insert(res).second;
-  DCHECK(inserted);
-
-  ReleaseResource(res);
-}
-
-PP_Resource PluginResourceTracker::AddResource(Resource* object) {
-  // If there's a HostResource, it must not be added twice.
-  DCHECK(!object->host_resource().host_resource() ||
-         (host_resource_map_.find(object->host_resource()) ==
-          host_resource_map_.end()));
-
-  PP_Resource ret = ResourceTracker::AddResource(object);
-
-  // Some resources are plugin-only, so they don't have a host resource.
-  if (object->host_resource().host_resource())
-    host_resource_map_.insert(std::make_pair(object->host_resource(), ret));
-  return ret;
-}
-
-void PluginResourceTracker::RemoveResource(Resource* object) {
-  ResourceTracker::RemoveResource(object);
-
-  if (!object->host_resource().is_null()) {
-    // The host_resource will be NULL for proxy-only resources, which we
-    // obviously don't need to tell the host about.
-    CHECK(host_resource_map_.find(object->host_resource()) !=
-          host_resource_map_.end());
-    host_resource_map_.erase(object->host_resource());
-
-    bool abandoned = false;
-    auto it = abandoned_resources_.find(object->pp_resource());
-    if (it != abandoned_resources_.end()) {
-      abandoned = true;
-      abandoned_resources_.erase(it);
-    }
-
-    PluginDispatcher* dispatcher =
-        PluginDispatcher::GetForInstance(object->pp_instance());
-    if (dispatcher && !abandoned) {
-      // The dispatcher can be NULL if the plugin held on to a resource after
-      // the instance was destroyed. In that case the browser-side resource has
-      // already been freed correctly on the browser side.
-      dispatcher->Send(new PpapiHostMsg_PPBCore_ReleaseResource(
-          API_ID_PPB_CORE, object->host_resource()));
-    }
-  }
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/plugin_resource_tracker.h b/proxy/plugin_resource_tracker.h
deleted file mode 100644
index 948ed69..0000000
--- a/proxy/plugin_resource_tracker.h
+++ /dev/null
@@ -1,73 +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_PROXY_PLUGIN_RESOURCE_TRACKER_H_
-#define PPAPI_PROXY_PLUGIN_RESOURCE_TRACKER_H_
-
-#include <map>
-#include <unordered_set>
-#include <utility>
-
-#include "base/compiler_specific.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/host_resource.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-
-namespace base {
-template<typename T> struct DefaultSingletonTraits;
-}
-
-namespace ppapi {
-
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT PluginResourceTracker : public ResourceTracker {
- public:
-  PluginResourceTracker();
-
-  PluginResourceTracker(const PluginResourceTracker&) = delete;
-  PluginResourceTracker& operator=(const PluginResourceTracker&) = delete;
-
-  ~PluginResourceTracker() override;
-
-  // Given a host resource, maps it to an existing plugin resource ID if it
-  // exists, or returns 0 on failure.
-  PP_Resource PluginResourceForHostResource(
-      const HostResource& resource) const;
-
-  // "Abandons" a PP_Resource on the plugin side. This releases a reference to
-  // the resource and allows the plugin side of the resource (the proxy
-  // resource) to be destroyed without sending a message to the renderer
-  // notifing it that the plugin has released the resource. This is useful when
-  // the plugin sends a resource to the renderer in reply to a sync IPC. The
-  // plugin would want to release its reference to the reply resource straight
-  // away but doing so can sometimes cause the resource to be deleted in the
-  // renderer before the sync IPC reply has been received giving the renderer a
-  // chance to add a ref to it. (see e.g. crbug.com/490611). Instead the
-  // renderer assumes responsibility for the ref that the plugin created and
-  // this function can be called.
-  void AbandonResource(PP_Resource res);
-
- protected:
-  // ResourceTracker overrides.
-  PP_Resource AddResource(Resource* object) override;
-  void RemoveResource(Resource* object) override;
-
- private:
-  // Map of host instance/resource pairs to a plugin resource ID.
-  typedef std::map<HostResource, PP_Resource> HostResourceMap;
-  HostResourceMap host_resource_map_;
-
-  std::unordered_set<PP_Resource> abandoned_resources_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PLUGIN_RESOURCE_TRACKER_H_
diff --git a/proxy/plugin_resource_var.cc b/proxy/plugin_resource_var.cc
deleted file mode 100644
index 46149b7..0000000
--- a/proxy/plugin_resource_var.cc
+++ /dev/null
@@ -1,20 +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.
-
-#include "ppapi/proxy/plugin_resource_var.h"
-
-PluginResourceVar::PluginResourceVar() {}
-
-PluginResourceVar::PluginResourceVar(ppapi::Resource* resource)
-    : resource_(resource) {}
-
-PP_Resource PluginResourceVar::GetPPResource() const {
-  return resource_.get() ? resource_->pp_resource() : 0;
-}
-
-bool PluginResourceVar::IsPending() const {
-  return false;
-}
-
-PluginResourceVar::~PluginResourceVar() {}
diff --git a/proxy/plugin_resource_var.h b/proxy/plugin_resource_var.h
deleted file mode 100644
index de0702e..0000000
--- a/proxy/plugin_resource_var.h
+++ /dev/null
@@ -1,41 +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.
-
-#ifndef PPAPI_PROXY_PLUGIN_RESOURCE_VAR_H_
-#define PPAPI_PROXY_PLUGIN_RESOURCE_VAR_H_
-
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/shared_impl/resource_var.h"
-#include "ppapi/shared_impl/var.h"
-
-// Represents a resource Var, usable on the plugin side.
-class PPAPI_PROXY_EXPORT PluginResourceVar : public ppapi::ResourceVar {
- public:
-  // Makes a null resource var.
-  PluginResourceVar();
-
-  // Makes a resource var with an existing resource.
-  // Takes one reference to the given resource.
-  explicit PluginResourceVar(ppapi::Resource* resource);
-
-  PluginResourceVar(const PluginResourceVar&) = delete;
-  PluginResourceVar& operator=(const PluginResourceVar&) = delete;
-
-  // ResourceVar override.
-  PP_Resource GetPPResource() const override;
-  bool IsPending() const override;
-
-  scoped_refptr<ppapi::Resource> resource() const { return resource_; }
-
- protected:
-  ~PluginResourceVar() override;
-
- private:
-  // If NULL, this represents the PP_Resource 0.
-  scoped_refptr<ppapi::Resource> resource_;
-};
-
-#endif  // PPAPI_PROXY_PLUGIN_RESOURCE_VAR_H_
diff --git a/proxy/plugin_var_serialization_rules.cc b/proxy/plugin_var_serialization_rules.cc
deleted file mode 100644
index 27185f8..0000000
--- a/proxy/plugin_var_serialization_rules.cc
+++ /dev/null
@@ -1,119 +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/proxy/plugin_var_serialization_rules.h"
-
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/plugin_var_tracker.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-PluginVarSerializationRules::PluginVarSerializationRules(
-    const base::WeakPtr<PluginDispatcher>& dispatcher)
-    : var_tracker_(PluginGlobals::Get()->plugin_var_tracker()),
-      dispatcher_(dispatcher) {
-}
-
-PluginVarSerializationRules::~PluginVarSerializationRules() {
-}
-
-PP_Var PluginVarSerializationRules::SendCallerOwned(const PP_Var& var) {
-  // Objects need special translations to get the IDs valid in the host.
-  if (var.type == PP_VARTYPE_OBJECT)
-    return var_tracker_->GetHostObject(var);
-  return var;
-}
-
-PP_Var PluginVarSerializationRules::BeginReceiveCallerOwned(const PP_Var& var) {
-  if (var.type == PP_VARTYPE_OBJECT) {
-    return dispatcher_.get() ? var_tracker_->TrackObjectWithNoReference(
-                                   var, dispatcher_.get())
-                             : PP_MakeUndefined();
-  }
-
-  return var;
-}
-
-void PluginVarSerializationRules::EndReceiveCallerOwned(const PP_Var& var) {
-  if (var.type == PP_VARTYPE_OBJECT) {
-    var_tracker_->StopTrackingObjectWithNoReference(var);
-  } else if (var.type >= PP_VARTYPE_STRING) {
-    // Release our reference to the local Var.
-    var_tracker_->ReleaseVar(var);
-  }
-}
-
-PP_Var PluginVarSerializationRules::ReceivePassRef(const PP_Var& var) {
-  // Overview of sending an object with "pass ref" from the browser to the
-  // plugin:
-  //                                  Example 1             Example 2
-  //                               Plugin   Browser      Plugin   Browser
-  // Before send                      3        2            0        1
-  // Browser calls BeginSendPassRef   3        2            0        1
-  // Plugin calls ReceivePassRef      4        1            1        1
-  // Browser calls EndSendPassRef     4        1            1        1
-  //
-  // In example 1 before the send, the plugin has 3 refs which are represented
-  // as one ref in the browser (since the plugin only tells the browser when
-  // it's refcount goes from 1 -> 0). The initial state is that the browser
-  // plugin code started to return a value, which means it gets another ref
-  // on behalf of the caller. This needs to be transferred to the plugin and
-  // folded in to its set of refs it maintains (with one ref representing all
-  // of them in the browser).
-  if (var.type == PP_VARTYPE_OBJECT) {
-    return dispatcher_.get()
-               ? var_tracker_->ReceiveObjectPassRef(var, dispatcher_.get())
-               : PP_MakeUndefined();
-  }
-
-  // Other types are unchanged.
-  return var;
-}
-
-PP_Var PluginVarSerializationRules::BeginSendPassRef(const PP_Var& var) {
-  // Overview of sending an object with "pass ref" from the plugin to the
-  // browser:
-  //                                  Example 1             Example 2
-  //                               Plugin   Browser      Plugin   Browser
-  // Before send                      3        1            1        1
-  // Plugin calls BeginSendPassRef    3        1            1        1
-  // Browser calls ReceivePassRef     3        2            1        2
-  // Plugin calls EndSendPassRef      2        2            0        1
-  //
-  // The plugin maintains one ref count in the browser on behalf of the
-  // entire ref count in the plugin. When the plugin refcount goes to 0, it
-  // will call the browser to deref the object. This is why in example 2
-  // transferring the object ref to the browser involves no net change in the
-  // browser's refcount.
-
-  // Objects need special translations to get the IDs valid in the host.
-  if (var.type == PP_VARTYPE_OBJECT)
-    return var_tracker_->GetHostObject(var);
-  return var;
-}
-
-void PluginVarSerializationRules::EndSendPassRef(const PP_Var& var) {
-  // See BeginSendPassRef for an example of why we release our ref here.
-  // The var we have in our inner class has been converted to a host object
-  // by BeginSendPassRef. This means it's not a normal var valid in the plugin,
-  // so we need to use the special ReleaseHostObject.
-  if (var.type == PP_VARTYPE_OBJECT) {
-    if (dispatcher_.get())
-      var_tracker_->ReleaseHostObject(dispatcher_.get(), var);
-  } else if (var.type >= PP_VARTYPE_STRING) {
-    var_tracker_->ReleaseVar(var);
-  }
-}
-
-void PluginVarSerializationRules::ReleaseObjectRef(const PP_Var& var) {
-  var_tracker_->ReleaseVar(var);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/plugin_var_serialization_rules.h b/proxy/plugin_var_serialization_rules.h
deleted file mode 100644
index a0b23d9..0000000
--- a/proxy/plugin_var_serialization_rules.h
+++ /dev/null
@@ -1,56 +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_PROXY_PLUGIN_VAR_SERIALIZATION_RULES_H_
-#define PPAPI_PROXY_PLUGIN_VAR_SERIALIZATION_RULES_H_
-
-#include "base/memory/weak_ptr.h"
-#include "ppapi/proxy/var_serialization_rules.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PluginDispatcher;
-class PluginVarTracker;
-
-// Implementation of the VarSerializationRules interface for the plugin.
-class PluginVarSerializationRules : public VarSerializationRules {
- public:
-  // This class will use the given non-owning pointer to the var tracker to
-  // handle object refcounting and string conversion.
-  explicit PluginVarSerializationRules(
-      const base::WeakPtr<PluginDispatcher>& dispatcher);
-
-  PluginVarSerializationRules(const PluginVarSerializationRules&) = delete;
-  PluginVarSerializationRules& operator=(const PluginVarSerializationRules&) =
-      delete;
-
-  ~PluginVarSerializationRules();
-
-  // VarSerialization implementation.
-  virtual PP_Var SendCallerOwned(const PP_Var& var);
-  virtual PP_Var BeginReceiveCallerOwned(const PP_Var& var);
-  virtual void EndReceiveCallerOwned(const PP_Var& var);
-  virtual PP_Var ReceivePassRef(const PP_Var& var);
-  virtual PP_Var BeginSendPassRef(const PP_Var& var);
-  virtual void EndSendPassRef(const PP_Var& var);
-  virtual void ReleaseObjectRef(const PP_Var& var);
-
- private:
-  PluginVarTracker* var_tracker_;
-
-  // In most cases, |dispatcher_| won't be NULL, but you should always check
-  // before using it.
-  // One scenario that it becomes NULL: A SerializedVar holds a ref to this
-  // object, and a sync message is issued. While waiting for the reply to the
-  // sync message, some incoming message causes the dispatcher to be destroyed.
-  // If that happens, we may leak references to object vars. Considering that
-  // scripting has been deprecated, this may not be a big issue.
-  base::WeakPtr<PluginDispatcher> dispatcher_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PLUGIN_VAR_SERIALIZATION_RULES_H_
diff --git a/proxy/plugin_var_tracker.cc b/proxy/plugin_var_tracker.cc
deleted file mode 100644
index f5d662e..0000000
--- a/proxy/plugin_var_tracker.cc
+++ /dev/null
@@ -1,503 +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/proxy/plugin_var_tracker.h"
-
-#include <stddef.h>
-
-#include <limits>
-
-#include "base/check.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/singleton.h"
-#include "ipc/ipc_message.h"
-#include "ppapi/c/dev/ppp_class_deprecated.h"
-#include "ppapi/c/ppb_var.h"
-#include "ppapi/proxy/file_system_resource.h"
-#include "ppapi/proxy/media_stream_audio_track_resource.h"
-#include "ppapi/proxy/media_stream_video_track_resource.h"
-#include "ppapi/proxy/plugin_array_buffer_var.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/plugin_resource_var.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/proxy_object_var.h"
-#include "ppapi/shared_impl/api_id.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-Connection GetConnectionForInstance(PP_Instance instance) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  DCHECK(dispatcher);
-  return Connection(PluginGlobals::Get()->GetBrowserSender(),
-                    dispatcher->sender());
-}
-
-}  // namespace
-
-PluginVarTracker::HostVar::HostVar(PluginDispatcher* d, int32_t i)
-    : dispatcher(d), host_object_id(i) {}
-
-bool PluginVarTracker::HostVar::operator<(const HostVar& other) const {
-  if (dispatcher < other.dispatcher)
-    return true;
-  if (other.dispatcher < dispatcher)
-    return false;
-  return host_object_id < other.host_object_id;
-}
-
-PluginVarTracker::PluginVarTracker() : VarTracker(THREAD_SAFE) {
-}
-
-PluginVarTracker::~PluginVarTracker() {
-}
-
-PP_Var PluginVarTracker::ReceiveObjectPassRef(const PP_Var& host_var,
-                                              PluginDispatcher* dispatcher) {
-  CheckThreadingPreconditions();
-  DCHECK(host_var.type == PP_VARTYPE_OBJECT);
-
-  // Get the object.
-  scoped_refptr<ProxyObjectVar> object(
-      FindOrMakePluginVarFromHostVar(host_var, dispatcher));
-
-  // Actually create the PP_Var, this will add all the tracking info but not
-  // adjust any refcounts.
-  PP_Var ret = GetOrCreateObjectVarID(object.get());
-
-  VarInfo& info = GetLiveVar(ret)->second;
-  if (info.ref_count > 0) {
-    // We already had a reference to it before. That means the renderer now has
-    // two references on our behalf. We want to transfer that extra reference
-    // to our list. This means we addref in the plugin, and release the extra
-    // one in the renderer.
-    SendReleaseObjectMsg(*object.get());
-  }
-  info.ref_count++;
-  CHECK(info.ref_count != std::numeric_limits<decltype(info.ref_count)>::max());
-  return ret;
-}
-
-PP_Var PluginVarTracker::TrackObjectWithNoReference(
-    const PP_Var& host_var,
-    PluginDispatcher* dispatcher) {
-  CheckThreadingPreconditions();
-  DCHECK(host_var.type == PP_VARTYPE_OBJECT);
-
-  // Get the object.
-  scoped_refptr<ProxyObjectVar> object(
-      FindOrMakePluginVarFromHostVar(host_var, dispatcher));
-
-  // Actually create the PP_Var, this will add all the tracking info but not
-  // adjust any refcounts.
-  PP_Var ret = GetOrCreateObjectVarID(object.get());
-
-  VarInfo& info = GetLiveVar(ret)->second;
-  info.track_with_no_reference_count++;
-  return ret;
-}
-
-void PluginVarTracker::StopTrackingObjectWithNoReference(
-    const PP_Var& plugin_var) {
-  CheckThreadingPreconditions();
-  DCHECK(plugin_var.type == PP_VARTYPE_OBJECT);
-
-  VarMap::iterator found = GetLiveVar(plugin_var);
-  if (found == live_vars_.end()) {
-    NOTREACHED();
-  }
-
-  DCHECK(found->second.track_with_no_reference_count > 0);
-  found->second.track_with_no_reference_count--;
-  DeleteObjectInfoIfNecessary(found);
-}
-
-PP_Var PluginVarTracker::GetHostObject(const PP_Var& plugin_object) const {
-  CheckThreadingPreconditions();
-  if (plugin_object.type != PP_VARTYPE_OBJECT) {
-    NOTREACHED();
-  }
-
-  Var* var = GetVar(plugin_object);
-  ProxyObjectVar* object = var->AsProxyObjectVar();
-  CHECK(object);
-
-  // Make a var with the host ID.
-  PP_Var ret = { PP_VARTYPE_OBJECT };
-  ret.value.as_id = object->host_var_id();
-  return ret;
-}
-
-PluginDispatcher* PluginVarTracker::DispatcherForPluginObject(
-    const PP_Var& plugin_object) const {
-  CheckThreadingPreconditions();
-  if (plugin_object.type != PP_VARTYPE_OBJECT)
-    return NULL;
-
-  VarMap::const_iterator found = GetLiveVar(plugin_object);
-  if (found == live_vars_.end())
-    return NULL;
-
-  ProxyObjectVar* object = found->second.var->AsProxyObjectVar();
-  if (!object)
-    return NULL;
-  return object->dispatcher();
-}
-
-void PluginVarTracker::ReleaseHostObject(PluginDispatcher* dispatcher,
-                                         const PP_Var& host_object) {
-  CheckThreadingPreconditions();
-  DCHECK(host_object.type == PP_VARTYPE_OBJECT);
-
-  // Convert the host object to a normal var valid in the plugin.
-  HostVarToPluginVarMap::iterator found = host_var_to_plugin_var_.find(
-      HostVar(dispatcher, static_cast<int32_t>(host_object.value.as_id)));
-  if (found == host_var_to_plugin_var_.end()) {
-    NOTREACHED();
-  }
-
-  // Now just release the object given the plugin var ID.
-  ReleaseVar(found->second);
-}
-
-PP_Var PluginVarTracker::MakeResourcePPVarFromMessage(
-    PP_Instance instance,
-    const IPC::Message& creation_message,
-    int pending_renderer_id,
-    int pending_browser_id) {
-  switch (creation_message.type()) {
-    case PpapiPluginMsg_FileSystem_CreateFromPendingHost::ID: {
-      DCHECK(pending_renderer_id);
-      DCHECK(pending_browser_id);
-      PP_FileSystemType file_system_type;
-      if (!UnpackMessage<PpapiPluginMsg_FileSystem_CreateFromPendingHost>(
-               creation_message, &file_system_type)) {
-        NOTREACHED() << "Invalid message of type "
-                        "PpapiPluginMsg_FileSystem_CreateFromPendingHost";
-      }
-      // Create a plugin-side resource and attach it to the host resource.
-      // Note: This only makes sense when the plugin is out of process (which
-      // should always be true when passing resource vars).
-      PP_Resource pp_resource =
-          (new FileSystemResource(GetConnectionForInstance(instance),
-                                  instance,
-                                  pending_renderer_id,
-                                  pending_browser_id,
-                                  file_system_type))->GetReference();
-      return MakeResourcePPVar(pp_resource);
-    }
-    case PpapiPluginMsg_MediaStreamAudioTrack_CreateFromPendingHost::ID: {
-      DCHECK(pending_renderer_id);
-      std::string track_id;
-      if (!UnpackMessage<
-              PpapiPluginMsg_MediaStreamAudioTrack_CreateFromPendingHost>(
-          creation_message, &track_id)) {
-        NOTREACHED()
-            << "Invalid message of type "
-               "PpapiPluginMsg_MediaStreamAudioTrack_CreateFromPendingHost";
-      }
-      PP_Resource pp_resource =
-          (new MediaStreamAudioTrackResource(GetConnectionForInstance(instance),
-                                             instance,
-                                             pending_renderer_id,
-                                             track_id))->GetReference();
-      return MakeResourcePPVar(pp_resource);
-    }
-    case PpapiPluginMsg_MediaStreamVideoTrack_CreateFromPendingHost::ID: {
-      DCHECK(pending_renderer_id);
-      std::string track_id;
-      if (!UnpackMessage<
-              PpapiPluginMsg_MediaStreamVideoTrack_CreateFromPendingHost>(
-          creation_message, &track_id)) {
-        NOTREACHED()
-            << "Invalid message of type "
-               "PpapiPluginMsg_MediaStreamVideoTrack_CreateFromPendingHost";
-      }
-      PP_Resource pp_resource =
-          (new MediaStreamVideoTrackResource(GetConnectionForInstance(instance),
-                                             instance,
-                                             pending_renderer_id,
-                                             track_id))->GetReference();
-      return MakeResourcePPVar(pp_resource);
-    }
-    default: {
-      NOTREACHED() << "Creation message has unexpected type "
-                   << creation_message.type();
-    }
-  }
-}
-
-ResourceVar* PluginVarTracker::MakeResourceVar(PP_Resource pp_resource) {
-  // The resource 0 returns a null resource var.
-  if (!pp_resource)
-    return new PluginResourceVar();
-
-  ResourceTracker* resource_tracker = PpapiGlobals::Get()->GetResourceTracker();
-  ppapi::Resource* resource = resource_tracker->GetResource(pp_resource);
-  // A non-existant resource other than 0 returns NULL.
-  if (!resource)
-    return NULL;
-  return new PluginResourceVar(resource);
-}
-
-void PluginVarTracker::DidDeleteInstance(PP_Instance instance) {
-  // Calling the destructors on plugin objects may in turn release other
-  // objects which will mutate the map out from under us. So do a two-step
-  // process of identifying the ones to delete, and then delete them.
-  //
-  // See the comment above user_data_to_plugin_ in the header file. We assume
-  // there aren't that many objects so a brute-force search is reasonable.
-  std::vector<void*> user_data_to_delete;
-  for (UserDataToPluginImplementedVarMap::const_iterator i =
-           user_data_to_plugin_.begin();
-       i != user_data_to_plugin_.end();
-       ++i) {
-    if (i->second.instance == instance)
-      user_data_to_delete.push_back(i->first);
-  }
-
-  for (size_t i = 0; i < user_data_to_delete.size(); i++) {
-    UserDataToPluginImplementedVarMap::iterator found =
-        user_data_to_plugin_.find(user_data_to_delete[i]);
-    if (found == user_data_to_plugin_.end())
-      continue;  // Object removed from list while we were iterating.
-
-    if (!found->second.plugin_object_id) {
-      // This object is for the freed instance and the plugin is not holding
-      // any references to it. Deallocate immediately.
-      CallWhileUnlocked(found->second.ppp_class->Deallocate, found->first);
-      user_data_to_plugin_.erase(found);
-    } else {
-      // The plugin is holding refs to this object. We don't want to call
-      // Deallocate since the plugin may be depending on those refs to keep
-      // its data alive. To avoid crashes in this case, just clear out the
-      // instance to mark it and continue. When the plugin refs go to 0,
-      // we'll notice there is no instance and call Deallocate.
-      found->second.instance = 0;
-    }
-  }
-}
-
-void PluginVarTracker::DidDeleteDispatcher(PluginDispatcher* dispatcher) {
-  for (VarMap::iterator it = live_vars_.begin();
-       it != live_vars_.end();
-       ++it) {
-    if (it->second.var.get() == NULL)
-      continue;
-    ProxyObjectVar* object = it->second.var->AsProxyObjectVar();
-    if (object && object->dispatcher() == dispatcher)
-      object->clear_dispatcher();
-  }
-}
-
-ArrayBufferVar* PluginVarTracker::CreateArrayBuffer(uint32_t size_in_bytes) {
-  return new PluginArrayBufferVar(size_in_bytes);
-}
-
-ArrayBufferVar* PluginVarTracker::CreateShmArrayBuffer(
-    uint32_t size_in_bytes,
-    base::UnsafeSharedMemoryRegion region) {
-  return new PluginArrayBufferVar(size_in_bytes, std::move(region));
-}
-
-void PluginVarTracker::PluginImplementedObjectCreated(
-    PP_Instance instance,
-    const PP_Var& created_var,
-    const PPP_Class_Deprecated* ppp_class,
-    void* ppp_class_data) {
-  PluginImplementedVar p;
-  p.ppp_class = ppp_class;
-  p.instance = instance;
-  p.plugin_object_id = created_var.value.as_id;
-  user_data_to_plugin_[ppp_class_data] = p;
-
-  // Link the user data to the object.
-  ProxyObjectVar* object = GetVar(created_var)->AsProxyObjectVar();
-  object->set_user_data(ppp_class_data);
-}
-
-void PluginVarTracker::PluginImplementedObjectDestroyed(void* user_data) {
-  UserDataToPluginImplementedVarMap::iterator found =
-      user_data_to_plugin_.find(user_data);
-  if (found == user_data_to_plugin_.end()) {
-    NOTREACHED();
-  }
-  user_data_to_plugin_.erase(found);
-}
-
-bool PluginVarTracker::IsPluginImplementedObjectAlive(void* user_data) {
-  return user_data_to_plugin_.find(user_data) != user_data_to_plugin_.end();
-}
-
-bool PluginVarTracker::ValidatePluginObjectCall(
-    const PPP_Class_Deprecated* ppp_class,
-    void* user_data) {
-  UserDataToPluginImplementedVarMap::iterator found =
-      user_data_to_plugin_.find(user_data);
-  if (found == user_data_to_plugin_.end())
-    return false;
-  return found->second.ppp_class == ppp_class;
-}
-
-int32_t PluginVarTracker::AddVarInternal(Var* var, AddVarRefMode mode) {
-  // Normal adding.
-  int32_t new_id = VarTracker::AddVarInternal(var, mode);
-
-  // Need to add proxy objects to the host var map.
-  ProxyObjectVar* proxy_object = var->AsProxyObjectVar();
-  if (proxy_object) {
-    HostVar host_var(proxy_object->dispatcher(), proxy_object->host_var_id());
-    // TODO(teravest): Change to DCHECK when http://crbug.com/276347 is
-    // resolved.
-    CHECK(host_var_to_plugin_var_.find(host_var) ==
-          host_var_to_plugin_var_.end());  // Adding an object twice, use
-                                           // FindOrMakePluginVarFromHostVar.
-    host_var_to_plugin_var_[host_var] = new_id;
-  }
-  return new_id;
-}
-
-void PluginVarTracker::TrackedObjectGettingOneRef(VarMap::const_iterator iter) {
-  ProxyObjectVar* object = iter->second.var->AsProxyObjectVar();
-  CHECK(object);
-
-  DCHECK(iter->second.ref_count == 0);
-
-  // Got an AddRef for an object we have no existing reference for.
-  // We need to tell the browser we've taken a ref. This comes up when the
-  // browser passes an object as an input param and holds a ref for us.
-  // This must be a sync message since otherwise the "addref" will actually
-  // occur after the return to the browser of the sync function that
-  // presumably sent the object.
-  SendAddRefObjectMsg(*object);
-}
-
-void PluginVarTracker::ObjectGettingZeroRef(VarMap::iterator iter) {
-  ProxyObjectVar* object = iter->second.var->AsProxyObjectVar();
-  CHECK(object);
-
-  // Notify the host we're no longer holding our ref.
-  DCHECK(iter->second.ref_count == 0);
-  SendReleaseObjectMsg(*object);
-
-  UserDataToPluginImplementedVarMap::iterator found =
-      user_data_to_plugin_.find(object->user_data());
-  if (found != user_data_to_plugin_.end()) {
-    // This object is implemented in the plugin.
-    if (found->second.instance == 0) {
-      // Instance is destroyed. This means that we'll never get a Deallocate
-      // call from the renderer and we should do so now.
-      CallWhileUnlocked(found->second.ppp_class->Deallocate, found->first);
-      user_data_to_plugin_.erase(found);
-    } else {
-      // The plugin is releasing its last reference to an object it implements.
-      // Clear the tracking data that links our "plugin implemented object" to
-      // the var. If the instance is destroyed and there is no ID, we know that
-      // we should just call Deallocate on the object data.
-      //
-      // See the plugin_object_id declaration for more info.
-      found->second.plugin_object_id = 0;
-    }
-  }
-
-  // This will optionally delete the info from live_vars_.
-  VarTracker::ObjectGettingZeroRef(iter);
-}
-
-bool PluginVarTracker::DeleteObjectInfoIfNecessary(VarMap::iterator iter) {
-  // Get the info before calling the base class's version of this function,
-  // which may delete the object.
-  ProxyObjectVar* object = iter->second.var->AsProxyObjectVar();
-  HostVar host_var(object->dispatcher(), object->host_var_id());
-
-  if (!VarTracker::DeleteObjectInfoIfNecessary(iter))
-    return false;
-
-  // Clean up the host var mapping.
-  CHECK(host_var_to_plugin_var_.find(host_var) !=
-        host_var_to_plugin_var_.end());
-  host_var_to_plugin_var_.erase(host_var);
-  return true;
-}
-
-PP_Var PluginVarTracker::GetOrCreateObjectVarID(ProxyObjectVar* object) {
-  // We can't use object->GetPPVar() because we don't want to affect the
-  // refcount, so we have to add everything manually here.
-  int32_t var_id = object->GetExistingVarID();
-  if (!var_id) {
-    var_id = AddVarInternal(object, ADD_VAR_CREATE_WITH_NO_REFERENCE);
-    object->AssignVarID(var_id);
-  }
-
-  PP_Var ret = { PP_VARTYPE_OBJECT };
-  ret.value.as_id = var_id;
-  return ret;
-}
-
-void PluginVarTracker::SendAddRefObjectMsg(
-    const ProxyObjectVar& proxy_object) {
-  if (proxy_object.dispatcher()) {
-    proxy_object.dispatcher()->Send(new PpapiHostMsg_PPBVar_AddRefObject(
-        API_ID_PPB_VAR_DEPRECATED, proxy_object.host_var_id()));
-  }
-}
-
-void PluginVarTracker::SendReleaseObjectMsg(
-    const ProxyObjectVar& proxy_object) {
-  if (proxy_object.dispatcher()) {
-    proxy_object.dispatcher()->Send(new PpapiHostMsg_PPBVar_ReleaseObject(
-        API_ID_PPB_VAR_DEPRECATED, proxy_object.host_var_id()));
-  }
-}
-
-scoped_refptr<ProxyObjectVar> PluginVarTracker::FindOrMakePluginVarFromHostVar(
-    const PP_Var& var,
-    PluginDispatcher* dispatcher) {
-  DCHECK(var.type == PP_VARTYPE_OBJECT);
-  HostVar host_var(dispatcher, var.value.as_id);
-
-  HostVarToPluginVarMap::iterator found =
-      host_var_to_plugin_var_.find(host_var);
-  if (found == host_var_to_plugin_var_.end()) {
-    // Create a new object.
-    return scoped_refptr<ProxyObjectVar>(
-        new ProxyObjectVar(dispatcher, static_cast<int32_t>(var.value.as_id)));
-  }
-
-  // Have this host var, look up the object.
-  VarMap::iterator ret = live_vars_.find(found->second);
-
-  // We CHECK here because we currently don't fall back sanely.
-  // This may be involved in a NULL dereference. http://crbug.com/276347
-  CHECK(ret != live_vars_.end());
-
-  // All objects should be proxy objects.
-  DCHECK(ret->second.var->AsProxyObjectVar());
-  return scoped_refptr<ProxyObjectVar>(ret->second.var->AsProxyObjectVar());
-}
-
-int PluginVarTracker::TrackSharedMemoryRegion(
-    PP_Instance instance,
-    base::UnsafeSharedMemoryRegion region,
-    uint32_t size_in_bytes) {
-  NOTREACHED();
-}
-
-bool PluginVarTracker::StopTrackingSharedMemoryRegion(
-    int id,
-    PP_Instance instance,
-    base::UnsafeSharedMemoryRegion* region,
-    uint32_t* size_in_bytes) {
-  NOTREACHED();
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/plugin_var_tracker.h b/proxy/plugin_var_tracker.h
deleted file mode 100644
index a187a07..0000000
--- a/proxy/plugin_var_tracker.h
+++ /dev/null
@@ -1,213 +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_PROXY_PLUGIN_VAR_TRACKER_H_
-#define PPAPI_PROXY_PLUGIN_VAR_TRACKER_H_
-
-#include <map>
-
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_refptr.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-namespace base {
-template<typename T> struct DefaultSingletonTraits;
-}
-
-struct PPP_Class_Deprecated;
-
-namespace ppapi {
-
-class ProxyObjectVar;
-
-namespace proxy {
-
-class PluginDispatcher;
-
-// Tracks live strings and objects in the plugin process.
-class PPAPI_PROXY_EXPORT PluginVarTracker : public VarTracker {
- public:
-  PluginVarTracker();
-
-  PluginVarTracker(const PluginVarTracker&) = delete;
-  PluginVarTracker& operator=(const PluginVarTracker&) = delete;
-
-  ~PluginVarTracker() override;
-
-  // Manages tracking for receiving a VARTYPE_OBJECT from the remote side
-  // (either the plugin or the renderer) that has already had its reference
-  // count incremented on behalf of the caller.
-  PP_Var ReceiveObjectPassRef(const PP_Var& var, PluginDispatcher* dispatcher);
-
-  // See the comment in var_tracker.h for more about what a tracked object is.
-  // This adds and releases the "track_with_no_reference_count" for a given
-  // object.
-  PP_Var TrackObjectWithNoReference(const PP_Var& host_var,
-                                    PluginDispatcher* dispatcher);
-  void StopTrackingObjectWithNoReference(const PP_Var& plugin_var);
-
-  // Returns the host var for the corresponding plugin object var. The object
-  // should be a VARTYPE_OBJECT. The reference count is not affeceted.
-  PP_Var GetHostObject(const PP_Var& plugin_object) const;
-
-  PluginDispatcher* DispatcherForPluginObject(
-      const PP_Var& plugin_object) const;
-
-  // Like Release() but the var is identified by its host object ID (as
-  // returned by GetHostObject).
-  void ReleaseHostObject(PluginDispatcher* dispatcher,
-                         const PP_Var& host_object);
-
-  // VarTracker public overrides.
-  PP_Var MakeResourcePPVarFromMessage(PP_Instance instance,
-                                      const IPC::Message& creation_message,
-                                      int pending_renderer_id,
-                                      int pending_browser_id) override;
-  ResourceVar* MakeResourceVar(PP_Resource pp_resource) override;
-  void DidDeleteInstance(PP_Instance instance) override;
-  int TrackSharedMemoryRegion(PP_Instance instance,
-                              base::UnsafeSharedMemoryRegion region,
-                              uint32_t size_in_bytes) override;
-  bool StopTrackingSharedMemoryRegion(int id,
-                                      PP_Instance instance,
-                                      base::UnsafeSharedMemoryRegion* region,
-                                      uint32_t* size_in_bytes) override;
-
-  // Notification that a plugin-implemented object (PPP_Class) was created by
-  // the plugin or deallocated by WebKit over IPC.
-  void PluginImplementedObjectCreated(PP_Instance instance,
-                                      const PP_Var& created_var,
-                                      const PPP_Class_Deprecated* ppp_class,
-                                      void* ppp_class_data);
-  void PluginImplementedObjectDestroyed(void* ppp_class_data);
-
-  // Returns true if there is an object implemented by the plugin with the
-  // given user_data that has not been deallocated yet. Call this when
-  // receiving a scripting call to the plugin to validate that the object
-  // receiving the call is still alive (see user_data_to_plugin_ below).
-  bool IsPluginImplementedObjectAlive(void* user_data);
-
-  // Validates that the given class/user_data pair corresponds to a currently
-  // living plugin object.
-  bool ValidatePluginObjectCall(const PPP_Class_Deprecated* ppp_class,
-                                void* user_data);
-
-  void DidDeleteDispatcher(PluginDispatcher* dispatcher);
-
- private:
-  // VarTracker protected overrides.
-  int32_t AddVarInternal(Var* var, AddVarRefMode mode) override;
-  void TrackedObjectGettingOneRef(VarMap::const_iterator iter) override;
-  void ObjectGettingZeroRef(VarMap::iterator iter) override;
-  bool DeleteObjectInfoIfNecessary(VarMap::iterator iter) override;
-  ArrayBufferVar* CreateArrayBuffer(uint32_t size_in_bytes) override;
-  ArrayBufferVar* CreateShmArrayBuffer(
-      uint32_t size_in_bytes,
-      base::UnsafeSharedMemoryRegion region) override;
-
- private:
-  friend struct base::DefaultSingletonTraits<PluginVarTracker>;
-  friend class PluginProxyTestHarness;
-
-  // Represents a var as received from the host.
-  struct HostVar {
-    HostVar(PluginDispatcher* d, int32_t i);
-
-    bool operator<(const HostVar& other) const;
-
-    // The dispatcher that sent us this object. This is used so we know how to
-    // send back requests on this object.
-    PluginDispatcher* dispatcher;
-
-    // The object ID that the host generated to identify the object. This is
-    // unique only within that host: different hosts could give us different
-    // objects with the same ID.
-    int32_t host_object_id;
-  };
-
-  struct PluginImplementedVar {
-    const PPP_Class_Deprecated* ppp_class;
-
-    // The instance that created this Var. This will be 0 if the instance has
-    // been destroyed but the object is still alive.
-    PP_Instance instance;
-
-    // Represents the plugin var ID for the var corresponding to this object.
-    // If the plugin does not have a ref to the object but it's still alive
-    // (the DOM could be holding a ref keeping it alive) this will be 0.
-    //
-    // There is an obscure corner case. If the plugin returns an object to the
-    // renderer and releases all of its refs, the object will still be alive
-    // but there will be no plugin refs. It's possible for the plugin to get
-    // this same object again through the DOM, and we'll lose the correlation
-    // between plugin implemented object and car. This means we won't know when
-    // the plugin releases its last refs and may call Deallocate when the
-    // plugin is still holding a ref.
-    //
-    // However, for the plugin to be depending on holding a ref to an object
-    // that it implements that it previously released but got again through
-    // indirect means would be extremely rare, and we only allow var scripting
-    // in limited cases anyway.
-    int32_t plugin_object_id;
-  };
-
-  // Returns the existing var ID for the given object var, creating and
-  // assigning an ID to it if necessary. This does not affect the reference
-  // count, so in the creation case the refcount will be 0. It's assumed in
-  // this case the caller will either adjust the refcount or the
-  // track_with_no_reference_count.
-  PP_Var GetOrCreateObjectVarID(ProxyObjectVar* object);
-
-  // Sends an addref or release message to the browser for the given object ID.
-  void SendAddRefObjectMsg(const ProxyObjectVar& proxy_object);
-  void SendReleaseObjectMsg(const ProxyObjectVar& proxy_object);
-
-  // Looks up the given host var. If we already know about it, returns a
-  // reference to the already-tracked object. If it doesn't creates a new one
-  // and returns it. If it's created, it's not added to the map.
-  scoped_refptr<ProxyObjectVar> FindOrMakePluginVarFromHostVar(
-      const PP_Var& var,
-      PluginDispatcher* dispatcher);
-
-  // Maps host vars in the host to IDs in the plugin process.
-  typedef std::map<HostVar, int32_t> HostVarToPluginVarMap;
-  HostVarToPluginVarMap host_var_to_plugin_var_;
-
-  // Maps "user data" for plugin implemented objects (PPP_Class) that are
-  // alive to various tracking info.
-  //
-  // This is tricky because there may not actually be any vars in the plugin
-  // associated with a plugin-implemented object, so they won't all have
-  // entries in our HostVarToPluginVarMap or the base class VarTracker's map.
-  //
-  // All objects that the plugin has created using CreateObject that have not
-  // yet been Deallocate()-ed by WebKit will be in this map. When the instance
-  // that created the object goes away, we know to call Deallocate on all
-  // remaining objects for that instance so that the data backing the object
-  // that the plugin owns is not leaked. We may not receive normal Deallocate
-  // calls from WebKit because the object could be leaked (attached to the DOM
-  // and outliving the plugin instance) or WebKit could send the deallocate
-  // after the out-of-process routing for that instance was torn down.
-  //
-  // There is an additional complexity. In WebKit, objects created by the
-  // plugin aren't actually bound to the plugin instance (for example, you
-  // could attach it to the DOM or send it to another plugin instance). It's
-  // possible that we could force deallocate an object when an instance id
-  // destroyed, but then another instance could get to that object somehow
-  // (like by reading it out of the DOM). We will then have deallocated the
-  // object and can't complete the call. We do not care about this case, and
-  // the calls will just fail.
-  typedef std::map<void*, PluginImplementedVar>
-      UserDataToPluginImplementedVarMap;
-  UserDataToPluginImplementedVarMap user_data_to_plugin_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PLUGIN_VAR_TRACKER_H_
diff --git a/proxy/ppapi_command_buffer_proxy.cc b/proxy/ppapi_command_buffer_proxy.cc
deleted file mode 100644
index f77e369..0000000
--- a/proxy/ppapi_command_buffer_proxy.cc
+++ /dev/null
@@ -1,331 +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/proxy/ppapi_command_buffer_proxy.h"
-
-#include <utility>
-
-#include "base/numerics/safe_conversions.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/api_id.h"
-#include "ppapi/shared_impl/host_resource.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-
-namespace ppapi {
-namespace proxy {
-
-PpapiCommandBufferProxy::PpapiCommandBufferProxy(
-    const ppapi::HostResource& resource,
-    InstanceData::FlushInfo* flush_info,
-    LockedSender* sender,
-    const gpu::Capabilities& capabilities,
-    const gpu::GLCapabilities& gl_capabilities,
-    SerializedHandle shared_state,
-    gpu::CommandBufferId command_buffer_id)
-    : command_buffer_id_(command_buffer_id),
-      capabilities_(capabilities),
-      gl_capabilities_(gl_capabilities),
-      resource_(resource),
-      flush_info_(flush_info),
-      sender_(sender),
-      next_fence_sync_release_(1),
-      pending_fence_sync_release_(0),
-      flushed_fence_sync_release_(0),
-      validated_fence_sync_release_(0) {
-  base::UnsafeSharedMemoryRegion shmem_region =
-      base::UnsafeSharedMemoryRegion::Deserialize(
-          shared_state.TakeSharedMemoryRegion());
-  shared_state_mapping_ = shmem_region.Map();
-}
-
-PpapiCommandBufferProxy::~PpapiCommandBufferProxy() {
-  // gpu::Buffers are no longer referenced, allowing shared memory objects to be
-  // deleted, closing the handle in this process.
-}
-
-gpu::CommandBuffer::State PpapiCommandBufferProxy::GetLastState() {
-  ppapi::ProxyLock::AssertAcquiredDebugOnly();
-  TryUpdateState();
-  return last_state_;
-}
-
-void PpapiCommandBufferProxy::Flush(int32_t put_offset) {
-  if (last_state_.error != gpu::error::kNoError)
-    return;
-
-  OrderingBarrier(put_offset);
-  FlushInternal();
-}
-
-void PpapiCommandBufferProxy::OrderingBarrier(int32_t put_offset) {
-  if (last_state_.error != gpu::error::kNoError)
-    return;
-
-  if (flush_info_->flush_pending && flush_info_->resource != resource_) {
-    FlushInternal();
-  }
-
-  flush_info_->flush_pending = true;
-  flush_info_->resource = resource_;
-  flush_info_->put_offset = put_offset;
-  pending_fence_sync_release_ = next_fence_sync_release_ - 1;
-}
-
-gpu::CommandBuffer::State PpapiCommandBufferProxy::WaitForTokenInRange(
-    int32_t start,
-    int32_t end) {
-  TryUpdateState();
-  if (!InRange(start, end, last_state_.token) &&
-      last_state_.error == gpu::error::kNoError) {
-    bool success = false;
-    gpu::CommandBuffer::State state;
-    if (Send(new PpapiHostMsg_PPBGraphics3D_WaitForTokenInRange(
-            ppapi::API_ID_PPB_GRAPHICS_3D, resource_, start, end, &state,
-            &success)))
-      UpdateState(state, success);
-  }
-  DCHECK(InRange(start, end, last_state_.token) ||
-         last_state_.error != gpu::error::kNoError);
-  return last_state_;
-}
-
-gpu::CommandBuffer::State PpapiCommandBufferProxy::WaitForGetOffsetInRange(
-    uint32_t set_get_buffer_count,
-    int32_t start,
-    int32_t end) {
-  TryUpdateState();
-  if (((set_get_buffer_count != last_state_.set_get_buffer_count) ||
-       !InRange(start, end, last_state_.get_offset)) &&
-      last_state_.error == gpu::error::kNoError) {
-    bool success = false;
-    gpu::CommandBuffer::State state;
-    if (Send(new PpapiHostMsg_PPBGraphics3D_WaitForGetOffsetInRange(
-            ppapi::API_ID_PPB_GRAPHICS_3D, resource_, set_get_buffer_count,
-            start, end, &state, &success)))
-      UpdateState(state, success);
-  }
-  DCHECK(((set_get_buffer_count == last_state_.set_get_buffer_count) &&
-          InRange(start, end, last_state_.get_offset)) ||
-         last_state_.error != gpu::error::kNoError);
-  return last_state_;
-}
-
-void PpapiCommandBufferProxy::SetGetBuffer(int32_t transfer_buffer_id) {
-  if (last_state_.error == gpu::error::kNoError) {
-    Send(new PpapiHostMsg_PPBGraphics3D_SetGetBuffer(
-        ppapi::API_ID_PPB_GRAPHICS_3D, resource_, transfer_buffer_id));
-  }
-}
-
-scoped_refptr<gpu::Buffer> PpapiCommandBufferProxy::CreateTransferBuffer(
-    uint32_t size,
-    int32_t* id,
-    uint32_t alignment,
-    gpu::TransferBufferAllocationOption option) {
-  *id = -1;
-
-  if (last_state_.error != gpu::error::kNoError)
-    return nullptr;
-
-  // Assuming we are in the renderer process, the service is responsible for
-  // duplicating the handle. This might not be true for NaCl.
-  ppapi::proxy::SerializedHandle handle(
-      ppapi::proxy::SerializedHandle::SHARED_MEMORY_REGION);
-  if (!Send(new PpapiHostMsg_PPBGraphics3D_CreateTransferBuffer(
-          ppapi::API_ID_PPB_GRAPHICS_3D, resource_, size, id, &handle))) {
-    if (last_state_.error == gpu::error::kNoError)
-      last_state_.error = gpu::error::kLostContext;
-    return nullptr;
-  }
-
-  if (*id <= 0 || !handle.is_shmem_region()) {
-    if (last_state_.error == gpu::error::kNoError)
-      last_state_.error = gpu::error::kOutOfBounds;
-    return nullptr;
-  }
-
-  base::UnsafeSharedMemoryRegion shared_memory_region =
-      base::UnsafeSharedMemoryRegion::Deserialize(
-          handle.TakeSharedMemoryRegion());
-
-  base::WritableSharedMemoryMapping shared_memory_mapping =
-      shared_memory_region.Map();
-  if (!shared_memory_mapping.IsValid() ||
-      (shared_memory_mapping.size() > UINT32_MAX)) {
-    if (last_state_.error == gpu::error::kNoError)
-      last_state_.error = gpu::error::kOutOfBounds;
-    *id = -1;
-    return nullptr;
-  }
-
-  return gpu::MakeBufferFromSharedMemory(std::move(shared_memory_region),
-                                         std::move(shared_memory_mapping));
-}
-
-void PpapiCommandBufferProxy::DestroyTransferBuffer(int32_t id) {
-  if (last_state_.error != gpu::error::kNoError)
-    return;
-
-  if (flush_info_->flush_pending)
-    FlushInternal();
-
-  Send(new PpapiHostMsg_PPBGraphics3D_DestroyTransferBuffer(
-      ppapi::API_ID_PPB_GRAPHICS_3D, resource_, id));
-}
-
-void PpapiCommandBufferProxy::ForceLostContext(gpu::error::ContextLostReason) {
-  // This entry point was added to CommandBuffer well after PPAPI's
-  // deprecation. No current clients determined its necessity, so it
-  // will not be implemented.
-}
-
-void PpapiCommandBufferProxy::SetLock(base::Lock*) {
-  NOTREACHED();
-}
-
-void PpapiCommandBufferProxy::EnsureWorkVisible() {
-  if (last_state_.error != gpu::error::kNoError)
-    return;
-
-  if (flush_info_->flush_pending)
-    FlushInternal();
-  DCHECK_GE(flushed_fence_sync_release_, validated_fence_sync_release_);
-  Send(new PpapiHostMsg_PPBGraphics3D_EnsureWorkVisible(
-      ppapi::API_ID_PPB_GRAPHICS_3D, resource_));
-  validated_fence_sync_release_ = flushed_fence_sync_release_;
-}
-
-gpu::CommandBufferNamespace PpapiCommandBufferProxy::GetNamespaceID() const {
-  return gpu::CommandBufferNamespace::GPU_IO;
-}
-
-gpu::CommandBufferId PpapiCommandBufferProxy::GetCommandBufferID() const {
-  return command_buffer_id_;
-}
-
-void PpapiCommandBufferProxy::FlushPendingWork() {
-  if (last_state_.error != gpu::error::kNoError)
-    return;
-  if (flush_info_->flush_pending)
-    FlushInternal();
-}
-
-uint64_t PpapiCommandBufferProxy::GenerateFenceSyncRelease() {
-  return next_fence_sync_release_++;
-}
-
-bool PpapiCommandBufferProxy::IsFenceSyncReleased(uint64_t release) {
-  NOTREACHED();
-}
-
-void PpapiCommandBufferProxy::SignalSyncToken(const gpu::SyncToken& sync_token,
-                                              base::OnceClosure callback) {
-  NOTREACHED();
-}
-
-// Pepper plugin does not expose or call WaitSyncTokenCHROMIUM.
-void PpapiCommandBufferProxy::WaitSyncToken(const gpu::SyncToken& sync_token) {
-  NOTREACHED();
-}
-
-bool PpapiCommandBufferProxy::CanWaitUnverifiedSyncToken(
-    const gpu::SyncToken& sync_token) {
-  NOTREACHED();
-}
-
-void PpapiCommandBufferProxy::SignalQuery(uint32_t query,
-                                          base::OnceClosure callback) {
-  NOTREACHED();
-}
-
-void PpapiCommandBufferProxy::CancelAllQueries() {
-  NOTREACHED();
-}
-
-void PpapiCommandBufferProxy::CreateGpuFence(uint32_t gpu_fence_id,
-                                             ClientGpuFence source) {
-  NOTREACHED();
-}
-
-void PpapiCommandBufferProxy::GetGpuFence(
-    uint32_t gpu_fence_id,
-    base::OnceCallback<void(std::unique_ptr<gfx::GpuFence>)> callback) {
-  NOTREACHED();
-}
-
-void PpapiCommandBufferProxy::SetGpuControlClient(gpu::GpuControlClient*) {
-  // TODO(piman): The lost context callback skips past here and goes directly
-  // to the plugin instance. Make it more uniform and use the GpuControlClient.
-}
-
-const gpu::Capabilities& PpapiCommandBufferProxy::GetCapabilities() const {
-  return capabilities_;
-}
-
-const gpu::GLCapabilities& PpapiCommandBufferProxy::GetGLCapabilities() const {
-  return gl_capabilities_;
-}
-
-bool PpapiCommandBufferProxy::Send(IPC::Message* msg) {
-  DCHECK(last_state_.error == gpu::error::kNoError);
-
-  // We need to hold the Pepper proxy lock for sync IPC, because the GPU command
-  // buffer may use a sync IPC with another lock held which could lead to lock
-  // and deadlock if we dropped the proxy lock here.
-  // http://crbug.com/418651
-  if (sender_->SendAndStayLocked(msg))
-    return true;
-
-  last_state_.error = gpu::error::kLostContext;
-  return false;
-}
-
-void PpapiCommandBufferProxy::UpdateState(
-    const gpu::CommandBuffer::State& state,
-    bool success) {
-  // Handle wraparound. It works as long as we don't have more than 2B state
-  // updates in flight across which reordering occurs.
-  if (success) {
-    if (state.generation - last_state_.generation < 0x80000000U) {
-      last_state_ = state;
-    }
-  } else {
-    last_state_.error = gpu::error::kLostContext;
-    ++last_state_.generation;
-  }
-}
-
-void PpapiCommandBufferProxy::TryUpdateState() {
-  if (last_state_.error == gpu::error::kNoError)
-    shared_state()->Read(&last_state_);
-}
-
-gpu::CommandBufferSharedState* PpapiCommandBufferProxy::shared_state() {
-  return reinterpret_cast<gpu::CommandBufferSharedState*>(
-      shared_state_mapping_.memory());
-}
-
-void PpapiCommandBufferProxy::FlushInternal() {
-  DCHECK(last_state_.error == gpu::error::kNoError);
-
-  DCHECK(flush_info_->flush_pending);
-  DCHECK_GE(pending_fence_sync_release_, flushed_fence_sync_release_);
-
-  IPC::Message* message = new PpapiHostMsg_PPBGraphics3D_AsyncFlush(
-      ppapi::API_ID_PPB_GRAPHICS_3D, flush_info_->resource,
-      flush_info_->put_offset, pending_fence_sync_release_);
-
-  // Do not let a synchronous flush hold up this message. If this handler is
-  // deferred until after the synchronous flush completes, it will overwrite the
-  // cached last_state_ with out-of-date data.
-  message->set_unblock(true);
-  Send(message);
-
-  flush_info_->flush_pending = false;
-  flush_info_->resource.SetHostResource(0, 0);
-  flushed_fence_sync_release_ = pending_fence_sync_release_;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppapi_command_buffer_proxy.h b/proxy/ppapi_command_buffer_proxy.h
deleted file mode 100644
index 07fac3f..0000000
--- a/proxy/ppapi_command_buffer_proxy.h
+++ /dev/null
@@ -1,119 +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_PROXY_PPAPI_COMMAND_BUFFER_PROXY_H_
-#define PPAPI_PROXY_PPAPI_COMMAND_BUFFER_PROXY_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <memory>
-
-#include "base/functional/callback.h"
-#include "gpu/command_buffer/client/gpu_control.h"
-#include "gpu/command_buffer/common/command_buffer.h"
-#include "gpu/command_buffer/common/command_buffer_id.h"
-#include "gpu/command_buffer/common/command_buffer_shared.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/host_resource.h"
-
-namespace IPC {
-class Message;
-}
-
-namespace ppapi {
-namespace proxy {
-
-class SerializedHandle;
-
-class PPAPI_PROXY_EXPORT PpapiCommandBufferProxy : public gpu::CommandBuffer,
-                                                   public gpu::GpuControl {
- public:
-  PpapiCommandBufferProxy(const HostResource& resource,
-                          InstanceData::FlushInfo* flush_info,
-                          LockedSender* sender,
-                          const gpu::Capabilities& capabilities,
-                          const gpu::GLCapabilities& gl_capabilities,
-                          SerializedHandle shared_state,
-                          gpu::CommandBufferId command_buffer_id);
-
-  PpapiCommandBufferProxy(const PpapiCommandBufferProxy&) = delete;
-  PpapiCommandBufferProxy& operator=(const PpapiCommandBufferProxy&) = delete;
-
-  ~PpapiCommandBufferProxy() override;
-
-  // gpu::CommandBuffer implementation:
-  State GetLastState() override;
-  void Flush(int32_t put_offset) override;
-  void OrderingBarrier(int32_t put_offset) override;
-  State WaitForTokenInRange(int32_t start, int32_t end) override;
-  State WaitForGetOffsetInRange(uint32_t set_get_buffer_count,
-                                int32_t start,
-                                int32_t end) override;
-  void SetGetBuffer(int32_t transfer_buffer_id) override;
-  scoped_refptr<gpu::Buffer> CreateTransferBuffer(
-      uint32_t size,
-      int32_t* id,
-      uint32_t alignment = 0,
-      gpu::TransferBufferAllocationOption option =
-          gpu::TransferBufferAllocationOption::kLoseContextOnOOM) override;
-  void DestroyTransferBuffer(int32_t id) override;
-  void ForceLostContext(gpu::error::ContextLostReason reason) override;
-
-  // gpu::GpuControl implementation:
-  void SetGpuControlClient(gpu::GpuControlClient*) override;
-  const gpu::Capabilities& GetCapabilities() const override;
-  const gpu::GLCapabilities& GetGLCapabilities() const override;
-  void SignalQuery(uint32_t query, base::OnceClosure callback) override;
-  void CancelAllQueries() override;
-  void CreateGpuFence(uint32_t gpu_fence_id, ClientGpuFence source) override;
-  void GetGpuFence(uint32_t gpu_fence_id,
-                   base::OnceCallback<void(std::unique_ptr<gfx::GpuFence>)>
-                       callback) override;
-  void SetLock(base::Lock*) override;
-  void EnsureWorkVisible() override;
-  gpu::CommandBufferNamespace GetNamespaceID() const override;
-  gpu::CommandBufferId GetCommandBufferID() const override;
-  void FlushPendingWork() override;
-  uint64_t GenerateFenceSyncRelease() override;
-  bool IsFenceSyncReleased(uint64_t release) override;
-  void SignalSyncToken(const gpu::SyncToken& sync_token,
-                       base::OnceClosure callback) override;
-  void WaitSyncToken(const gpu::SyncToken& sync_token) override;
-  bool CanWaitUnverifiedSyncToken(const gpu::SyncToken& sync_token) override;
-
- private:
-  bool Send(IPC::Message* msg);
-  void UpdateState(const gpu::CommandBuffer::State& state, bool success);
-
-  // Try to read an updated copy of the state from shared memory.
-  void TryUpdateState();
-
-  // The shared memory area used to update state.
-  gpu::CommandBufferSharedState* shared_state();
-
-  void FlushInternal();
-
-  const gpu::CommandBufferId command_buffer_id_;
-
-  gpu::Capabilities capabilities_;
-  gpu::GLCapabilities gl_capabilities_;
-  State last_state_;
-  base::WritableSharedMemoryMapping shared_state_mapping_;
-
-  HostResource resource_;
-  InstanceData::FlushInfo* flush_info_;
-  LockedSender* sender_;
-
-  uint64_t next_fence_sync_release_;
-  uint64_t pending_fence_sync_release_;
-  uint64_t flushed_fence_sync_release_;
-  uint64_t validated_fence_sync_release_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPAPI_COMMAND_BUFFER_PROXY_H_
diff --git a/proxy/ppapi_message_utils.h b/proxy/ppapi_message_utils.h
deleted file mode 100644
index cb37e2d..0000000
--- a/proxy/ppapi_message_utils.h
+++ /dev/null
@@ -1,129 +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_PROXY_PPAPI_MESSAGE_UTILS_H_
-#define PPAPI_PROXY_PPAPI_MESSAGE_UTILS_H_
-
-#include "base/pickle.h"
-#include "base/tuple.h"
-#include "ipc/ipc_message.h"
-#include "ipc/ipc_message_utils.h"
-
-namespace ppapi {
-
-namespace internal {
-
-// TupleTypeMatch* check whether a tuple type contains elements of the specified
-// types. They are used to make sure the output parameters of UnpackMessage()
-// match the corresponding message type.
-template <class TupleType, class A>
-struct TupleTypeMatch1 {
-  static const bool kValue = false;
-};
-template <class A>
-struct TupleTypeMatch1<std::tuple<A>, A> {
-  static const bool kValue = true;
-};
-
-template <class TupleType, class A, class B>
-struct TupleTypeMatch2 {
-  static const bool kValue = false;
-};
-template <class A, class B>
-struct TupleTypeMatch2<std::tuple<A, B>, A, B> {
-  static const bool kValue = true;
-};
-
-template <class TupleType, class A, class B, class C>
-struct TupleTypeMatch3 {
-  static const bool kValue = false;
-};
-template <class A, class B, class C>
-struct TupleTypeMatch3<std::tuple<A, B, C>, A, B, C> {
-  static const bool kValue = true;
-};
-
-template <class TupleType, class A, class B, class C, class D>
-struct TupleTypeMatch4 {
-  static const bool kValue = false;
-};
-template <class A, class B, class C, class D>
-struct TupleTypeMatch4<std::tuple<A, B, C, D>, A, B, C, D> {
-  static const bool kValue = true;
-};
-
-template <class TupleType, class A, class B, class C, class D, class E>
-struct TupleTypeMatch5 {
-  static const bool kValue = false;
-};
-template <class A, class B, class C, class D, class E>
-struct TupleTypeMatch5<std::tuple<A, B, C, D, E>, A, B, C, D, E> {
-  static const bool kValue = true;
-};
-
-}  // namespace internal
-
-template <class MsgClass, class A>
-bool UnpackMessage(const IPC::Message& msg, A* a) {
-  static_assert(
-      (internal::TupleTypeMatch1<typename MsgClass::Param, A>::kValue),
-      "tuple types should match");
-
-  base::PickleIterator iter(msg);
-  return IPC::ReadParam(&msg, &iter, a);
-}
-
-template <class MsgClass, class A, class B>
-bool UnpackMessage(const IPC::Message& msg, A* a, B* b) {
-  static_assert(
-      (internal::TupleTypeMatch2<typename MsgClass::Param, A, B>::kValue),
-      "tuple types should match");
-
-  base::PickleIterator iter(msg);
-  return IPC::ReadParam(&msg, &iter, a) && IPC::ReadParam(&msg, &iter, b);
-}
-
-template <class MsgClass, class A, class B, class C>
-bool UnpackMessage(const IPC::Message& msg, A* a, B* b, C* c) {
-  static_assert(
-      (internal::TupleTypeMatch3<typename MsgClass::Param, A, B, C>::kValue),
-      "tuple types should match");
-
-  base::PickleIterator iter(msg);
-  return IPC::ReadParam(&msg, &iter, a) &&
-         IPC::ReadParam(&msg, &iter, b) &&
-         IPC::ReadParam(&msg, &iter, c);
-}
-
-template <class MsgClass, class A, class B, class C, class D>
-bool UnpackMessage(const IPC::Message& msg, A* a, B* b, C* c, D* d) {
-  static_assert(
-      (internal::TupleTypeMatch4<typename MsgClass::Param, A, B, C, D>::kValue),
-      "tuple types should match");
-
-  base::PickleIterator iter(msg);
-  return IPC::ReadParam(&msg, &iter, a) &&
-         IPC::ReadParam(&msg, &iter, b) &&
-         IPC::ReadParam(&msg, &iter, c) &&
-         IPC::ReadParam(&msg, &iter, d);
-}
-
-template <class MsgClass, class A, class B, class C, class D, class E>
-bool UnpackMessage(const IPC::Message& msg, A* a, B* b, C* c, D* d, E* e) {
-  static_assert(
-      (internal::TupleTypeMatch5<
-           typename MsgClass::Param, A, B, C, D, E>::kValue),
-      "tuple types should match");
-
-  base::PickleIterator iter(msg);
-  return IPC::ReadParam(&msg, &iter, a) &&
-         IPC::ReadParam(&msg, &iter, b) &&
-         IPC::ReadParam(&msg, &iter, c) &&
-         IPC::ReadParam(&msg, &iter, d) &&
-         IPC::ReadParam(&msg, &iter, e);
-}
-
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPAPI_MESSAGE_UTILS_H_
diff --git a/proxy/ppapi_messages.cc b/proxy/ppapi_messages.cc
deleted file mode 100644
index f40c604..0000000
--- a/proxy/ppapi_messages.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2010 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Get basic type definitions.
-#define IPC_MESSAGE_IMPL
-#undef PPAPI_PROXY_PPAPI_MESSAGES_H_
-#include "ppapi/proxy/ppapi_messages.h"
-#ifndef PPAPI_PROXY_PPAPI_MESSAGES_H_
-#error "Failed to include ppapi/proxy/ppapi_messages.h"
-#endif
-
-// Generate constructors.
-#include "ipc/struct_constructor_macros.h"
-#undef PPAPI_PROXY_PPAPI_MESSAGES_H_
-#include "ppapi/proxy/ppapi_messages.h"
-#ifndef PPAPI_PROXY_PPAPI_MESSAGES_H_
-#error "Failed to include ppapi/proxy/ppapi_messages.h"
-#endif
-
-// Generate param traits write methods.
-#include "ipc/param_traits_write_macros.h"
-namespace IPC {
-#undef PPAPI_PROXY_PPAPI_MESSAGES_H_
-#include "ppapi/proxy/ppapi_messages.h"
-#ifndef PPAPI_PROXY_PPAPI_MESSAGES_H_
-#error "Failed to include ppapi/proxy/ppapi_messages.h"
-#endif
-}  // namespace IPC
-
-// Generate param traits read methods.
-#include "ipc/param_traits_read_macros.h"
-namespace IPC {
-#undef PPAPI_PROXY_PPAPI_MESSAGES_H_
-#include "ppapi/proxy/ppapi_messages.h"
-#ifndef PPAPI_PROXY_PPAPI_MESSAGES_H_
-#error "Failed to include ppapi/proxy/ppapi_messages.h"
-#endif
-}  // namespace IPC
-
-// Generate param traits log methods.
-#include "ipc/param_traits_log_macros.h"
-namespace IPC {
-#undef PPAPI_PROXY_PPAPI_MESSAGES_H_
-#include "ppapi/proxy/ppapi_messages.h"
-#ifndef PPAPI_PROXY_PPAPI_MESSAGES_H_
-#error "Failed to include ppapi/proxy/ppapi_messages.h"
-#endif
-}  // namespace IPC
diff --git a/proxy/ppapi_messages.h b/proxy/ppapi_messages.h
deleted file mode 100644
index f7fa5ed..0000000
--- a/proxy/ppapi_messages.h
+++ /dev/null
@@ -1,1833 +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_PROXY_PPAPI_MESSAGES_H_
-#define PPAPI_PROXY_PPAPI_MESSAGES_H_
-
-#include <stdint.h>
-
-#include <map>
-#include <string>
-#include <vector>
-
-#include "base/sync_socket.h"
-#include "build/build_config.h"
-
-#ifdef WIN32
-// base/sync_socket.h will define MemoryBarrier (a Win32 macro) that
-// would clash with MemoryBarrier in base/atomicops.h if someone uses
-// that together with this header.
-#undef MemoryBarrier
-#endif  // WIN32
-
-#include "base/files/file_path.h"
-#include "base/process/process.h"
-#include "build/build_config.h"
-#include "gpu/command_buffer/common/command_buffer.h"
-#include "gpu/command_buffer/common/command_buffer_id.h"
-#include "gpu/command_buffer/common/mailbox.h"
-#include "gpu/command_buffer/common/sync_token.h"
-#include "gpu/ipc/common/gpu_command_buffer_traits.h"
-#include "ipc/ipc_channel_handle.h"
-#include "ipc/ipc_message_macros.h"
-#include "ipc/ipc_message_start.h"
-#include "ipc/ipc_message_utils.h"
-#include "ipc/ipc_platform_file.h"
-#include "ppapi/c/dev/pp_video_capture_dev.h"
-#include "ppapi/c/dev/pp_video_dev.h"
-#include "ppapi/c/dev/ppb_url_util_dev.h"
-#include "ppapi/c/dev/ppp_printing_dev.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_codecs.h"
-#include "ppapi/c/pp_file_info.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_module.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_time.h"
-#include "ppapi/c/ppb_audio_config.h"
-#include "ppapi/c/ppb_image_data.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_video_encoder.h"
-#include "ppapi/c/private/pp_private_font_charset.h"
-#include "ppapi/c/private/pp_video_capture_format.h"
-#include "ppapi/c/private/ppb_host_resolver_private.h"
-#include "ppapi/c/private/ppb_isolated_file_system_private.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-#include "ppapi/proxy/host_resolver_private_resource.h"
-#include "ppapi/proxy/network_list_resource.h"
-#include "ppapi/proxy/ppapi_param_traits.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/proxy/resource_message_params.h"
-#include "ppapi/proxy/serialized_handle.h"
-#include "ppapi/proxy/serialized_structs.h"
-#include "ppapi/proxy/serialized_var.h"
-#include "ppapi/shared_impl/dir_contents.h"
-#include "ppapi/shared_impl/file_growth.h"
-#include "ppapi/shared_impl/file_path.h"
-#include "ppapi/shared_impl/file_ref_create_info.h"
-#include "ppapi/shared_impl/media_stream_audio_track_shared.h"
-#include "ppapi/shared_impl/media_stream_video_track_shared.h"
-#include "ppapi/shared_impl/ppapi_nacl_plugin_args.h"
-#include "ppapi/shared_impl/ppapi_preferences.h"
-#include "ppapi/shared_impl/ppb_device_ref_shared.h"
-#include "ppapi/shared_impl/ppb_graphics_3d_shared.h"
-#include "ppapi/shared_impl/ppb_input_event_shared.h"
-#include "ppapi/shared_impl/ppb_tcp_socket_shared.h"
-#include "ppapi/shared_impl/ppb_view_shared.h"
-#include "ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h"
-#include "ppapi/shared_impl/socket_option_data.h"
-#include "ppapi/shared_impl/url_request_info_data.h"
-#include "ppapi/shared_impl/url_response_info_data.h"
-
-#undef IPC_MESSAGE_EXPORT
-#define IPC_MESSAGE_EXPORT PPAPI_PROXY_EXPORT
-
-#define IPC_MESSAGE_START PpapiMsgStart
-
-IPC_ENUM_TRAITS_MAX_VALUE(ppapi::TCPSocketVersion,
-                          ppapi::TCP_SOCKET_VERSION_1_1_OR_ABOVE)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_AudioSampleRate, PP_AUDIOSAMPLERATE_LAST)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_DeviceType_Dev, PP_DEVICETYPE_DEV_MAX)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_FileSystemType, PP_FILESYSTEMTYPE_ISOLATED)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_FileType, PP_FILETYPE_OTHER)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_ImageDataFormat, PP_IMAGEDATAFORMAT_LAST)
-IPC_ENUM_TRAITS_MIN_MAX_VALUE(PP_InputEvent_MouseButton,
-                              PP_INPUTEVENT_MOUSEBUTTON_FIRST,
-                              PP_INPUTEVENT_MOUSEBUTTON_LAST)
-IPC_ENUM_TRAITS_MIN_MAX_VALUE(PP_InputEvent_Type,
-                              PP_INPUTEVENT_TYPE_FIRST,
-                              PP_INPUTEVENT_TYPE_LAST)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_IsolatedFileSystemType_Private,
-                          PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_CRX)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_NetAddressFamily_Private,
-                          PP_NETADDRESSFAMILY_PRIVATE_IPV6)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_NetworkList_State, PP_NETWORKLIST_STATE_UP)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_NetworkList_Type, PP_NETWORKLIST_TYPE_CELLULAR)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_PrintOrientation_Dev,
-                          PP_PRINTORIENTATION_ROTATED_LAST)
-IPC_ENUM_TRAITS(PP_PrintOutputFormat_Dev)  // Bitmask.
-IPC_ENUM_TRAITS_MAX_VALUE(PP_PrintScalingOption_Dev, PP_PRINTSCALINGOPTION_LAST)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_PrivateFontCharset, PP_PRIVATEFONTCHARSET_LAST)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_TCPSocket_Option,
-                          PP_TCPSOCKET_OPTION_RECV_BUFFER_SIZE)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_TextInput_Type, PP_TEXTINPUT_TYPE_LAST)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_UDPSocket_Option,
-                          PP_UDPSOCKET_OPTION_MULTICAST_TTL)
-IPC_ENUM_TRAITS_MIN_MAX_VALUE(PP_VideoDecodeError_Dev,
-                              PP_VIDEODECODERERROR_FIRST,
-                              PP_VIDEODECODERERROR_LAST)
-IPC_ENUM_TRAITS_MIN_MAX_VALUE(PP_VideoDecoder_Profile,
-                              PP_VIDEODECODER_PROFILE_FIRST,
-                              PP_VIDEODECODER_PROFILE_LAST)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_VideoFrame_Format, PP_VIDEOFRAME_FORMAT_LAST)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_HardwareAcceleration, PP_HARDWAREACCELERATION_LAST)
-IPC_ENUM_TRAITS_MAX_VALUE(PP_VideoProfile, PP_VIDEOPROFILE_MAX)
-
-IPC_STRUCT_TRAITS_BEGIN(PP_Point)
-  IPC_STRUCT_TRAITS_MEMBER(x)
-  IPC_STRUCT_TRAITS_MEMBER(y)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_FloatPoint)
-  IPC_STRUCT_TRAITS_MEMBER(x)
-  IPC_STRUCT_TRAITS_MEMBER(y)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_Size)
-  IPC_STRUCT_TRAITS_MEMBER(height)
-  IPC_STRUCT_TRAITS_MEMBER(width)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_FloatSize)
-  IPC_STRUCT_TRAITS_MEMBER(height)
-  IPC_STRUCT_TRAITS_MEMBER(width)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_Rect)
-  IPC_STRUCT_TRAITS_MEMBER(point)
-  IPC_STRUCT_TRAITS_MEMBER(size)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_FloatRect)
-  IPC_STRUCT_TRAITS_MEMBER(point)
-  IPC_STRUCT_TRAITS_MEMBER(size)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_ImageDataDesc)
-  IPC_STRUCT_TRAITS_MEMBER(format)
-  IPC_STRUCT_TRAITS_MEMBER(size)
-  IPC_STRUCT_TRAITS_MEMBER(stride)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_PictureBuffer_Dev)
-  IPC_STRUCT_TRAITS_MEMBER(id)
-  IPC_STRUCT_TRAITS_MEMBER(size)
-  IPC_STRUCT_TRAITS_MEMBER(texture_id)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_Picture_Dev)
-  IPC_STRUCT_TRAITS_MEMBER(picture_buffer_id)
-  IPC_STRUCT_TRAITS_MEMBER(bitstream_buffer_id)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_PrintPageNumberRange_Dev)
-  IPC_STRUCT_TRAITS_MEMBER(first_page_number)
-  IPC_STRUCT_TRAITS_MEMBER(last_page_number)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_VideoCaptureDeviceInfo_Dev)
-  IPC_STRUCT_TRAITS_MEMBER(width)
-  IPC_STRUCT_TRAITS_MEMBER(height)
-  IPC_STRUCT_TRAITS_MEMBER(frames_per_second)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_HostResolver_Private_Hint)
-  IPC_STRUCT_TRAITS_MEMBER(family)
-  IPC_STRUCT_TRAITS_MEMBER(flags)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_PrintSettings_Dev)
-  IPC_STRUCT_TRAITS_MEMBER(printable_area)
-  IPC_STRUCT_TRAITS_MEMBER(content_area)
-  IPC_STRUCT_TRAITS_MEMBER(paper_size)
-  IPC_STRUCT_TRAITS_MEMBER(dpi)
-  IPC_STRUCT_TRAITS_MEMBER(orientation)
-  IPC_STRUCT_TRAITS_MEMBER(print_scaling_option)
-  IPC_STRUCT_TRAITS_MEMBER(grayscale)
-  IPC_STRUCT_TRAITS_MEMBER(format)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_URLComponent_Dev)
-  IPC_STRUCT_TRAITS_MEMBER(begin)
-  IPC_STRUCT_TRAITS_MEMBER(len)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_URLComponents_Dev)
-  IPC_STRUCT_TRAITS_MEMBER(scheme)
-  IPC_STRUCT_TRAITS_MEMBER(username)
-  IPC_STRUCT_TRAITS_MEMBER(password)
-  IPC_STRUCT_TRAITS_MEMBER(host)
-  IPC_STRUCT_TRAITS_MEMBER(port)
-  IPC_STRUCT_TRAITS_MEMBER(path)
-  IPC_STRUCT_TRAITS_MEMBER(query)
-  IPC_STRUCT_TRAITS_MEMBER(ref)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_VideoCaptureFormat)
-  IPC_STRUCT_TRAITS_MEMBER(frame_size)
-  IPC_STRUCT_TRAITS_MEMBER(frame_rate)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_FileInfo)
-  IPC_STRUCT_TRAITS_MEMBER(size)
-  IPC_STRUCT_TRAITS_MEMBER(type)
-  IPC_STRUCT_TRAITS_MEMBER(system_type)
-  IPC_STRUCT_TRAITS_MEMBER(creation_time)
-  IPC_STRUCT_TRAITS_MEMBER(last_access_time)
-  IPC_STRUCT_TRAITS_MEMBER(last_modified_time)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::FileGrowth)
-  IPC_STRUCT_TRAITS_MEMBER(max_written_offset)
-  IPC_STRUCT_TRAITS_MEMBER(append_mode_write_amount)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::DeviceRefData)
-  IPC_STRUCT_TRAITS_MEMBER(type)
-  IPC_STRUCT_TRAITS_MEMBER(name)
-  IPC_STRUCT_TRAITS_MEMBER(id)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::DirEntry)
-  IPC_STRUCT_TRAITS_MEMBER(name)
-  IPC_STRUCT_TRAITS_MEMBER(is_dir)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::FileRefCreateInfo)
-  IPC_STRUCT_TRAITS_MEMBER(file_system_type)
-  IPC_STRUCT_TRAITS_MEMBER(internal_path)
-  IPC_STRUCT_TRAITS_MEMBER(display_name)
-  IPC_STRUCT_TRAITS_MEMBER(browser_pending_host_resource_id)
-  IPC_STRUCT_TRAITS_MEMBER(renderer_pending_host_resource_id)
-  IPC_STRUCT_TRAITS_MEMBER(file_system_plugin_resource)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::MediaStreamAudioTrackShared::Attributes)
-  IPC_STRUCT_TRAITS_MEMBER(buffers)
-  IPC_STRUCT_TRAITS_MEMBER(duration)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::MediaStreamVideoTrackShared::Attributes)
-  IPC_STRUCT_TRAITS_MEMBER(buffers)
-  IPC_STRUCT_TRAITS_MEMBER(width)
-  IPC_STRUCT_TRAITS_MEMBER(height)
-  IPC_STRUCT_TRAITS_MEMBER(format)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::ViewData)
-  IPC_STRUCT_TRAITS_MEMBER(rect)
-  IPC_STRUCT_TRAITS_MEMBER(is_fullscreen)
-  IPC_STRUCT_TRAITS_MEMBER(is_page_visible)
-  IPC_STRUCT_TRAITS_MEMBER(clip_rect)
-  IPC_STRUCT_TRAITS_MEMBER(device_scale)
-  IPC_STRUCT_TRAITS_MEMBER(css_scale)
-  IPC_STRUCT_TRAITS_MEMBER(scroll_offset)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_TouchPoint)
-  IPC_STRUCT_TRAITS_MEMBER(id)
-  IPC_STRUCT_TRAITS_MEMBER(position)
-  IPC_STRUCT_TRAITS_MEMBER(radius)
-  IPC_STRUCT_TRAITS_MEMBER(rotation_angle)
-  IPC_STRUCT_TRAITS_MEMBER(pressure)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::Preferences)
-  IPC_STRUCT_TRAITS_MEMBER(standard_font_family_map)
-  IPC_STRUCT_TRAITS_MEMBER(fixed_font_family_map)
-  IPC_STRUCT_TRAITS_MEMBER(serif_font_family_map)
-  IPC_STRUCT_TRAITS_MEMBER(sans_serif_font_family_map)
-  IPC_STRUCT_TRAITS_MEMBER(default_font_size)
-  IPC_STRUCT_TRAITS_MEMBER(default_fixed_font_size)
-  IPC_STRUCT_TRAITS_MEMBER(number_of_cpu_cores)
-  IPC_STRUCT_TRAITS_MEMBER(is_3d_supported)
-  IPC_STRUCT_TRAITS_MEMBER(is_stage3d_supported)
-  IPC_STRUCT_TRAITS_MEMBER(is_stage3d_baseline_supported)
-  IPC_STRUCT_TRAITS_MEMBER(is_accelerated_video_decode_enabled)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::TouchPointWithTilt)
-  IPC_STRUCT_TRAITS_MEMBER(touch)
-  IPC_STRUCT_TRAITS_MEMBER(tilt)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::InputEventData)
-  IPC_STRUCT_TRAITS_MEMBER(is_filtered)
-  IPC_STRUCT_TRAITS_MEMBER(event_type)
-  IPC_STRUCT_TRAITS_MEMBER(event_time_stamp)
-  IPC_STRUCT_TRAITS_MEMBER(event_modifiers)
-  IPC_STRUCT_TRAITS_MEMBER(mouse_button)
-  IPC_STRUCT_TRAITS_MEMBER(mouse_position)
-  IPC_STRUCT_TRAITS_MEMBER(mouse_click_count)
-  IPC_STRUCT_TRAITS_MEMBER(mouse_movement)
-  IPC_STRUCT_TRAITS_MEMBER(wheel_delta)
-  IPC_STRUCT_TRAITS_MEMBER(wheel_ticks)
-  IPC_STRUCT_TRAITS_MEMBER(wheel_scroll_by_page)
-  IPC_STRUCT_TRAITS_MEMBER(key_code)
-  IPC_STRUCT_TRAITS_MEMBER(code)
-  IPC_STRUCT_TRAITS_MEMBER(character_text)
-  IPC_STRUCT_TRAITS_MEMBER(composition_segment_offsets)
-  IPC_STRUCT_TRAITS_MEMBER(composition_target_segment)
-  IPC_STRUCT_TRAITS_MEMBER(composition_selection_start)
-  IPC_STRUCT_TRAITS_MEMBER(composition_selection_end)
-  IPC_STRUCT_TRAITS_MEMBER(touches)
-  IPC_STRUCT_TRAITS_MEMBER(changed_touches)
-  IPC_STRUCT_TRAITS_MEMBER(target_touches)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::HostPortPair)
-  IPC_STRUCT_TRAITS_MEMBER(host)
-  IPC_STRUCT_TRAITS_MEMBER(port)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::URLRequestInfoData)
-  IPC_STRUCT_TRAITS_MEMBER(url)
-  IPC_STRUCT_TRAITS_MEMBER(method)
-  IPC_STRUCT_TRAITS_MEMBER(headers)
-  IPC_STRUCT_TRAITS_MEMBER(follow_redirects)
-  IPC_STRUCT_TRAITS_MEMBER(record_download_progress)
-  IPC_STRUCT_TRAITS_MEMBER(record_upload_progress)
-  IPC_STRUCT_TRAITS_MEMBER(has_custom_referrer_url)
-  IPC_STRUCT_TRAITS_MEMBER(custom_referrer_url)
-  IPC_STRUCT_TRAITS_MEMBER(allow_cross_origin_requests)
-  IPC_STRUCT_TRAITS_MEMBER(allow_credentials)
-  IPC_STRUCT_TRAITS_MEMBER(has_custom_content_transfer_encoding)
-  IPC_STRUCT_TRAITS_MEMBER(custom_content_transfer_encoding)
-  IPC_STRUCT_TRAITS_MEMBER(prefetch_buffer_upper_threshold)
-  IPC_STRUCT_TRAITS_MEMBER(prefetch_buffer_lower_threshold)
-  IPC_STRUCT_TRAITS_MEMBER(has_custom_user_agent)
-  IPC_STRUCT_TRAITS_MEMBER(custom_user_agent)
-  IPC_STRUCT_TRAITS_MEMBER(body)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::URLRequestInfoData::BodyItem)
-  IPC_STRUCT_TRAITS_MEMBER(is_file)
-  IPC_STRUCT_TRAITS_MEMBER(data)
-  IPC_STRUCT_TRAITS_MEMBER(file_ref_pp_resource)
-  IPC_STRUCT_TRAITS_MEMBER(start_offset)
-  IPC_STRUCT_TRAITS_MEMBER(number_of_bytes)
-  IPC_STRUCT_TRAITS_MEMBER(expected_last_modified_time)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::URLResponseInfoData)
-  IPC_STRUCT_TRAITS_MEMBER(url)
-  IPC_STRUCT_TRAITS_MEMBER(headers)
-  IPC_STRUCT_TRAITS_MEMBER(status_code)
-  IPC_STRUCT_TRAITS_MEMBER(status_text)
-  IPC_STRUCT_TRAITS_MEMBER(redirect_url)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::proxy::SerializedNetworkInfo)
-  IPC_STRUCT_TRAITS_MEMBER(name)
-  IPC_STRUCT_TRAITS_MEMBER(type)
-  IPC_STRUCT_TRAITS_MEMBER(state)
-  IPC_STRUCT_TRAITS_MEMBER(addresses)
-  IPC_STRUCT_TRAITS_MEMBER(display_name)
-  IPC_STRUCT_TRAITS_MEMBER(mtu)
-IPC_STRUCT_TRAITS_END()
-
-// Only whitelisted switches passed through PpapiNaClPluginArgs.
-// The list of switches can be found in:
-//   components/nacl/browser/nacl_process_host.cc
-IPC_STRUCT_TRAITS_BEGIN(ppapi::PpapiNaClPluginArgs)
-  IPC_STRUCT_TRAITS_MEMBER(off_the_record)
-  IPC_STRUCT_TRAITS_MEMBER(permissions)
-  IPC_STRUCT_TRAITS_MEMBER(switch_names)
-  IPC_STRUCT_TRAITS_MEMBER(switch_values)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(PP_VideoProfileDescription)
-IPC_STRUCT_TRAITS_MEMBER(profile)
-IPC_STRUCT_TRAITS_MEMBER(max_resolution)
-IPC_STRUCT_TRAITS_MEMBER(max_framerate_numerator)
-IPC_STRUCT_TRAITS_MEMBER(max_framerate_denominator)
-IPC_STRUCT_TRAITS_MEMBER(hardware_accelerated)
-IPC_STRUCT_TRAITS_END()
-
-IPC_STRUCT_TRAITS_BEGIN(ppapi::Graphics3DContextAttribs)
-IPC_STRUCT_TRAITS_MEMBER(offscreen_framebuffer_size)
-IPC_STRUCT_TRAITS_MEMBER(alpha_size)
-IPC_STRUCT_TRAITS_MEMBER(depth_size)
-IPC_STRUCT_TRAITS_MEMBER(stencil_size)
-IPC_STRUCT_TRAITS_MEMBER(samples)
-IPC_STRUCT_TRAITS_MEMBER(sample_buffers)
-IPC_STRUCT_TRAITS_MEMBER(buffer_preserved)
-IPC_STRUCT_TRAITS_MEMBER(single_buffer)
-IPC_STRUCT_TRAITS_END()
-
-// These are from the browser to the plugin.
-// Loads the given plugin.
-IPC_MESSAGE_CONTROL2(PpapiMsg_LoadPlugin,
-                     base::FilePath /* path */,
-                     ppapi::PpapiPermissions /* permissions */)
-
-// Creates a channel to talk to a renderer. The plugin will respond with
-// PpapiHostMsg_ChannelCreated.
-// If |renderer_pid| is base::kNullProcessId, this is a channel used by the
-// browser itself.
-IPC_MESSAGE_CONTROL3(PpapiMsg_CreateChannel,
-                     base::ProcessId /* renderer_pid */,
-                     int /* renderer_child_id */,
-                     bool /* incognito */)
-
-// Initializes the IPC dispatchers in the NaCl plugin.
-IPC_MESSAGE_CONTROL1(PpapiMsg_InitializeNaClDispatcher,
-                     ppapi::PpapiNaClPluginArgs /* args */)
-
-// Each plugin may be referenced by multiple renderers. We need the instance
-// IDs to be unique within a plugin, despite coming from different renderers,
-// and unique within a renderer, despite going to different plugins. This means
-// that neither the renderer nor the plugin can generate instance IDs without
-// consulting the other.
-//
-// We resolve this by having the renderer generate a unique instance ID inside
-// its process. It then asks the plugin to reserve that ID by sending this sync
-// message. If the plugin has not yet seen this ID, it will remember it as used
-// (to prevent a race condition if another renderer tries to then use the same
-// instance), and set usable as true.
-//
-// If the plugin has already seen the instance ID, it will set usable as false
-// and the renderer must retry a new instance ID.
-IPC_SYNC_MESSAGE_CONTROL1_1(PpapiMsg_ReserveInstanceId,
-                            PP_Instance /* instance */,
-                            bool /* usable */)
-
-// Passes the WebKit preferences to the plugin.
-IPC_MESSAGE_CONTROL1(PpapiMsg_SetPreferences,
-                     ppapi::Preferences)
-
-// Sent in both directions to see if the other side supports the given
-// interface.
-IPC_SYNC_MESSAGE_CONTROL1_1(PpapiMsg_SupportsInterface,
-                            std::string /* interface_name */,
-                            bool /* result */)
-
-#if !BUILDFLAG(IS_NACL)
-// Network state notification from the browser for implementing
-// PPP_NetworkState_Dev.
-IPC_MESSAGE_CONTROL1(PpapiMsg_SetNetworkState,
-                     bool /* online */)
-
-#endif  // !BUILDFLAG(IS_NACL)
-
-// PPB_Audio.
-
-// Notifies the result of the audio stream create call. This is called in
-// both error cases and in the normal success case. These cases are
-// differentiated by the result code, which is one of the standard PPAPI
-// result codes.
-//
-// The handler of this message should always close all of the handles passed
-// in, since some could be valid even in the error case.
-IPC_MESSAGE_ROUTED4(PpapiMsg_PPBAudio_NotifyAudioStreamCreated,
-                    ppapi::HostResource /* audio_id */,
-                    int32_t /* result_code (will be != PP_OK on failure) */,
-                    ppapi::proxy::SerializedHandle /* socket_handle */,
-                    ppapi::proxy::SerializedHandle /* handle */)
-
-// PPB_Graphics3D.
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPBGraphics3D_SwapBuffersACK,
-                    ppapi::HostResource /* graphics_3d */,
-                    int32_t /* pp_error */)
-
-// PPB_ImageData.
-IPC_MESSAGE_ROUTED1(PpapiMsg_PPBImageData_NotifyUnusedImageData,
-                    ppapi::HostResource /* old_image_data */)
-
-// PPB_Instance.
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPBInstance_MouseLockComplete,
-                    PP_Instance /* instance */,
-                    int32_t /* result */)
-
-// PPP_Class.
-IPC_SYNC_MESSAGE_ROUTED3_2(PpapiMsg_PPPClass_HasProperty,
-                           int64_t /* ppp_class */,
-                           int64_t /* object */,
-                           ppapi::proxy::SerializedVar /* property */,
-                           ppapi::proxy::SerializedVar /* out_exception */,
-                           bool /* result */)
-IPC_SYNC_MESSAGE_ROUTED3_2(PpapiMsg_PPPClass_HasMethod,
-                           int64_t /* ppp_class */,
-                           int64_t /* object */,
-                           ppapi::proxy::SerializedVar /* method */,
-                           ppapi::proxy::SerializedVar /* out_exception */,
-                           bool /* result */)
-IPC_SYNC_MESSAGE_ROUTED3_2(PpapiMsg_PPPClass_GetProperty,
-                           int64_t /* ppp_class */,
-                           int64_t /* object */,
-                           ppapi::proxy::SerializedVar /* property */,
-                           ppapi::proxy::SerializedVar /* out_exception */,
-                           ppapi::proxy::SerializedVar /* result */)
-IPC_SYNC_MESSAGE_ROUTED2_2(PpapiMsg_PPPClass_EnumerateProperties,
-                           int64_t /* ppp_class */,
-                           int64_t /* object */,
-                           std::vector<ppapi::proxy::SerializedVar> /* props */,
-                           ppapi::proxy::SerializedVar /* out_exception */)
-IPC_SYNC_MESSAGE_ROUTED4_1(PpapiMsg_PPPClass_SetProperty,
-                           int64_t /* ppp_class */,
-                           int64_t /* object */,
-                           ppapi::proxy::SerializedVar /* name */,
-                           ppapi::proxy::SerializedVar /* value */,
-                           ppapi::proxy::SerializedVar /* out_exception */)
-IPC_SYNC_MESSAGE_ROUTED3_1(PpapiMsg_PPPClass_RemoveProperty,
-                           int64_t /* ppp_class */,
-                           int64_t /* object */,
-                           ppapi::proxy::SerializedVar /* property */,
-                           ppapi::proxy::SerializedVar /* out_exception */)
-IPC_SYNC_MESSAGE_ROUTED4_2(PpapiMsg_PPPClass_Call,
-                           int64_t /* ppp_class */,
-                           int64_t /* object */,
-                           ppapi::proxy::SerializedVar /* method_name */,
-                           std::vector<ppapi::proxy::SerializedVar> /* args */,
-                           ppapi::proxy::SerializedVar /* out_exception */,
-                           ppapi::proxy::SerializedVar /* result */)
-IPC_SYNC_MESSAGE_ROUTED3_2(PpapiMsg_PPPClass_Construct,
-                           int64_t /* ppp_class */,
-                           int64_t /* object */,
-                           std::vector<ppapi::proxy::SerializedVar> /* args */,
-                           ppapi::proxy::SerializedVar /* out_exception */,
-                           ppapi::proxy::SerializedVar /* result */)
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPPClass_Deallocate,
-                    int64_t /* ppp_class */,
-                    int64_t /* object */)
-
-// PPP_Graphics3D_Dev.
-IPC_MESSAGE_ROUTED1(PpapiMsg_PPPGraphics3D_ContextLost,
-                    PP_Instance /* instance */)
-
-// PPP_InputEvent.
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPPInputEvent_HandleInputEvent,
-                    PP_Instance /* instance */,
-                    ppapi::InputEventData /* data */)
-IPC_SYNC_MESSAGE_ROUTED2_1(PpapiMsg_PPPInputEvent_HandleFilteredInputEvent,
-                           PP_Instance /* instance */,
-                           ppapi::InputEventData /* data */,
-                           PP_Bool /* result */)
-
-// PPP_Instance.
-IPC_SYNC_MESSAGE_ROUTED3_1(PpapiMsg_PPPInstance_DidCreate,
-                           PP_Instance /* instance */,
-                           std::vector<std::string> /* argn */,
-                           std::vector<std::string> /* argv */,
-                           PP_Bool /* result */)
-IPC_SYNC_MESSAGE_ROUTED1_0(PpapiMsg_PPPInstance_DidDestroy,
-                           PP_Instance /* instance */)
-IPC_MESSAGE_ROUTED3(PpapiMsg_PPPInstance_DidChangeView,
-                    PP_Instance /* instance */,
-                    ppapi::ViewData /* new_data */,
-                    PP_Bool /* flash_fullscreen */)
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPPInstance_DidChangeFocus,
-                    PP_Instance /* instance */,
-                    PP_Bool /* has_focus */)
-IPC_MESSAGE_ROUTED3(PpapiMsg_PPPInstance_HandleDocumentLoad,
-    PP_Instance /* instance */,
-    int /* pending_loader_host_id */,
-    ppapi::URLResponseInfoData /* response */)
-
-// PPP_Messaging and PPP_MessageHandler.
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPPMessaging_HandleMessage,
-                    PP_Instance /* instance */,
-                    ppapi::proxy::SerializedVar /* message */)
-IPC_SYNC_MESSAGE_ROUTED2_2(PpapiMsg_PPPMessageHandler_HandleBlockingMessage,
-                           PP_Instance /* instance */,
-                           ppapi::proxy::SerializedVar /* message */,
-                           ppapi::proxy::SerializedVar /* result */,
-                           bool /* was_handled */)
-
-// PPP_MouseLock.
-IPC_MESSAGE_ROUTED1(PpapiMsg_PPPMouseLock_MouseLockLost,
-                    PP_Instance /* instance */)
-
-// PPP_Printing
-IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPPrinting_QuerySupportedFormats,
-                           PP_Instance /* instance */,
-                           uint32_t /* result */)
-IPC_SYNC_MESSAGE_ROUTED2_1(PpapiMsg_PPPPrinting_Begin,
-                           PP_Instance /* instance */,
-                           PP_PrintSettings_Dev /* settings */,
-                           int32_t /* result */)
-IPC_SYNC_MESSAGE_ROUTED2_1(PpapiMsg_PPPPrinting_PrintPages,
-                           PP_Instance /* instance */,
-                           std::vector<PP_PrintPageNumberRange_Dev> /* pages */,
-                           ppapi::HostResource /* result */)
-IPC_MESSAGE_ROUTED1(PpapiMsg_PPPPrinting_End,
-                    PP_Instance /* instance */)
-IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPPrinting_IsScalingDisabled,
-                           PP_Instance /* instance */,
-                           bool /* result */)
-
-// PPP_TextInput.
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPPTextInput_RequestSurroundingText,
-                   PP_Instance /* instance */,
-                   uint32_t /* desired_number_of_characters */)
-
-#if !BUILDFLAG(IS_NACL)
-// PPP_Instance_Private.
-IPC_SYNC_MESSAGE_ROUTED1_1(PpapiMsg_PPPInstancePrivate_GetInstanceObject,
-                           PP_Instance /* instance */,
-                           ppapi::proxy::SerializedVar /* result */)
-
-#endif  // !BUILDFLAG(IS_NACL)
-
-// This message is sent from the renderer to the PNaCl compiler process
-// (NaCl untrusted code -- a nexe).  This implements the init_callback()
-// IRT interface.  This message initializes the translation process,
-// providing an array of object file FDs for writing output to, along with
-// other parameters.
-IPC_SYNC_MESSAGE_CONTROL3_2(PpapiMsg_PnaclTranslatorCompileInit,
-                            /* number of threads to use */
-                            int,
-                            /* object file FDs for outputs */
-                            std::vector<ppapi::proxy::SerializedHandle>,
-                            /* list of command line flags */
-                            std::vector<std::string>,
-                            /* success status result */
-                            bool,
-                            /* error string if the success field is false */
-                            std::string)
-
-// This message is sent from the renderer to the PNaCl compiler process
-// (NaCl untrusted code -- a nexe).  This implements the data_callback()
-// IRT interface.  This message sends the next chunk of input bitcode data
-// to the compiler process.  If the success result is false (for failure),
-// the renderer can still invoke PpapiMsg_PnaclTranslatorCompileEnd to get
-// a message describing the error.
-IPC_SYNC_MESSAGE_CONTROL1_1(PpapiMsg_PnaclTranslatorCompileChunk,
-                            /* chunk of data for the input pexe file */
-                            std::string,
-                            /* success status result */
-                            bool)
-
-// This message is sent from the renderer to the PNaCl compiler process
-// (NaCl untrusted code -- a nexe).  This implements the end_callback() IRT
-// interface.  This blocks until translation is complete or an error has
-// occurred.
-IPC_SYNC_MESSAGE_CONTROL0_2(PpapiMsg_PnaclTranslatorCompileEnd,
-                            /* success status result */
-                            bool,
-                            /* error string if the success field is false */
-                            std::string)
-
-// This message is sent from the renderer to the PNaCl linker process
-// (NaCl untrusted code -- a nexe).  This message tells the PNaCl
-// linker to link the given object files together to produce a nexe
-// file, writing the output to the given file handle.
-IPC_SYNC_MESSAGE_CONTROL2_1(PpapiMsg_PnaclTranslatorLink,
-                            /* object file FDs for inputs */
-                            std::vector<ppapi::proxy::SerializedHandle>,
-                            /* nexe file FD for output */
-                            ppapi::proxy::SerializedHandle,
-                            /* success status result */
-                            bool)
-
-
-// These are from the plugin to the renderer.
-
-// Reply to PpapiMsg_CreateChannel. The handle will be NULL if the channel
-// could not be established. This could be because the IPC could not be created
-// for some weird reason, but more likely that the plugin failed to load or
-// initialize properly.
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_ChannelCreated,
-                     IPC::ChannelHandle /* handle */)
-
-// Notify the renderer that the PPAPI channel gets ready in the plugin.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_StartupInitializationComplete)
-
-// This is sent from a nexe (NaCl untrusted code) to the renderer, to open a
-// file listed in a NaCl manifest file (NMF).  It is part of the
-// implementation of open_resource(), which is defined in NaCl's irt.h.
-//
-// This call returns a read-only file handle from the renderer.  When using
-// validation caching, this handle is not used: The NaCl loader process will
-// reacquire the handle from the more-trusted browser process via
-// NaClProcessMsg_ResolveFileToken, passing the token values returned here.
-//
-// Note that the open_resource() interface is not a PPAPI interface (in the
-// sense that it's not defined in ppapi/c/), but this message is defined here
-// in ppapi_messages.h (rather than in components/nacl/) because half of the
-// implementation of open_resource() lives in ppapi/nacl_irt/, and because
-// this message must be processed by ppapi/proxy/nacl_message_scanner.cc.
-IPC_SYNC_MESSAGE_CONTROL1_3(PpapiHostMsg_OpenResource,
-                            std::string /* key */,
-                            uint64_t /* file_token_lo */,
-                            uint64_t /* file_token_hi */,
-                            ppapi::proxy::SerializedHandle /* fd */)
-
-// Logs the given message to the console of all instances.
-IPC_MESSAGE_CONTROL4(PpapiHostMsg_LogWithSource,
-                     PP_Instance /* instance */,
-                     int /* log_level */,
-                     std::string /* source */,
-                     std::string /* value */)
-
-// PPB_Audio.
-IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBAudio_Create,
-                           PP_Instance /* instance_id */,
-                           int32_t /* sample_rate */,
-                           uint32_t /* sample_frame_count */,
-                           ppapi::HostResource /* result */)
-IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBAudio_StartOrStop,
-                    ppapi::HostResource /* audio_id */,
-                    bool /* play */)
-
-// PPB_Core.
-IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBCore_AddRefResource,
-                    ppapi::HostResource)
-IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBCore_ReleaseResource,
-                    ppapi::HostResource)
-
-// PPB_Graphics3D.
-IPC_SYNC_MESSAGE_ROUTED3_5(
-    PpapiHostMsg_PPBGraphics3D_Create,
-    PP_Instance /* instance */,
-    ppapi::HostResource /* share_context */,
-    ppapi::Graphics3DContextAttribs /* context_attribs */,
-    ppapi::HostResource /* result */,
-    gpu::Capabilities /* capabilities */,
-    gpu::GLCapabilities /* gl_capabilities */,
-    ppapi::proxy::SerializedHandle /* shared_state */,
-    gpu::CommandBufferId /* command_buffer_id */)
-IPC_SYNC_MESSAGE_ROUTED2_0(PpapiHostMsg_PPBGraphics3D_SetGetBuffer,
-                           ppapi::HostResource /* context */,
-                           int32_t /* transfer_buffer_id */)
-IPC_SYNC_MESSAGE_ROUTED3_2(PpapiHostMsg_PPBGraphics3D_WaitForTokenInRange,
-                           ppapi::HostResource /* context */,
-                           int32_t /* start */,
-                           int32_t /* end */,
-                           gpu::CommandBuffer::State /* state */,
-                           bool /* success */)
-IPC_SYNC_MESSAGE_ROUTED4_2(PpapiHostMsg_PPBGraphics3D_WaitForGetOffsetInRange,
-                           ppapi::HostResource /* context */,
-                           uint32_t /* set_get_buffer_count */,
-                           int32_t /* start */,
-                           int32_t /* end */,
-                           gpu::CommandBuffer::State /* state */,
-                           bool /* success */)
-IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBGraphics3D_AsyncFlush,
-                    ppapi::HostResource /* context */,
-                    int32_t /* put_offset */,
-                    uint64_t /* release_count */)
-IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBGraphics3D_CreateTransferBuffer,
-                           ppapi::HostResource /* context */,
-                           uint32_t /* size */,
-                           int32_t /* id */,
-                           ppapi::proxy::SerializedHandle /* transfer_buffer */)
-IPC_SYNC_MESSAGE_ROUTED2_0(PpapiHostMsg_PPBGraphics3D_DestroyTransferBuffer,
-                           ppapi::HostResource /* context */,
-                           int32_t /* id */)
-// The receiver of this message takes ownership of the front buffer of the GL
-// context. Each call to PpapiHostMsg_PPBGraphics3D_SwapBuffers must be preceded
-// by exactly one call to
-// PpapiHostMsg_PPBGraphics3D_ResolveAndDetachFramebuffer. The SyncToken passed
-// to PpapiHostMsg_PPBGraphics3D_SwapBuffers must be generated after this
-// message is sent.
-IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBGraphics3D_SwapBuffers,
-                    ppapi::HostResource /* graphics_3d */,
-                    gpu::SyncToken /* sync_token */,
-                    gfx::Size /* size */)
-IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBGraphics3D_EnsureWorkVisible,
-                    ppapi::HostResource /* context */)
-IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBGraphics3D_ResolveAndDetachFramebuffer,
-                    ppapi::HostResource /* graphics_3d */)
-IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBGraphics3D_Resize,
-                    ppapi::HostResource /* graphics_3d */,
-                    gfx::Size /* size */)
-
-// PPB_ImageData.
-IPC_SYNC_MESSAGE_ROUTED4_3(PpapiHostMsg_PPBImageData_CreatePlatform,
-                           PP_Instance /* instance */,
-                           int32_t /* format */,
-                           PP_Size /* size */,
-                           PP_Bool /* init_to_zero */,
-                           ppapi::HostResource /* result_resource */,
-                           PP_ImageDataDesc /* image_data_desc */,
-                           ppapi::proxy::SerializedHandle /* result */)
-IPC_SYNC_MESSAGE_ROUTED4_3(PpapiHostMsg_PPBImageData_CreateSimple,
-                           PP_Instance /* instance */,
-                           int32_t /* format */,
-                           PP_Size /* size */,
-                           PP_Bool /* init_to_zero */,
-                           ppapi::HostResource /* result_resource */,
-                           PP_ImageDataDesc /* image_data_desc */,
-                           ppapi::proxy::SerializedHandle /* result */)
-
-// PPB_Instance.
-IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetWindowObject,
-                           PP_Instance /* instance */,
-                           ppapi::proxy::SerializedVar /* result */)
-IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetOwnerElementObject,
-                           PP_Instance /* instance */,
-                           ppapi::proxy::SerializedVar /* result */)
-IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_BindGraphics,
-                    PP_Instance /* instance */,
-                    PP_Resource /* device */)
-IPC_SYNC_MESSAGE_ROUTED1_1(
-    PpapiHostMsg_PPBInstance_GetAudioHardwareOutputSampleRate,
-                           PP_Instance /* instance */,
-                           uint32_t /* result */)
-IPC_SYNC_MESSAGE_ROUTED1_1(
-    PpapiHostMsg_PPBInstance_GetAudioHardwareOutputBufferSize,
-                           PP_Instance /* instance */,
-                           uint32_t /* result */)
-IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_IsFullFrame,
-                           PP_Instance /* instance */,
-                           PP_Bool /* result */)
-IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBInstance_ExecuteScript,
-                           PP_Instance /* instance */,
-                           ppapi::proxy::SerializedVar /* script */,
-                           ppapi::proxy::SerializedVar /* out_exception */,
-                           ppapi::proxy::SerializedVar /* result */)
-IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetDefaultCharSet,
-                           PP_Instance /* instance */,
-                           ppapi::proxy::SerializedVar /* result */)
-IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_SetFullscreen,
-                           PP_Instance /* instance */,
-                           PP_Bool /* fullscreen */,
-                           PP_Bool /* result */)
-IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBInstance_GetScreenSize,
-                           PP_Instance /* instance */,
-                           PP_Bool /* result */,
-                           PP_Size /* size */)
-IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_RequestInputEvents,
-                    PP_Instance /* instance */,
-                    bool /* is_filtering */,
-                    uint32_t /* event_classes */)
-IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_ClearInputEvents,
-                    PP_Instance /* instance */,
-                    uint32_t /* event_classes */)
-IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_PostMessage,
-                    PP_Instance /* instance */,
-                    ppapi::proxy::SerializedVar /* message */)
-IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_LockMouse,
-                    PP_Instance /* instance */)
-IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_UnlockMouse,
-                    PP_Instance /* instance */)
-IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_ResolveRelativeToDocument,
-                           PP_Instance /* instance */,
-                           ppapi::proxy::SerializedVar /* relative */,
-                           ppapi::proxy::SerializedVar /* result */)
-IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_DocumentCanRequest,
-                           PP_Instance /* instance */,
-                           ppapi::proxy::SerializedVar /* relative */,
-                           PP_Bool /* result */)
-IPC_SYNC_MESSAGE_ROUTED2_1(PpapiHostMsg_PPBInstance_DocumentCanAccessDocument,
-                           PP_Instance /* active */,
-                           PP_Instance /* target */,
-                           PP_Bool /* result */)
-IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBInstance_GetDocumentURL,
-                           PP_Instance /* active */,
-                           PP_URLComponents_Dev /* components */,
-                           ppapi::proxy::SerializedVar /* result */)
-IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetPluginInstanceURL,
-                           PP_Instance /* active */,
-                           ppapi::proxy::SerializedVar /* result */)
-IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBInstance_GetPluginReferrerURL,
-                           PP_Instance /* instance */,
-                           ppapi::proxy::SerializedVar /* result */)
-IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_SetCursor,
-                    PP_Instance /* instance */,
-                    int32_t /* type */,
-                    ppapi::HostResource /* custom_image */,
-                    PP_Point /* hot_spot */)
-IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBInstance_SetTextInputType,
-                    PP_Instance /* instance */,
-                    PP_TextInput_Type /* type */)
-IPC_MESSAGE_ROUTED3(PpapiHostMsg_PPBInstance_UpdateCaretPosition,
-                    PP_Instance /* instance */,
-                    PP_Rect /* caret */,
-                    PP_Rect /* bounding_box */)
-IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBInstance_CancelCompositionText,
-                    PP_Instance /* instance */)
-IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBInstance_UpdateSurroundingText,
-                    PP_Instance /* instance */,
-                    std::string /* text */,
-                    uint32_t /* caret */,
-                    uint32_t /* anchor */)
-
-// PPB_Var.
-IPC_SYNC_MESSAGE_ROUTED1_0(PpapiHostMsg_PPBVar_AddRefObject,
-                           int64_t /* object_id */)
-IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBVar_ReleaseObject, int64_t /* object_id */)
-IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_HasProperty,
-                           ppapi::proxy::SerializedVar /* object */,
-                           ppapi::proxy::SerializedVar /* property */,
-                           ppapi::proxy::SerializedVar /* out_exception */,
-                           PP_Bool /* result */)
-IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_HasMethodDeprecated,
-                           ppapi::proxy::SerializedVar /* object */,
-                           ppapi::proxy::SerializedVar /* method */,
-                           ppapi::proxy::SerializedVar /* out_exception */,
-                           PP_Bool /* result */)
-IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_GetProperty,
-                           ppapi::proxy::SerializedVar /* object */,
-                           ppapi::proxy::SerializedVar /* property */,
-                           ppapi::proxy::SerializedVar /* out_exception */,
-                           ppapi::proxy::SerializedVar /* result */)
-IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_DeleteProperty,
-                           ppapi::proxy::SerializedVar /* object */,
-                           ppapi::proxy::SerializedVar /* property */,
-                           ppapi::proxy::SerializedVar /* out_exception */,
-                           PP_Bool /* result */)
-IPC_SYNC_MESSAGE_ROUTED1_2(PpapiHostMsg_PPBVar_EnumerateProperties,
-                           ppapi::proxy::SerializedVar /* object */,
-                           std::vector<ppapi::proxy::SerializedVar> /* props */,
-                           ppapi::proxy::SerializedVar /* out_exception */)
-IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBVar_SetPropertyDeprecated,
-                           ppapi::proxy::SerializedVar /* object */,
-                           ppapi::proxy::SerializedVar /* name */,
-                           ppapi::proxy::SerializedVar /* value */,
-                           ppapi::proxy::SerializedVar /* out_exception */)
-IPC_SYNC_MESSAGE_ROUTED3_2(PpapiHostMsg_PPBVar_CallDeprecated,
-                           ppapi::proxy::SerializedVar /* object */,
-                           ppapi::proxy::SerializedVar /* method_name */,
-                           std::vector<ppapi::proxy::SerializedVar> /* args */,
-                           ppapi::proxy::SerializedVar /* out_exception */,
-                           ppapi::proxy::SerializedVar /* result */)
-IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_Construct,
-                           ppapi::proxy::SerializedVar /* object */,
-                           std::vector<ppapi::proxy::SerializedVar> /* args */,
-                           ppapi::proxy::SerializedVar /* out_exception */,
-                           ppapi::proxy::SerializedVar /* result */)
-IPC_SYNC_MESSAGE_ROUTED2_2(PpapiHostMsg_PPBVar_IsInstanceOfDeprecated,
-                           ppapi::proxy::SerializedVar /* var */,
-                           int64_t /* object_class */,
-                           int64_t /* object-data */,
-                           PP_Bool /* result */)
-IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBVar_CreateObjectDeprecated,
-                           PP_Instance /* instance */,
-                           int64_t /* object_class */,
-                           int64_t /* object_data */,
-                           ppapi::proxy::SerializedVar /* result */)
-
-#if !BUILDFLAG(IS_NACL)
-// PPB_Buffer.
-IPC_SYNC_MESSAGE_ROUTED2_2(
-    PpapiHostMsg_PPBBuffer_Create,
-    PP_Instance /* instance */,
-    uint32_t /* size */,
-    ppapi::HostResource /* result_resource */,
-    ppapi::proxy::SerializedHandle /* result_shm_handle */)
-
-#endif  // !BUILDFLAG(IS_NACL)
-
-// PPB_Testing.
-IPC_SYNC_MESSAGE_ROUTED3_1(
-    PpapiHostMsg_PPBTesting_ReadImageData,
-    ppapi::HostResource /* device_context_2d */,
-    ppapi::HostResource /* image */,
-    PP_Point /* top_left */,
-    PP_Bool /* result */)
-IPC_SYNC_MESSAGE_ROUTED1_1(PpapiHostMsg_PPBTesting_GetLiveObjectsForInstance,
-                           PP_Instance /* instance */,
-                           uint32_t /* result */)
-IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBTesting_SimulateInputEvent,
-                    PP_Instance /* instance */,
-                    ppapi::InputEventData /* input_event */)
-IPC_SYNC_MESSAGE_ROUTED1_0(
-    PpapiHostMsg_PPBTesting_SetMinimumArrayBufferSizeForShmem,
-    uint32_t /* threshold */)
-
-#if !BUILDFLAG(IS_NACL)
-
-// PPB_VideoDecoder_Dev.
-// (Messages from plugin to renderer.)
-IPC_SYNC_MESSAGE_ROUTED3_1(PpapiHostMsg_PPBVideoDecoder_Create,
-                           PP_Instance /* instance */,
-                           ppapi::HostResource /* context */,
-                           PP_VideoDecoder_Profile /* profile */,
-                           ppapi::HostResource /* result */)
-IPC_MESSAGE_ROUTED4(PpapiHostMsg_PPBVideoDecoder_Decode,
-                    ppapi::HostResource /* video_decoder */,
-                    ppapi::HostResource /* bitstream buffer */,
-                    int32_t /* bitstream buffer id */,
-                    uint32_t /* size of buffer */)
-IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBVideoDecoder_AssignPictureBuffers,
-                    ppapi::HostResource /* video_decoder */,
-                    std::vector<PP_PictureBuffer_Dev> /* picture buffers */)
-IPC_MESSAGE_ROUTED2(PpapiHostMsg_PPBVideoDecoder_ReusePictureBuffer,
-                    ppapi::HostResource /* video_decoder */,
-                    int32_t /* picture buffer id */)
-IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBVideoDecoder_Flush,
-                    ppapi::HostResource /* video_decoder */)
-IPC_MESSAGE_ROUTED1(PpapiHostMsg_PPBVideoDecoder_Reset,
-                    ppapi::HostResource /* video_decoder */)
-IPC_SYNC_MESSAGE_ROUTED1_0(PpapiHostMsg_PPBVideoDecoder_Destroy,
-                           ppapi::HostResource /* video_decoder */)
-
-// PPB_VideoDecoder_Dev.
-// (Messages from renderer to plugin to notify it to run callbacks.)
-IPC_MESSAGE_ROUTED3(PpapiMsg_PPBVideoDecoder_EndOfBitstreamACK,
-                    ppapi::HostResource /* video_decoder */,
-                    int32_t /* bitstream buffer id */,
-                    int32_t /* PP_CompletionCallback result */)
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPBVideoDecoder_FlushACK,
-                    ppapi::HostResource /* video_decoder */,
-                    int32_t /* PP_CompletionCallback result  */)
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPBVideoDecoder_ResetACK,
-                    ppapi::HostResource /* video_decoder */,
-                    int32_t /* PP_CompletionCallback result */)
-
-// PPP_VideoDecoder_Dev.
-IPC_MESSAGE_ROUTED4(PpapiMsg_PPPVideoDecoder_ProvidePictureBuffers,
-                    ppapi::HostResource /* video_decoder */,
-                    uint32_t /* requested number of buffers */,
-                    PP_Size /* dimensions of buffers */,
-                    uint32_t /* texture_target */)
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_DismissPictureBuffer,
-                    ppapi::HostResource /* video_decoder */,
-                    int32_t /* picture buffer id */)
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_PictureReady,
-                    ppapi::HostResource /* video_decoder */,
-                    PP_Picture_Dev /* output picture */)
-IPC_MESSAGE_ROUTED2(PpapiMsg_PPPVideoDecoder_NotifyError,
-                    ppapi::HostResource /* video_decoder */,
-                    PP_VideoDecodeError_Dev /* error */)
-#endif  // !BUILDFLAG(IS_NACL)
-
-//-----------------------------------------------------------------------------
-// Resource call/reply messages.
-//
-// These are the new-style resource implementations where the resource is only
-// implemented in the proxy and "resource messages" are sent between this and a
-// host object. Resource messages are a wrapper around some general routing
-// information and a separate message of a type defined by the specific resource
-// sending/receiving it. The extra paremeters allow the nested message to be
-// routed automatically to the correct resource.
-
-// Notification that a resource has been created in the plugin. The nested
-// message will be resource-type-specific.
-IPC_MESSAGE_CONTROL3(PpapiHostMsg_ResourceCreated,
-                     ppapi::proxy::ResourceMessageCallParams /* call_params */,
-                     PP_Instance  /* instance */,
-                     IPC::Message /* nested_msg */)
-
-// Notification that a resource has been destroyed in the plugin.
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_ResourceDestroyed,
-                     PP_Resource /* resource */)
-
-// Most resources are created by the plugin, which then sends a ResourceCreated
-// message to create a corresponding ResourceHost in the renderer or browser
-// host process. However, some resources are first created in the host and
-// "pushed" or returned to the plugin.
-//
-// In this case, the host will create a "pending" ResourceHost object which
-// is identified by an ID. The ID is sent to the plugin process and the
-// PluginResource object is created. This message is sent from the plugin to
-// the host process to connect the PluginResource and the pending ResourceHost
-// (at which point, it's no longer pending).
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_AttachToPendingHost,
-                     PP_Resource /* resource */,
-                     int /* pending_host_id */)
-
-// A resource call is a request from the plugin to the host. It may or may not
-// require a reply, depending on the params. The nested message will be
-// resource-type-specific.
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_ResourceCall,
-                     ppapi::proxy::ResourceMessageCallParams /* call_params */,
-                     IPC::Message /* nested_msg */)
-IPC_MESSAGE_CONTROL3(PpapiHostMsg_InProcessResourceCall,
-                     int /* routing_id */,
-                     ppapi::proxy::ResourceMessageCallParams /* call_params */,
-                     IPC::Message /* nested_msg */)
-
-// A resource reply is a response to a ResourceCall from a host to the
-// plugin. The resource ID + sequence number in the params will correspond to
-// that of the previous ResourceCall.
-IPC_MESSAGE_CONTROL2(
-    PpapiPluginMsg_ResourceReply,
-    ppapi::proxy::ResourceMessageReplyParams /* reply_params */,
-    IPC::Message /* nested_msg */)
-IPC_MESSAGE_ROUTED2(
-    PpapiHostMsg_InProcessResourceReply,
-    ppapi::proxy::ResourceMessageReplyParams /* reply_params */,
-    IPC::Message /* nested_msg */)
-
-IPC_SYNC_MESSAGE_CONTROL2_2(PpapiHostMsg_ResourceSyncCall,
-    ppapi::proxy::ResourceMessageCallParams /* call_params */,
-    IPC::Message /* nested_msg */,
-    ppapi::proxy::ResourceMessageReplyParams /* reply_params */,
-    IPC::Message /* reply_msg */)
-
-// This message is sent from the renderer to the browser when it wants to create
-// ResourceHosts in the browser. It contains the process ID of the plugin and
-// the instance of the plugin for which to create the resource for. params
-// contains the sequence number for the message to track the response.
-// The nested messages are ResourceHost creation messages.
-IPC_MESSAGE_CONTROL5(
-    PpapiHostMsg_CreateResourceHostsFromHost,
-    int /* routing_id */,
-    int /* child_process_id */,
-    ppapi::proxy::ResourceMessageCallParams /* params */,
-    PP_Instance /* instance */,
-    std::vector<IPC::Message> /* nested_msgs */)
-
-// This message is sent from the browser to the renderer when it has created
-// ResourceHosts for the renderer. It contains the sequence number that was sent
-// in the request and the IDs of the pending ResourceHosts which were created in
-// the browser. These IDs are only useful for the plugin which can attach to the
-// ResourceHosts in the browser.
-IPC_MESSAGE_ROUTED2(
-    PpapiHostMsg_CreateResourceHostsFromHostReply,
-    int32_t /* sequence */,
-    std::vector<int> /* pending_host_ids */)
-
-//-----------------------------------------------------------------------------
-// Messages for resources using call/reply above.
-
-// UMA
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_UMA_Create)
-IPC_MESSAGE_CONTROL5(PpapiHostMsg_UMA_HistogramCustomTimes,
-                     std::string /* name */,
-                     int64_t /* sample */,
-                     int64_t /* min */,
-                     int64_t /* max */,
-                     uint32_t /* bucket_count */)
-IPC_MESSAGE_CONTROL5(PpapiHostMsg_UMA_HistogramCustomCounts,
-                     std::string /* name */,
-                     int32_t /* sample */,
-                     int32_t /* min */,
-                     int32_t /* max */,
-                     uint32_t /* bucket_count */)
-IPC_MESSAGE_CONTROL3(PpapiHostMsg_UMA_HistogramEnumeration,
-                     std::string /* name */,
-                     int32_t /* sample */,
-                     int32_t /* boundary_value */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_UMA_IsCrashReportingEnabled)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_UMA_IsCrashReportingEnabledReply)
-
-// File chooser.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileChooser_Create)
-IPC_MESSAGE_CONTROL4(PpapiHostMsg_FileChooser_Show,
-                     bool /* save_as */,
-                     bool /* open_multiple */,
-                     std::string /* suggested_file_name */,
-                     std::vector<std::string> /* accept_mime_types */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileChooser_ShowReply,
-                     std::vector<ppapi::FileRefCreateInfo> /* files */)
-
-// FileIO
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_Create)
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_Open,
-                     PP_Resource /* file_ref_resource */,
-                     int32_t /* open_flags */)
-IPC_MESSAGE_CONTROL2(PpapiPluginMsg_FileIO_OpenReply,
-                     PP_Resource /* quota_file_system */,
-                     int64_t /* file_size */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileIO_Close,
-                     ppapi::FileGrowth /* file_growth */)
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileIO_Touch,
-                     PP_Time /* last_access_time */,
-                     PP_Time /* last_modified_time */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileIO_SetLength,
-                     int64_t /* length */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_Flush)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileIO_RequestOSFileHandle)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileIO_RequestOSFileHandleReply)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileIO_GeneralReply)
-
-// FileRef
-// Creates a FileRef to a path on an external file system. This message may
-// only be sent from the renderer.
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_CreateForRawFS,
-                     base::FilePath /* external_path */)
-
-// Creates a FileRef to a path on a file system that uses fileapi.
-// This message may be sent from the renderer or the plugin.
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileRef_CreateForFileAPI,
-                     PP_Resource /* file_system */,
-                     std::string /* internal_path */)
-
-// Requests that the browser create a directory at the location indicated by
-// the FileRef.
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_MakeDirectory,
-                     int32_t /* make_directory_flags */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_MakeDirectoryReply)
-
-// Requests that the browser update the last accessed and last modified times
-// at the location indicated by the FileRef.
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileRef_Touch,
-                     PP_Time /* last_accessed */,
-                     PP_Time /* last_modified */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_TouchReply)
-
-// Requests that the browser delete a file or directory at the location
-// indicated by the FileRef.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_Delete)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_DeleteReply)
-
-// Requests that the browser rename a file or directory at the location
-// indicated by the FileRef.
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileRef_Rename,
-                     PP_Resource /* new_file_ref */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileRef_RenameReply)
-
-// Requests that the browser retrieve metadata information for a file or
-// directory at the location indicated by the FileRef.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_Query)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileRef_QueryReply,
-                     PP_FileInfo /* file_info */)
-
-// Requests that the browser retrieve then entries in a directory at the
-// location indicated by the FileRef.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_ReadDirectoryEntries)
-
-// FileRefCreateInfo does not provide file type information, so two
-// corresponding vectors are returned.
-IPC_MESSAGE_CONTROL2(PpapiPluginMsg_FileRef_ReadDirectoryEntriesReply,
-                     std::vector<ppapi::FileRefCreateInfo> /* files */,
-                     std::vector<PP_FileType> /* file_types */)
-
-// Requests that the browser reply with the absolute path to the indicated
-// file.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_FileRef_GetAbsolutePath)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileRef_GetAbsolutePathReply,
-                     std::string /* absolute_path */)
-
-// FileSystem
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileSystem_Create,
-                     PP_FileSystemType /* type */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_FileSystem_Open,
-                     int64_t /* expected_size */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileSystem_OpenReply)
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileSystem_InitIsolatedFileSystem,
-                     std::string /* fsid */,
-                     PP_IsolatedFileSystemType_Private /* type */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_FileSystem_InitIsolatedFileSystemReply)
-// Passed from renderer to browser. Creates an already-open file system with a
-// given |root_url| and |file_system_type|.
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileSystem_CreateFromRenderer,
-                     std::string /* root_url */,
-                     PP_FileSystemType /* file_system_type */)
-// Nested within a ResourceVar for file systems being passed from the renderer
-// to the plugin. Creates an already-open file system resource on the plugin,
-// linked to the existing resource host given in the ResourceVar.
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_FileSystem_CreateFromPendingHost,
-                     PP_FileSystemType /* file_system_type */)
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_FileSystem_ReserveQuota,
-                     int64_t /* amount */,
-                     ppapi::FileGrowthMap /* file_growths */)
-IPC_MESSAGE_CONTROL2(PpapiPluginMsg_FileSystem_ReserveQuotaReply,
-                     int64_t /* amount */,
-                     ppapi::FileSizeMap /* file_sizes */)
-
-// Gamepad.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_Gamepad_Create)
-
-// Requests that the gamepad host send the shared memory handle to the plugin
-// process.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_Gamepad_RequestMemory)
-
-// Reply to a RequestMemory call. This supplies the shared memory handle. The
-// actual handle is passed in the ReplyParams struct.
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Gamepad_SendMemory)
-
-
-// Graphics2D, plugin -> host
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_Graphics2D_Create,
-                     PP_Size /* size */,
-                     PP_Bool /* is_always_opaque */)
-IPC_MESSAGE_CONTROL4(PpapiHostMsg_Graphics2D_PaintImageData,
-                     ppapi::HostResource /* image_data */,
-                     PP_Point /* top_left */,
-                     bool /* src_rect_specified */,
-                     PP_Rect /* src_rect */)
-IPC_MESSAGE_CONTROL3(PpapiHostMsg_Graphics2D_Scroll,
-                     bool /* clip_specified */,
-                     PP_Rect /* clip */,
-                     PP_Point /* amount */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_ReplaceContents,
-                     ppapi::HostResource /* image_data */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_Graphics2D_SetScale,
-                     float /* scale */)
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_Graphics2D_SetLayerTransform,
-                     float /* scale */,
-                     PP_FloatPoint /* translate */)
-
-// Graphics2D, plugin -> host -> plugin
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_Graphics2D_Flush)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Graphics2D_FlushAck)
-
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_Graphics2D_ReadImageData,
-                     PP_Resource /* image */,
-                     PP_Point /* top_left */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_Graphics2D_ReadImageDataAck)
-
-// CameraDevice ----------------------------------------------------------------
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_CameraDevice_Create)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_CameraDevice_Close)
-
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_CameraDevice_Open,
-                     std::string /* camera_source_id */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_CameraDevice_OpenReply)
-
-IPC_MESSAGE_CONTROL0(
-    PpapiHostMsg_CameraDevice_GetSupportedVideoCaptureFormats)
-IPC_MESSAGE_CONTROL1(
-    PpapiPluginMsg_CameraDevice_GetSupportedVideoCaptureFormatsReply,
-    std::vector<PP_VideoCaptureFormat> /* video_capture_formats */)
-
-// IsolatedFileSystem ----------------------------------------------------------
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_IsolatedFileSystem_Create)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_IsolatedFileSystem_BrowserOpen,
-                     PP_IsolatedFileSystemType_Private /* type */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_IsolatedFileSystem_BrowserOpenReply,
-                     std::string /* fsid */)
-
-// MediaStream -----------------------------------------------------------------
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamAudioTrack_CreateFromPendingHost,
-                     std::string /* track_id */)
-IPC_MESSAGE_CONTROL1(
-    PpapiHostMsg_MediaStreamAudioTrack_Configure,
-    ppapi::MediaStreamAudioTrackShared::Attributes /* attributes */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_MediaStreamAudioTrack_ConfigureReply)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamVideoTrack_CreateFromPendingHost,
-                     std::string /* track_id */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_MediaStreamVideoTrack_Create)
-IPC_MESSAGE_CONTROL1(
-    PpapiHostMsg_MediaStreamVideoTrack_Configure,
-    ppapi::MediaStreamVideoTrackShared::Attributes /* attributes */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamVideoTrack_ConfigureReply,
-                     std::string /* track_id */)
-
-// Message for init buffers. It also takes a shared memory handle which is put
-// in the outer ResourceReplyMessage.
-IPC_MESSAGE_CONTROL3(PpapiPluginMsg_MediaStreamTrack_InitBuffers,
-                     int32_t /* number_of_buffers */,
-                     int32_t /* buffer_size */,
-                     bool /* readonly */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamTrack_EnqueueBuffer,
-                     int32_t /* index */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_MediaStreamTrack_EnqueueBuffer,
-                     int32_t /* index */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_MediaStreamTrack_EnqueueBuffers,
-                     std::vector<int32_t> /* indices */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_MediaStreamTrack_Close)
-
-// NetworkMonitor.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_NetworkMonitor_Create)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_NetworkMonitor_NetworkList,
-                     ppapi::proxy::SerializedNetworkList /* network_list */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_NetworkMonitor_Forbidden)
-
-// NetworkProxy ----------------------------------------------------------------
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_NetworkProxy_Create)
-
-// Query the browser for the proxy server to use for the given URL.
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_NetworkProxy_GetProxyForURL,
-                     std::string /* url */)
-
-// Reply message for GetProxyForURL containing the proxy server.
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_NetworkProxy_GetProxyForURLReply,
-                     std::string /* proxy */)
-
-// Host Resolver ---------------------------------------------------------------
-// Creates a PPB_HostResolver resource.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_HostResolver_Create)
-
-// Creates a PPB_HostResolver_Private resource.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_HostResolver_CreatePrivate)
-
-// Resolves the given hostname.
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_HostResolver_Resolve,
-                     ppapi::HostPortPair /* host_port */,
-                     PP_HostResolver_Private_Hint /* hint */)
-
-// This message is a reply to HostResolver_Resolve. On success,
-// |canonical_name| contains the canonical name of the host; |net_address_list|
-// is a list of network addresses. On failure, both fields are set to empty.
-IPC_MESSAGE_CONTROL2(PpapiPluginMsg_HostResolver_ResolveReply,
-                     std::string /* canonical_name */,
-                     std::vector<PP_NetAddress_Private> /* net_address_list */)
-
-// Printing.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_Printing_Create)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_Printing_GetDefaultPrintSettings)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_Printing_GetDefaultPrintSettingsReply,
-                     PP_PrintSettings_Dev /* print_settings */)
-
-// TCP Socket ------------------------------------------------------------------
-// Creates a PPB_TCPSocket resource.
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Create,
-                     ppapi::TCPSocketVersion /* version */)
-
-// Creates a PPB_TCPSocket_Private resource.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPSocket_CreatePrivate)
-
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Bind,
-                     PP_NetAddress_Private /* net_addr */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TCPSocket_BindReply,
-                     PP_NetAddress_Private /* local_addr */)
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_TCPSocket_Connect,
-                     std::string /* host */,
-                     uint16_t /* port */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_ConnectWithNetAddress,
-                     PP_NetAddress_Private /* net_addr */)
-IPC_MESSAGE_CONTROL2(PpapiPluginMsg_TCPSocket_ConnectReply,
-                     PP_NetAddress_Private /* local_addr */,
-                     PP_NetAddress_Private /* remote_addr */)
-IPC_MESSAGE_CONTROL4(PpapiHostMsg_TCPSocket_SSLHandshake,
-                     std::string /* server_name */,
-                     uint16_t /* server_port */,
-                     std::vector<std::vector<char> > /* trusted_certs */,
-                     std::vector<std::vector<char> > /* untrusted_certs */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TCPSocket_SSLHandshakeReply,
-                     ppapi::PPB_X509Certificate_Fields /* certificate_fields */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Read,
-                     int32_t /* bytes_to_read */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TCPSocket_ReadReply,
-                     std::string /* data */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Write,
-                     std::string /* data */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_TCPSocket_WriteReply)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_TCPSocket_Listen,
-                     int32_t /* backlog */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_TCPSocket_ListenReply)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPSocket_Accept)
-IPC_MESSAGE_CONTROL3(PpapiPluginMsg_TCPSocket_AcceptReply,
-                     int /* pending_host_id*/,
-                     PP_NetAddress_Private /* local_addr */,
-                     PP_NetAddress_Private /* remote_addr */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPSocket_Close)
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_TCPSocket_SetOption,
-                     PP_TCPSocket_Option /* name */,
-                     ppapi::SocketOptionData /* value */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_TCPSocket_SetOptionReply)
-
-// TCP Server Socket -----------------------------------------------------------
-// Creates a PPB_TCPServerSocket_Private resource.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPServerSocket_CreatePrivate)
-
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_TCPServerSocket_Listen,
-                     PP_NetAddress_Private /* addr */,
-                     int32_t /* backlog */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_TCPServerSocket_ListenReply,
-                     PP_NetAddress_Private /* local_addr */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPServerSocket_Accept)
-IPC_MESSAGE_CONTROL3(PpapiPluginMsg_TCPServerSocket_AcceptReply,
-                     int /* pending_resource_id */,
-                     PP_NetAddress_Private /* local_addr */,
-                     PP_NetAddress_Private /* remote_addr */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_TCPServerSocket_StopListening)
-
-// UDP Socket ------------------------------------------------------------------
-// Creates a PPB_UDPSocket resource.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_UDPSocket_Create)
-
-// Creates a PPB_UDPSocket_Private resource.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_UDPSocket_CreatePrivate)
-
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_UDPSocket_SetOption,
-                     PP_UDPSocket_Option /* name */,
-                     ppapi::SocketOptionData /* value */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_UDPSocket_SetOptionReply)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_UDPSocket_Bind,
-                     PP_NetAddress_Private /* net_addr */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_UDPSocket_BindReply,
-                     PP_NetAddress_Private /* bound_addr */)
-IPC_MESSAGE_CONTROL3(PpapiPluginMsg_UDPSocket_PushRecvResult,
-                     int32_t /* result */,
-                     std::string /* data */,
-                     PP_NetAddress_Private /* remote_addr */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_UDPSocket_RecvSlotAvailable)
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_UDPSocket_SendTo,
-                     std::string /* data */,
-                     PP_NetAddress_Private /* net_addr */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_UDPSocket_SendToReply,
-                     int32_t /* bytes_written */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_UDPSocket_Close)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_UDPSocket_JoinGroup,
-                     PP_NetAddress_Private /* net_addr */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_UDPSocket_JoinGroupReply)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_UDPSocket_LeaveGroup,
-                     PP_NetAddress_Private /* net_addr */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_UDPSocket_LeaveGroupReply)
-
-// URLLoader ------------------------------------------------------------------
-
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_URLLoader_Create)
-
-// These messages correspond to PPAPI calls and all should get a
-// CallbackComplete message.
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_URLLoader_Open,
-                     ppapi::URLRequestInfoData /* request_data */)
-
-// The plugin can tell the host to defer a load to hold off on sending more
-// data because the buffer in the plugin is full. When defers_loading is set to
-// false, data streaming will resume.
-//
-// When auditing redirects (no auto follow) the load will be automatically
-// deferred each time we get a redirect. The plugin will reset this to false
-// by sending this message when it wants to continue following the redirect.
-//
-// When streaming data, the host may still send more data after this call (for
-// example, it could already be in-flight at the time of this request).
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_URLLoader_SetDeferLoading,
-                     bool /* defers_loading */)
-
-// Closes the URLLoader. There is no reply.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_URLLoader_Close)
-
-// Requests that cross-site restrictions be ignored. The plugin must have
-// the private permission set. Otherwise this message will be ignored by the
-// renderer. There is no reply.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_URLLoader_GrantUniversalAccess)
-
-// Push notification that a response is available.
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_URLLoader_ReceivedResponse,
-                     ppapi::URLResponseInfoData /* response */)
-
-// Push notification with load data from the renderer. It is a custom generated
-// message with the response data (array of bytes stored via WriteData)
-// appended.
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_URLLoader_SendData)
-
-// Push notification indicating that all data has been sent, either via
-// SendData or by streaming it to a file. Note that since this is a push
-// notification, we don't use the result field of the ResourceMessageReply.
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_URLLoader_FinishedLoading,
-                     int32_t /* result */)
-
-// Push notification from the renderer to the plugin to tell it about download
-// and upload progress. This will only be sent if the plugin has requested
-// progress updates, and only the fields requested by the plugin will be
-// valid.
-IPC_MESSAGE_CONTROL4(PpapiPluginMsg_URLLoader_UpdateProgress,
-                     int64_t /* bytes_sent */,
-                     int64_t /* total_bytes_to_be_sent */,
-                     int64_t /* bytes_received */,
-                     int64_t /* total_bytes_to_be_received */)
-
-// Shared memory ---------------------------------------------------------------
-
-// Creates shared memory on the host side, returning a handle to the shared
-// memory on the plugin and keeping the memory mapped in on the host.
-// We return a "host handle_id" that can be mapped back to the
-// handle on the host side by PpapiGlobals::UntrackSharedMemoryHandle().
-IPC_SYNC_MESSAGE_CONTROL2_2(PpapiHostMsg_SharedMemory_CreateSharedMemory,
-                            PP_Instance /* instance */,
-                            uint32_t /* size */,
-                            int /* host_handle_id */,
-                            ppapi::proxy::SerializedHandle /* plugin_handle */)
-
-// VpnProvider ----------------------------------------------------------------
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_VpnProvider_Create)
-
-// VpnProvider plugin -> host -> plugin
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_VpnProvider_Bind,
-                     std::string /* configuration_id */,
-                     std::string /* configuration_name */)
-IPC_MESSAGE_CONTROL3(PpapiPluginMsg_VpnProvider_BindReply,
-                     uint32_t /* queue_size */,
-                     uint32_t /* max_packet_size */,
-                     int32_t /* status */)
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_VpnProvider_SendPacket,
-                     uint32_t /* packet_size */,
-                     uint32_t /* id */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VpnProvider_SendPacketReply,
-                     uint32_t /* id */)
-
-// VpnProvider host -> plugin
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VpnProvider_OnUnbind)
-
-// VpnProvider host -> plugin -> host
-IPC_MESSAGE_CONTROL2(PpapiPluginMsg_VpnProvider_OnPacketReceived,
-                     uint32_t /* packet_size */,
-                     uint32_t /* id */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_VpnProvider_OnPacketReceivedReply,
-                     uint32_t /* id */)
-
-// WebSocket -------------------------------------------------------------------
-
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_WebSocket_Create)
-
-// Establishes the connection to a server. This message requires
-// WebSocket_ConnectReply as a reply message.
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_WebSocket_Connect,
-                     std::string /* url */,
-                     std::vector<std::string> /* protocols */)
-
-// Closes established connection with graceful closing handshake. This message
-// requires WebSocket_CloseReply as a reply message.
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_WebSocket_Close,
-                     int32_t /* code */,
-                     std::string /* reason */)
-
-// Sends a text frame to the server. No reply is defined.
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_WebSocket_SendText,
-                     std::string /* message */)
-
-// Sends a binary frame to the server. No reply is defined.
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_WebSocket_SendBinary,
-                     std::vector<uint8_t> /* message */)
-
-// Fails the connection. This message invokes RFC6455 defined
-// _Fail the WebSocket Connection_ operation. No reply is defined.
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_WebSocket_Fail,
-                     std::string /* message */)
-
-// This message is a reply to WebSocket_Connect. If the |url| and |protocols|
-// are invalid, WebSocket_ConnectReply is issued immediately and it contains
-// proper error code in its result. Otherwise, WebSocket_ConnectReply is sent
-// with valid |url|, |protocol|, and result PP_OK. |protocol| is not a passed
-// |protocols|, but a result of opening handshake negotiation. If the
-// connection can not be established successfully, WebSocket_ConnectReply is
-// not issued, but WebSocket_ClosedReply is sent instead.
-IPC_MESSAGE_CONTROL2(PpapiPluginMsg_WebSocket_ConnectReply,
-                     std::string /* url */,
-                     std::string /* protocol */)
-
-// This message is a reply to WebSocket_Close. If the operation fails,
-// WebSocket_CloseReply is issued immediately and it contains PP_ERROR_FAILED.
-// Otherwise, CloseReply will be issued after the closing handshake is
-// finished. All arguments will be valid iff the result is PP_OK and it means
-// that the client initiated closing handshake is finished gracefully.
-IPC_MESSAGE_CONTROL4(PpapiPluginMsg_WebSocket_CloseReply,
-                     uint64_t /* buffered_amount */,
-                     bool /* was_clean */,
-                     uint16_t /* code */,
-                     std::string /* reason */)
-
-// Unsolicited reply message to transmit a receiving text frame.
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_ReceiveTextReply,
-                     std::string /* message */)
-
-// Unsolicited reply message to transmit a receiving binary frame.
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_ReceiveBinaryReply,
-                     std::vector<uint8_t> /* message */)
-
-// Unsolicited reply message to notify a error on underlying network connetion.
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_WebSocket_ErrorReply)
-
-// Unsolicited reply message to update the buffered amount value.
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_BufferedAmountReply,
-                     uint64_t /* buffered_amount */)
-
-// Unsolicited reply message to update |state| because of incoming external
-// events, e.g., protocol error, or unexpected network closure.
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_WebSocket_StateReply,
-                     int32_t /* state */)
-
-// Unsolicited reply message to notify that the connection is closed without
-// any WebSocket_Close request. Server initiated closing handshake or
-// unexpected network errors will invoke this message.
-IPC_MESSAGE_CONTROL4(PpapiPluginMsg_WebSocket_ClosedReply,
-                     uint64_t /* buffered_amount */,
-                     bool /* was_clean */,
-                     uint16_t /* code */,
-                     std::string /* reason */)
-
-// VideoDecoder ------------------------------------------------------
-
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDecoder_Create)
-IPC_MESSAGE_CONTROL4(PpapiHostMsg_VideoDecoder_Initialize,
-                     ppapi::HostResource /* graphics_context */,
-                     PP_VideoProfile /* profile */,
-                     PP_HardwareAcceleration /* acceleration */,
-                     uint32_t /* min_picture_count */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoDecoder_InitializeReply)
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_VideoDecoder_GetShm,
-                     uint32_t /* shm_id */,
-                     uint32_t /* shm_size */)
-// On success, a shm handle is passed in the ReplyParams struct.
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoDecoder_GetShmReply,
-                     uint32_t /* shm_size */)
-IPC_MESSAGE_CONTROL3(PpapiHostMsg_VideoDecoder_Decode,
-                     uint32_t /* shm_id */,
-                     uint32_t /* size */,
-                     int32_t /* decode_id */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoDecoder_DecodeReply,
-                     uint32_t /* shm_id */)
-IPC_MESSAGE_CONTROL4(PpapiPluginMsg_VideoDecoder_SharedImageReady,
-                     int32_t /* decode_id */,
-                     gpu::Mailbox /* mailbox */,
-                     PP_Size /* size */,
-                     PP_Rect /* visible_rect */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_VideoDecoder_RecycleSharedImage,
-                     gpu::Mailbox /* mailbox */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDecoder_Flush)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoDecoder_FlushReply)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoDecoder_Reset)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoDecoder_ResetReply)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoDecoder_NotifyError,
-                     int32_t /* error */)
-
-// VideoEncoder ------------------------------------------------------
-
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoEncoder_Create)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoEncoder_GetSupportedProfiles)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoEncoder_GetSupportedProfilesReply,
-                     std::vector<PP_VideoProfileDescription> /* results */)
-IPC_MESSAGE_CONTROL5(PpapiHostMsg_VideoEncoder_Initialize,
-                     PP_VideoFrame_Format /* input_format */,
-                     PP_Size /* input_visible_size */,
-                     PP_VideoProfile /* output_profile */,
-                     uint32_t /* initial_bitrate */,
-                     PP_HardwareAcceleration /* acceleration */)
-IPC_MESSAGE_CONTROL2(PpapiPluginMsg_VideoEncoder_InitializeReply,
-                     uint32_t /* input_frame_count */,
-                     PP_Size /* input_coded_size */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoEncoder_BitstreamBuffers,
-                     uint32_t /* buffer_length */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoEncoder_GetVideoFrames)
-IPC_MESSAGE_CONTROL3(PpapiPluginMsg_VideoEncoder_GetVideoFramesReply,
-                     uint32_t /* frame_count */,
-                     uint32_t /* frame_length */,
-                     PP_Size /* frame_size */)
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_VideoEncoder_Encode,
-                     uint32_t /* frame_id */,
-                     bool /* force_keyframe */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoEncoder_EncodeReply,
-                     uint32_t /* frame_id */)
-IPC_MESSAGE_CONTROL3(PpapiPluginMsg_VideoEncoder_BitstreamBufferReady,
-                     uint32_t /* buffer_id */,
-                     uint32_t /* buffer_size */,
-                     bool /* key_frame */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_VideoEncoder_RecycleBitstreamBuffer,
-                     uint32_t /* buffer_id */)
-IPC_MESSAGE_CONTROL2(PpapiHostMsg_VideoEncoder_RequestEncodingParametersChange,
-                     uint32_t /* bitrate */,
-                     uint32_t /* framerate */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoEncoder_NotifyError,
-                     int32_t /* error */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoEncoder_Close)
-
-#if !BUILDFLAG(IS_NACL)
-
-// Audio input.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_AudioInput_Create)
-IPC_MESSAGE_CONTROL3(PpapiHostMsg_AudioInput_Open,
-                     std::string /* device_id */,
-                     PP_AudioSampleRate /* sample_rate */,
-                     uint32_t /* sample_frame_count */)
-// Reply to an Open call. This supplies a socket handle and a shared memory
-// handle. Both handles are passed in the ReplyParams struct.
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_AudioInput_OpenReply)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_AudioInput_StartOrStop, bool /* capture */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_AudioInput_Close)
-
-// Audio output.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_AudioOutput_Create)
-IPC_MESSAGE_CONTROL3(PpapiHostMsg_AudioOutput_Open,
-                     std::string /* device_id */,
-                     PP_AudioSampleRate /* sample_rate */,
-                     uint32_t /* sample_frame_count */)
-// Reply to an Open call. This supplies a socket handle and a shared memory
-// handle. Both handles are passed in the ReplyParams struct.
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_AudioOutput_OpenReply)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_AudioOutput_StartOrStop, bool /* playback */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_AudioOutput_Close)
-
-// BrowserFont -----------------------------------------------------------------
-
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_BrowserFontSingleton_Create)
-
-// Requests that the browser reply with the list of font families via
-// PpapiPluginMsg_BrowserFontSingleton_GetFontFamiliesReply.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_BrowserFontSingleton_GetFontFamilies)
-
-// Reply to PpapiHostMsg_BrowserFontSingleton_GetFontFamilies with the font
-// family list. The |families| result is encoded by separating each family name
-// by a null character.
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_BrowserFontSingleton_GetFontFamiliesReply,
-                     std::string /* families */)
-
-// DeviceEnumeration -----------------------------------------------------------
-// Device enumeration messages used by audio input and video capture.
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_EnumerateDevices)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_DeviceEnumeration_EnumerateDevicesReply,
-                     std::vector<ppapi::DeviceRefData> /* devices */)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_DeviceEnumeration_MonitorDeviceChange,
-                     uint32_t /* callback_id */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_DeviceEnumeration_StopMonitoringDeviceChange)
-IPC_MESSAGE_CONTROL2(PpapiPluginMsg_DeviceEnumeration_NotifyDeviceChange,
-                     uint32_t /* callback_id */,
-                     std::vector<ppapi::DeviceRefData> /* devices */)
-
-// VideoCapture ----------------------------------------------------------------
-
-// VideoCapture_Dev, plugin -> host
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_Create)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_StartCapture)
-IPC_MESSAGE_CONTROL1(PpapiHostMsg_VideoCapture_ReuseBuffer,
-                     uint32_t /* buffer */)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_StopCapture)
-IPC_MESSAGE_CONTROL0(PpapiHostMsg_VideoCapture_Close)
-
-// VideoCapture_Dev, plugin -> host -> plugin
-IPC_MESSAGE_CONTROL3(PpapiHostMsg_VideoCapture_Open,
-                     std::string /* device_id */,
-                     PP_VideoCaptureDeviceInfo_Dev /* requested_info */,
-                     uint32_t /* buffer_count */)
-IPC_MESSAGE_CONTROL0(PpapiPluginMsg_VideoCapture_OpenReply)
-
-// VideoCapture_Dev, host -> plugin
-IPC_MESSAGE_CONTROL3(PpapiPluginMsg_VideoCapture_OnDeviceInfo,
-                     PP_VideoCaptureDeviceInfo_Dev /* info */,
-                     std::vector<ppapi::HostResource> /* buffers */,
-                     uint32_t /* buffer_size */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoCapture_OnStatus,
-                     uint32_t /* status */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoCapture_OnError,
-                     uint32_t /* error */)
-IPC_MESSAGE_CONTROL1(PpapiPluginMsg_VideoCapture_OnBufferReady,
-                     uint32_t /* buffer */)
-
-#endif  // !BUILDFLAG(IS_NACL)
-
-#endif  // PPAPI_PROXY_PPAPI_MESSAGES_H_
diff --git a/proxy/ppapi_param_traits.cc b/proxy/ppapi_param_traits.cc
deleted file mode 100644
index 13f6420..0000000
--- a/proxy/ppapi_param_traits.cc
+++ /dev/null
@@ -1,516 +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/proxy/ppapi_param_traits.h"
-
-#include <stddef.h>
-#include <stdint.h>
-#include <string.h>  // For memcpy
-
-#include "build/build_config.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/serialized_var.h"
-#include "ppapi/shared_impl/host_resource.h"
-#include "ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h"
-
-namespace IPC {
-
-namespace {
-
-// Deserializes a vector from IPC. This special version must be used instead
-// of the default IPC version when the vector contains a SerializedVar, either
-// directly or indirectly (i.e. a vector of objects that have a SerializedVar
-// inside them).
-//
-// The default vector deserializer does resize and then we deserialize into
-// those allocated slots. However, the implementation of vector (at least in
-// GCC's implementation), creates a new empty object using the default
-// constructor, and then sets the rest of the items to that empty one using the
-// copy constructor.
-//
-// Since we allocate the inner class when you call the default constructor and
-// transfer the inner class when you do operator=, the entire vector will end
-// up referring to the same inner class. Deserializing into this will just end
-// up overwriting the same item over and over, since all the SerializedVars
-// will refer to the same thing.
-//
-// The solution is to make a new object for each deserialized item, and then
-// add it to the vector one at a time.
-template <typename T>
-bool ReadVectorWithoutCopy(const base::Pickle* m,
-                           base::PickleIterator* iter,
-                           std::vector<T>* output) {
-  // This part is just a copy of the the default ParamTraits vector Read().
-  size_t size;
-  if (!iter->ReadLength(&size))
-    return false;
-  // Resizing beforehand is not safe, see BUG 1006367 for details.
-  if (size > INT_MAX / sizeof(T))
-    return false;
-
-  output->reserve(size);
-  for (size_t i = 0; i < size; i++) {
-    T cur;
-    if (!ReadParam(m, iter, &cur))
-      return false;
-    output->push_back(cur);
-  }
-  return true;
-}
-
-// This serializes the vector of items to the IPC message in exactly the same
-// way as the "regular" IPC vector serializer does. But having the code here
-// saves us from having to copy this code into all ParamTraits that use the
-// ReadVectorWithoutCopy function for deserializing.
-template <typename T>
-void WriteVectorWithoutCopy(base::Pickle* m, const std::vector<T>& p) {
-  WriteParam(m, static_cast<int>(p.size()));
-  for (size_t i = 0; i < p.size(); i++)
-    WriteParam(m, p[i]);
-}
-
-}  // namespace
-
-// PP_Bool ---------------------------------------------------------------------
-
-// static
-void ParamTraits<PP_Bool>::Write(base::Pickle* m, const param_type& p) {
-  WriteParam(m, PP_ToBool(p));
-}
-
-// static
-bool ParamTraits<PP_Bool>::Read(const base::Pickle* m,
-                                base::PickleIterator* iter,
-                                param_type* r) {
-  // We specifically want to be strict here about what types of input we accept,
-  // which ParamTraits<bool> does for us. We don't want to deserialize "2" into
-  // a PP_Bool, for example.
-  bool result = false;
-  if (!ReadParam(m, iter, &result))
-    return false;
-  *r = PP_FromBool(result);
-  return true;
-}
-
-// static
-void ParamTraits<PP_Bool>::Log(const param_type& p, std::string* l) {
-}
-
-// PP_NetAddress_Private -------------------------------------------------------
-
-// static
-void ParamTraits<PP_NetAddress_Private>::Write(base::Pickle* m,
-                                               const param_type& p) {
-  WriteParam(m, p.size);
-  m->WriteBytes(p.data, p.size);
-}
-
-// static
-bool ParamTraits<PP_NetAddress_Private>::Read(const base::Pickle* m,
-                                              base::PickleIterator* iter,
-                                              param_type* p) {
-  uint16_t size;
-  if (!ReadParam(m, iter, &size))
-    return false;
-  if (size > sizeof(p->data))
-    return false;
-  p->size = size;
-
-  const char* data;
-  if (!iter->ReadBytes(&data, size))
-    return false;
-  memcpy(p->data, data, size);
-  return true;
-}
-
-// static
-void ParamTraits<PP_NetAddress_Private>::Log(const param_type& p,
-                                             std::string* l) {
-  l->append("<PP_NetAddress_Private (");
-  LogParam(p.size, l);
-  l->append(" bytes)>");
-}
-
-// HostResource ----------------------------------------------------------------
-
-// static
-void ParamTraits<ppapi::HostResource>::Write(base::Pickle* m,
-                                             const param_type& p) {
-  WriteParam(m, p.instance());
-  WriteParam(m, p.host_resource());
-}
-
-// static
-bool ParamTraits<ppapi::HostResource>::Read(const base::Pickle* m,
-                                            base::PickleIterator* iter,
-                                            param_type* r) {
-  PP_Instance instance;
-  PP_Resource resource;
-  if (!ReadParam(m, iter, &instance) || !ReadParam(m, iter, &resource))
-    return false;
-  r->SetHostResource(instance, resource);
-  return true;
-}
-
-// static
-void ParamTraits<ppapi::HostResource>::Log(const param_type& p,
-                                           std::string* l) {
-}
-
-// SerializedVar ---------------------------------------------------------------
-
-// static
-void ParamTraits<ppapi::proxy::SerializedVar>::Write(base::Pickle* m,
-                                                     const param_type& p) {
-  p.WriteToMessage(m);
-}
-
-// static
-bool ParamTraits<ppapi::proxy::SerializedVar>::Read(const base::Pickle* m,
-                                                    base::PickleIterator* iter,
-                                                    param_type* r) {
-  return r->ReadFromMessage(m, iter);
-}
-
-// static
-void ParamTraits<ppapi::proxy::SerializedVar>::Log(const param_type& p,
-                                                   std::string* l) {
-}
-
-// std::vector<SerializedVar> --------------------------------------------------
-
-void ParamTraits<std::vector<ppapi::proxy::SerializedVar>>::Write(
-    base::Pickle* m,
-    const param_type& p) {
-  WriteVectorWithoutCopy(m, p);
-}
-
-// static
-bool ParamTraits<std::vector<ppapi::proxy::SerializedVar>>::Read(
-    const base::Pickle* m,
-    base::PickleIterator* iter,
-    param_type* r) {
-  return ReadVectorWithoutCopy(m, iter, r);
-}
-
-// static
-void ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Log(
-    const param_type& p,
-    std::string* l) {
-}
-
-// ppapi::PpapiPermissions -----------------------------------------------------
-
-// static
-void ParamTraits<ppapi::PpapiPermissions>::Write(base::Pickle* m,
-                                                 const param_type& p) {
-  WriteParam(m, p.GetBits());
-}
-
-// static
-bool ParamTraits<ppapi::PpapiPermissions>::Read(const base::Pickle* m,
-                                                base::PickleIterator* iter,
-                                                param_type* r) {
-  uint32_t bits;
-  if (!ReadParam(m, iter, &bits))
-    return false;
-  *r = ppapi::PpapiPermissions(bits);
-  return true;
-}
-
-// static
-void ParamTraits<ppapi::PpapiPermissions>::Log(const param_type& p,
-                                               std::string* l) {
-}
-
-// SerializedHandle ------------------------------------------------------------
-
-// static
-void ParamTraits<ppapi::proxy::SerializedHandle>::Write(base::Pickle* m,
-                                                        const param_type& p) {
-  ppapi::proxy::SerializedHandle::WriteHeader(p.header(), m);
-  switch (p.type()) {
-    case ppapi::proxy::SerializedHandle::SHARED_MEMORY_REGION:
-      WriteParam(m, const_cast<param_type&>(p).TakeSharedMemoryRegion());
-      break;
-    case ppapi::proxy::SerializedHandle::SOCKET:
-    case ppapi::proxy::SerializedHandle::FILE:
-      WriteParam(m, p.descriptor());
-      break;
-    case ppapi::proxy::SerializedHandle::INVALID:
-      break;
-    // No default so the compiler will warn on new types.
-  }
-}
-
-// static
-bool ParamTraits<ppapi::proxy::SerializedHandle>::Read(
-    const base::Pickle* m,
-    base::PickleIterator* iter,
-    param_type* r) {
-  ppapi::proxy::SerializedHandle::Header header;
-  if (!ppapi::proxy::SerializedHandle::ReadHeader(iter, &header))
-    return false;
-  switch (header.type) {
-    case ppapi::proxy::SerializedHandle::SHARED_MEMORY_REGION: {
-      base::subtle::PlatformSharedMemoryRegion region;
-      if (!ReadParam(m, iter, &region))
-        return false;
-      r->set_shmem_region(std::move(region));
-      break;
-    }
-    case ppapi::proxy::SerializedHandle::SOCKET: {
-      IPC::PlatformFileForTransit socket;
-      if (!ReadParam(m, iter, &socket))
-        return false;
-      r->set_socket(socket);
-      break;
-    }
-    case ppapi::proxy::SerializedHandle::FILE: {
-      IPC::PlatformFileForTransit desc;
-      if (!ReadParam(m, iter, &desc))
-        return false;
-      r->set_file_handle(desc, header.open_flags, header.file_io);
-      break;
-    }
-    case ppapi::proxy::SerializedHandle::INVALID:
-      break;
-      // No default so the compiler will warn us if a new type is added.
-  }
-  return true;
-}
-
-// static
-void ParamTraits<ppapi::proxy::SerializedHandle>::Log(const param_type& p,
-                                                      std::string* l) {
-}
-
-// PPBURLLoader_UpdateProgress_Params ------------------------------------------
-
-// static
-void ParamTraits<ppapi::proxy::PPBURLLoader_UpdateProgress_Params>::Write(
-    base::Pickle* m,
-    const param_type& p) {
-  WriteParam(m, p.instance);
-  WriteParam(m, p.resource);
-  WriteParam(m, p.bytes_sent);
-  WriteParam(m, p.total_bytes_to_be_sent);
-  WriteParam(m, p.bytes_received);
-  WriteParam(m, p.total_bytes_to_be_received);
-}
-
-// static
-bool ParamTraits<ppapi::proxy::PPBURLLoader_UpdateProgress_Params>::Read(
-    const base::Pickle* m,
-    base::PickleIterator* iter,
-    param_type* r) {
-  return ReadParam(m, iter, &r->instance) && ReadParam(m, iter, &r->resource) &&
-         ReadParam(m, iter, &r->bytes_sent) &&
-         ReadParam(m, iter, &r->total_bytes_to_be_sent) &&
-         ReadParam(m, iter, &r->bytes_received) &&
-         ReadParam(m, iter, &r->total_bytes_to_be_received);
-}
-
-// static
-void ParamTraits<ppapi::proxy::PPBURLLoader_UpdateProgress_Params>::Log(
-    const param_type& p,
-    std::string* l) {
-}
-
-#if !BUILDFLAG(IS_NACL)
-// SerializedDirEntry ----------------------------------------------------------
-
-// static
-void ParamTraits<ppapi::proxy::SerializedDirEntry>::Write(base::Pickle* m,
-                                                          const param_type& p) {
-  WriteParam(m, p.name);
-  WriteParam(m, p.is_dir);
-}
-
-// static
-bool ParamTraits<ppapi::proxy::SerializedDirEntry>::Read(
-    const base::Pickle* m,
-    base::PickleIterator* iter,
-    param_type* r) {
-  return ReadParam(m, iter, &r->name) && ReadParam(m, iter, &r->is_dir);
-}
-
-// static
-void ParamTraits<ppapi::proxy::SerializedDirEntry>::Log(const param_type& p,
-                                                        std::string* l) {
-}
-
-// ppapi::proxy::SerializedFontDescription -------------------------------------
-
-// static
-void ParamTraits<ppapi::proxy::SerializedFontDescription>::Write(
-    base::Pickle* m,
-    const param_type& p) {
-  WriteParam(m, p.face);
-  WriteParam(m, p.family);
-  WriteParam(m, p.size);
-  WriteParam(m, p.weight);
-  WriteParam(m, p.italic);
-  WriteParam(m, p.small_caps);
-  WriteParam(m, p.letter_spacing);
-  WriteParam(m, p.word_spacing);
-}
-
-// static
-bool ParamTraits<ppapi::proxy::SerializedFontDescription>::Read(
-    const base::Pickle* m,
-    base::PickleIterator* iter,
-    param_type* r) {
-  return ReadParam(m, iter, &r->face) && ReadParam(m, iter, &r->family) &&
-         ReadParam(m, iter, &r->size) && ReadParam(m, iter, &r->weight) &&
-         ReadParam(m, iter, &r->italic) && ReadParam(m, iter, &r->small_caps) &&
-         ReadParam(m, iter, &r->letter_spacing) &&
-         ReadParam(m, iter, &r->word_spacing);
-}
-
-// static
-void ParamTraits<ppapi::proxy::SerializedFontDescription>::Log(
-    const param_type& p,
-    std::string* l) {
-}
-#endif  // !BUILDFLAG(IS_NACL)
-
-#if !BUILDFLAG(IS_NACL)
-// ppapi::PepperFilePath -------------------------------------------------------
-
-// static
-void ParamTraits<ppapi::PepperFilePath>::Write(base::Pickle* m,
-                                               const param_type& p) {
-  WriteParam(m, static_cast<unsigned>(p.domain()));
-  WriteParam(m, p.path());
-}
-
-// static
-bool ParamTraits<ppapi::PepperFilePath>::Read(const base::Pickle* m,
-                                              base::PickleIterator* iter,
-                                              param_type* p) {
-  unsigned domain;
-  base::FilePath path;
-  if (!ReadParam(m, iter, &domain) || !ReadParam(m, iter, &path))
-    return false;
-  if (domain > ppapi::PepperFilePath::DOMAIN_MAX_VALID)
-    return false;
-
-  *p = ppapi::PepperFilePath(
-      static_cast<ppapi::PepperFilePath::Domain>(domain), path);
-  return true;
-}
-
-// static
-void ParamTraits<ppapi::PepperFilePath>::Log(const param_type& p,
-                                             std::string* l) {
-  l->append("(");
-  LogParam(static_cast<unsigned>(p.domain()), l);
-  l->append(", ");
-  LogParam(p.path(), l);
-  l->append(")");
-}
-
-#endif  // !BUILDFLAG(IS_NACL)
-
-// PPB_X509Certificate_Fields --------------------------------------------------
-
-// static
-void ParamTraits<ppapi::PPB_X509Certificate_Fields>::Write(
-    base::Pickle* m,
-    const param_type& p) {
-  WriteParam(m, p.values_);
-}
-
-// static
-bool ParamTraits<ppapi::PPB_X509Certificate_Fields>::Read(
-    const base::Pickle* m,
-    base::PickleIterator* iter,
-    param_type* r) {
-  return ReadParam(m, iter, &(r->values_));
-}
-
-// static
-void ParamTraits<ppapi::PPB_X509Certificate_Fields>::Log(const param_type& p,
-                                                         std::string* l) {
-}
-
-// ppapi::SocketOptionData -----------------------------------------------------
-
-// static
-void ParamTraits<ppapi::SocketOptionData>::Write(base::Pickle* m,
-                                                 const param_type& p) {
-  ppapi::SocketOptionData::Type type = p.GetType();
-  WriteParam(m, static_cast<int32_t>(type));
-  switch (type) {
-    case ppapi::SocketOptionData::TYPE_INVALID: {
-      break;
-    }
-    case ppapi::SocketOptionData::TYPE_BOOL: {
-      bool out_value = false;
-      bool result = p.GetBool(&out_value);
-      // Suppress unused variable warnings.
-      static_cast<void>(result);
-      DCHECK(result);
-
-      WriteParam(m, out_value);
-      break;
-    }
-    case ppapi::SocketOptionData::TYPE_INT32: {
-      int32_t out_value = 0;
-      bool result = p.GetInt32(&out_value);
-      // Suppress unused variable warnings.
-      static_cast<void>(result);
-      DCHECK(result);
-
-      WriteParam(m, out_value);
-      break;
-    }
-    // No default so the compiler will warn on new types.
-  }
-}
-
-// static
-bool ParamTraits<ppapi::SocketOptionData>::Read(const base::Pickle* m,
-                                                base::PickleIterator* iter,
-                                                param_type* r) {
-  *r = ppapi::SocketOptionData();
-  int32_t type = 0;
-  if (!ReadParam(m, iter, &type))
-    return false;
-  if (type != ppapi::SocketOptionData::TYPE_INVALID &&
-      type != ppapi::SocketOptionData::TYPE_BOOL &&
-      type != ppapi::SocketOptionData::TYPE_INT32) {
-    return false;
-  }
-  switch (static_cast<ppapi::SocketOptionData::Type>(type)) {
-    case ppapi::SocketOptionData::TYPE_INVALID: {
-      return true;
-    }
-    case ppapi::SocketOptionData::TYPE_BOOL: {
-      bool value = false;
-      if (!ReadParam(m, iter, &value))
-        return false;
-      r->SetBool(value);
-      return true;
-    }
-    case ppapi::SocketOptionData::TYPE_INT32: {
-      int32_t value = 0;
-      if (!ReadParam(m, iter, &value))
-        return false;
-      r->SetInt32(value);
-      return true;
-    }
-    // No default so the compiler will warn on new types.
-  }
-  return false;
-}
-
-// static
-void ParamTraits<ppapi::SocketOptionData>::Log(const param_type& p,
-                                               std::string* l) {
-}
-
-}  // namespace IPC
diff --git a/proxy/ppapi_param_traits.h b/proxy/ppapi_param_traits.h
deleted file mode 100644
index c9cb81f..0000000
--- a/proxy/ppapi_param_traits.h
+++ /dev/null
@@ -1,181 +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_PROXY_PPAPI_PARAM_TRAITS_H_
-#define PPAPI_PROXY_PPAPI_PARAM_TRAITS_H_
-
-#include <string>
-#include <vector>
-
-#include "build/build_config.h"
-#include "ipc/ipc_message_utils.h"
-#include "ipc/ipc_platform_file.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/file_path.h"
-#include "ppapi/shared_impl/file_ref_create_info.h"
-#include "ppapi/shared_impl/media_stream_video_track_shared.h"
-#include "ppapi/shared_impl/ppapi_permissions.h"
-#include "ppapi/shared_impl/socket_option_data.h"
-
-struct PP_NetAddress_Private;
-
-namespace ppapi {
-
-class HostResource;
-class PPB_X509Certificate_Fields;
-
-namespace proxy {
-
-struct PPBURLLoader_UpdateProgress_Params;
-struct SerializedDirEntry;
-struct SerializedFontDescription;
-class SerializedHandle;
-class SerializedVar;
-
-}  // namespace proxy
-}  // namespace ppapi
-
-namespace IPC {
-
-template<>
-struct PPAPI_PROXY_EXPORT ParamTraits<PP_Bool> {
-  typedef PP_Bool param_type;
-  static void Write(base::Pickle* m, const param_type& p);
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* r);
-  static void Log(const param_type& p, std::string* l);
-};
-
-template <>
-struct PPAPI_PROXY_EXPORT ParamTraits<PP_NetAddress_Private> {
-  typedef PP_NetAddress_Private param_type;
-  static void Write(base::Pickle* m, const param_type& p);
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* p);
-  static void Log(const param_type& p, std::string* l);
-};
-
-template<>
-struct PPAPI_PROXY_EXPORT ParamTraits<
-    ppapi::proxy::PPBURLLoader_UpdateProgress_Params> {
-  typedef ppapi::proxy::PPBURLLoader_UpdateProgress_Params param_type;
-  static void Write(base::Pickle* m, const param_type& p);
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* r);
-  static void Log(const param_type& p, std::string* l);
-};
-
-template<>
-struct PPAPI_PROXY_EXPORT ParamTraits<ppapi::proxy::SerializedDirEntry> {
-  typedef ppapi::proxy::SerializedDirEntry param_type;
-  static void Write(base::Pickle* m, const param_type& p);
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* r);
-  static void Log(const param_type& p, std::string* l);
-};
-
-template<>
-struct PPAPI_PROXY_EXPORT ParamTraits<ppapi::proxy::SerializedFontDescription> {
-  typedef ppapi::proxy::SerializedFontDescription param_type;
-  static void Write(base::Pickle* m, const param_type& p);
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* r);
-  static void Log(const param_type& p, std::string* l);
-};
-
-template<>
-struct PPAPI_PROXY_EXPORT ParamTraits<ppapi::proxy::SerializedHandle> {
-  typedef ppapi::proxy::SerializedHandle param_type;
-  static void Write(base::Pickle* m, const param_type& p);
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* r);
-  static void Log(const param_type& p, std::string* l);
-};
-
-template<>
-struct PPAPI_PROXY_EXPORT ParamTraits<ppapi::HostResource> {
-  typedef ppapi::HostResource param_type;
-  static void Write(base::Pickle* m, const param_type& p);
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* r);
-  static void Log(const param_type& p, std::string* l);
-};
-
-template<>
-struct PPAPI_PROXY_EXPORT ParamTraits<ppapi::proxy::SerializedVar> {
-  typedef ppapi::proxy::SerializedVar param_type;
-  static void Write(base::Pickle* m, const param_type& p);
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* r);
-  static void Log(const param_type& p, std::string* l);
-};
-
-template<>
-struct PPAPI_PROXY_EXPORT ParamTraits<
-    std::vector<ppapi::proxy::SerializedVar> > {
-  typedef std::vector<ppapi::proxy::SerializedVar> param_type;
-  static void Write(base::Pickle* m, const param_type& p);
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* r);
-  static void Log(const param_type& p, std::string* l);
-};
-
-template<>
-struct PPAPI_PROXY_EXPORT ParamTraits<ppapi::PpapiPermissions> {
-  typedef ppapi::PpapiPermissions param_type;
-  static void Write(base::Pickle* m, const param_type& p);
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* r);
-  static void Log(const param_type& p, std::string* l);
-};
-
-#if !BUILDFLAG(IS_NACL) && !defined(NACL_WIN64)
-template <>
-struct ParamTraits<ppapi::PepperFilePath> {
-  typedef ppapi::PepperFilePath param_type;
-  static void Write(base::Pickle* m, const param_type& p);
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* p);
-  static void Log(const param_type& p, std::string* l);
-};
-
-#endif  // !BUILDFLAG(IS_NACL) && !defined(NACL_WIN64)
-
-template<>
-struct PPAPI_PROXY_EXPORT ParamTraits<ppapi::PPB_X509Certificate_Fields> {
-  typedef ppapi::PPB_X509Certificate_Fields param_type;
-  static void Write(base::Pickle* m, const param_type& p);
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* r);
-  static void Log(const param_type& p, std::string* l);
-};
-
-template<>
-struct PPAPI_PROXY_EXPORT ParamTraits<ppapi::SocketOptionData> {
-  typedef ppapi::SocketOptionData param_type;
-  static void Write(base::Pickle* m, const param_type& p);
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* r);
-  static void Log(const param_type& p, std::string* l);
-};
-
-}  // namespace IPC
-
-#endif  // PPAPI_PROXY_PPAPI_PARAM_TRAITS_H_
diff --git a/proxy/ppapi_perftests.cc b/proxy/ppapi_perftests.cc
deleted file mode 100644
index 9844d03..0000000
--- a/proxy/ppapi_perftests.cc
+++ /dev/null
@@ -1,12 +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 "base/test/perf_test_suite.h"
-#include "mojo/core/embedder/embedder.h"
-
-int main(int argc, char** argv) {
-  mojo::core::Init();
-  return base::PerfTestSuite(argc, argv).Run();
-}
-
diff --git a/proxy/ppapi_proxy_export.h b/proxy/ppapi_proxy_export.h
deleted file mode 100644
index d5aa604..0000000
--- a/proxy/ppapi_proxy_export.h
+++ /dev/null
@@ -1,25 +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_PROXY_PPAPI_PROXY_EXPORT_H_
-#define PPAPI_PROXY_PPAPI_PROXY_EXPORT_H_
-
-#if defined(COMPONENT_BUILD)
-#if defined(WIN32)
-
-#if defined(PPAPI_PROXY_IMPLEMENTATION)
-#define PPAPI_PROXY_EXPORT __declspec(dllexport)
-#else
-#define PPAPI_PROXY_EXPORT __declspec(dllimport)
-#endif  // defined(PPAPI_PROXY_IMPLEMENTATION)
-
-#else  // defined(WIN32)
-#define PPAPI_PROXY_EXPORT __attribute__((visibility("default")))
-#endif
-
-#else  // defined(COMPONENT_BUILD)
-#define PPAPI_PROXY_EXPORT
-#endif
-
-#endif  // PPAPI_PROXY_PPAPI_PROXY_EXPORT_H_
diff --git a/proxy/ppb_audio_proxy.cc b/proxy/ppb_audio_proxy.cc
deleted file mode 100644
index be25827..0000000
--- a/proxy/ppb_audio_proxy.cc
+++ /dev/null
@@ -1,344 +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/proxy/ppb_audio_proxy.h"
-
-#include "base/compiler_specific.h"
-#include "base/threading/simple_thread.h"
-#include "build/build_config.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_audio.h"
-#include "ppapi/c/ppb_audio_config.h"
-#include "ppapi/c/ppb_var.h"
-#include "ppapi/proxy/enter_proxy.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/api_id.h"
-#include "ppapi/shared_impl/platform_file.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/ppb_audio_shared.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_audio_config_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-using ppapi::IntToPlatformFile;
-using ppapi::proxy::SerializedHandle;
-using ppapi::thunk::EnterResourceNoLock;
-using ppapi::thunk::PPB_Audio_API;
-using ppapi::thunk::PPB_AudioConfig_API;
-
-namespace ppapi {
-namespace proxy {
-
-class Audio : public Resource, public PPB_Audio_Shared {
- public:
-  Audio(const HostResource& audio_id,
-        PP_Resource config_id,
-        const AudioCallbackCombined& callback,
-        void* user_data);
-
-  Audio(const Audio&) = delete;
-  Audio& operator=(const Audio&) = delete;
-
-  ~Audio() override;
-
-  // Resource overrides.
-  PPB_Audio_API* AsPPB_Audio_API() override;
-
-  // PPB_Audio_API implementation.
-  PP_Resource GetCurrentConfig() override;
-  PP_Bool StartPlayback() override;
-  PP_Bool StopPlayback() override;
-  int32_t Open(PP_Resource config_id,
-               scoped_refptr<TrackedCallback> create_callback) override;
-  int32_t GetSyncSocket(int* sync_socket) override;
-  int32_t GetSharedMemory(base::UnsafeSharedMemoryRegion** shm) override;
-
- private:
-  // Owning reference to the current config object. This isn't actually used,
-  // we just dish it out as requested by the plugin.
-  PP_Resource config_;
-};
-
-Audio::Audio(const HostResource& audio_id,
-             PP_Resource config_id,
-             const AudioCallbackCombined& callback,
-             void* user_data)
-    : Resource(OBJECT_IS_PROXY, audio_id),
-      config_(config_id) {
-  SetCallback(callback, user_data);
-  PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(config_);
-}
-
-Audio::~Audio() {
-#if BUILDFLAG(IS_NACL)
-  // Invoke StopPlayback() to ensure audio back-end has a chance to send the
-  // escape value over the sync socket, which will terminate the client side
-  // audio callback loop.  This is required for NaCl Plugins that can't escape
-  // by shutting down the sync_socket.
-  StopPlayback();
-#endif
-  PpapiGlobals::Get()->GetResourceTracker()->ReleaseResource(config_);
-}
-
-PPB_Audio_API* Audio::AsPPB_Audio_API() {
-  return this;
-}
-
-PP_Resource Audio::GetCurrentConfig() {
-  // AddRef for the caller.
-  PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(config_);
-  return config_;
-}
-
-PP_Bool Audio::StartPlayback() {
-  if (playing())
-    return PP_TRUE;
-  if (!PPB_Audio_Shared::IsThreadFunctionReady())
-    return PP_FALSE;
-  SetStartPlaybackState();
-  PluginDispatcher::GetForResource(this)->Send(
-      new PpapiHostMsg_PPBAudio_StartOrStop(
-          API_ID_PPB_AUDIO, host_resource(), true));
-  return PP_TRUE;
-}
-
-PP_Bool Audio::StopPlayback() {
-  if (!playing())
-    return PP_TRUE;
-  PluginDispatcher::GetForResource(this)->Send(
-      new PpapiHostMsg_PPBAudio_StartOrStop(
-          API_ID_PPB_AUDIO, host_resource(), false));
-  SetStopPlaybackState();
-  return PP_TRUE;
-}
-
-int32_t Audio::Open(PP_Resource config_id,
-                    scoped_refptr<TrackedCallback> create_callback) {
-  return PP_ERROR_NOTSUPPORTED;  // Don't proxy the trusted interface.
-}
-
-int32_t Audio::GetSyncSocket(int* sync_socket) {
-  return PP_ERROR_NOTSUPPORTED;  // Don't proxy the trusted interface.
-}
-
-int32_t Audio::GetSharedMemory(base::UnsafeSharedMemoryRegion** shm) {
-  return PP_ERROR_NOTSUPPORTED;  // Don't proxy the trusted interface.
-}
-
-PPB_Audio_Proxy::PPB_Audio_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher),
-      callback_factory_(this) {
-}
-
-PPB_Audio_Proxy::~PPB_Audio_Proxy() {
-}
-
-// static
-PP_Resource PPB_Audio_Proxy::CreateProxyResource(
-    PP_Instance instance_id,
-    PP_Resource config_id,
-    const AudioCallbackCombined& audio_callback,
-    void* user_data) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance_id);
-  if (!dispatcher)
-    return 0;
-
-  EnterResourceNoLock<PPB_AudioConfig_API> config(config_id, true);
-  if (config.failed())
-    return 0;
-
-  if (!audio_callback.IsValid())
-    return 0;
-
-  HostResource result;
-  dispatcher->Send(new PpapiHostMsg_PPBAudio_Create(
-      API_ID_PPB_AUDIO, instance_id,
-      config.object()->GetSampleRate(), config.object()->GetSampleFrameCount(),
-      &result));
-  if (result.is_null())
-    return 0;
-
-  return (new Audio(result, config_id,
-                    audio_callback, user_data))->GetReference();
-}
-
-bool PPB_Audio_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPB_Audio_Proxy, msg)
-// Don't build host side into NaCl IRT.
-#if !BUILDFLAG(IS_NACL)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBAudio_Create, OnMsgCreate)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBAudio_StartOrStop,
-                        OnMsgStartOrStop)
-#endif
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPBAudio_NotifyAudioStreamCreated,
-                        OnMsgNotifyAudioStreamCreated)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-#if !BUILDFLAG(IS_NACL)
-void PPB_Audio_Proxy::OnMsgCreate(PP_Instance instance_id,
-                                  int32_t sample_rate,
-                                  uint32_t sample_frame_count,
-                                  HostResource* result) {
-  thunk::EnterResourceCreation resource_creation(instance_id);
-  if (resource_creation.failed())
-    return;
-
-  // Make the resource and get the API pointer to its trusted interface.
-  result->SetHostResource(
-      instance_id,
-      resource_creation.functions()->CreateAudioTrusted(instance_id));
-  if (result->is_null())
-    return;
-
-  // At this point, we've set the result resource, and this is a sync request.
-  // Anything below this point must issue the AudioChannelConnected callback
-  // to the browser. Since that's an async message, it will be issued back to
-  // the plugin after the Create function returns (which is good because it
-  // would be weird to get a connected message with a failure code for a
-  // resource you haven't finished creating yet).
-  //
-  // The ...ForceCallback class will help ensure the callback is always called.
-  // All error cases must call SetResult on this class.
-  EnterHostFromHostResourceForceCallback<PPB_Audio_API> enter(
-      *result, callback_factory_,
-      &PPB_Audio_Proxy::AudioChannelConnected, *result);
-  if (enter.failed())
-    return;  // When enter fails, it will internally schedule the callback.
-
-  // Make an audio config object.
-  PP_Resource audio_config_res =
-      resource_creation.functions()->CreateAudioConfig(
-          instance_id, static_cast<PP_AudioSampleRate>(sample_rate),
-          sample_frame_count);
-  if (!audio_config_res) {
-    enter.SetResult(PP_ERROR_FAILED);
-    return;
-  }
-
-  // Initiate opening the audio object.
-  enter.SetResult(enter.object()->Open(audio_config_res,
-                                       enter.callback()));
-
-  // Clean up the temporary audio config resource we made.
-  const PPB_Core* core = static_cast<const PPB_Core*>(
-      dispatcher()->local_get_interface()(PPB_CORE_INTERFACE));
-  core->ReleaseResource(audio_config_res);
-}
-
-void PPB_Audio_Proxy::OnMsgStartOrStop(const HostResource& audio_id,
-                                       bool play) {
-  EnterHostFromHostResource<PPB_Audio_API> enter(audio_id);
-  if (enter.failed())
-    return;
-  if (play)
-    enter.object()->StartPlayback();
-  else
-    enter.object()->StopPlayback();
-}
-
-void PPB_Audio_Proxy::AudioChannelConnected(
-    int32_t result,
-    const HostResource& resource) {
-  IPC::PlatformFileForTransit socket_handle =
-      IPC::InvalidPlatformFileForTransit();
-  base::UnsafeSharedMemoryRegion shared_memory_region;
-
-  int32_t result_code = result;
-  if (result_code == PP_OK) {
-    result_code = GetAudioConnectedHandles(resource, &socket_handle,
-                                           &shared_memory_region);
-  }
-
-  // Send all the values, even on error. This simplifies some of our cleanup
-  // code since the handles will be in the other process and could be
-  // inconvenient to clean up. Our IPC code will automatically handle this for
-  // us, as long as the remote side always closes the handles it receives
-  // (in OnMsgNotifyAudioStreamCreated), even in the failure case.
-  SerializedHandle fd_wrapper(SerializedHandle::SOCKET, socket_handle);
-  SerializedHandle handle_wrapper(
-      base::UnsafeSharedMemoryRegion::TakeHandleForSerialization(
-          std::move(shared_memory_region)));
-  dispatcher()->Send(new PpapiMsg_PPBAudio_NotifyAudioStreamCreated(
-      API_ID_PPB_AUDIO, resource, result_code, std::move(fd_wrapper),
-      std::move(handle_wrapper)));
-}
-
-int32_t PPB_Audio_Proxy::GetAudioConnectedHandles(
-    const HostResource& resource,
-    IPC::PlatformFileForTransit* foreign_socket_handle,
-    base::UnsafeSharedMemoryRegion* foreign_shared_memory_region) {
-  // Get the audio interface which will give us the handles.
-  EnterHostFromHostResource<PPB_Audio_API> enter(resource);
-  if (enter.failed())
-    return PP_ERROR_NOINTERFACE;
-
-  // Get the socket handle for signaling.
-  int32_t socket_handle;
-  int32_t result = enter.object()->GetSyncSocket(&socket_handle);
-  if (result != PP_OK)
-    return result;
-
-  // socket_handle doesn't belong to us: don't close it.
-  *foreign_socket_handle = dispatcher()->ShareHandleWithRemote(
-      IntToPlatformFile(socket_handle), false);
-  if (*foreign_socket_handle == IPC::InvalidPlatformFileForTransit())
-    return PP_ERROR_FAILED;
-
-  // Get the shared memory for the buffer.
-  base::UnsafeSharedMemoryRegion* shared_memory_region;
-  result = enter.object()->GetSharedMemory(&shared_memory_region);
-  if (result != PP_OK)
-    return result;
-
-  // shared_memory_region doesn't belong to us: don't close it.
-  *foreign_shared_memory_region =
-      dispatcher()->ShareUnsafeSharedMemoryRegionWithRemote(
-          *shared_memory_region);
-  if (!foreign_shared_memory_region->IsValid())
-    return PP_ERROR_FAILED;
-
-  return PP_OK;
-}
-#endif  // !BUILDFLAG(IS_NACL)
-
-// Processed in the plugin (message from host).
-void PPB_Audio_Proxy::OnMsgNotifyAudioStreamCreated(
-    const HostResource& audio_id,
-    int32_t result_code,
-    SerializedHandle socket_handle,
-    SerializedHandle handle) {
-  CHECK(socket_handle.is_socket());
-  CHECK(handle.is_shmem_region());
-  EnterPluginFromHostResource<PPB_Audio_API> enter(audio_id);
-  if (enter.failed() || result_code != PP_OK) {
-    // The caller may still have given us these handles in the failure case.
-    // The easiest way to clean socket handle up is to just put them in the
-    // SyncSocket object and then close it. The shared memory region will be
-    // cleaned up automatically. This failure case is not performance critical.
-    base::SyncSocket temp_socket(
-        IPC::PlatformFileForTransitToPlatformFile(socket_handle.descriptor()));
-  } else {
-    EnterResourceNoLock<PPB_AudioConfig_API> config(
-        static_cast<Audio*>(enter.object())->GetCurrentConfig(), true);
-    static_cast<Audio*>(enter.object())
-        ->SetStreamInfo(enter.resource()->pp_instance(),
-                        base::UnsafeSharedMemoryRegion::Deserialize(
-                            handle.TakeSharedMemoryRegion()),
-                        base::SyncSocket::ScopedHandle(
-                            IPC::PlatformFileForTransitToPlatformFile(
-                                socket_handle.descriptor())),
-                        config.object()->GetSampleRate(),
-                        config.object()->GetSampleFrameCount());
-  }
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppb_audio_proxy.h b/proxy/ppb_audio_proxy.h
deleted file mode 100644
index 81b103d..0000000
--- a/proxy/ppb_audio_proxy.h
+++ /dev/null
@@ -1,88 +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_PROXY_PPB_AUDIO_PROXY_H_
-#define PPAPI_PROXY_PPB_AUDIO_PROXY_H_
-
-#include <stdint.h>
-
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "base/sync_socket.h"
-#include "ipc/ipc_platform_file.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/ppb_audio.h"
-#include "ppapi/c/ppb_audio_config.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/proxy/proxy_completion_callback_factory.h"
-#include "ppapi/utility/completion_callback_factory.h"
-
-namespace ppapi {
-
-class AudioCallbackCombined;
-class HostResource;
-
-namespace proxy {
-
-class SerializedHandle;
-
-class PPB_Audio_Proxy : public InterfaceProxy {
- public:
-  explicit PPB_Audio_Proxy(Dispatcher* dispatcher);
-
-  PPB_Audio_Proxy(const PPB_Audio_Proxy&) = delete;
-  PPB_Audio_Proxy& operator=(const PPB_Audio_Proxy&) = delete;
-
-  ~PPB_Audio_Proxy() override;
-
-  // Creates an Audio object in the plugin process.
-  static PP_Resource CreateProxyResource(
-      PP_Instance instance_id,
-      PP_Resource config_id,
-      const AudioCallbackCombined& audio_callback,
-      void* user_data);
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
-  static const ApiID kApiID = API_ID_PPB_AUDIO;
-
- private:
-  // Plugin->renderer message handlers.
-  void OnMsgCreate(PP_Instance instance_id,
-                   int32_t sample_rate,
-                   uint32_t sample_frame_count,
-                   ppapi::HostResource* result);
-  void OnMsgStartOrStop(const ppapi::HostResource& audio_id, bool play);
-
-  // Renderer->plugin message handlers.
-  void OnMsgNotifyAudioStreamCreated(
-      const ppapi::HostResource& audio_id,
-      int32_t result_code,
-      ppapi::proxy::SerializedHandle socket_handle,
-      ppapi::proxy::SerializedHandle handle);
-
-  void AudioChannelConnected(int32_t result,
-                             const ppapi::HostResource& resource);
-
-  // In the renderer, this is called in response to a stream created message.
-  // It will retrieve the shared memory and socket handles and place them into
-  // the given out params. The return value is a PPAPI error code.
-  //
-  // The input arguments should be initialized to 0 or -1, depending on the
-  // platform's default invalid handle values. On error, some of these
-  // arguments may be written to, and others may be untouched, depending on
-  // where the error occurred.
-  int32_t GetAudioConnectedHandles(
-      const ppapi::HostResource& resource,
-      IPC::PlatformFileForTransit* foreign_socket_handle,
-      base::UnsafeSharedMemoryRegion* foreign_shared_memory_region);
-
-  ProxyCompletionCallbackFactory<PPB_Audio_Proxy> callback_factory_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPB_AUDIO_PROXY_H_
diff --git a/proxy/ppb_buffer_proxy.cc b/proxy/ppb_buffer_proxy.cc
deleted file mode 100644
index 3f8d22e..0000000
--- a/proxy/ppb_buffer_proxy.cc
+++ /dev/null
@@ -1,142 +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/proxy/ppb_buffer_proxy.h"
-
-#include <vector>
-
-#include "base/notreached.h"
-#include "build/build_config.h"
-#include "ppapi/c/dev/ppb_buffer_dev.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/proxy/host_dispatcher.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace proxy {
-
-Buffer::Buffer(const HostResource& resource,
-               base::UnsafeSharedMemoryRegion shm_region)
-    : Resource(OBJECT_IS_PROXY, resource),
-      shm_(std::move(shm_region)),
-      map_count_(0) {}
-
-Buffer::~Buffer() {
-  Unmap();
-}
-
-thunk::PPB_Buffer_API* Buffer::AsPPB_Buffer_API() {
-  return this;
-}
-
-PP_Bool Buffer::Describe(uint32_t* size_in_bytes) {
-  *size_in_bytes = shm_.GetSize();
-  return PP_TRUE;
-}
-
-PP_Bool Buffer::IsMapped() {
-  return PP_FromBool(map_count_ > 0);
-}
-
-void* Buffer::Map() {
-  if (map_count_++ == 0)
-    mapping_ = shm_.Map();
-  return mapping_.memory();
-}
-
-void Buffer::Unmap() {
-  if (--map_count_ == 0)
-    mapping_ = {};
-}
-
-int32_t Buffer::GetSharedMemory(base::UnsafeSharedMemoryRegion** out_handle) {
-  NOTREACHED();
-}
-
-PPB_Buffer_Proxy::PPB_Buffer_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher) {
-}
-
-PPB_Buffer_Proxy::~PPB_Buffer_Proxy() {
-}
-
-// static
-PP_Resource PPB_Buffer_Proxy::CreateProxyResource(PP_Instance instance,
-                                                  uint32_t size) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return 0;
-
-  HostResource result;
-  ppapi::proxy::SerializedHandle shm_handle;
-  dispatcher->Send(new PpapiHostMsg_PPBBuffer_Create(
-      API_ID_PPB_BUFFER, instance, size, &result, &shm_handle));
-  if (result.is_null() || !shm_handle.IsHandleValid() ||
-      !shm_handle.is_shmem_region())
-    return 0;
-
-  return AddProxyResource(result, base::UnsafeSharedMemoryRegion::Deserialize(
-                                      shm_handle.TakeSharedMemoryRegion()));
-}
-
-// static
-PP_Resource PPB_Buffer_Proxy::AddProxyResource(
-    const HostResource& resource,
-    base::UnsafeSharedMemoryRegion shm_region) {
-  return (new Buffer(resource, std::move(shm_region)))->GetReference();
-}
-
-bool PPB_Buffer_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPB_Buffer_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBBuffer_Create, OnMsgCreate)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  // TODO(brettw) handle bad messages!
-  return handled;
-}
-
-void PPB_Buffer_Proxy::OnMsgCreate(
-    PP_Instance instance,
-    uint32_t size,
-    HostResource* result_resource,
-    ppapi::proxy::SerializedHandle* result_shm_handle) {
-  // Overwritten below on success.
-  result_shm_handle->set_null_shmem_region();
-  HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return;
-  if (!dispatcher->permissions().HasPermission(ppapi::PERMISSION_DEV))
-    return;
-
-  thunk::EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return;
-  PP_Resource local_buffer_resource = enter.functions()->CreateBuffer(instance,
-                                                                      size);
-  if (local_buffer_resource == 0)
-    return;
-
-  thunk::EnterResourceNoLock<thunk::PPB_Buffer_API> trusted_buffer(
-      local_buffer_resource, false);
-  if (trusted_buffer.failed())
-    return;
-  base::UnsafeSharedMemoryRegion* local_shm;
-  if (trusted_buffer.object()->GetSharedMemory(&local_shm) != PP_OK)
-    return;
-
-  result_resource->SetHostResource(instance, local_buffer_resource);
-
-  result_shm_handle->set_unsafe_shmem_region(
-      dispatcher->ShareUnsafeSharedMemoryRegionWithRemote(*local_shm));
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppb_buffer_proxy.h b/proxy/ppb_buffer_proxy.h
deleted file mode 100644
index 703b228..0000000
--- a/proxy/ppb_buffer_proxy.h
+++ /dev/null
@@ -1,80 +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_PROXY_PPB_BUFFER_PROXY_H_
-#define PPAPI_PROXY_PPB_BUFFER_PROXY_H_
-
-#include <stdint.h>
-
-#include "base/memory/shared_memory_mapping.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_buffer_api.h"
-
-namespace ppapi {
-
-class HostResource;
-
-namespace proxy {
-
-class SerializedHandle;
-
-class Buffer : public thunk::PPB_Buffer_API, public Resource {
- public:
-  Buffer(const HostResource& resource,
-         base::UnsafeSharedMemoryRegion shm_handle);
-
-  Buffer(const Buffer&) = delete;
-  Buffer& operator=(const Buffer&) = delete;
-
-  ~Buffer() override;
-
-  // Resource overrides.
-  thunk::PPB_Buffer_API* AsPPB_Buffer_API() override;
-
-  // PPB_Buffer_API implementation.
-  PP_Bool Describe(uint32_t* size_in_bytes) override;
-  PP_Bool IsMapped() override;
-  void* Map() override;
-  void Unmap() override;
-
-  // Trusted
-  int32_t GetSharedMemory(base::UnsafeSharedMemoryRegion** shm) override;
-
- private:
-  base::UnsafeSharedMemoryRegion shm_;
-  base::WritableSharedMemoryMapping mapping_;
-  int map_count_;
-};
-
-class PPB_Buffer_Proxy : public InterfaceProxy {
- public:
-  explicit PPB_Buffer_Proxy(Dispatcher* dispatcher);
-  ~PPB_Buffer_Proxy() override;
-
-  static PP_Resource CreateProxyResource(PP_Instance instance,
-                                         uint32_t size);
-  static PP_Resource AddProxyResource(
-      const HostResource& resource,
-      base::UnsafeSharedMemoryRegion shm_region);
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
-  static const ApiID kApiID = API_ID_PPB_BUFFER;
-
- private:
-  // Message handlers.
-  void OnMsgCreate(PP_Instance instance,
-                   uint32_t size,
-                   HostResource* result_resource,
-                   ppapi::proxy::SerializedHandle* result_shm_handle);
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPB_BUFFER_PROXY_H_
diff --git a/proxy/ppb_core_proxy.cc b/proxy/ppb_core_proxy.cc
deleted file mode 100644
index 7e40d46..0000000
--- a/proxy/ppb_core_proxy.cc
+++ /dev/null
@@ -1,142 +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/proxy/ppb_core_proxy.h"
-
-#include <stdint.h>
-#include <stdlib.h>  // For malloc
-
-#include "base/check.h"
-#include "base/functional/bind.h"
-#include "base/time/time.h"
-#include "base/trace_event/trace_event.h"
-#include "build/build_config.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/ppb_core.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/time_conversion.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-void AddRefResource(PP_Resource resource) {
-  ppapi::ProxyAutoLock lock;
-  PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(resource);
-}
-
-void ReleaseResource(PP_Resource resource) {
-  ppapi::ProxyAutoLock lock;
-  PpapiGlobals::Get()->GetResourceTracker()->ReleaseResource(resource);
-}
-
-double GetTime() {
-  return TimeToPPTime(base::Time::Now());
-}
-
-double GetTimeTicks() {
-  return TimeTicksToPPTimeTicks(base::TimeTicks::Now());
-}
-
-void CallbackWrapper(PP_CompletionCallback callback, int32_t result) {
-  TRACE_EVENT2("ppapi_proxy", "CallOnMainThread callback", "Func",
-               reinterpret_cast<void*>(callback.func), "UserData",
-               callback.user_data);
-  CallWhileUnlocked(PP_RunCompletionCallback, &callback, result);
-}
-
-void CallOnMainThread(int delay_in_ms,
-                      PP_CompletionCallback callback,
-                      int32_t result) {
-  DCHECK(callback.func);
-#if BUILDFLAG(IS_NACL)
-  // Some NaCl apps pass a negative delay, so we just sanitize to 0, to run as
-  // soon as possible. MessageLoop checks that the delay is non-negative.
-  if (delay_in_ms < 0)
-    delay_in_ms = 0;
-#endif
-  if (!callback.func)
-    return;
-  ProxyAutoLock lock;
-
-  // If the plugin attempts to call CallOnMainThread from a background thread
-  // at shutdown, it's possible that the PpapiGlobals object or the main loop
-  // has been destroyed.
-  if (!PpapiGlobals::Get() || !PpapiGlobals::Get()->GetMainThreadMessageLoop())
-    return;
-
-  PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostDelayedTask(
-      FROM_HERE,
-      RunWhileLocked(base::BindOnce(&CallbackWrapper, callback, result)),
-      base::Milliseconds(delay_in_ms));
-}
-
-PP_Bool IsMainThread() {
-  return PP_FromBool(PpapiGlobals::Get()->
-      GetMainThreadMessageLoop()->BelongsToCurrentThread());
-}
-
-const PPB_Core core_interface = {
-  &AddRefResource,
-  &ReleaseResource,
-  &GetTime,
-  &GetTimeTicks,
-  &CallOnMainThread,
-  &IsMainThread
-};
-
-}  // namespace
-
-PPB_Core_Proxy::PPB_Core_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher),
-      ppb_core_impl_(NULL) {
-  if (!dispatcher->IsPlugin()) {
-    ppb_core_impl_ = static_cast<const PPB_Core*>(
-        dispatcher->local_get_interface()(PPB_CORE_INTERFACE));
-  }
-}
-
-PPB_Core_Proxy::~PPB_Core_Proxy() {
-}
-
-// static
-const PPB_Core* PPB_Core_Proxy::GetPPB_Core_Interface() {
-  return &core_interface;
-}
-
-bool PPB_Core_Proxy::OnMessageReceived(const IPC::Message& msg) {
-#if BUILDFLAG(IS_NACL)
-  return false;
-#else
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPB_Core_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBCore_AddRefResource,
-                        OnMsgAddRefResource)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBCore_ReleaseResource,
-                        OnMsgReleaseResource)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  // TODO(brettw) handle bad messages!
-  return handled;
-#endif
-}
-
-#if !BUILDFLAG(IS_NACL)
-void PPB_Core_Proxy::OnMsgAddRefResource(const HostResource& resource) {
-  ppb_core_impl_->AddRefResource(resource.host_resource());
-}
-
-void PPB_Core_Proxy::OnMsgReleaseResource(const HostResource& resource) {
-  ppb_core_impl_->ReleaseResource(resource.host_resource());
-}
-#endif  // !BUILDFLAG(IS_NACL)
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppb_core_proxy.h b/proxy/ppb_core_proxy.h
deleted file mode 100644
index 220d483..0000000
--- a/proxy/ppb_core_proxy.h
+++ /dev/null
@@ -1,44 +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_PROXY_PPB_CORE_PROXY_H_
-#define PPAPI_PROXY_PPB_CORE_PROXY_H_
-
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/ppb_core.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/shared_impl/host_resource.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPB_Core_Proxy : public InterfaceProxy {
- public:
-  explicit PPB_Core_Proxy(Dispatcher* dispatcher);
-  ~PPB_Core_Proxy() override;
-
-  static const PPB_Core* GetPPB_Core_Interface();
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
-  static const ApiID kApiID = API_ID_PPB_CORE;
-
- private:
-  // Message handlers.
-  void OnMsgAddRefResource(const ppapi::HostResource& resource);
-  void OnMsgReleaseResource(const ppapi::HostResource& resource);
-
-  // When this proxy is in the host side, this value caches the interface
-  // pointer so we don't have to retrieve it from the dispatcher each time.
-  // In the plugin, this value is always NULL.
-  const PPB_Core* ppb_core_impl_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPB_CORE_PROXY_H_
diff --git a/proxy/ppb_graphics_3d_proxy.cc b/proxy/ppb_graphics_3d_proxy.cc
deleted file mode 100644
index 0fae354..0000000
--- a/proxy/ppb_graphics_3d_proxy.cc
+++ /dev/null
@@ -1,452 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/proxy/ppb_graphics_3d_proxy.h"
-
-#include <memory>
-
-#include "base/numerics/safe_conversions.h"
-#include "build/build_config.h"
-#include "gpu/command_buffer/client/gles2_implementation.h"
-#include "gpu/command_buffer/common/command_buffer.h"
-#include "gpu/command_buffer/common/sync_token.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/enter_proxy.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/ppapi_command_buffer_proxy.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-using ppapi::thunk::EnterResourceNoLock;
-using ppapi::thunk::PPB_Graphics3D_API;
-using ppapi::thunk::ResourceCreationAPI;
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-#if !BUILDFLAG(IS_NACL)
-base::UnsafeSharedMemoryRegion TransportSHMHandle(
-    Dispatcher* dispatcher,
-    const base::UnsafeSharedMemoryRegion& region) {
-  return dispatcher->ShareUnsafeSharedMemoryRegionWithRemote(region);
-}
-#endif  // !BUILDFLAG(IS_NACL)
-
-gpu::CommandBuffer::State GetErrorState() {
-  gpu::CommandBuffer::State error_state;
-  error_state.error = gpu::error::kGenericError;
-  return error_state;
-}
-
-}  // namespace
-
-Graphics3D::Graphics3D(const HostResource& resource, const gfx::Size& size)
-    : PPB_Graphics3D_Shared(resource, size) {}
-
-Graphics3D::~Graphics3D() {
-  DestroyGLES2Impl();
-}
-
-bool Graphics3D::Init(gpu::gles2::GLES2Implementation* share_gles2,
-                      const gpu::Capabilities& capabilities,
-                      const gpu::GLCapabilities& gl_capabilities,
-                      SerializedHandle shared_state,
-                      gpu::CommandBufferId command_buffer_id) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForResource(this);
-  if (!dispatcher)
-    return false;
-
-  InstanceData* data = dispatcher->GetInstanceData(host_resource().instance());
-  DCHECK(data);
-
-  command_buffer_ = std::make_unique<PpapiCommandBufferProxy>(
-      host_resource(), &data->flush_info, dispatcher, capabilities,
-      gl_capabilities, std::move(shared_state), command_buffer_id);
-
-  return CreateGLES2Impl(share_gles2);
-}
-
-PP_Bool Graphics3D::SetGetBuffer(int32_t /* transfer_buffer_id */) {
-  return PP_FALSE;
-}
-
-PP_Bool Graphics3D::Flush(int32_t put_offset, uint64_t release_count) {
-  return PP_FALSE;
-}
-
-scoped_refptr<gpu::Buffer> Graphics3D::CreateTransferBuffer(
-    uint32_t size,
-    int32_t* id) {
-  *id = -1;
-  return nullptr;
-}
-
-PP_Bool Graphics3D::DestroyTransferBuffer(int32_t id) {
-  return PP_FALSE;
-}
-
-gpu::CommandBuffer::State Graphics3D::WaitForTokenInRange(int32_t start,
-                                                          int32_t end) {
-  return GetErrorState();
-}
-
-gpu::CommandBuffer::State Graphics3D::WaitForGetOffsetInRange(
-    uint32_t set_get_buffer_count,
-    int32_t start,
-    int32_t end) {
-  return GetErrorState();
-}
-
-void Graphics3D::EnsureWorkVisible() {
-  NOTREACHED();
-}
-
-void Graphics3D::ResolveAndDetachFramebuffer() {
-  NOTREACHED();
-}
-
-gpu::CommandBuffer* Graphics3D::GetCommandBuffer() {
-  return command_buffer_.get();
-}
-
-gpu::GpuControl* Graphics3D::GetGpuControl() {
-  return command_buffer_.get();
-}
-
-int32_t Graphics3D::DoSwapBuffers(const gpu::SyncToken& sync_token,
-                                  const gfx::Size& size) {
-  // A valid sync token would indicate a swap buffer already happened somehow.
-  DCHECK(!sync_token.HasData());
-
-  gpu::gles2::GLES2Implementation* gl = gles2_impl();
-
-  // Flush current GL commands.
-  gl->ShallowFlushCHROMIUM();
-
-  // Make sure we resolved and detached our frame buffer
-  PluginDispatcher::GetForResource(this)->Send(
-      new PpapiHostMsg_PPBGraphics3D_ResolveAndDetachFramebuffer(
-          API_ID_PPB_GRAPHICS_3D, host_resource()));
-
-  gpu::SyncToken new_sync_token;
-  gl->GenSyncTokenCHROMIUM(new_sync_token.GetData());
-
-  IPC::Message* msg = new PpapiHostMsg_PPBGraphics3D_SwapBuffers(
-      API_ID_PPB_GRAPHICS_3D, host_resource(), new_sync_token, size);
-  msg->set_unblock(true);
-  PluginDispatcher::GetForResource(this)->Send(msg);
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void Graphics3D::DoResize(gfx::Size size) {
-  // Flush current GL commands.
-  gles2_impl()->ShallowFlushCHROMIUM();
-  PluginDispatcher::GetForResource(this)->Send(
-      new PpapiHostMsg_PPBGraphics3D_Resize(API_ID_PPB_GRAPHICS_3D,
-                                            host_resource(), size));
-}
-
-PPB_Graphics3D_Proxy::PPB_Graphics3D_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher),
-      callback_factory_(this) {
-}
-
-PPB_Graphics3D_Proxy::~PPB_Graphics3D_Proxy() {
-}
-
-// static
-PP_Resource PPB_Graphics3D_Proxy::CreateProxyResource(
-    PP_Instance instance,
-    PP_Resource share_context,
-    const int32_t* attrib_list) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return PP_ERROR_BADARGUMENT;
-
-  HostResource share_host;
-  gpu::gles2::GLES2Implementation* share_gles2 = nullptr;
-  if (share_context != 0) {
-    EnterResourceNoLock<PPB_Graphics3D_API> enter(share_context, true);
-    if (enter.failed())
-      return PP_ERROR_BADARGUMENT;
-
-    PPB_Graphics3D_Shared* share_graphics =
-        static_cast<PPB_Graphics3D_Shared*>(enter.object());
-    share_host = share_graphics->host_resource();
-    share_gles2 = share_graphics->gles2_impl();
-  }
-
-  Graphics3DContextAttribs attrib_helper;
-  if (attrib_list) {
-    for (const int32_t* attr = attrib_list; attr[0] != PP_GRAPHICS3DATTRIB_NONE;
-         attr += 2) {
-      int32_t key = attr[0];
-      int32_t value = attr[1];
-      switch (key) {
-        case PP_GRAPHICS3DATTRIB_ALPHA_SIZE:
-          attrib_helper.alpha_size = value;
-          break;
-        case PP_GRAPHICS3DATTRIB_DEPTH_SIZE:
-          attrib_helper.depth_size = value;
-          break;
-        case PP_GRAPHICS3DATTRIB_STENCIL_SIZE:
-          attrib_helper.stencil_size = value;
-          break;
-        case PP_GRAPHICS3DATTRIB_SAMPLES:
-          attrib_helper.samples = value;
-          break;
-        case PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS:
-          attrib_helper.sample_buffers = value;
-          break;
-        case PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR:
-          attrib_helper.buffer_preserved =
-              value == PP_GRAPHICS3DATTRIB_BUFFER_PRESERVED;
-          break;
-        case PP_GRAPHICS3DATTRIB_WIDTH:
-          attrib_helper.offscreen_framebuffer_size.set_width(value);
-          break;
-        case PP_GRAPHICS3DATTRIB_HEIGHT:
-          attrib_helper.offscreen_framebuffer_size.set_height(value);
-          break;
-        case PP_GRAPHICS3DATTRIB_SINGLE_BUFFER:
-          attrib_helper.single_buffer = !!value;
-          break;
-        // These attributes are valid, but ignored.
-        case PP_GRAPHICS3DATTRIB_RED_SIZE:
-        case PP_GRAPHICS3DATTRIB_BLUE_SIZE:
-        case PP_GRAPHICS3DATTRIB_GREEN_SIZE:
-        case PP_GRAPHICS3DATTRIB_GPU_PREFERENCE:
-          break;
-        default:
-          DLOG(ERROR) << "Invalid context creation attribute: " << attr[0];
-          return 0;
-      }
-    }
-  }
-
-  HostResource result;
-  gpu::Capabilities capabilities;
-  gpu::GLCapabilities gl_capabilities;
-  ppapi::proxy::SerializedHandle shared_state;
-  gpu::CommandBufferId command_buffer_id;
-  dispatcher->Send(new PpapiHostMsg_PPBGraphics3D_Create(
-      API_ID_PPB_GRAPHICS_3D, instance, share_host, attrib_helper, &result,
-      &capabilities, &gl_capabilities, &shared_state, &command_buffer_id));
-
-  if (result.is_null())
-    return 0;
-
-  scoped_refptr<Graphics3D> graphics_3d(
-      new Graphics3D(result, attrib_helper.offscreen_framebuffer_size));
-  if (!graphics_3d->Init(share_gles2, capabilities, gl_capabilities,
-                         std::move(shared_state), command_buffer_id)) {
-    return 0;
-  }
-  return graphics_3d->GetReference();
-}
-
-bool PPB_Graphics3D_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPB_Graphics3D_Proxy, msg)
-#if !BUILDFLAG(IS_NACL)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_Create,
-                        OnMsgCreate)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_SetGetBuffer,
-                        OnMsgSetGetBuffer)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_WaitForTokenInRange,
-                        OnMsgWaitForTokenInRange)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_WaitForGetOffsetInRange,
-                        OnMsgWaitForGetOffsetInRange)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_AsyncFlush, OnMsgAsyncFlush)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_CreateTransferBuffer,
-                        OnMsgCreateTransferBuffer)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_DestroyTransferBuffer,
-                        OnMsgDestroyTransferBuffer)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_SwapBuffers,
-                        OnMsgSwapBuffers)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_ResolveAndDetachFramebuffer,
-                        OnMsgResolveAndDetachFramebuffer)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_Resize, OnMsgResize)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBGraphics3D_EnsureWorkVisible,
-                        OnMsgEnsureWorkVisible)
-#endif  // !BUILDFLAG(IS_NACL)
-
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPBGraphics3D_SwapBuffersACK,
-                        OnMsgSwapBuffersACK)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-
-  IPC_END_MESSAGE_MAP()
-  // FIXME(brettw) handle bad messages!
-  return handled;
-}
-
-#if !BUILDFLAG(IS_NACL)
-void PPB_Graphics3D_Proxy::OnMsgCreate(
-    PP_Instance instance,
-    HostResource share_context,
-    const Graphics3DContextAttribs& context_attribs,
-    HostResource* result,
-    gpu::Capabilities* capabilities,
-    gpu::GLCapabilities* gl_capabilities,
-    SerializedHandle* shared_state,
-    gpu::CommandBufferId* command_buffer_id) {
-  shared_state->set_null_shmem_region();
-
-  thunk::EnterResourceCreation enter(instance);
-
-  if (!enter.succeeded())
-    return;
-
-  const base::UnsafeSharedMemoryRegion* region = nullptr;
-  result->SetHostResource(
-      instance, enter.functions()->CreateGraphics3DRaw(
-                    instance, share_context.host_resource(), context_attribs,
-                    capabilities, gl_capabilities, &region, command_buffer_id));
-  if (!result->is_null()) {
-    shared_state->set_shmem_region(
-        base::UnsafeSharedMemoryRegion::TakeHandleForSerialization(
-            TransportSHMHandle(dispatcher(), *region)));
-  }
-}
-
-void PPB_Graphics3D_Proxy::OnMsgSetGetBuffer(const HostResource& context,
-                                             int32_t transfer_buffer_id) {
-  EnterHostFromHostResource<PPB_Graphics3D_API> enter(context);
-  if (enter.succeeded())
-    enter.object()->SetGetBuffer(transfer_buffer_id);
-}
-
-void PPB_Graphics3D_Proxy::OnMsgWaitForTokenInRange(
-    const HostResource& context,
-    int32_t start,
-    int32_t end,
-    gpu::CommandBuffer::State* state,
-    bool* success) {
-  EnterHostFromHostResource<PPB_Graphics3D_API> enter(context);
-  if (enter.failed()) {
-    *success = false;
-    return;
-  }
-  *state = enter.object()->WaitForTokenInRange(start, end);
-  *success = true;
-}
-
-void PPB_Graphics3D_Proxy::OnMsgWaitForGetOffsetInRange(
-    const HostResource& context,
-    uint32_t set_get_buffer_count,
-    int32_t start,
-    int32_t end,
-    gpu::CommandBuffer::State* state,
-    bool* success) {
-  EnterHostFromHostResource<PPB_Graphics3D_API> enter(context);
-  if (enter.failed()) {
-    *success = false;
-    return;
-  }
-  *state =
-      enter.object()->WaitForGetOffsetInRange(set_get_buffer_count, start, end);
-  *success = true;
-}
-
-void PPB_Graphics3D_Proxy::OnMsgAsyncFlush(const HostResource& context,
-                                           int32_t put_offset,
-                                           uint64_t release_count) {
-  EnterHostFromHostResource<PPB_Graphics3D_API> enter(context);
-  if (enter.succeeded())
-    enter.object()->Flush(put_offset, release_count);
-}
-
-void PPB_Graphics3D_Proxy::OnMsgCreateTransferBuffer(
-    const HostResource& context,
-    uint32_t size,
-    int32_t* id,
-    SerializedHandle* transfer_buffer) {
-  transfer_buffer->set_null_shmem_region();
-  EnterHostFromHostResource<PPB_Graphics3D_API> enter(context);
-  if (enter.succeeded()) {
-    scoped_refptr<gpu::Buffer> buffer =
-        enter.object()->CreateTransferBuffer(size, id);
-    if (!buffer.get())
-      return;
-    gpu::SharedMemoryBufferBacking* backing =
-        static_cast<gpu::SharedMemoryBufferBacking*>(buffer->backing());
-    DCHECK(backing && backing->shared_memory_region().IsValid());
-    transfer_buffer->set_shmem_region(
-        base::UnsafeSharedMemoryRegion::TakeHandleForSerialization(
-            TransportSHMHandle(dispatcher(), backing->shared_memory_region())));
-  } else {
-    *id = -1;
-  }
-}
-
-void PPB_Graphics3D_Proxy::OnMsgDestroyTransferBuffer(
-    const HostResource& context,
-    int32_t id) {
-  EnterHostFromHostResource<PPB_Graphics3D_API> enter(context);
-  if (enter.succeeded())
-    enter.object()->DestroyTransferBuffer(id);
-}
-
-void PPB_Graphics3D_Proxy::OnMsgSwapBuffers(const HostResource& context,
-                                            const gpu::SyncToken& sync_token,
-                                            const gfx::Size& size) {
-  EnterHostFromHostResourceForceCallback<PPB_Graphics3D_API> enter(
-      context, callback_factory_,
-      &PPB_Graphics3D_Proxy::SendSwapBuffersACKToPlugin, context);
-  if (enter.succeeded())
-    enter.SetResult(enter.object()->SwapBuffersWithSyncToken(
-        enter.callback(), sync_token, size));
-}
-
-void PPB_Graphics3D_Proxy::OnMsgResolveAndDetachFramebuffer(
-    const HostResource& context) {
-  EnterHostFromHostResource<PPB_Graphics3D_API> enter(context);
-  if (enter.succeeded())
-    enter.object()->ResolveAndDetachFramebuffer();
-}
-
-void PPB_Graphics3D_Proxy::OnMsgResize(const HostResource& context,
-                                       gfx::Size size) {
-  EnterHostFromHostResource<PPB_Graphics3D_API> enter(context);
-  if (enter.succeeded())
-    enter.object()->ResizeBuffers(size.width(), size.height());
-}
-
-void PPB_Graphics3D_Proxy::OnMsgEnsureWorkVisible(const HostResource& context) {
-  EnterHostFromHostResource<PPB_Graphics3D_API> enter(context);
-  if (enter.succeeded())
-    enter.object()->EnsureWorkVisible();
-}
-
-#endif  // !BUILDFLAG(IS_NACL)
-
-void PPB_Graphics3D_Proxy::OnMsgSwapBuffersACK(const HostResource& resource,
-                                              int32_t pp_error) {
-  EnterPluginFromHostResource<PPB_Graphics3D_API> enter(resource);
-  if (enter.succeeded())
-    static_cast<Graphics3D*>(enter.object())->SwapBuffersACK(pp_error);
-}
-
-#if !BUILDFLAG(IS_NACL)
-void PPB_Graphics3D_Proxy::SendSwapBuffersACKToPlugin(
-    int32_t result,
-    const HostResource& context) {
-  dispatcher()->Send(new PpapiMsg_PPBGraphics3D_SwapBuffersACK(
-      API_ID_PPB_GRAPHICS_3D, context, result));
-}
-#endif  // !BUILDFLAG(IS_NACL)
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppb_graphics_3d_proxy.h b/proxy/ppb_graphics_3d_proxy.h
deleted file mode 100644
index fbf20ab..0000000
--- a/proxy/ppb_graphics_3d_proxy.h
+++ /dev/null
@@ -1,145 +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_PROXY_PPB_GRAPHICS_3D_PROXY_H_
-#define PPAPI_PROXY_PPB_GRAPHICS_3D_PROXY_H_
-
-#include <stdint.h>
-
-#include "gpu/command_buffer/common/command_buffer.h"
-#include "gpu/command_buffer/common/command_buffer_id.h"
-#include "ppapi/c/pp_graphics_3d.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/proxy/proxy_completion_callback_factory.h"
-#include "ppapi/shared_impl/ppb_graphics_3d_shared.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/utility/completion_callback_factory.h"
-
-namespace gpu {
-struct Capabilities;
-struct GLCapabilities;
-}
-
-namespace ppapi {
-
-class HostResource;
-
-namespace proxy {
-
-class SerializedHandle;
-class PpapiCommandBufferProxy;
-
-class PPAPI_PROXY_EXPORT Graphics3D : public PPB_Graphics3D_Shared {
- public:
-  Graphics3D(const HostResource& resource, const gfx::Size& size);
-
-  Graphics3D(const Graphics3D&) = delete;
-  Graphics3D& operator=(const Graphics3D&) = delete;
-
-  ~Graphics3D() override;
-
-  bool Init(gpu::gles2::GLES2Implementation* share_gles2,
-            const gpu::Capabilities& capabilities,
-            const gpu::GLCapabilities& gl_capabilities,
-            SerializedHandle shared_state,
-            gpu::CommandBufferId command_buffer_id);
-
-  // Graphics3DTrusted API. These are not implemented in the proxy.
-  PP_Bool SetGetBuffer(int32_t shm_id) override;
-  PP_Bool Flush(int32_t put_offset, uint64_t release_count) override;
-  scoped_refptr<gpu::Buffer> CreateTransferBuffer(uint32_t size,
-                                                  int32_t* id) override;
-  PP_Bool DestroyTransferBuffer(int32_t id) override;
-  gpu::CommandBuffer::State WaitForTokenInRange(int32_t start,
-                                                int32_t end) override;
-  gpu::CommandBuffer::State WaitForGetOffsetInRange(
-      uint32_t set_get_buffer_count,
-      int32_t start,
-      int32_t end) override;
-  void EnsureWorkVisible() override;
-  void ResolveAndDetachFramebuffer() override;
-
- private:
-  // PPB_Graphics3D_Shared overrides.
-  gpu::CommandBuffer* GetCommandBuffer() override;
-  gpu::GpuControl* GetGpuControl() override;
-  int32_t DoSwapBuffers(const gpu::SyncToken& sync_token,
-                        const gfx::Size& size) override;
-  void DoResize(gfx::Size size) override;
-
-  std::unique_ptr<PpapiCommandBufferProxy> command_buffer_;
-};
-
-class PPB_Graphics3D_Proxy : public InterfaceProxy {
- public:
-  explicit PPB_Graphics3D_Proxy(Dispatcher* dispatcher);
-
-  PPB_Graphics3D_Proxy(const PPB_Graphics3D_Proxy&) = delete;
-  PPB_Graphics3D_Proxy& operator=(const PPB_Graphics3D_Proxy&) = delete;
-
-  ~PPB_Graphics3D_Proxy();
-
-  static PP_Resource CreateProxyResource(
-      PP_Instance instance,
-      PP_Resource share_context,
-      const int32_t* attrib_list);
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
-  static const ApiID kApiID = API_ID_PPB_GRAPHICS_3D;
-
- private:
-  void OnMsgCreate(PP_Instance instance,
-                   HostResource share_context,
-                   const Graphics3DContextAttribs& context_attribs,
-                   HostResource* result,
-                   gpu::Capabilities* capabilities,
-                   gpu::GLCapabilities* gl_capabilities,
-                   SerializedHandle* handle,
-                   gpu::CommandBufferId* command_buffer_id);
-  void OnMsgSetGetBuffer(const HostResource& context, int32_t id);
-  void OnMsgWaitForTokenInRange(const HostResource& context,
-                                int32_t start,
-                                int32_t end,
-                                gpu::CommandBuffer::State* state,
-                                bool* success);
-  void OnMsgWaitForGetOffsetInRange(const HostResource& context,
-                                    uint32_t set_get_buffer_count,
-                                    int32_t start,
-                                    int32_t end,
-                                    gpu::CommandBuffer::State* state,
-                                    bool* success);
-  void OnMsgAsyncFlush(const HostResource& context,
-                       int32_t put_offset,
-                       uint64_t release_count);
-  void OnMsgCreateTransferBuffer(
-      const HostResource& context,
-      uint32_t size,
-      int32_t* id,
-      ppapi::proxy::SerializedHandle* transfer_buffer);
-  void OnMsgDestroyTransferBuffer(const HostResource& context, int32_t id);
-  void OnMsgSwapBuffers(const HostResource& context,
-                        const gpu::SyncToken& sync_token,
-                        const gfx::Size& size);
-  void OnMsgEnsureWorkVisible(const HostResource& context);
-  void OnMsgResolveAndDetachFramebuffer(const HostResource& context);
-  void OnMsgResize(const HostResource& context, gfx::Size size);
-
-  // Renderer->plugin message handlers.
-  void OnMsgSwapBuffersACK(const HostResource& context,
-                           int32_t pp_error);
-
-  void SendSwapBuffersACKToPlugin(int32_t result,
-                                  const HostResource& context);
-
-  ProxyCompletionCallbackFactory<PPB_Graphics3D_Proxy> callback_factory_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPB_GRAPHICS_3D_PROXY_H_
diff --git a/proxy/ppb_image_data_proxy.cc b/proxy/ppb_image_data_proxy.cc
deleted file mode 100644
index d0e138a..0000000
--- a/proxy/ppb_image_data_proxy.cc
+++ /dev/null
@@ -1,674 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/proxy/ppb_image_data_proxy.h"
-
-#include <string.h>  // For memcpy
-
-#include <map>
-#include <vector>
-
-#include "base/functional/bind.h"
-#include "base/logging.h"
-#include "base/memory/shared_memory_mapping.h"
-#include "base/memory/singleton.h"
-#include "base/memory/weak_ptr.h"
-#include "base/time/time.h"
-#include "build/build_config.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/proxy/enter_proxy.h"
-#include "ppapi/proxy/host_dispatcher.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/host_resource.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/shared_impl/scoped_pp_resource.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/thunk.h"
-
-#if !BUILDFLAG(IS_NACL)
-#include "skia/ext/platform_canvas.h"  //nogncheck
-#include "ui/surface/transport_dib.h"  //nogncheck
-#endif
-
-using ppapi::thunk::PPB_ImageData_API;
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-// How ImageData re-use works
-// --------------------------
-//
-// When animating plugins (like video), re-creating image datas for each frame
-// and mapping the memory has a high overhead. So we try to re-use these when
-// possible.
-//
-// 1. Plugin makes an asynchronous call that transfers an ImageData to the
-//    implementation of some API.
-// 2. Plugin frees its ImageData reference. If it doesn't do this we can't
-//    re-use it.
-// 3. When the last plugin ref of an ImageData is released, we don't actually
-//    delete it. Instead we put it on a queue where we hold onto it in the
-//    plugin process for a short period of time.
-// 4. The API implementation that received the ImageData finishes using it.
-//    Without our caching system it would get deleted at this point.
-// 5. The proxy in the renderer will send NotifyUnusedImageData back to the
-//    plugin process. We check if the given resource is in the queue and mark
-//    it as usable.
-// 6. When the plugin requests a new image data, we check our queue and if there
-//    is a usable ImageData of the right size and format, we'll return it
-//    instead of making a new one. It's important that caching is only requested
-//    when the size is unlikely to change, so cache hits are high.
-//
-// Some notes:
-//
-//  - We only re-use image data when the plugin and host are rapidly exchanging
-//    them and the size is likely to remain constant. It should be clear that
-//    the plugin is promising that it's done with the image.
-//
-//  - Theoretically we could re-use them in other cases but the lifetime
-//    becomes more difficult to manage. The plugin could have used an ImageData
-//    in an arbitrary number of queued up PaintImageData calls which we would
-//    have to check.
-//
-//  - If a flush takes a long time or there are many released image datas
-//    accumulating in our queue such that some are deleted, we will have
-//    released our reference by the time the renderer notifies us of an unused
-//    image data. In this case we just give up.
-//
-//  - We maintain a per-instance cache. Some pages have many instances of
-//    Flash, for example, each of a different size. If they're all animating we
-//    want each to get its own image data re-use.
-//
-//  - We generate new resource IDs when re-use happens to try to avoid weird
-//    problems if the plugin messes up its refcounting.
-
-// Keep a cache entry for this many seconds before expiring it. We get an entry
-// back from the renderer after an ImageData is swapped out, so it means the
-// plugin has to be painting at least two frames for this time interval to
-// get caching.
-static const int kMaxAgeSeconds = 2;
-
-// ImageDataCacheEntry ---------------------------------------------------------
-
-struct ImageDataCacheEntry {
-  ImageDataCacheEntry() : usable(false) {}
-  explicit ImageDataCacheEntry(ImageData* i)
-      : added_time(base::TimeTicks::Now()), usable(false), image(i) {}
-
-  base::TimeTicks added_time;
-
-  // Set to true when the renderer tells us that it's OK to re-use this image.
-  bool usable;
-
-  scoped_refptr<ImageData> image;
-};
-
-// ImageDataInstanceCache ------------------------------------------------------
-
-// Per-instance cache of image datas.
-class ImageDataInstanceCache {
- public:
-  ImageDataInstanceCache() : next_insertion_point_(0) {}
-
-  // These functions have the same spec as the ones in ImageDataCache.
-  scoped_refptr<ImageData> Get(PPB_ImageData_Shared::ImageDataType type,
-                               int width, int height,
-                               PP_ImageDataFormat format);
-  void Add(ImageData* image_data);
-  void ImageDataUsable(ImageData* image_data);
-
-  // Expires old entries. Returns true if there are still entries in the list,
-  // false if this instance cache is now empty.
-  bool ExpireEntries();
-
- private:
-  void IncrementInsertionPoint();
-
-  // We'll store this many ImageDatas per instance.
-  static const size_t kCacheSize = 2;
-
-  ImageDataCacheEntry images_[kCacheSize];
-
-  // Index into cache where the next item will go.
-  size_t next_insertion_point_;
-};
-
-scoped_refptr<ImageData> ImageDataInstanceCache::Get(
-    PPB_ImageData_Shared::ImageDataType type,
-    int width, int height,
-    PP_ImageDataFormat format) {
-  // Just do a brute-force search since the cache is so small.
-  for (size_t i = 0; i < kCacheSize; i++) {
-    if (!images_[i].usable)
-      continue;
-    if (images_[i].image->type() != type)
-      continue;
-    const PP_ImageDataDesc& desc = images_[i].image->desc();
-    if (desc.format == format &&
-        desc.size.width == width && desc.size.height == height) {
-      scoped_refptr<ImageData> ret(images_[i].image);
-      images_[i] = ImageDataCacheEntry();
-
-      // Since we just removed an item, this entry is the best place to insert
-      // a subsequent one.
-      next_insertion_point_ = i;
-      return ret;
-    }
-  }
-  return scoped_refptr<ImageData>();
-}
-
-void ImageDataInstanceCache::Add(ImageData* image_data) {
-  images_[next_insertion_point_] = ImageDataCacheEntry(image_data);
-  IncrementInsertionPoint();
-}
-
-void ImageDataInstanceCache::ImageDataUsable(ImageData* image_data) {
-  for (size_t i = 0; i < kCacheSize; i++) {
-    if (images_[i].image.get() == image_data) {
-      images_[i].usable = true;
-
-      // This test is important. The renderer doesn't guarantee how many image
-      // datas it has or when it notifies us when one is usable. Its possible
-      // to get into situations where it's always telling us the old one is
-      // usable, and then the older one immediately gets expired. Therefore,
-      // if the next insertion would overwrite this now-usable entry, make the
-      // next insertion overwrite some other entry to avoid the replacement.
-      if (next_insertion_point_ == i)
-        IncrementInsertionPoint();
-      return;
-    }
-  }
-}
-
-bool ImageDataInstanceCache::ExpireEntries() {
-  base::TimeTicks threshold_time =
-      base::TimeTicks::Now() - base::Seconds(kMaxAgeSeconds);
-
-  bool has_entry = false;
-  for (size_t i = 0; i < kCacheSize; i++) {
-    if (images_[i].image.get()) {
-      // Entry present.
-      if (images_[i].added_time <= threshold_time) {
-        // Found an entry to expire.
-        images_[i] = ImageDataCacheEntry();
-        next_insertion_point_ = i;
-      } else {
-        // Found an entry that we're keeping.
-        has_entry = true;
-      }
-    }
-  }
-  return has_entry;
-}
-
-void ImageDataInstanceCache::IncrementInsertionPoint() {
-  // Go to the next location, wrapping around to get LRU.
-  next_insertion_point_++;
-  if (next_insertion_point_ >= kCacheSize)
-    next_insertion_point_ = 0;
-}
-
-// ImageDataCache --------------------------------------------------------------
-
-class ImageDataCache {
- public:
-  ImageDataCache() {}
-
-  ImageDataCache(const ImageDataCache&) = delete;
-  ImageDataCache& operator=(const ImageDataCache&) = delete;
-
-  ~ImageDataCache() {}
-
-  static ImageDataCache* GetInstance();
-
-  // Retrieves an image data from the cache of the specified type, size and
-  // format if one exists. If one doesn't exist, this will return a null refptr.
-  scoped_refptr<ImageData> Get(PP_Instance instance,
-                               PPB_ImageData_Shared::ImageDataType type,
-                               int width, int height,
-                               PP_ImageDataFormat format);
-
-  // Adds the given image data to the cache. There should be no plugin
-  // references to it. This may delete an older item from the cache.
-  void Add(ImageData* image_data);
-
-  // Notification from the renderer that the given image data is usable.
-  void ImageDataUsable(ImageData* image_data);
-
-  void DidDeleteInstance(PP_Instance instance);
-
- private:
-  friend struct base::LeakySingletonTraits<ImageDataCache>;
-
-  // Timer callback to expire entries for the given instance.
-  void OnTimer(PP_Instance instance);
-
-  typedef std::map<PP_Instance, ImageDataInstanceCache> CacheMap;
-  CacheMap cache_;
-
-  // This class does timer calls and we don't want to run these outside of the
-  // scope of the object. Technically, since this class is a leaked static,
-  // this will never happen and this factory is unnecessary. However, it's
-  // probably better not to make assumptions about the lifetime of this class.
-  base::WeakPtrFactory<ImageDataCache> weak_factory_{this};
-};
-
-// static
-ImageDataCache* ImageDataCache::GetInstance() {
-  return base::Singleton<ImageDataCache,
-                         base::LeakySingletonTraits<ImageDataCache>>::get();
-}
-
-scoped_refptr<ImageData> ImageDataCache::Get(
-    PP_Instance instance,
-    PPB_ImageData_Shared::ImageDataType type,
-    int width, int height,
-    PP_ImageDataFormat format) {
-  CacheMap::iterator found = cache_.find(instance);
-  if (found == cache_.end())
-    return scoped_refptr<ImageData>();
-  return found->second.Get(type, width, height, format);
-}
-
-void ImageDataCache::Add(ImageData* image_data) {
-  cache_[image_data->pp_instance()].Add(image_data);
-
-  // Schedule a timer to invalidate this entry.
-  PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostDelayedTask(
-      FROM_HERE,
-      RunWhileLocked(base::BindOnce(&ImageDataCache::OnTimer,
-                                    weak_factory_.GetWeakPtr(),
-                                    image_data->pp_instance())),
-      base::Seconds(kMaxAgeSeconds));
-}
-
-void ImageDataCache::ImageDataUsable(ImageData* image_data) {
-  CacheMap::iterator found = cache_.find(image_data->pp_instance());
-  if (found != cache_.end())
-    found->second.ImageDataUsable(image_data);
-}
-
-void ImageDataCache::DidDeleteInstance(PP_Instance instance) {
-  cache_.erase(instance);
-}
-
-void ImageDataCache::OnTimer(PP_Instance instance) {
-  CacheMap::iterator found = cache_.find(instance);
-  if (found == cache_.end())
-    return;
-  if (!found->second.ExpireEntries()) {
-    // There are no more entries for this instance, remove it from the cache.
-    cache_.erase(found);
-  }
-}
-
-}  // namespace
-
-// ImageData -------------------------------------------------------------------
-
-ImageData::ImageData(const HostResource& resource,
-                     PPB_ImageData_Shared::ImageDataType type,
-                     const PP_ImageDataDesc& desc)
-    : Resource(OBJECT_IS_PROXY, resource),
-      type_(type),
-      desc_(desc),
-      is_candidate_for_reuse_(false) {
-}
-
-ImageData::~ImageData() {
-}
-
-PPB_ImageData_API* ImageData::AsPPB_ImageData_API() {
-  return this;
-}
-
-void ImageData::LastPluginRefWasDeleted() {
-  // The plugin no longer needs this ImageData, add it to our cache if it's
-  // been used in a ReplaceContents. These are the ImageDatas that the renderer
-  // will send back ImageDataUsable messages for.
-  if (is_candidate_for_reuse_)
-    ImageDataCache::GetInstance()->Add(this);
-}
-
-void ImageData::InstanceWasDeleted() {
-  ImageDataCache::GetInstance()->DidDeleteInstance(pp_instance());
-}
-
-PP_Bool ImageData::Describe(PP_ImageDataDesc* desc) {
-  memcpy(desc, &desc_, sizeof(PP_ImageDataDesc));
-  return PP_TRUE;
-}
-
-int32_t ImageData::GetSharedMemoryRegion(
-    base::UnsafeSharedMemoryRegion** /* region */) {
-  // Not supported in the proxy (this method is for actually implementing the
-  // proxy in the host).
-  return PP_ERROR_NOACCESS;
-}
-
-void ImageData::SetIsCandidateForReuse() {
-  is_candidate_for_reuse_ = true;
-}
-
-void ImageData::RecycleToPlugin(bool zero_contents) {
-  is_candidate_for_reuse_ = false;
-  if (zero_contents) {
-    void* data = Map();
-    memset(data, 0, desc_.stride * desc_.size.height);
-    Unmap();
-  }
-}
-
-// PlatformImageData -----------------------------------------------------------
-
-#if !BUILDFLAG(IS_NACL)
-PlatformImageData::PlatformImageData(
-    const HostResource& resource,
-    const PP_ImageDataDesc& desc,
-    base::UnsafeSharedMemoryRegion image_region)
-    : ImageData(resource, PPB_ImageData_Shared::PLATFORM, desc) {
-#if BUILDFLAG(IS_WIN)
-  transport_dib_ = TransportDIB::CreateWithHandle(std::move(image_region));
-#else
-  transport_dib_ = TransportDIB::Map(std::move(image_region));
-#endif  // BUILDFLAG(IS_WIN)
-}
-
-PlatformImageData::~PlatformImageData() = default;
-
-void* PlatformImageData::Map() {
-  if (!mapped_canvas_.get()) {
-    if (!transport_dib_.get())
-      return nullptr;
-
-    const bool is_opaque = false;
-    mapped_canvas_ = transport_dib_->GetPlatformCanvas(
-        desc_.size.width, desc_.size.height, is_opaque);
-    if (!mapped_canvas_.get())
-      return nullptr;
-  }
-  SkPixmap pixmap;
-  skia::GetWritablePixels(mapped_canvas_.get(), &pixmap);
-  return pixmap.writable_addr();
-}
-
-void PlatformImageData::Unmap() {
-  // TODO(brettw) have a way to unmap a TransportDIB. Currently this isn't
-  // possible since deleting the TransportDIB also frees all the handles.
-  // We need to add a method to TransportDIB to release the handles.
-}
-
-SkCanvas* PlatformImageData::GetCanvas() {
-  return mapped_canvas_.get();
-}
-#endif  // !BUILDFLAG(IS_NACL)
-
-// SimpleImageData -------------------------------------------------------------
-
-SimpleImageData::SimpleImageData(const HostResource& resource,
-                                 const PP_ImageDataDesc& desc,
-                                 base::UnsafeSharedMemoryRegion region)
-    : ImageData(resource, PPB_ImageData_Shared::SIMPLE, desc),
-      shm_region_(std::move(region)),
-      size_(desc.size.width * desc.size.height * 4),
-      map_count_(0) {}
-
-SimpleImageData::~SimpleImageData() = default;
-
-void* SimpleImageData::Map() {
-  if (map_count_++ == 0)
-    shm_mapping_ = shm_region_.MapAt(0, size_);
-  return shm_mapping_.IsValid() ? shm_mapping_.memory() : nullptr;
-}
-
-void SimpleImageData::Unmap() {
-  if (--map_count_ == 0)
-    shm_mapping_ = base::WritableSharedMemoryMapping();
-}
-
-SkCanvas* SimpleImageData::GetCanvas() {
-  return nullptr;  // No canvas available.
-}
-
-// PPB_ImageData_Proxy ---------------------------------------------------------
-
-PPB_ImageData_Proxy::PPB_ImageData_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher) {
-}
-
-PPB_ImageData_Proxy::~PPB_ImageData_Proxy() {
-}
-
-// static
-PP_Resource PPB_ImageData_Proxy::CreateProxyResource(
-    PP_Instance instance,
-    PPB_ImageData_Shared::ImageDataType type,
-    PP_ImageDataFormat format,
-    const PP_Size& size,
-    PP_Bool init_to_zero) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return 0;
-
-  // Check the cache.
-  scoped_refptr<ImageData> cached_image_data =
-      ImageDataCache::GetInstance()->Get(instance, type,
-                                         size.width, size.height, format);
-  if (cached_image_data.get()) {
-    // We have one we can re-use rather than allocating a new one.
-    cached_image_data->RecycleToPlugin(PP_ToBool(init_to_zero));
-    return cached_image_data->GetReference();
-  }
-
-  HostResource result;
-  PP_ImageDataDesc desc;
-  switch (type) {
-    case PPB_ImageData_Shared::SIMPLE: {
-      ppapi::proxy::SerializedHandle image_handle;
-      dispatcher->Send(new PpapiHostMsg_PPBImageData_CreateSimple(
-          kApiID, instance, format, size, init_to_zero, &result, &desc,
-          &image_handle));
-      if (image_handle.is_shmem_region()) {
-        base::UnsafeSharedMemoryRegion image_region =
-            base::UnsafeSharedMemoryRegion::Deserialize(
-                image_handle.TakeSharedMemoryRegion());
-        if (!result.is_null()) {
-          return (new SimpleImageData(result, desc, std::move(image_region)))
-              ->GetReference();
-        }
-      }
-      break;
-    }
-    case PPB_ImageData_Shared::PLATFORM: {
-#if !BUILDFLAG(IS_NACL)
-      ppapi::proxy::SerializedHandle image_handle;
-      dispatcher->Send(new PpapiHostMsg_PPBImageData_CreatePlatform(
-          kApiID, instance, format, size, init_to_zero, &result, &desc,
-          &image_handle));
-      if (image_handle.is_shmem_region()) {
-        base::UnsafeSharedMemoryRegion image_region =
-            base::UnsafeSharedMemoryRegion::Deserialize(
-                image_handle.TakeSharedMemoryRegion());
-        if (!result.is_null()) {
-          return (new PlatformImageData(result, desc, std::move(image_region)))
-              ->GetReference();
-        }
-      }
-      break;
-#else
-      // PlatformImageData shouldn't be created in untrusted code.
-      NOTREACHED();
-#endif
-    }
-  }
-
-  return 0;
-}
-
-bool PPB_ImageData_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPB_ImageData_Proxy, msg)
-#if !BUILDFLAG(IS_NACL)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBImageData_CreatePlatform,
-                        OnHostMsgCreatePlatform)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBImageData_CreateSimple,
-                        OnHostMsgCreateSimple)
-#endif
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPBImageData_NotifyUnusedImageData,
-                        OnPluginMsgNotifyUnusedImageData)
-
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-#if !BUILDFLAG(IS_NACL)
-// static
-PP_Resource PPB_ImageData_Proxy::CreateImageData(
-    PP_Instance instance,
-    PPB_ImageData_Shared::ImageDataType type,
-    PP_ImageDataFormat format,
-    const PP_Size& size,
-    bool init_to_zero,
-    PP_ImageDataDesc* desc,
-    base::UnsafeSharedMemoryRegion* image_region) {
-  HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return 0;
-
-  thunk::EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-
-  PP_Bool pp_init_to_zero = init_to_zero ? PP_TRUE : PP_FALSE;
-  PP_Resource pp_resource = 0;
-  switch (type) {
-    case PPB_ImageData_Shared::SIMPLE: {
-      pp_resource = enter.functions()->CreateImageDataSimple(
-          instance, format, &size, pp_init_to_zero);
-      break;
-    }
-    case PPB_ImageData_Shared::PLATFORM: {
-      pp_resource = enter.functions()->CreateImageData(
-          instance, format, &size, pp_init_to_zero);
-      break;
-    }
-  }
-
-  if (!pp_resource)
-    return 0;
-
-  ppapi::ScopedPPResource resource(ppapi::ScopedPPResource::PassRef(),
-                                   pp_resource);
-
-  thunk::EnterResourceNoLock<PPB_ImageData_API> enter_resource(resource.get(),
-                                                               false);
-  if (enter_resource.object()->Describe(desc) != PP_TRUE) {
-    DVLOG(1) << "CreateImageData failed: could not Describe";
-    return 0;
-  }
-
-  base::UnsafeSharedMemoryRegion* local_shm;
-  if (enter_resource.object()->GetSharedMemoryRegion(&local_shm) != PP_OK) {
-    DVLOG(1) << "CreateImageData failed: could not GetSharedMemory";
-    return 0;
-  }
-
-  *image_region =
-      dispatcher->ShareUnsafeSharedMemoryRegionWithRemote(*local_shm);
-  return resource.Release();
-}
-
-void PPB_ImageData_Proxy::OnHostMsgCreatePlatform(
-    PP_Instance instance,
-    int32_t format,
-    const PP_Size& size,
-    PP_Bool init_to_zero,
-    HostResource* result,
-    PP_ImageDataDesc* desc,
-    ppapi::proxy::SerializedHandle* result_image_handle) {
-  // Clear |desc| so we don't send uninitialized memory to the plugin.
-  // https://crbug.com/391023.
-  *desc = PP_ImageDataDesc();
-  base::UnsafeSharedMemoryRegion image_region;
-  PP_Resource resource =
-      CreateImageData(instance, PPB_ImageData_Shared::PLATFORM,
-                      static_cast<PP_ImageDataFormat>(format), size,
-                      true /* init_to_zero */, desc, &image_region);
-  result->SetHostResource(instance, resource);
-  if (resource) {
-    result_image_handle->set_shmem_region(
-        base::UnsafeSharedMemoryRegion::TakeHandleForSerialization(
-            std::move(image_region)));
-  } else {
-    result_image_handle->set_null_shmem_region();
-  }
-}
-
-void PPB_ImageData_Proxy::OnHostMsgCreateSimple(
-    PP_Instance instance,
-    int32_t format,
-    const PP_Size& size,
-    PP_Bool init_to_zero,
-    HostResource* result,
-    PP_ImageDataDesc* desc,
-    ppapi::proxy::SerializedHandle* result_image_handle) {
-  // Clear |desc| so we don't send uninitialized memory to the plugin.
-  // https://crbug.com/391023.
-  *desc = PP_ImageDataDesc();
-  base::UnsafeSharedMemoryRegion image_region;
-  PP_Resource resource =
-      CreateImageData(instance, PPB_ImageData_Shared::SIMPLE,
-                      static_cast<PP_ImageDataFormat>(format), size,
-                      true /* init_to_zero */, desc, &image_region);
-  result->SetHostResource(instance, resource);
-  if (resource) {
-    result_image_handle->set_shmem_region(
-        base::UnsafeSharedMemoryRegion::TakeHandleForSerialization(
-            std::move(image_region)));
-  } else {
-    result_image_handle->set_null_shmem_region();
-  }
-}
-#endif  // !BUILDFLAG(IS_NACL)
-
-void PPB_ImageData_Proxy::OnPluginMsgNotifyUnusedImageData(
-    const HostResource& old_image_data) {
-  PluginGlobals* plugin_globals = PluginGlobals::Get();
-  if (!plugin_globals) {
-    return;  // This may happen if the plugin is maliciously sending this
-             // message to the renderer.
-  }
-
-  EnterPluginFromHostResource<PPB_ImageData_API> enter(old_image_data);
-  if (enter.succeeded()) {
-    ImageData* image_data = static_cast<ImageData*>(enter.object());
-    ImageDataCache::GetInstance()->ImageDataUsable(image_data);
-  }
-
-  // The renderer sent us a reference with the message. If the image data was
-  // still cached in our process, the proxy still holds a reference so we can
-  // remove the one the renderer just sent is. If the proxy no longer holds a
-  // reference, we released everything and we should also release the one the
-  // renderer just sent us.
-  dispatcher()->Send(new PpapiHostMsg_PPBCore_ReleaseResource(
-      API_ID_PPB_CORE, old_image_data));
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppb_image_data_proxy.h b/proxy/ppb_image_data_proxy.h
deleted file mode 100644
index 6a03602..0000000
--- a/proxy/ppb_image_data_proxy.h
+++ /dev/null
@@ -1,202 +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_PROXY_PPB_IMAGE_DATA_PROXY_H_
-#define PPAPI_PROXY_PPB_IMAGE_DATA_PROXY_H_
-
-#include <stdint.h>
-
-#include <memory>
-
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "build/build_config.h"
-#include "ipc/ipc_platform_file.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_module.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/ppb_image_data.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/proxy/serialized_structs.h"
-#include "ppapi/shared_impl/ppb_image_data_shared.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_image_data_api.h"
-
-#if !BUILDFLAG(IS_NACL)
-#include "third_party/skia/include/core/SkRefCnt.h"  //nogncheck
-#endif
-
-class TransportDIB;
-
-namespace ppapi {
-namespace proxy {
-
-class SerializedHandle;
-
-// ImageData is an abstract base class for image data resources. Unlike most
-// resources, ImageData must be public in the header since a number of other
-// resources need to access it.
-class PPAPI_PROXY_EXPORT ImageData : public ppapi::Resource,
-                                     public ppapi::thunk::PPB_ImageData_API,
-                                     public ppapi::PPB_ImageData_Shared {
- public:
-  ImageData(const ImageData&) = delete;
-  ImageData& operator=(const ImageData&) = delete;
-
-  ~ImageData() override;
-
-  // Resource overrides.
-  ppapi::thunk::PPB_ImageData_API* AsPPB_ImageData_API() override;
-  void LastPluginRefWasDeleted() override;
-  void InstanceWasDeleted() override;
-
-  // PPB_ImageData API.
-  PP_Bool Describe(PP_ImageDataDesc* desc) override;
-  int32_t GetSharedMemoryRegion(
-      base::UnsafeSharedMemoryRegion** region) override;
-  void SetIsCandidateForReuse() override;
-
-  PPB_ImageData_Shared::ImageDataType type() const { return type_; }
-  const PP_ImageDataDesc& desc() const { return desc_; }
-
-  // Prepares this image data to be recycled to the plugin. Clears the contents
-  // if zero_contents is true.
-  void RecycleToPlugin(bool zero_contents);
-
- protected:
-  ImageData(const ppapi::HostResource& resource,
-            PPB_ImageData_Shared::ImageDataType type,
-            const PP_ImageDataDesc& desc);
-
-  PPB_ImageData_Shared::ImageDataType type_;
-  PP_ImageDataDesc desc_;
-
-  // Set to true when this ImageData is a good candidate for reuse.
-  bool is_candidate_for_reuse_;
-};
-
-// PlatformImageData is a full featured image data resource which can access
-// the underlying platform-specific canvas and |image_region|. This can't be
-// used by NaCl apps.
-#if !BUILDFLAG(IS_NACL)
-class PPAPI_PROXY_EXPORT PlatformImageData : public ImageData {
- public:
-  PlatformImageData(const ppapi::HostResource& resource,
-                    const PP_ImageDataDesc& desc,
-                    base::UnsafeSharedMemoryRegion image_region);
-
-  PlatformImageData(const PlatformImageData&) = delete;
-  PlatformImageData& operator=(const PlatformImageData&) = delete;
-
-  ~PlatformImageData() override;
-
-  // PPB_ImageData API.
-  void* Map() override;
-  void Unmap() override;
-  SkCanvas* GetCanvas() override;
-
- private:
-  std::unique_ptr<TransportDIB> transport_dib_;
-
-  // Null when the image isn't mapped.
-  std::unique_ptr<SkCanvas> mapped_canvas_;
-};
-#endif  // !BUILDFLAG(IS_NACL)
-
-// SimpleImageData is a simple, platform-independent image data resource which
-// can be used by NaCl. It can also be used by trusted apps when access to the
-// platform canvas isn't needed.
-class PPAPI_PROXY_EXPORT SimpleImageData : public ImageData {
- public:
-  SimpleImageData(const ppapi::HostResource& resource,
-                  const PP_ImageDataDesc& desc,
-                  base::UnsafeSharedMemoryRegion region);
-
-  SimpleImageData(const SimpleImageData&) = delete;
-  SimpleImageData& operator=(const SimpleImageData&) = delete;
-
-  ~SimpleImageData() override;
-
-  // PPB_ImageData API.
-  void* Map() override;
-  void Unmap() override;
-  SkCanvas* GetCanvas() override;
-
- private:
-  base::UnsafeSharedMemoryRegion shm_region_;
-  base::WritableSharedMemoryMapping shm_mapping_;
-  uint32_t size_;
-  int map_count_;
-};
-
-class PPB_ImageData_Proxy : public InterfaceProxy {
- public:
-  PPB_ImageData_Proxy(Dispatcher* dispatcher);
-
-  PPB_ImageData_Proxy(const PPB_ImageData_Proxy&) = delete;
-  PPB_ImageData_Proxy& operator=(const PPB_ImageData_Proxy&) = delete;
-
-  ~PPB_ImageData_Proxy() override;
-
-  static PP_Resource CreateProxyResource(
-      PP_Instance instance,
-      PPB_ImageData_Shared::ImageDataType type,
-      PP_ImageDataFormat format,
-      const PP_Size& size,
-      PP_Bool init_to_zero);
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
-  // Utility for creating ImageData resources.
-  // This can only be called on the host side of the proxy.
-  // On failure, will return invalid resource (0). On success it will return a
-  // valid resource and the out params will be written.
-  // |desc| contains the result of Describe.
-  // |image_region| and |byte_count| contain the result of
-  // GetSharedMemoryRegion.
-  // NOTE: if |init_to_zero| is false, you should write over the entire image
-  // to avoid leaking sensitive data to a less privileged process.
-  PPAPI_PROXY_EXPORT static PP_Resource CreateImageData(
-      PP_Instance instance,
-      PPB_ImageData_Shared::ImageDataType type,
-      PP_ImageDataFormat format,
-      const PP_Size& size,
-      bool init_to_zero,
-      PP_ImageDataDesc* desc,
-      base::UnsafeSharedMemoryRegion* image_region);
-
-  static const ApiID kApiID = API_ID_PPB_IMAGE_DATA;
-
- private:
-  // Plugin->Host message handlers.
-  void OnHostMsgCreatePlatform(
-      PP_Instance instance,
-      int32_t format,
-      const PP_Size& size,
-      PP_Bool init_to_zero,
-      HostResource* result,
-      PP_ImageDataDesc* desc,
-      ppapi::proxy::SerializedHandle* result_image_handle);
-  void OnHostMsgCreateSimple(
-      PP_Instance instance,
-      int32_t format,
-      const PP_Size& size,
-      PP_Bool init_to_zero,
-      HostResource* result,
-      PP_ImageDataDesc* desc,
-      ppapi::proxy::SerializedHandle* result_image_handle);
-
-  // Host->Plugin message handlers.
-  void OnPluginMsgNotifyUnusedImageData(const HostResource& old_image_data);
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPB_IMAGE_DATA_PROXY_H_
diff --git a/proxy/ppb_instance_proxy.cc b/proxy/ppb_instance_proxy.cc
deleted file mode 100644
index 3cac80a..0000000
--- a/proxy/ppb_instance_proxy.cc
+++ /dev/null
@@ -1,885 +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/proxy/ppb_instance_proxy.h"
-
-#include <utility>
-
-#include "base/check.h"
-#include "base/functional/bind.h"
-#include "base/memory/ref_counted.h"
-#include "base/numerics/safe_conversions.h"
-#include "build/build_config.h"
-#include "media/base/limits.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/pp_time.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/ppb_audio_config.h"
-#include "ppapi/c/ppb_instance.h"
-#include "ppapi/c/ppb_messaging.h"
-#include "ppapi/c/ppb_mouse_lock.h"
-#include "ppapi/proxy/browser_font_singleton_resource.h"
-#include "ppapi/proxy/enter_proxy.h"
-#include "ppapi/proxy/gamepad_resource.h"
-#include "ppapi/proxy/host_dispatcher.h"
-#include "ppapi/proxy/isolated_file_system_private_resource.h"
-#include "ppapi/proxy/message_handler.h"
-#include "ppapi/proxy/network_proxy_resource.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/serialized_var.h"
-#include "ppapi/proxy/uma_private_resource.h"
-#include "ppapi/shared_impl/array_var.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/ppb_url_util_shared.h"
-#include "ppapi/shared_impl/ppb_view_shared.h"
-#include "ppapi/shared_impl/scoped_pp_var.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_graphics_2d_api.h"
-#include "ppapi/thunk/ppb_graphics_3d_api.h"
-#include "ppapi/thunk/thunk.h"
-
-// Windows headers interfere with this file.
-#ifdef PostMessage
-#undef PostMessage
-#endif
-
-using ppapi::thunk::EnterInstanceNoLock;
-using ppapi::thunk::EnterResourceNoLock;
-using ppapi::thunk::PPB_Graphics2D_API;
-using ppapi::thunk::PPB_Graphics3D_API;
-using ppapi::thunk::PPB_Instance_API;
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-#if !BUILDFLAG(IS_NACL)
-const char kSerializationError[] = "Failed to convert a PostMessage "
-    "argument from a PP_Var to a Javascript value. It may have cycles or be of "
-    "an unsupported type.";
-#endif
-
-void RequestSurroundingText(PP_Instance instance) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return;  // Instance has gone away while message was pending.
-
-  InstanceData* data = dispatcher->GetInstanceData(instance);
-  DCHECK(data);  // Should have it, since we still have a dispatcher.
-  data->is_request_surrounding_text_pending = false;
-  if (!data->should_do_request_surrounding_text)
-    return;
-
-  // Just fake out a RequestSurroundingText message to the proxy for the PPP
-  // interface.
-  InterfaceProxy* proxy = dispatcher->GetInterfaceProxy(API_ID_PPP_TEXT_INPUT);
-  if (!proxy)
-    return;
-  proxy->OnMessageReceived(PpapiMsg_PPPTextInput_RequestSurroundingText(
-      API_ID_PPP_TEXT_INPUT, instance,
-      PPB_Instance_Shared::kExtraCharsForTextInput));
-}
-
-}  // namespace
-
-PPB_Instance_Proxy::PPB_Instance_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher),
-      callback_factory_(this) {
-}
-
-PPB_Instance_Proxy::~PPB_Instance_Proxy() {
-}
-
-bool PPB_Instance_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  // Prevent the dispatcher from going away during a call to ExecuteScript.
-  // This must happen OUTSIDE of ExecuteScript since the SerializedVars use
-  // the dispatcher upon return of the function (converting the
-  // SerializedVarReturnValue/OutParam to a SerializedVar in the destructor).
-#if !BUILDFLAG(IS_NACL)
-  ScopedModuleReference death_grip(dispatcher());
-#endif
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPB_Instance_Proxy, msg)
-#if !BUILDFLAG(IS_NACL)
-    // Plugin -> Host messages.
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetWindowObject,
-                        OnHostMsgGetWindowObject)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetOwnerElementObject,
-                        OnHostMsgGetOwnerElementObject)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_BindGraphics,
-                        OnHostMsgBindGraphics)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_IsFullFrame,
-                        OnHostMsgIsFullFrame)
-    IPC_MESSAGE_HANDLER(
-        PpapiHostMsg_PPBInstance_GetAudioHardwareOutputSampleRate,
-        OnHostMsgGetAudioHardwareOutputSampleRate)
-    IPC_MESSAGE_HANDLER(
-        PpapiHostMsg_PPBInstance_GetAudioHardwareOutputBufferSize,
-        OnHostMsgGetAudioHardwareOutputBufferSize)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_ExecuteScript,
-                        OnHostMsgExecuteScript)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetDefaultCharSet,
-                        OnHostMsgGetDefaultCharSet)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_PostMessage,
-                        OnHostMsgPostMessage)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SetFullscreen,
-                        OnHostMsgSetFullscreen)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetScreenSize,
-                        OnHostMsgGetScreenSize)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_RequestInputEvents,
-                        OnHostMsgRequestInputEvents)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_ClearInputEvents,
-                        OnHostMsgClearInputEvents)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_LockMouse,
-                        OnHostMsgLockMouse)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_UnlockMouse,
-                        OnHostMsgUnlockMouse)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SetCursor,
-                        OnHostMsgSetCursor)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_SetTextInputType,
-                        OnHostMsgSetTextInputType)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_UpdateCaretPosition,
-                        OnHostMsgUpdateCaretPosition)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_CancelCompositionText,
-                        OnHostMsgCancelCompositionText)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_UpdateSurroundingText,
-                        OnHostMsgUpdateSurroundingText)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetDocumentURL,
-                        OnHostMsgGetDocumentURL)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_ResolveRelativeToDocument,
-                        OnHostMsgResolveRelativeToDocument)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_DocumentCanRequest,
-                        OnHostMsgDocumentCanRequest)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_DocumentCanAccessDocument,
-                        OnHostMsgDocumentCanAccessDocument)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetPluginInstanceURL,
-                        OnHostMsgGetPluginInstanceURL)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetPluginReferrerURL,
-                        OnHostMsgGetPluginReferrerURL)
-#endif  // !BUILDFLAG(IS_NACL)
-
-    // Host -> Plugin messages.
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPBInstance_MouseLockComplete,
-                        OnPluginMsgMouseLockComplete)
-
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-PP_Bool PPB_Instance_Proxy::BindGraphics(PP_Instance instance,
-                                         PP_Resource device) {
-  // If device is 0, pass a null HostResource. This signals the host to unbind
-  // all devices.
-  PP_Resource pp_resource = 0;
-  if (device) {
-    Resource* resource =
-        PpapiGlobals::Get()->GetResourceTracker()->GetResource(device);
-    if (!resource || resource->pp_instance() != instance)
-      return PP_FALSE;
-    // We need to pass different resource to Graphics 2D and 3D right now.  Once
-    // 3D is migrated to the new design, we should be able to unify this.
-    if (resource->AsPPB_Graphics3D_API()) {
-      pp_resource = resource->host_resource().host_resource();
-    } else if (resource->AsPPB_Graphics2D_API()) {
-      pp_resource = resource->pp_resource();
-    } else {
-      // A bad resource.
-      return PP_FALSE;
-    }
-  }
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_BindGraphics(
-        API_ID_PPB_INSTANCE, instance, pp_resource));
-  return PP_TRUE;
-}
-
-PP_Bool PPB_Instance_Proxy::IsFullFrame(PP_Instance instance) {
-  PP_Bool result = PP_FALSE;
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_IsFullFrame(
-      API_ID_PPB_INSTANCE, instance, &result));
-  return result;
-}
-
-const ViewData* PPB_Instance_Proxy::GetViewData(PP_Instance instance) {
-  InstanceData* data = static_cast<PluginDispatcher*>(dispatcher())->
-      GetInstanceData(instance);
-  if (!data)
-    return NULL;
-  return &data->view;
-}
-
-PP_Var PPB_Instance_Proxy::GetWindowObject(PP_Instance instance) {
-  ReceiveSerializedVarReturnValue result;
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_GetWindowObject(
-      API_ID_PPB_INSTANCE, instance, &result));
-  return result.Return(dispatcher());
-}
-
-PP_Var PPB_Instance_Proxy::GetOwnerElementObject(PP_Instance instance) {
-  ReceiveSerializedVarReturnValue result;
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_GetOwnerElementObject(
-      API_ID_PPB_INSTANCE, instance, &result));
-  return result.Return(dispatcher());
-}
-
-PP_Var PPB_Instance_Proxy::ExecuteScript(PP_Instance instance,
-                                         PP_Var script,
-                                         PP_Var* exception) {
-  ReceiveSerializedException se(dispatcher(), exception);
-  if (se.IsThrown())
-    return PP_MakeUndefined();
-
-  ReceiveSerializedVarReturnValue result;
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_ExecuteScript(
-      API_ID_PPB_INSTANCE, instance,
-      SerializedVarSendInput(dispatcher(), script), &se, &result));
-  return result.Return(dispatcher());
-}
-
-uint32_t PPB_Instance_Proxy::GetAudioHardwareOutputSampleRate(
-    PP_Instance instance) {
-  uint32_t result = PP_AUDIOSAMPLERATE_NONE;
-  dispatcher()->Send(
-      new PpapiHostMsg_PPBInstance_GetAudioHardwareOutputSampleRate(
-          API_ID_PPB_INSTANCE, instance, &result));
-  return result;
-}
-
-uint32_t PPB_Instance_Proxy::GetAudioHardwareOutputBufferSize(
-    PP_Instance instance) {
-  uint32_t result = 0;
-  dispatcher()->Send(
-      new PpapiHostMsg_PPBInstance_GetAudioHardwareOutputBufferSize(
-          API_ID_PPB_INSTANCE, instance, &result));
-  return result;
-}
-
-PP_Var PPB_Instance_Proxy::GetDefaultCharSet(PP_Instance instance) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return PP_MakeUndefined();
-
-  ReceiveSerializedVarReturnValue result;
-  dispatcher->Send(new PpapiHostMsg_PPBInstance_GetDefaultCharSet(
-      API_ID_PPB_INSTANCE, instance, &result));
-  return result.Return(dispatcher);
-}
-
-PP_Bool PPB_Instance_Proxy::IsFullscreen(PP_Instance instance) {
-  InstanceData* data = static_cast<PluginDispatcher*>(dispatcher())->
-      GetInstanceData(instance);
-  if (!data)
-    return PP_FALSE;
-  return PP_FromBool(data->view.is_fullscreen);
-}
-
-PP_Bool PPB_Instance_Proxy::SetFullscreen(PP_Instance instance,
-                                          PP_Bool fullscreen) {
-  PP_Bool result = PP_FALSE;
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_SetFullscreen(
-      API_ID_PPB_INSTANCE, instance, fullscreen, &result));
-  return result;
-}
-
-PP_Bool PPB_Instance_Proxy::GetScreenSize(PP_Instance instance,
-                                          PP_Size* size) {
-  PP_Bool result = PP_FALSE;
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_GetScreenSize(
-      API_ID_PPB_INSTANCE, instance, &result, size));
-  return result;
-}
-
-Resource* PPB_Instance_Proxy::GetSingletonResource(PP_Instance instance,
-                                                   SingletonResourceID id) {
-  InstanceData* data = static_cast<PluginDispatcher*>(dispatcher())->
-      GetInstanceData(instance);
-
-  InstanceData::SingletonResourceMap::iterator it =
-      data->singleton_resources.find(id);
-  if (it != data->singleton_resources.end())
-    return it->second.get();
-
-  scoped_refptr<Resource> new_singleton;
-  Connection connection(PluginGlobals::Get()->GetBrowserSender(),
-                        static_cast<PluginDispatcher*>(dispatcher())->sender());
-
-  switch (id) {
-    case GAMEPAD_SINGLETON_ID:
-      new_singleton = new GamepadResource(connection, instance);
-      break;
-    case ISOLATED_FILESYSTEM_SINGLETON_ID:
-      new_singleton =
-          new IsolatedFileSystemPrivateResource(connection, instance);
-      break;
-    case NETWORK_PROXY_SINGLETON_ID:
-      new_singleton = new NetworkProxyResource(connection, instance);
-      break;
-    case UMA_SINGLETON_ID:
-      new_singleton = new UMAPrivateResource(connection, instance);
-      break;
-// Flash/trusted resources aren't needed for NaCl.
-#if !BUILDFLAG(IS_NACL)
-    case BROWSER_FONT_SINGLETON_ID:
-      new_singleton = new BrowserFontSingletonResource(connection, instance);
-      break;
-#else
-    case BROWSER_FONT_SINGLETON_ID:
-      NOTREACHED();
-#endif  // !BUILDFLAG(IS_NACL)
-  }
-
-  if (!new_singleton.get()) {
-    // Getting here implies that a constructor is missing in the above switch.
-    NOTREACHED();
-  }
-
-  data->singleton_resources[id] = new_singleton;
-  return new_singleton.get();
-}
-
-int32_t PPB_Instance_Proxy::RequestInputEvents(PP_Instance instance,
-                                               uint32_t event_classes) {
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_RequestInputEvents(
-      API_ID_PPB_INSTANCE, instance, false, event_classes));
-
-  // We always register for the classes we can handle, this function validates
-  // the flags so we can notify it if anything was invalid, without requiring
-  // a sync reply.
-  return ValidateRequestInputEvents(false, event_classes);
-}
-
-int32_t PPB_Instance_Proxy::RequestFilteringInputEvents(
-    PP_Instance instance,
-    uint32_t event_classes) {
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_RequestInputEvents(
-      API_ID_PPB_INSTANCE, instance, true, event_classes));
-
-  // We always register for the classes we can handle, this function validates
-  // the flags so we can notify it if anything was invalid, without requiring
-  // a sync reply.
-  return ValidateRequestInputEvents(true, event_classes);
-}
-
-void PPB_Instance_Proxy::ClearInputEventRequest(PP_Instance instance,
-                                                uint32_t event_classes) {
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_ClearInputEvents(
-      API_ID_PPB_INSTANCE, instance, event_classes));
-}
-
-PP_Var PPB_Instance_Proxy::GetDocumentURL(PP_Instance instance,
-                                          PP_URLComponents_Dev* components) {
-  ReceiveSerializedVarReturnValue result;
-  PP_URLComponents_Dev url_components = {{0}};
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_GetDocumentURL(
-      API_ID_PPB_INSTANCE, instance, &url_components, &result));
-  if (components)
-    *components = url_components;
-  return result.Return(dispatcher());
-}
-
-#if !BUILDFLAG(IS_NACL)
-PP_Var PPB_Instance_Proxy::ResolveRelativeToDocument(
-    PP_Instance instance,
-    PP_Var relative,
-    PP_URLComponents_Dev* components) {
-  ReceiveSerializedVarReturnValue result;
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_ResolveRelativeToDocument(
-      API_ID_PPB_INSTANCE, instance,
-      SerializedVarSendInput(dispatcher(), relative),
-      &result));
-  return PPB_URLUtil_Shared::ConvertComponentsAndReturnURL(
-      result.Return(dispatcher()),
-      components);
-}
-
-PP_Bool PPB_Instance_Proxy::DocumentCanRequest(PP_Instance instance,
-                                               PP_Var url) {
-  PP_Bool result = PP_FALSE;
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_DocumentCanRequest(
-      API_ID_PPB_INSTANCE, instance,
-      SerializedVarSendInput(dispatcher(), url),
-      &result));
-  return result;
-}
-
-PP_Bool PPB_Instance_Proxy::DocumentCanAccessDocument(PP_Instance instance,
-                                                      PP_Instance target) {
-  PP_Bool result = PP_FALSE;
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_DocumentCanAccessDocument(
-      API_ID_PPB_INSTANCE, instance, target, &result));
-  return result;
-}
-
-PP_Var PPB_Instance_Proxy::GetPluginInstanceURL(
-      PP_Instance instance,
-      PP_URLComponents_Dev* components) {
-  ReceiveSerializedVarReturnValue result;
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_GetPluginInstanceURL(
-      API_ID_PPB_INSTANCE, instance, &result));
-  return PPB_URLUtil_Shared::ConvertComponentsAndReturnURL(
-      result.Return(dispatcher()),
-      components);
-}
-
-PP_Var PPB_Instance_Proxy::GetPluginReferrerURL(
-      PP_Instance instance,
-      PP_URLComponents_Dev* components) {
-  ReceiveSerializedVarReturnValue result;
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_GetPluginReferrerURL(
-      API_ID_PPB_INSTANCE, instance, &result));
-  return PPB_URLUtil_Shared::ConvertComponentsAndReturnURL(
-      result.Return(dispatcher()),
-      components);
-}
-#endif  // !BUILDFLAG(IS_NACL)
-
-void PPB_Instance_Proxy::PostMessage(PP_Instance instance,
-                                     PP_Var message) {
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_PostMessage(
-      API_ID_PPB_INSTANCE,
-      instance, SerializedVarSendInputShmem(dispatcher(), message,
-                                            instance)));
-}
-
-int32_t PPB_Instance_Proxy::RegisterMessageHandler(
-    PP_Instance instance,
-    void* user_data,
-    const PPP_MessageHandler_0_2* handler,
-    PP_Resource message_loop) {
-  InstanceData* data =
-      static_cast<PluginDispatcher*>(dispatcher())->GetInstanceData(instance);
-  if (!data)
-    return PP_ERROR_BADARGUMENT;
-
-  int32_t result = PP_ERROR_FAILED;
-  std::unique_ptr<MessageHandler> message_handler = MessageHandler::Create(
-      instance, handler, user_data, message_loop, &result);
-  if (message_handler)
-    data->message_handler = std::move(message_handler);
-  return result;
-}
-
-void PPB_Instance_Proxy::UnregisterMessageHandler(PP_Instance instance) {
-  InstanceData* data =
-      static_cast<PluginDispatcher*>(dispatcher())->GetInstanceData(instance);
-  if (!data)
-    return;
-  data->message_handler.reset();
-}
-
-PP_Bool PPB_Instance_Proxy::SetCursor(PP_Instance instance,
-                                      PP_MouseCursor_Type type,
-                                      PP_Resource image,
-                                      const PP_Point* hot_spot) {
-  // Some of these parameters are important for security. This check is in the
-  // plugin process just for the convenience of the caller (since we don't
-  // bother returning errors from the other process with a sync message). The
-  // parameters will be validated again in the renderer.
-  if (!ValidateSetCursorParams(type, image, hot_spot))
-    return PP_FALSE;
-
-  HostResource image_host_resource;
-  if (image) {
-    Resource* cursor_image =
-        PpapiGlobals::Get()->GetResourceTracker()->GetResource(image);
-    if (!cursor_image || cursor_image->pp_instance() != instance)
-      return PP_FALSE;
-    image_host_resource = cursor_image->host_resource();
-  }
-
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_SetCursor(
-      API_ID_PPB_INSTANCE, instance, static_cast<int32_t>(type),
-      image_host_resource, hot_spot ? *hot_spot : PP_MakePoint(0, 0)));
-  return PP_TRUE;
-}
-
-int32_t PPB_Instance_Proxy::LockMouse(PP_Instance instance,
-                                      scoped_refptr<TrackedCallback> callback) {
-  // Save the mouse callback on the instance data.
-  InstanceData* data = static_cast<PluginDispatcher*>(dispatcher())->
-      GetInstanceData(instance);
-  if (!data)
-    return PP_ERROR_BADARGUMENT;
-  if (TrackedCallback::IsPending(data->mouse_lock_callback))
-    return PP_ERROR_INPROGRESS;  // Already have a pending callback.
-  data->mouse_lock_callback = callback;
-
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_LockMouse(
-      API_ID_PPB_INSTANCE, instance));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void PPB_Instance_Proxy::UnlockMouse(PP_Instance instance) {
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_UnlockMouse(
-      API_ID_PPB_INSTANCE, instance));
-}
-
-void PPB_Instance_Proxy::SetTextInputType(PP_Instance instance,
-                                          PP_TextInput_Type type) {
-  CancelAnyPendingRequestSurroundingText(instance);
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_SetTextInputType(
-      API_ID_PPB_INSTANCE, instance, type));
-}
-
-void PPB_Instance_Proxy::UpdateCaretPosition(PP_Instance instance,
-                                             const PP_Rect& caret,
-                                             const PP_Rect& bounding_box) {
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_UpdateCaretPosition(
-      API_ID_PPB_INSTANCE, instance, caret, bounding_box));
-}
-
-void PPB_Instance_Proxy::CancelCompositionText(PP_Instance instance) {
-  CancelAnyPendingRequestSurroundingText(instance);
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_CancelCompositionText(
-      API_ID_PPB_INSTANCE, instance));
-}
-
-void PPB_Instance_Proxy::SelectionChanged(PP_Instance instance) {
-  // The "right" way to do this is to send the message to the host. However,
-  // all it will do is call RequestSurroundingText with a hardcoded number of
-  // characters in response, which is an entire IPC round-trip.
-  //
-  // We can avoid this round-trip by just implementing the
-  // RequestSurroundingText logic in the plugin process. If the logic in the
-  // host becomes more complex (like a more adaptive number of characters),
-  // we'll need to reevanuate whether we want to do the round trip instead.
-  //
-  // Be careful to post a task to avoid reentering the plugin.
-
-  InstanceData* data =
-      static_cast<PluginDispatcher*>(dispatcher())->GetInstanceData(instance);
-  if (!data)
-    return;
-  data->should_do_request_surrounding_text = true;
-
-  if (!data->is_request_surrounding_text_pending) {
-    PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask(
-        FROM_HERE,
-        RunWhileLocked(base::BindOnce(&RequestSurroundingText, instance)));
-    data->is_request_surrounding_text_pending = true;
-  }
-}
-
-void PPB_Instance_Proxy::UpdateSurroundingText(PP_Instance instance,
-                                               const char* text,
-                                               uint32_t caret,
-                                               uint32_t anchor) {
-  dispatcher()->Send(new PpapiHostMsg_PPBInstance_UpdateSurroundingText(
-      API_ID_PPB_INSTANCE, instance, text, caret, anchor));
-}
-
-#if !BUILDFLAG(IS_NACL)
-void PPB_Instance_Proxy::OnHostMsgGetWindowObject(
-    PP_Instance instance,
-    SerializedVarReturnValue result) {
-  if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE))
-    return;
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded())
-    result.Return(dispatcher(), enter.functions()->GetWindowObject(instance));
-}
-
-void PPB_Instance_Proxy::OnHostMsgGetOwnerElementObject(
-    PP_Instance instance,
-    SerializedVarReturnValue result) {
-  if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE))
-    return;
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded()) {
-    result.Return(dispatcher(),
-                  enter.functions()->GetOwnerElementObject(instance));
-  }
-}
-
-void PPB_Instance_Proxy::OnHostMsgBindGraphics(PP_Instance instance,
-                                               PP_Resource device) {
-  // Note that we ignroe the return value here. Otherwise, this would need to
-  // be a slow sync call, and the plugin side of the proxy will have already
-  // validated the resources, so we shouldn't see errors here that weren't
-  // already caught.
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded())
-    enter.functions()->BindGraphics(instance, device);
-}
-
-void PPB_Instance_Proxy::OnHostMsgGetAudioHardwareOutputSampleRate(
-    PP_Instance instance, uint32_t* result) {
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded())
-    *result = enter.functions()->GetAudioHardwareOutputSampleRate(instance);
-}
-
-void PPB_Instance_Proxy::OnHostMsgGetAudioHardwareOutputBufferSize(
-    PP_Instance instance, uint32_t* result) {
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded())
-    *result = enter.functions()->GetAudioHardwareOutputBufferSize(instance);
-}
-
-void PPB_Instance_Proxy::OnHostMsgIsFullFrame(PP_Instance instance,
-                                              PP_Bool* result) {
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded())
-    *result = enter.functions()->IsFullFrame(instance);
-}
-
-void PPB_Instance_Proxy::OnHostMsgExecuteScript(
-    PP_Instance instance,
-    SerializedVarReceiveInput script,
-    SerializedVarOutParam out_exception,
-    SerializedVarReturnValue result) {
-  if (!dispatcher()->permissions().HasPermission(PERMISSION_PRIVATE))
-    return;
-  EnterInstanceNoLock enter(instance);
-  if (enter.failed())
-    return;
-
-  CHECK(!dispatcher()->IsPlugin());
-  static_cast<HostDispatcher*>(dispatcher())->set_allow_plugin_reentrancy();
-
-  result.Return(dispatcher(), enter.functions()->ExecuteScript(
-      instance,
-      script.Get(dispatcher()),
-      out_exception.OutParam(dispatcher())));
-}
-
-void PPB_Instance_Proxy::OnHostMsgGetDefaultCharSet(
-    PP_Instance instance,
-    SerializedVarReturnValue result) {
-  if (!dispatcher()->permissions().HasPermission(PERMISSION_DEV))
-    return;
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded())
-    result.Return(dispatcher(), enter.functions()->GetDefaultCharSet(instance));
-}
-
-void PPB_Instance_Proxy::OnHostMsgSetFullscreen(PP_Instance instance,
-                                                PP_Bool fullscreen,
-                                                PP_Bool* result) {
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded())
-    *result = enter.functions()->SetFullscreen(instance, fullscreen);
-}
-
-
-void PPB_Instance_Proxy::OnHostMsgGetScreenSize(PP_Instance instance,
-                                                PP_Bool* result,
-                                                PP_Size* size) {
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded())
-    *result = enter.functions()->GetScreenSize(instance, size);
-}
-
-void PPB_Instance_Proxy::OnHostMsgRequestInputEvents(PP_Instance instance,
-                                                     bool is_filtering,
-                                                     uint32_t event_classes) {
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded()) {
-    if (is_filtering)
-      enter.functions()->RequestFilteringInputEvents(instance, event_classes);
-    else
-      enter.functions()->RequestInputEvents(instance, event_classes);
-  }
-}
-
-void PPB_Instance_Proxy::OnHostMsgClearInputEvents(PP_Instance instance,
-                                                   uint32_t event_classes) {
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded())
-    enter.functions()->ClearInputEventRequest(instance, event_classes);
-}
-
-void PPB_Instance_Proxy::OnHostMsgPostMessage(
-    PP_Instance instance,
-    SerializedVarReceiveInput message) {
-  EnterInstanceNoLock enter(instance);
-  if (!message.is_valid_var()) {
-    PpapiGlobals::Get()->LogWithSource(
-        instance, PP_LOGLEVEL_ERROR, std::string(), kSerializationError);
-    return;
-  }
-
-  if (enter.succeeded())
-    enter.functions()->PostMessage(instance,
-                                   message.GetForInstance(dispatcher(),
-                                                          instance));
-}
-
-void PPB_Instance_Proxy::OnHostMsgLockMouse(PP_Instance instance) {
-  // Need to be careful to always issue the callback.
-  pp::CompletionCallback cb = callback_factory_.NewCallback(
-      &PPB_Instance_Proxy::MouseLockCompleteInHost, instance);
-
-  EnterInstanceNoLock enter(instance, cb.pp_completion_callback());
-  if (enter.succeeded())
-    enter.SetResult(enter.functions()->LockMouse(instance, enter.callback()));
-}
-
-void PPB_Instance_Proxy::OnHostMsgUnlockMouse(PP_Instance instance) {
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded())
-    enter.functions()->UnlockMouse(instance);
-}
-
-void PPB_Instance_Proxy::OnHostMsgGetDocumentURL(
-    PP_Instance instance,
-    PP_URLComponents_Dev* components,
-    SerializedVarReturnValue result) {
-  if (!dispatcher()->permissions().HasPermission(PERMISSION_DEV))
-    return;
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded()) {
-    PP_Var document_url = enter.functions()->GetDocumentURL(instance,
-                                                            components);
-    result.Return(dispatcher(), document_url);
-  }
-}
-
-void PPB_Instance_Proxy::OnHostMsgResolveRelativeToDocument(
-    PP_Instance instance,
-    SerializedVarReceiveInput relative,
-    SerializedVarReturnValue result) {
-  if (!dispatcher()->permissions().HasPermission(PERMISSION_DEV))
-    return;
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded()) {
-    result.Return(dispatcher(),
-                  enter.functions()->ResolveRelativeToDocument(
-                      instance, relative.Get(dispatcher()), NULL));
-  }
-}
-
-void PPB_Instance_Proxy::OnHostMsgDocumentCanRequest(
-    PP_Instance instance,
-    SerializedVarReceiveInput url,
-    PP_Bool* result) {
-  if (!dispatcher()->permissions().HasPermission(PERMISSION_DEV))
-    return;
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded()) {
-    *result = enter.functions()->DocumentCanRequest(instance,
-                                                    url.Get(dispatcher()));
-  }
-}
-
-void PPB_Instance_Proxy::OnHostMsgDocumentCanAccessDocument(PP_Instance active,
-                                                            PP_Instance target,
-                                                            PP_Bool* result) {
-  if (!dispatcher()->permissions().HasPermission(PERMISSION_DEV))
-    return;
-  EnterInstanceNoLock enter(active);
-  if (enter.succeeded())
-    *result = enter.functions()->DocumentCanAccessDocument(active, target);
-}
-
-void PPB_Instance_Proxy::OnHostMsgGetPluginInstanceURL(
-    PP_Instance instance,
-    SerializedVarReturnValue result) {
-  if (!dispatcher()->permissions().HasPermission(PERMISSION_DEV))
-    return;
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded()) {
-    result.Return(dispatcher(),
-                  enter.functions()->GetPluginInstanceURL(instance, NULL));
-  }
-}
-
-void PPB_Instance_Proxy::OnHostMsgGetPluginReferrerURL(
-    PP_Instance instance,
-    SerializedVarReturnValue result) {
-  if (!dispatcher()->permissions().HasPermission(PERMISSION_DEV))
-    return;
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded()) {
-    result.Return(dispatcher(),
-                  enter.functions()->GetPluginReferrerURL(instance, NULL));
-  }
-}
-
-void PPB_Instance_Proxy::OnHostMsgSetCursor(
-    PP_Instance instance,
-    int32_t type,
-    const ppapi::HostResource& custom_image,
-    const PP_Point& hot_spot) {
-  // This API serves PPB_CursorControl_Dev and PPB_MouseCursor, so is public.
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded()) {
-    enter.functions()->SetCursor(
-        instance, static_cast<PP_MouseCursor_Type>(type),
-        custom_image.host_resource(), &hot_spot);
-  }
-}
-
-void PPB_Instance_Proxy::OnHostMsgSetTextInputType(PP_Instance instance,
-                                                   PP_TextInput_Type type) {
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded())
-    enter.functions()->SetTextInputType(instance, type);
-}
-
-void PPB_Instance_Proxy::OnHostMsgUpdateCaretPosition(
-    PP_Instance instance,
-    const PP_Rect& caret,
-    const PP_Rect& bounding_box) {
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded())
-    enter.functions()->UpdateCaretPosition(instance, caret, bounding_box);
-}
-
-void PPB_Instance_Proxy::OnHostMsgCancelCompositionText(PP_Instance instance) {
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded())
-    enter.functions()->CancelCompositionText(instance);
-}
-
-void PPB_Instance_Proxy::OnHostMsgUpdateSurroundingText(
-    PP_Instance instance,
-    const std::string& text,
-    uint32_t caret,
-    uint32_t anchor) {
-  EnterInstanceNoLock enter(instance);
-  if (enter.succeeded()) {
-    enter.functions()->UpdateSurroundingText(instance, text.c_str(), caret,
-                                             anchor);
-  }
-}
-#endif  // !BUILDFLAG(IS_NACL)
-
-void PPB_Instance_Proxy::OnPluginMsgMouseLockComplete(PP_Instance instance,
-                                                      int32_t result) {
-  if (!dispatcher()->IsPlugin())
-    return;
-
-  // Save the mouse callback on the instance data.
-  InstanceData* data = static_cast<PluginDispatcher*>(dispatcher())->
-      GetInstanceData(instance);
-  if (!data)
-    return;  // Instance was probably deleted.
-  CHECK(TrackedCallback::IsPending(data->mouse_lock_callback));
-  data->mouse_lock_callback->Run(result);
-}
-
-#if !BUILDFLAG(IS_NACL)
-void PPB_Instance_Proxy::MouseLockCompleteInHost(int32_t result,
-                                                 PP_Instance instance) {
-  dispatcher()->Send(new PpapiMsg_PPBInstance_MouseLockComplete(
-      API_ID_PPB_INSTANCE, instance, result));
-}
-#endif  // !BUILDFLAG(IS_NACL)
-
-void PPB_Instance_Proxy::CancelAnyPendingRequestSurroundingText(
-    PP_Instance instance) {
-  InstanceData* data = static_cast<PluginDispatcher*>(dispatcher())->
-      GetInstanceData(instance);
-  if (!data)
-    return;  // Instance was probably deleted.
-  data->should_do_request_surrounding_text = false;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppb_instance_proxy.h b/proxy/ppb_instance_proxy.h
deleted file mode 100644
index 8f85664..0000000
--- a/proxy/ppb_instance_proxy.h
+++ /dev/null
@@ -1,190 +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_PROXY_PPB_INSTANCE_PROXY_H_
-#define PPAPI_PROXY_PPB_INSTANCE_PROXY_H_
-
-#include <stdint.h>
-
-#include <string>
-
-#include "build/build_config.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/proxy/proxy_completion_callback_factory.h"
-#include "ppapi/shared_impl/host_resource.h"
-#include "ppapi/shared_impl/ppb_instance_shared.h"
-#include "ppapi/shared_impl/singleton_resource_id.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/utility/completion_callback_factory.h"
-
-// Windows headers interfere with this file.
-#ifdef PostMessage
-#undef PostMessage
-#endif
-
-namespace ppapi {
-namespace proxy {
-
-class SerializedVarReceiveInput;
-class SerializedVarOutParam;
-class SerializedVarReturnValue;
-
-class PPB_Instance_Proxy : public InterfaceProxy,
-                           public PPB_Instance_Shared {
- public:
-  PPB_Instance_Proxy(Dispatcher* dispatcher);
-  ~PPB_Instance_Proxy() override;
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
-  // PPB_Instance_API implementation.
-  PP_Bool BindGraphics(PP_Instance instance, PP_Resource device) override;
-  PP_Bool IsFullFrame(PP_Instance instance) override;
-  const ViewData* GetViewData(PP_Instance instance) override;
-  PP_Var GetWindowObject(PP_Instance instance) override;
-  PP_Var GetOwnerElementObject(PP_Instance instance) override;
-  PP_Var ExecuteScript(PP_Instance instance,
-                       PP_Var script,
-                       PP_Var* exception) override;
-  uint32_t GetAudioHardwareOutputSampleRate(PP_Instance instance) override;
-  uint32_t GetAudioHardwareOutputBufferSize(PP_Instance instance) override;
-  PP_Var GetDefaultCharSet(PP_Instance instance) override;
-  PP_Bool IsFullscreen(PP_Instance instance) override;
-  PP_Bool SetFullscreen(PP_Instance instance, PP_Bool fullscreen) override;
-  PP_Bool GetScreenSize(PP_Instance instance, PP_Size* size) override;
-  Resource* GetSingletonResource(PP_Instance instance,
-                                 SingletonResourceID id) override;
-  int32_t RequestInputEvents(PP_Instance instance,
-                             uint32_t event_classes) override;
-  int32_t RequestFilteringInputEvents(PP_Instance instance,
-                                      uint32_t event_classes) override;
-  void ClearInputEventRequest(PP_Instance instance,
-                              uint32_t event_classes) override;
-  void PostMessage(PP_Instance instance, PP_Var message) override;
-  int32_t RegisterMessageHandler(PP_Instance instance,
-                                 void* user_data,
-                                 const PPP_MessageHandler_0_2* handler,
-                                 PP_Resource message_loop) override;
-  void UnregisterMessageHandler(PP_Instance instance) override;
-  PP_Bool SetCursor(PP_Instance instance,
-                    PP_MouseCursor_Type type,
-                    PP_Resource image,
-                    const PP_Point* hot_spot) override;
-  int32_t LockMouse(PP_Instance instance,
-                    scoped_refptr<TrackedCallback> callback) override;
-  void UnlockMouse(PP_Instance instance) override;
-  void SetTextInputType(PP_Instance instance, PP_TextInput_Type type) override;
-  void UpdateCaretPosition(PP_Instance instance,
-                           const PP_Rect& caret,
-                           const PP_Rect& bounding_box) override;
-  void CancelCompositionText(PP_Instance instance) override;
-  void SelectionChanged(PP_Instance instance) override;
-  void UpdateSurroundingText(PP_Instance instance,
-                             const char* text,
-                             uint32_t caret,
-                             uint32_t anchor) override;
-  PP_Var GetDocumentURL(PP_Instance instance,
-                        PP_URLComponents_Dev* components) override;
-#if !BUILDFLAG(IS_NACL)
-  PP_Var ResolveRelativeToDocument(PP_Instance instance,
-                                   PP_Var relative,
-                                   PP_URLComponents_Dev* components) override;
-  PP_Bool DocumentCanRequest(PP_Instance instance, PP_Var url) override;
-  PP_Bool DocumentCanAccessDocument(PP_Instance instance,
-                                    PP_Instance target) override;
-  PP_Var GetPluginInstanceURL(PP_Instance instance,
-                              PP_URLComponents_Dev* components) override;
-  PP_Var GetPluginReferrerURL(PP_Instance instance,
-                              PP_URLComponents_Dev* components) override;
-#endif  // !BUILDFLAG(IS_NACL)
-
-  static const ApiID kApiID = API_ID_PPB_INSTANCE;
-
- private:
-  // Plugin -> Host message handlers.
-  void OnHostMsgGetWindowObject(PP_Instance instance,
-                                SerializedVarReturnValue result);
-  void OnHostMsgGetOwnerElementObject(PP_Instance instance,
-                                      SerializedVarReturnValue result);
-  void OnHostMsgBindGraphics(PP_Instance instance,
-                             PP_Resource device);
-  void OnHostMsgIsFullFrame(PP_Instance instance, PP_Bool* result);
-  void OnHostMsgExecuteScript(PP_Instance instance,
-                              SerializedVarReceiveInput script,
-                              SerializedVarOutParam out_exception,
-                              SerializedVarReturnValue result);
-  void OnHostMsgGetAudioHardwareOutputSampleRate(PP_Instance instance,
-                                                 uint32_t *result);
-  void OnHostMsgGetAudioHardwareOutputBufferSize(PP_Instance instance,
-                                                 uint32_t *result);
-  void OnHostMsgGetDefaultCharSet(PP_Instance instance,
-                                  SerializedVarReturnValue result);
-  void OnHostMsgSetFullscreen(PP_Instance instance,
-                              PP_Bool fullscreen,
-                              PP_Bool* result);
-  void OnHostMsgGetScreenSize(PP_Instance instance,
-                              PP_Bool* result,
-                              PP_Size* size);
-  void OnHostMsgRequestInputEvents(PP_Instance instance,
-                                   bool is_filtering,
-                                   uint32_t event_classes);
-  void OnHostMsgClearInputEvents(PP_Instance instance,
-                                 uint32_t event_classes);
-  void OnHostMsgPostMessage(PP_Instance instance,
-                            SerializedVarReceiveInput message);
-  void OnHostMsgLockMouse(PP_Instance instance);
-  void OnHostMsgUnlockMouse(PP_Instance instance);
-  void OnHostMsgSetCursor(PP_Instance instance,
-                          int32_t type,
-                          const ppapi::HostResource& custom_image,
-                          const PP_Point& hot_spot);
-  void OnHostMsgSetTextInputType(PP_Instance instance, PP_TextInput_Type type);
-  void OnHostMsgUpdateCaretPosition(PP_Instance instance,
-                                    const PP_Rect& caret,
-                                    const PP_Rect& bounding_box);
-  void OnHostMsgCancelCompositionText(PP_Instance instance);
-  void OnHostMsgUpdateSurroundingText(
-      PP_Instance instance,
-      const std::string& text,
-      uint32_t caret,
-      uint32_t anchor);
-  void OnHostMsgGetDocumentURL(PP_Instance instance,
-                               PP_URLComponents_Dev* components,
-                               SerializedVarReturnValue result);
-
-#if !BUILDFLAG(IS_NACL)
-  void OnHostMsgResolveRelativeToDocument(PP_Instance instance,
-                                          SerializedVarReceiveInput relative,
-                                          SerializedVarReturnValue result);
-  void OnHostMsgDocumentCanRequest(PP_Instance instance,
-                                   SerializedVarReceiveInput url,
-                                   PP_Bool* result);
-  void OnHostMsgDocumentCanAccessDocument(PP_Instance active,
-                                          PP_Instance target,
-                                          PP_Bool* result);
-  void OnHostMsgGetPluginInstanceURL(PP_Instance instance,
-                                     SerializedVarReturnValue result);
-  void OnHostMsgGetPluginReferrerURL(PP_Instance instance,
-                                     SerializedVarReturnValue result);
-#endif  // !BUILDFLAG(IS_NACL)
-
-  // Host -> Plugin message handlers.
-  void OnPluginMsgMouseLockComplete(PP_Instance instance, int32_t result);
-
-  void MouseLockCompleteInHost(int32_t result, PP_Instance instance);
-
-  // Other helpers.
-  void CancelAnyPendingRequestSurroundingText(PP_Instance instance);
-
-  ProxyCompletionCallbackFactory<PPB_Instance_Proxy> callback_factory_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPB_INSTANCE_PROXY_H_
diff --git a/proxy/ppb_message_loop_proxy.cc b/proxy/ppb_message_loop_proxy.cc
deleted file mode 100644
index 3fe89a6..0000000
--- a/proxy/ppb_message_loop_proxy.cc
+++ /dev/null
@@ -1,303 +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/proxy/ppb_message_loop_proxy.h"
-
-#include <stddef.h>
-
-#include <memory>
-#include <vector>
-
-#include "base/check.h"
-#include "base/compiler_specific.h"
-#include "base/functional/bind.h"
-#include "base/functional/callback_helpers.h"
-#include "base/task/single_thread_task_runner.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_message_loop.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/thunk/enter.h"
-
-using ppapi::thunk::PPB_MessageLoop_API;
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-typedef thunk::EnterResource<PPB_MessageLoop_API> EnterMessageLoop;
-}
-
-MessageLoopResource::MessageLoopResource(PP_Instance instance)
-    : MessageLoopShared(instance),
-      nested_invocations_(0),
-      destroyed_(false),
-      should_destroy_(false),
-      is_main_thread_loop_(false),
-      currently_handling_blocking_message_(false) {
-}
-
-MessageLoopResource::MessageLoopResource(ForMainThread for_main_thread)
-    : MessageLoopShared(for_main_thread),
-      nested_invocations_(0),
-      destroyed_(false),
-      should_destroy_(false),
-      is_main_thread_loop_(true),
-      currently_handling_blocking_message_(false) {
-  // We attach the main thread immediately. We can't use AttachToCurrentThread,
-  // because the MessageLoop already exists.
-
-  // This must be called only once, so the slot must be empty.
-  CHECK(!PluginGlobals::Get()->msg_loop_slot());
-  // We don't add a reference for TLS here, so we don't release it. Instead,
-  // this loop is owned by PluginGlobals. Contrast with AttachToCurrentThread
-  // where we register ReleaseMessageLoop with TLS and call AddRef.
-  base::ThreadLocalStorage::Slot* slot = new base::ThreadLocalStorage::Slot();
-  PluginGlobals::Get()->set_msg_loop_slot(slot);
-
-  slot->Set(this);
-
-  task_runner_ = base::SingleThreadTaskRunner::GetCurrentDefault();
-}
-
-
-MessageLoopResource::~MessageLoopResource() {
-}
-
-PPB_MessageLoop_API* MessageLoopResource::AsPPB_MessageLoop_API() {
-  return this;
-}
-
-int32_t MessageLoopResource::AttachToCurrentThread() {
-  if (is_main_thread_loop_)
-    return PP_ERROR_INPROGRESS;
-
-  PluginGlobals* globals = PluginGlobals::Get();
-
-  base::ThreadLocalStorage::Slot* slot = globals->msg_loop_slot();
-  if (!slot) {
-    slot = new base::ThreadLocalStorage::Slot(&ReleaseMessageLoop);
-    globals->set_msg_loop_slot(slot);
-  } else {
-    if (slot->Get())
-      return PP_ERROR_INPROGRESS;
-  }
-  // TODO(dmichael) check that the current thread can support a task executor.
-
-  // Take a ref to the MessageLoop on behalf of the TLS. Note that this is an
-  // internal ref and not a plugin ref so the plugin can't accidentally
-  // release it. This is released by ReleaseMessageLoop().
-  AddRef();
-  slot->Set(this);
-
-  single_thread_task_executor_ =
-      std::make_unique<base::SingleThreadTaskExecutor>();
-  task_runner_ = base::SingleThreadTaskRunner::GetCurrentDefault();
-
-  // Post all pending work to the task executor.
-  for (auto& info : pending_tasks_) {
-    PostClosure(info.from_here, std::move(info.closure), info.delay_ms);
-  }
-  pending_tasks_.clear();
-
-  return PP_OK;
-}
-
-int32_t MessageLoopResource::Run() {
-  if (!IsCurrent())
-    return PP_ERROR_WRONG_THREAD;
-  if (is_main_thread_loop_)
-    return PP_ERROR_INPROGRESS;
-
-  base::RunLoop* previous_run_loop = run_loop_;
-  base::RunLoop run_loop;
-  run_loop_ = &run_loop;
-
-  nested_invocations_++;
-  CallWhileUnlocked(base::BindOnce(&base::RunLoop::Run,
-                                   base::Unretained(run_loop_), FROM_HERE));
-  nested_invocations_--;
-
-  run_loop_ = previous_run_loop;
-
-  if (should_destroy_ && nested_invocations_ == 0) {
-    task_runner_.reset();
-    single_thread_task_executor_.reset();
-    destroyed_ = true;
-  }
-  return PP_OK;
-}
-
-int32_t MessageLoopResource::PostWork(PP_CompletionCallback callback,
-                                      int64_t delay_ms) {
-  if (!callback.func)
-    return PP_ERROR_BADARGUMENT;
-  if (destroyed_)
-    return PP_ERROR_FAILED;
-  PostClosure(FROM_HERE,
-              base::BindOnce(callback.func, callback.user_data,
-                             static_cast<int32_t>(PP_OK)),
-              delay_ms);
-  return PP_OK;
-}
-
-int32_t MessageLoopResource::PostQuit(PP_Bool should_destroy) {
-  if (is_main_thread_loop_)
-    return PP_ERROR_WRONG_THREAD;
-
-  if (PP_ToBool(should_destroy))
-    should_destroy_ = true;
-
-  if (IsCurrent() && nested_invocations_ > 0) {
-    run_loop_->QuitWhenIdle();
-  } else {
-    PostClosure(FROM_HERE,
-                base::BindOnce(&MessageLoopResource::QuitRunLoopWhenIdle,
-                               Unretained(this)),
-                0);
-  }
-  return PP_OK;
-}
-
-// static
-MessageLoopResource* MessageLoopResource::GetCurrent() {
-  PluginGlobals* globals = PluginGlobals::Get();
-  if (!globals->msg_loop_slot())
-    return NULL;
-  return reinterpret_cast<MessageLoopResource*>(
-      globals->msg_loop_slot()->Get());
-}
-
-void MessageLoopResource::DetachFromThread() {
-  // Note that the task executor must be destroyed on the thread it was created
-  // on.
-  task_runner_.reset();
-  single_thread_task_executor_.reset();
-
-  // Cancel out the AddRef in AttachToCurrentThread().
-  Release();
-  // DANGER: may delete this.
-}
-
-bool MessageLoopResource::IsCurrent() const {
-  PluginGlobals* globals = PluginGlobals::Get();
-  if (!globals->msg_loop_slot())
-    return false;  // Can't be current if there's nothing in the slot.
-  return static_cast<const void*>(globals->msg_loop_slot()->Get()) ==
-         static_cast<const void*>(this);
-}
-
-void MessageLoopResource::PostClosure(const base::Location& from_here,
-                                      base::OnceClosure closure,
-                                      int64_t delay_ms) {
-  if (task_runner_.get()) {
-    task_runner_->PostDelayedTask(from_here, std::move(closure),
-                                  base::Milliseconds(delay_ms));
-  } else {
-    TaskInfo info;
-    info.from_here = FROM_HERE;
-    info.closure = std::move(closure);
-    info.delay_ms = delay_ms;
-    pending_tasks_.push_back(std::move(info));
-  }
-}
-
-base::SingleThreadTaskRunner* MessageLoopResource::GetTaskRunner() {
-  return task_runner_.get();
-}
-
-bool MessageLoopResource::CurrentlyHandlingBlockingMessage() {
-  return currently_handling_blocking_message_;
-}
-
-void MessageLoopResource::QuitRunLoopWhenIdle() {
-  DCHECK(IsCurrent());
-  DCHECK(run_loop_);
-  run_loop_->QuitWhenIdle();
-}
-
-// static
-void MessageLoopResource::ReleaseMessageLoop(void* value) {
-  static_cast<MessageLoopResource*>(value)->DetachFromThread();
-}
-
-// -----------------------------------------------------------------------------
-
-PP_Resource Create(PP_Instance instance) {
-  ProxyAutoLock lock;
-  // Validate the instance.
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return 0;
-  return (new MessageLoopResource(instance))->GetReference();
-}
-
-PP_Resource GetForMainThread() {
-  ProxyAutoLock lock;
-  return PluginGlobals::Get()->loop_for_main_thread()->GetReference();
-}
-
-PP_Resource GetCurrent() {
-  ProxyAutoLock lock;
-  Resource* resource = MessageLoopResource::GetCurrent();
-  if (resource)
-    return resource->GetReference();
-  return 0;
-}
-
-int32_t AttachToCurrentThread(PP_Resource message_loop) {
-  EnterMessageLoop enter(message_loop, true);
-  if (enter.succeeded())
-    return enter.object()->AttachToCurrentThread();
-  return PP_ERROR_BADRESOURCE;
-}
-
-int32_t Run(PP_Resource message_loop) {
-  EnterMessageLoop enter(message_loop, true);
-  if (enter.succeeded())
-    return enter.object()->Run();
-  return PP_ERROR_BADRESOURCE;
-}
-
-int32_t PostWork(PP_Resource message_loop,
-                 PP_CompletionCallback callback,
-                 int64_t delay_ms) {
-  EnterMessageLoop enter(message_loop, true);
-  if (enter.succeeded())
-    return enter.object()->PostWork(callback, delay_ms);
-  return PP_ERROR_BADRESOURCE;
-}
-
-int32_t PostQuit(PP_Resource message_loop, PP_Bool should_destroy) {
-  EnterMessageLoop enter(message_loop, true);
-  if (enter.succeeded())
-    return enter.object()->PostQuit(should_destroy);
-  return PP_ERROR_BADRESOURCE;
-}
-
-const PPB_MessageLoop_1_0 ppb_message_loop_interface = {
-  &Create,
-  &GetForMainThread,
-  &GetCurrent,
-  &AttachToCurrentThread,
-  &Run,
-  &PostWork,
-  &PostQuit
-};
-
-PPB_MessageLoop_Proxy::PPB_MessageLoop_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher) {
-}
-
-PPB_MessageLoop_Proxy::~PPB_MessageLoop_Proxy() {
-}
-
-// static
-const PPB_MessageLoop_1_0* PPB_MessageLoop_Proxy::GetInterface() {
-  return &ppb_message_loop_interface;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppb_message_loop_proxy.h b/proxy/ppb_message_loop_proxy.h
deleted file mode 100644
index 9fc4f22..0000000
--- a/proxy/ppb_message_loop_proxy.h
+++ /dev/null
@@ -1,136 +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_PROXY_PPB_MESSAGE_LOOP_PROXY_H_
-#define PPAPI_PROXY_PPB_MESSAGE_LOOP_PROXY_H_
-
-#include <stdint.h>
-
-#include <memory>
-
-#include "base/functional/bind.h"
-#include "base/memory/scoped_refptr.h"
-#include "base/run_loop.h"
-#include "base/task/single_thread_task_executor.h"
-#include "base/task/single_thread_task_runner.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/ppb_message_loop_shared.h"
-#include "ppapi/thunk/ppb_message_loop_api.h"
-
-struct PPB_MessageLoop_1_0;
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT MessageLoopResource : public MessageLoopShared {
- public:
-  explicit MessageLoopResource(PP_Instance instance);
-  // Construct the one MessageLoopResource for the main thread. This must be
-  // invoked on the main thread.
-  explicit MessageLoopResource(ForMainThread);
-
-  MessageLoopResource(const MessageLoopResource&) = delete;
-  MessageLoopResource& operator=(const MessageLoopResource&) = delete;
-
-  ~MessageLoopResource() override;
-
-  // Resource overrides.
-  thunk::PPB_MessageLoop_API* AsPPB_MessageLoop_API() override;
-
-  // PPB_MessageLoop_API implementation.
-  int32_t AttachToCurrentThread() override;
-  int32_t Run() override;
-  int32_t PostWork(PP_CompletionCallback callback, int64_t delay_ms) override;
-  int32_t PostQuit(PP_Bool should_destroy) override;
-
-  static MessageLoopResource* GetCurrent();
-  void DetachFromThread();
-  bool is_main_thread_loop() const {
-    return is_main_thread_loop_;
-  }
-
-  const scoped_refptr<base::SingleThreadTaskRunner>& task_runner() {
-    return task_runner_;
-  }
-
-  void set_currently_handling_blocking_message(bool handling_blocking_message) {
-    currently_handling_blocking_message_ = handling_blocking_message;
-  }
-
- private:
-  struct TaskInfo {
-    base::Location from_here;
-    base::OnceClosure closure;
-    int64_t delay_ms;
-  };
-
-  // Returns true if the object is associated with the current thread.
-  bool IsCurrent() const;
-
-  // MessageLoopShared implementation.
-  //
-  // Handles posting to the task executor if there is one, or the pending queue
-  // if there isn't.
-  // NOTE: The given closure will be run *WITHOUT* acquiring the Proxy lock.
-  //       This only makes sense for user code and completely thread-safe
-  //       proxy operations (e.g., MessageLoop::QuitClosure).
-  void PostClosure(const base::Location& from_here,
-                   base::OnceClosure closure,
-                   int64_t delay_ms) override;
-  base::SingleThreadTaskRunner* GetTaskRunner() override;
-  bool CurrentlyHandlingBlockingMessage() override;
-
-  // Quits |run_loop_|. Must be called from the thread that runs the RunLoop.
-  void QuitRunLoopWhenIdle();
-
-  // TLS destructor function.
-  static void ReleaseMessageLoop(void* value);
-
-  // Created when we attach to the current thread. NULL for the main thread,
-  // since that's owned by somebody else. This is needed for Run and Quit.
-  // Any time we post tasks, we should post them using task_runner_.
-  std::unique_ptr<base::SingleThreadTaskExecutor> single_thread_task_executor_;
-  scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
-
-  // RunLoop currently on the stack.
-  base::RunLoop* run_loop_ = nullptr;
-
-  // Number of invocations of Run currently on the stack.
-  int nested_invocations_;
-
-  // Set to true when the task executor is destroyed to prevent forther
-  // posting of work.
-  bool destroyed_;
-
-  // Set to true if all task executor invocations should exit and that the
-  // loop should be destroyed once it reaches the outermost Run invocation.
-  bool should_destroy_;
-
-  bool is_main_thread_loop_;
-
-  bool currently_handling_blocking_message_;
-
-  // Since we allow tasks to be posted before the task executor is actually
-  // created (when it's associated with a thread), we keep tasks posted here
-  // until that happens. Once the loop_ is created, this is unused.
-  std::vector<TaskInfo> pending_tasks_;
-};
-
-class PPB_MessageLoop_Proxy : public InterfaceProxy {
- public:
-  explicit PPB_MessageLoop_Proxy(Dispatcher* dispatcher);
-
-  PPB_MessageLoop_Proxy(const PPB_MessageLoop_Proxy&) = delete;
-  PPB_MessageLoop_Proxy& operator=(const PPB_MessageLoop_Proxy&) = delete;
-
-  ~PPB_MessageLoop_Proxy() override;
-
-  static const PPB_MessageLoop_1_0* GetInterface();
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPB_MESSAGE_LOOP_PROXY_H_
diff --git a/proxy/ppb_testing_proxy.cc b/proxy/ppb_testing_proxy.cc
deleted file mode 100644
index 32da620..0000000
--- a/proxy/ppb_testing_proxy.cc
+++ /dev/null
@@ -1,229 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/proxy/ppb_testing_proxy.h"
-
-#include <stddef.h>
-
-#include "base/notimplemented.h"
-#include "base/run_loop.h"
-#include "ppapi/c/private/ppb_testing_private.h"
-#include "ppapi/proxy/enter_proxy.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_graphics_2d_api.h"
-#include "ppapi/thunk/ppb_input_event_api.h"
-
-using ppapi::thunk::EnterInstance;
-using ppapi::thunk::EnterResource;
-using ppapi::thunk::EnterResourceNoLock;
-using ppapi::thunk::PPB_Graphics2D_API;
-using ppapi::thunk::PPB_InputEvent_API;
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-PP_Bool ReadImageData(PP_Resource graphics_2d,
-                      PP_Resource image,
-                      const PP_Point* top_left) {
-  ProxyAutoLock lock;
-  Resource* image_object =
-      PpapiGlobals::Get()->GetResourceTracker()->GetResource(image);
-  if (!image_object)
-    return PP_FALSE;
-  Resource* graphics_2d_object =
-      PpapiGlobals::Get()->GetResourceTracker()->GetResource(graphics_2d);
-  if (!graphics_2d_object ||
-      image_object->pp_instance() != graphics_2d_object->pp_instance())
-    return PP_FALSE;
-
-  EnterResourceNoLock<PPB_Graphics2D_API> enter(graphics_2d, true);
-  if (enter.failed())
-    return PP_FALSE;
-  const HostResource& host_image = image_object->host_resource();
-  return enter.object()->ReadImageData(host_image.host_resource(), top_left) ?
-      PP_TRUE : PP_FALSE;
-}
-
-void RunMessageLoop(PP_Instance instance) {
-  CHECK(PpapiGlobals::Get()->GetMainThreadMessageLoop()->
-      BelongsToCurrentThread());
-  PpapiGlobals::Get()->RunMsgLoop();
-}
-
-void QuitMessageLoop(PP_Instance instance) {
-  CHECK(PpapiGlobals::Get()->GetMainThreadMessageLoop()->
-            BelongsToCurrentThread());
-  PpapiGlobals::Get()->QuitMsgLoop();
-}
-
-uint32_t GetLiveObjectsForInstance(PP_Instance instance_id) {
-  ProxyAutoLock lock;
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance_id);
-  if (!dispatcher)
-    return static_cast<uint32_t>(-1);
-
-  uint32_t result = 0;
-  dispatcher->Send(new PpapiHostMsg_PPBTesting_GetLiveObjectsForInstance(
-      API_ID_PPB_TESTING, instance_id, &result));
-  return result;
-}
-
-PP_Bool IsOutOfProcess() {
-  return PP_TRUE;
-}
-
-void SimulateInputEvent(PP_Instance instance_id, PP_Resource input_event) {
-  ProxyAutoLock lock;
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance_id);
-  if (!dispatcher)
-    return;
-  EnterResourceNoLock<PPB_InputEvent_API> enter(input_event, false);
-  if (enter.failed())
-    return;
-
-  const InputEventData& input_event_data = enter.object()->GetInputEventData();
-  dispatcher->Send(new PpapiHostMsg_PPBTesting_SimulateInputEvent(
-      API_ID_PPB_TESTING, instance_id, input_event_data));
-}
-
-PP_Var GetDocumentURL(PP_Instance instance, PP_URLComponents_Dev* components) {
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.functions()->GetDocumentURL(instance, components);
-}
-
-// TODO(dmichael): Ideally we could get a way to check the number of vars in the
-// host-side tracker when running out-of-process, to make sure the proxy does
-// not leak host-side vars.
-uint32_t GetLiveVars(PP_Var live_vars[], uint32_t array_size) {
-  ProxyAutoLock lock;
-  std::vector<PP_Var> vars =
-      PpapiGlobals::Get()->GetVarTracker()->GetLiveVars();
-  for (size_t i = 0u;
-       i < std::min(static_cast<size_t>(array_size), vars.size());
-       ++i)
-    live_vars[i] = vars[i];
-  return static_cast<uint32_t>(vars.size());
-}
-
-void SetMinimumArrayBufferSizeForShmem(PP_Instance instance,
-                                       uint32_t threshold) {
-  ProxyAutoLock lock;
-  RawVarDataGraph::SetMinimumArrayBufferSizeForShmemForTest(threshold);
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return;
-  dispatcher->Send(
-      new PpapiHostMsg_PPBTesting_SetMinimumArrayBufferSizeForShmem(
-          API_ID_PPB_TESTING, threshold));
-}
-
-void RunV8GC(PP_Instance instance) {
-  // TODO(raymes): Implement this if we need it.
-  NOTIMPLEMENTED();
-}
-
-const PPB_Testing_Private testing_interface = {
-    &ReadImageData,
-    &RunMessageLoop,
-    &QuitMessageLoop,
-    &GetLiveObjectsForInstance,
-    &IsOutOfProcess,
-    &SimulateInputEvent,
-    &GetDocumentURL,
-    &GetLiveVars,
-    &SetMinimumArrayBufferSizeForShmem,
-    &RunV8GC};
-
-}  // namespace
-
-PPB_Testing_Proxy::PPB_Testing_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher),
-      ppb_testing_impl_(NULL) {
-  if (!dispatcher->IsPlugin()) {
-    ppb_testing_impl_ = static_cast<const PPB_Testing_Private*>(
-        dispatcher->local_get_interface()(PPB_TESTING_PRIVATE_INTERFACE));
-  }
-}
-
-PPB_Testing_Proxy::~PPB_Testing_Proxy() {
-}
-
-// static
-const PPB_Testing_Private* PPB_Testing_Proxy::GetProxyInterface() {
-  return &testing_interface;
-}
-
-bool PPB_Testing_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  if (!dispatcher()->permissions().HasPermission(PERMISSION_TESTING))
-    return false;
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPB_Testing_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBTesting_ReadImageData,
-                        OnMsgReadImageData)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBTesting_GetLiveObjectsForInstance,
-                        OnMsgGetLiveObjectsForInstance)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBTesting_SimulateInputEvent,
-                        OnMsgSimulateInputEvent)
-    IPC_MESSAGE_HANDLER(
-        PpapiHostMsg_PPBTesting_SetMinimumArrayBufferSizeForShmem,
-        OnMsgSetMinimumArrayBufferSizeForShmem)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-void PPB_Testing_Proxy::OnMsgReadImageData(
-    const HostResource& device_context_2d,
-    const HostResource& image,
-    const PP_Point& top_left,
-    PP_Bool* result) {
-  *result = ppb_testing_impl_->ReadImageData(
-      device_context_2d.host_resource(), image.host_resource(), &top_left);
-}
-
-void PPB_Testing_Proxy::OnMsgRunMessageLoop(PP_Instance instance) {
-  ppb_testing_impl_->RunMessageLoop(instance);
-}
-
-void PPB_Testing_Proxy::OnMsgQuitMessageLoop(PP_Instance instance) {
-  ppb_testing_impl_->QuitMessageLoop(instance);
-}
-
-void PPB_Testing_Proxy::OnMsgGetLiveObjectsForInstance(PP_Instance instance,
-                                                       uint32_t* result) {
-  *result = ppb_testing_impl_->GetLiveObjectsForInstance(instance);
-}
-
-void PPB_Testing_Proxy::OnMsgSimulateInputEvent(
-    PP_Instance instance,
-    const InputEventData& input_event) {
-  scoped_refptr<PPB_InputEvent_Shared> input_event_impl(
-      new PPB_InputEvent_Shared(OBJECT_IS_PROXY, instance, input_event));
-  ppb_testing_impl_->SimulateInputEvent(instance,
-                                        input_event_impl->pp_resource());
-}
-
-void PPB_Testing_Proxy::OnMsgSetMinimumArrayBufferSizeForShmem(
-    uint32_t threshold) {
-  RawVarDataGraph::SetMinimumArrayBufferSizeForShmemForTest(threshold);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppb_testing_proxy.h b/proxy/ppb_testing_proxy.h
deleted file mode 100644
index 9380910..0000000
--- a/proxy/ppb_testing_proxy.h
+++ /dev/null
@@ -1,62 +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_PROXY_PPB_TESTING_PROXY_H_
-#define PPAPI_PROXY_PPB_TESTING_PROXY_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/private/ppb_testing_private.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/shared_impl/host_resource.h"
-
-struct PP_Point;
-
-namespace ppapi {
-
-struct InputEventData;
-
-namespace proxy {
-
-class PPB_Testing_Proxy : public InterfaceProxy {
- public:
-  explicit PPB_Testing_Proxy(Dispatcher* dispatcher);
-
-  PPB_Testing_Proxy(const PPB_Testing_Proxy&) = delete;
-  PPB_Testing_Proxy& operator=(const PPB_Testing_Proxy&) = delete;
-
-  ~PPB_Testing_Proxy() override;
-
-  static const PPB_Testing_Private* GetProxyInterface();
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
- private:
-  // Message handlers.
-  void OnMsgReadImageData(const ppapi::HostResource& device_context_2d,
-                          const ppapi::HostResource& image,
-                          const PP_Point& top_left,
-                          PP_Bool* result);
-  void OnMsgRunMessageLoop(PP_Instance instance);
-  void OnMsgQuitMessageLoop(PP_Instance instance);
-  void OnMsgGetLiveObjectsForInstance(PP_Instance instance, uint32_t* result);
-  void OnMsgPostPowerSaverStatus(PP_Instance instance);
-  void OnMsgSubscribeToPowerSaverNotifications(PP_Instance instance);
-  void OnMsgSimulateInputEvent(PP_Instance instance,
-                               const ppapi::InputEventData& input_event);
-  void OnMsgSetMinimumArrayBufferSizeForShmem(uint32_t threshold);
-
-  // When this proxy is in the host side, this value caches the interface
-  // pointer so we don't have to retrieve it from the dispatcher each time.
-  // In the plugin, this value is always NULL.
-  const PPB_Testing_Private* ppb_testing_impl_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPB_TESTING_PROXY_H_
diff --git a/proxy/ppb_var_deprecated_proxy.cc b/proxy/ppb_var_deprecated_proxy.cc
deleted file mode 100644
index 0cbee2e..0000000
--- a/proxy/ppb_var_deprecated_proxy.cc
+++ /dev/null
@@ -1,521 +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/proxy/ppb_var_deprecated_proxy.h"
-
-#include <stdlib.h>  // For malloc
-
-#include "base/check.h"
-#include "base/functional/bind.h"
-#include "ppapi/c/dev/ppb_var_deprecated.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/ppb_core.h"
-#include "ppapi/c/ppb_var.h"
-#include "ppapi/proxy/host_dispatcher.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/plugin_var_tracker.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/ppp_class_proxy.h"
-#include "ppapi/proxy/proxy_object_var.h"
-#include "ppapi/proxy/serialized_var.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/ppb_var_shared.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-// Used to do get the set-up information for calling a var object. If the
-// exception is set, returns NULL. Otherwise, computes the dispatcher for the
-// given var object. If the var is not a valid object, returns NULL and sets
-// the exception.
-PluginDispatcher* CheckExceptionAndGetDispatcher(const PP_Var& object,
-                                                 PP_Var* exception) {
-  // If an exception is already set, we don't need to do anything, just return
-  // an error to the caller.
-  if (exception && exception->type != PP_VARTYPE_UNDEFINED)
-    return NULL;
-
-
-  if (object.type == PP_VARTYPE_OBJECT) {
-    // Get the dispatcher for the object.
-    PluginDispatcher* dispatcher =
-        PluginGlobals::Get()->plugin_var_tracker()->
-            DispatcherForPluginObject(object);
-    if (dispatcher)
-      return dispatcher;
-  }
-
-  // The object is invalid. This means we can't figure out which dispatcher
-  // to use, which is OK because the call will fail anyway. Set the exception.
-  if (exception) {
-    *exception = StringVar::StringToPPVar(
-        std::string("Attempting to use an invalid object"));
-  }
-  return NULL;
-}
-
-// PPB_Var_Deprecated plugin ---------------------------------------------------
-
-bool HasProperty(PP_Var var,
-                 PP_Var name,
-                 PP_Var* exception) {
-  ProxyAutoLock lock;
-  Dispatcher* dispatcher = CheckExceptionAndGetDispatcher(var, exception);
-  if (!dispatcher)
-    return false;
-
-  ReceiveSerializedException se(dispatcher, exception);
-  PP_Bool result = PP_FALSE;
-  if (!se.IsThrown()) {
-    dispatcher->Send(new PpapiHostMsg_PPBVar_HasProperty(
-        API_ID_PPB_VAR_DEPRECATED,
-        SerializedVarSendInput(dispatcher, var),
-        SerializedVarSendInput(dispatcher, name), &se, &result));
-  }
-  return PP_ToBool(result);
-}
-
-bool HasMethod(PP_Var var,
-               PP_Var name,
-               PP_Var* exception) {
-  ProxyAutoLock lock;
-  Dispatcher* dispatcher = CheckExceptionAndGetDispatcher(var, exception);
-  if (!dispatcher)
-    return false;
-
-  ReceiveSerializedException se(dispatcher, exception);
-  PP_Bool result = PP_FALSE;
-  if (!se.IsThrown()) {
-    dispatcher->Send(new PpapiHostMsg_PPBVar_HasMethodDeprecated(
-        API_ID_PPB_VAR_DEPRECATED,
-        SerializedVarSendInput(dispatcher, var),
-        SerializedVarSendInput(dispatcher, name), &se, &result));
-  }
-  return PP_ToBool(result);
-}
-
-PP_Var GetProperty(PP_Var var,
-                   PP_Var name,
-                   PP_Var* exception) {
-  ProxyAutoLock lock;
-  Dispatcher* dispatcher = CheckExceptionAndGetDispatcher(var, exception);
-  if (!dispatcher)
-    return PP_MakeUndefined();
-
-  ReceiveSerializedException se(dispatcher, exception);
-  ReceiveSerializedVarReturnValue result;
-  if (!se.IsThrown()) {
-    dispatcher->Send(new PpapiHostMsg_PPBVar_GetProperty(
-        API_ID_PPB_VAR_DEPRECATED,
-        SerializedVarSendInput(dispatcher, var),
-        SerializedVarSendInput(dispatcher, name), &se, &result));
-  }
-  return result.Return(dispatcher);
-}
-
-void EnumerateProperties(PP_Var var,
-                         uint32_t* property_count,
-                         PP_Var** properties,
-                         PP_Var* exception) {
-  ProxyAutoLock lock;
-  Dispatcher* dispatcher = CheckExceptionAndGetDispatcher(var, exception);
-  if (!dispatcher) {
-    *property_count = 0;
-    *properties = NULL;
-    return;
-  }
-
-  ReceiveSerializedVarVectorOutParam out_vector(dispatcher,
-                                                property_count, properties);
-  ReceiveSerializedException se(dispatcher, exception);
-  if (!se.IsThrown()) {
-    dispatcher->Send(new PpapiHostMsg_PPBVar_EnumerateProperties(
-        API_ID_PPB_VAR_DEPRECATED,
-        SerializedVarSendInput(dispatcher, var),
-        out_vector.OutParam(), &se));
-  }
-}
-
-void SetProperty(PP_Var var,
-                 PP_Var name,
-                 PP_Var value,
-                 PP_Var* exception) {
-  ProxyAutoLock lock;
-  Dispatcher* dispatcher = CheckExceptionAndGetDispatcher(var, exception);
-  if (!dispatcher)
-    return;
-
-  ReceiveSerializedException se(dispatcher, exception);
-  if (!se.IsThrown()) {
-    dispatcher->Send(new PpapiHostMsg_PPBVar_SetPropertyDeprecated(
-        API_ID_PPB_VAR_DEPRECATED,
-        SerializedVarSendInput(dispatcher, var),
-        SerializedVarSendInput(dispatcher, name),
-        SerializedVarSendInput(dispatcher, value), &se));
-  }
-}
-
-void RemoveProperty(PP_Var var,
-                    PP_Var name,
-                    PP_Var* exception) {
-  ProxyAutoLock lock;
-  Dispatcher* dispatcher = CheckExceptionAndGetDispatcher(var, exception);
-  if (!dispatcher)
-    return;
-
-  ReceiveSerializedException se(dispatcher, exception);
-  PP_Bool result = PP_FALSE;
-  if (!se.IsThrown()) {
-    dispatcher->Send(new PpapiHostMsg_PPBVar_DeleteProperty(
-        API_ID_PPB_VAR_DEPRECATED,
-        SerializedVarSendInput(dispatcher, var),
-        SerializedVarSendInput(dispatcher, name), &se, &result));
-  }
-}
-
-PP_Var Call(PP_Var object,
-            PP_Var method_name,
-            uint32_t argc,
-            PP_Var* argv,
-            PP_Var* exception) {
-  ProxyAutoLock lock;
-  Dispatcher* dispatcher = CheckExceptionAndGetDispatcher(object, exception);
-  if (!dispatcher)
-    return PP_MakeUndefined();
-
-  ReceiveSerializedVarReturnValue result;
-  ReceiveSerializedException se(dispatcher, exception);
-  if (!se.IsThrown()) {
-    std::vector<SerializedVar> argv_vect;
-    SerializedVarSendInput::ConvertVector(dispatcher, argv, argc, &argv_vect);
-
-    dispatcher->Send(new PpapiHostMsg_PPBVar_CallDeprecated(
-        API_ID_PPB_VAR_DEPRECATED,
-        SerializedVarSendInput(dispatcher, object),
-        SerializedVarSendInput(dispatcher, method_name), argv_vect,
-        &se, &result));
-  }
-  return result.Return(dispatcher);
-}
-
-PP_Var Construct(PP_Var object,
-                 uint32_t argc,
-                 PP_Var* argv,
-                 PP_Var* exception) {
-  ProxyAutoLock lock;
-  Dispatcher* dispatcher = CheckExceptionAndGetDispatcher(object, exception);
-  if (!dispatcher)
-    return PP_MakeUndefined();
-
-  ReceiveSerializedVarReturnValue result;
-  ReceiveSerializedException se(dispatcher, exception);
-  if (!se.IsThrown()) {
-    std::vector<SerializedVar> argv_vect;
-    SerializedVarSendInput::ConvertVector(dispatcher, argv, argc, &argv_vect);
-
-    dispatcher->Send(new PpapiHostMsg_PPBVar_Construct(
-        API_ID_PPB_VAR_DEPRECATED,
-        SerializedVarSendInput(dispatcher, object),
-        argv_vect, &se, &result));
-  }
-  return result.Return(dispatcher);
-}
-
-bool IsInstanceOf(PP_Var var,
-                  const PPP_Class_Deprecated* ppp_class,
-                  void** ppp_class_data) {
-  ProxyAutoLock lock;
-  Dispatcher* dispatcher = CheckExceptionAndGetDispatcher(var, NULL);
-  if (!dispatcher)
-    return false;
-
-  PP_Bool result = PP_FALSE;
-  int64_t class_int =
-      static_cast<int64_t>(reinterpret_cast<intptr_t>(ppp_class));
-  int64_t class_data_int = 0;
-  dispatcher->Send(new PpapiHostMsg_PPBVar_IsInstanceOfDeprecated(
-      API_ID_PPB_VAR_DEPRECATED, SerializedVarSendInput(dispatcher, var),
-      class_int, &class_data_int, &result));
-  *ppp_class_data =
-      reinterpret_cast<void*>(static_cast<intptr_t>(class_data_int));
-  return PP_ToBool(result);
-}
-
-PP_Var CreateObject(PP_Instance instance,
-                    const PPP_Class_Deprecated* ppp_class,
-                    void* ppp_class_data) {
-  ProxyAutoLock lock;
-  Dispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return PP_MakeUndefined();
-
-  PluginVarTracker* tracker = PluginGlobals::Get()->plugin_var_tracker();
-  if (tracker->IsPluginImplementedObjectAlive(ppp_class_data))
-    return PP_MakeUndefined();  // Object already exists with this user data.
-
-  ReceiveSerializedVarReturnValue result;
-  int64_t class_int =
-      static_cast<int64_t>(reinterpret_cast<intptr_t>(ppp_class));
-  int64_t data_int =
-      static_cast<int64_t>(reinterpret_cast<intptr_t>(ppp_class_data));
-  dispatcher->Send(new PpapiHostMsg_PPBVar_CreateObjectDeprecated(
-      API_ID_PPB_VAR_DEPRECATED, instance, class_int, data_int,
-      &result));
-  PP_Var ret_var = result.Return(dispatcher);
-
-  // Register this object as being implemented by the plugin.
-  if (ret_var.type == PP_VARTYPE_OBJECT) {
-    tracker->PluginImplementedObjectCreated(instance, ret_var,
-                                            ppp_class, ppp_class_data);
-  }
-  return ret_var;
-}
-
-}  // namespace
-
-PPB_Var_Deprecated_Proxy::PPB_Var_Deprecated_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher), ppb_var_impl_(nullptr) {
-  if (!dispatcher->IsPlugin()) {
-    ppb_var_impl_ = static_cast<const PPB_Var_Deprecated*>(
-        dispatcher->local_get_interface()(PPB_VAR_DEPRECATED_INTERFACE));
-  }
-}
-
-PPB_Var_Deprecated_Proxy::~PPB_Var_Deprecated_Proxy() {
-}
-
-// static
-const PPB_Var_Deprecated* PPB_Var_Deprecated_Proxy::GetProxyInterface() {
-  static const PPB_Var_Deprecated var_deprecated_interface = {
-    ppapi::PPB_Var_Shared::GetVarInterface1_0()->AddRef,
-    ppapi::PPB_Var_Shared::GetVarInterface1_0()->Release,
-    ppapi::PPB_Var_Shared::GetVarInterface1_0()->VarFromUtf8,
-    ppapi::PPB_Var_Shared::GetVarInterface1_0()->VarToUtf8,
-    &HasProperty,
-    &HasMethod,
-    &GetProperty,
-    &EnumerateProperties,
-    &SetProperty,
-    &RemoveProperty,
-    &Call,
-    &Construct,
-    &IsInstanceOf,
-    &CreateObject
-  };
-  return &var_deprecated_interface;
-}
-
-bool PPB_Var_Deprecated_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  if (!dispatcher()->permissions().HasPermission(PERMISSION_FLASH))
-    return false;
-
-  // Prevent the dispatcher from going away during a call to Call or other
-  // function that could mutate the DOM. This must happen OUTSIDE of
-  // the message handlers since the SerializedVars use the dispatcher upon
-  // return of the function (converting the SerializedVarReturnValue/OutParam
-  // to a SerializedVar in the destructor).
-  ScopedModuleReference death_grip(dispatcher());
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPB_Var_Deprecated_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVar_AddRefObject, OnMsgAddRefObject)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVar_ReleaseObject, OnMsgReleaseObject)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVar_HasProperty,
-                        OnMsgHasProperty)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVar_HasMethodDeprecated,
-                        OnMsgHasMethodDeprecated)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVar_GetProperty,
-                        OnMsgGetProperty)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVar_DeleteProperty,
-                        OnMsgDeleteProperty)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVar_EnumerateProperties,
-                        OnMsgEnumerateProperties)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVar_SetPropertyDeprecated,
-                        OnMsgSetPropertyDeprecated)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVar_CallDeprecated,
-                        OnMsgCallDeprecated)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVar_Construct,
-                        OnMsgConstruct)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVar_IsInstanceOfDeprecated,
-                        OnMsgIsInstanceOfDeprecated)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVar_CreateObjectDeprecated,
-                        OnMsgCreateObjectDeprecated)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  // TODO(brettw) handle bad messages!
-  return handled;
-}
-
-void PPB_Var_Deprecated_Proxy::OnMsgAddRefObject(int64_t object_id) {
-  PP_Var var = { PP_VARTYPE_OBJECT };
-  var.value.as_id = object_id;
-  ppb_var_impl_->AddRef(var);
-}
-
-void PPB_Var_Deprecated_Proxy::OnMsgReleaseObject(int64_t object_id) {
-  // Ok, so this is super subtle.
-  // When the browser side sends a sync IPC message that returns a var, and the
-  // plugin wants to give ownership of that var to the browser, dropping all
-  // references, it may call ReleaseObject right after returning the result.
-  // However, the IPC system doesn't enforce strict ordering of messages in that
-  // case, where a message that is set to unblock (e.g. a sync message, or in
-  // our case all messages coming from the plugin) that is sent *after* the
-  // result may be dispatched on the browser side *before* the sync send
-  // returned (see ipc_sync_channel.cc). In this case, that means it could
-  // release the object before it is AddRef'ed on the browser side.
-  // To work around this, we post a task here, that will not execute before
-  // control goes back to the main message loop, that will ensure the sync send
-  // has returned and the browser side can take its reference before we Release.
-  // Note: if the instance is gone by the time the task is executed, then it
-  // will Release the objects itself and this Release will be a NOOP (aside of a
-  // spurious warning).
-  // TODO(piman): See if we can fix the IPC code to enforce strict ordering, and
-  // then remove this.
-  PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostNonNestableTask(
-      FROM_HERE,
-      RunWhileLocked(base::BindOnce(&PPB_Var_Deprecated_Proxy::DoReleaseObject,
-                                    task_factory_.GetWeakPtr(), object_id)));
-}
-
-void PPB_Var_Deprecated_Proxy::OnMsgHasProperty(
-    SerializedVarReceiveInput var,
-    SerializedVarReceiveInput name,
-    SerializedVarOutParam exception,
-    PP_Bool* result) {
-  SetAllowPluginReentrancy();
-  *result = PP_FromBool(ppb_var_impl_->HasProperty(
-      var.Get(dispatcher()),
-      name.Get(dispatcher()),
-      exception.OutParam(dispatcher())));
-}
-
-void PPB_Var_Deprecated_Proxy::OnMsgHasMethodDeprecated(
-    SerializedVarReceiveInput var,
-    SerializedVarReceiveInput name,
-    SerializedVarOutParam exception,
-    PP_Bool* result) {
-  SetAllowPluginReentrancy();
-  *result = PP_FromBool(ppb_var_impl_->HasMethod(
-      var.Get(dispatcher()),
-      name.Get(dispatcher()),
-      exception.OutParam(dispatcher())));
-}
-
-void PPB_Var_Deprecated_Proxy::OnMsgGetProperty(
-    SerializedVarReceiveInput var,
-    SerializedVarReceiveInput name,
-    SerializedVarOutParam exception,
-    SerializedVarReturnValue result) {
-  SetAllowPluginReentrancy();
-  result.Return(dispatcher(), ppb_var_impl_->GetProperty(
-      var.Get(dispatcher()), name.Get(dispatcher()),
-      exception.OutParam(dispatcher())));
-}
-
-void PPB_Var_Deprecated_Proxy::OnMsgEnumerateProperties(
-    SerializedVarReceiveInput var,
-    SerializedVarVectorOutParam props,
-    SerializedVarOutParam exception) {
-  SetAllowPluginReentrancy();
-  ppb_var_impl_->GetAllPropertyNames(var.Get(dispatcher()),
-      props.CountOutParam(), props.ArrayOutParam(dispatcher()),
-      exception.OutParam(dispatcher()));
-}
-
-void PPB_Var_Deprecated_Proxy::OnMsgSetPropertyDeprecated(
-    SerializedVarReceiveInput var,
-    SerializedVarReceiveInput name,
-    SerializedVarReceiveInput value,
-    SerializedVarOutParam exception) {
-  SetAllowPluginReentrancy();
-  ppb_var_impl_->SetProperty(var.Get(dispatcher()),
-                                name.Get(dispatcher()),
-                                value.Get(dispatcher()),
-                                exception.OutParam(dispatcher()));
-}
-
-void PPB_Var_Deprecated_Proxy::OnMsgDeleteProperty(
-    SerializedVarReceiveInput var,
-    SerializedVarReceiveInput name,
-    SerializedVarOutParam exception,
-    PP_Bool* result) {
-  SetAllowPluginReentrancy();
-  ppb_var_impl_->RemoveProperty(var.Get(dispatcher()),
-                                   name.Get(dispatcher()),
-                                   exception.OutParam(dispatcher()));
-  // This deprecated function doesn't actually return a value, but we re-use
-  // the message from the non-deprecated interface with the return value.
-  *result = PP_TRUE;
-}
-
-void PPB_Var_Deprecated_Proxy::OnMsgCallDeprecated(
-    SerializedVarReceiveInput object,
-    SerializedVarReceiveInput method_name,
-    SerializedVarVectorReceiveInput arg_vector,
-    SerializedVarOutParam exception,
-    SerializedVarReturnValue result) {
-  SetAllowPluginReentrancy();
-  uint32_t arg_count = 0;
-  PP_Var* args = arg_vector.Get(dispatcher(), &arg_count);
-  result.Return(dispatcher(), ppb_var_impl_->Call(
-      object.Get(dispatcher()),
-      method_name.Get(dispatcher()),
-      arg_count, args,
-      exception.OutParam(dispatcher())));
-}
-
-void PPB_Var_Deprecated_Proxy::OnMsgConstruct(
-    SerializedVarReceiveInput var,
-    SerializedVarVectorReceiveInput arg_vector,
-    SerializedVarOutParam exception,
-    SerializedVarReturnValue result) {
-  SetAllowPluginReentrancy();
-  uint32_t arg_count = 0;
-  PP_Var* args = arg_vector.Get(dispatcher(), &arg_count);
-  result.Return(dispatcher(), ppb_var_impl_->Construct(
-      var.Get(dispatcher()), arg_count, args,
-      exception.OutParam(dispatcher())));
-}
-
-void PPB_Var_Deprecated_Proxy::OnMsgIsInstanceOfDeprecated(
-    SerializedVarReceiveInput var,
-    int64_t ppp_class,
-    int64_t* ppp_class_data,
-    PP_Bool* result) {
-  SetAllowPluginReentrancy();
-  *result = PPP_Class_Proxy::IsInstanceOf(ppb_var_impl_,
-                                          var.Get(dispatcher()),
-                                          ppp_class,
-                                          ppp_class_data);
-}
-
-void PPB_Var_Deprecated_Proxy::OnMsgCreateObjectDeprecated(
-    PP_Instance instance,
-    int64_t ppp_class,
-    int64_t class_data,
-    SerializedVarReturnValue result) {
-  SetAllowPluginReentrancy();
-  result.Return(dispatcher(), PPP_Class_Proxy::CreateProxiedObject(
-      ppb_var_impl_, dispatcher(), instance, ppp_class, class_data));
-}
-
-void PPB_Var_Deprecated_Proxy::SetAllowPluginReentrancy() {
-  CHECK(!dispatcher()->IsPlugin());
-  static_cast<HostDispatcher*>(dispatcher())->set_allow_plugin_reentrancy();
-}
-
-void PPB_Var_Deprecated_Proxy::DoReleaseObject(int64_t object_id) {
-  PP_Var var = { PP_VARTYPE_OBJECT };
-  var.value.as_id = object_id;
-  ppb_var_impl_->Release(var);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppb_var_deprecated_proxy.h b/proxy/ppb_var_deprecated_proxy.h
deleted file mode 100644
index f5b3dd9..0000000
--- a/proxy/ppb_var_deprecated_proxy.h
+++ /dev/null
@@ -1,104 +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_PROXY_PPB_VAR_DEPRECATED_PROXY_H_
-#define PPAPI_PROXY_PPB_VAR_DEPRECATED_PROXY_H_
-
-#include <stdint.h>
-
-#include "base/memory/weak_ptr.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/proxy/interface_proxy.h"
-
-struct PPB_Var_Deprecated;
-
-namespace ppapi {
-namespace proxy {
-
-class SerializedVarReceiveInput;
-class SerializedVarVectorOutParam;
-class SerializedVarVectorReceiveInput;
-class SerializedVarOutParam;
-class SerializedVarReturnValue;
-
-class PPB_Var_Deprecated_Proxy : public InterfaceProxy {
- public:
-  explicit PPB_Var_Deprecated_Proxy(Dispatcher* dispatcher);
-
-  PPB_Var_Deprecated_Proxy(const PPB_Var_Deprecated_Proxy&) = delete;
-  PPB_Var_Deprecated_Proxy& operator=(const PPB_Var_Deprecated_Proxy&) = delete;
-
-  ~PPB_Var_Deprecated_Proxy() override;
-
-  static const PPB_Var_Deprecated* GetProxyInterface();
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
- private:
-  // Message handlers.
-  void OnMsgAddRefObject(int64_t object_id);
-  void OnMsgReleaseObject(int64_t object_id);
-  void OnMsgHasProperty(SerializedVarReceiveInput var,
-                        SerializedVarReceiveInput name,
-                        SerializedVarOutParam exception,
-                        PP_Bool* result);
-  void OnMsgHasMethodDeprecated(SerializedVarReceiveInput var,
-                                SerializedVarReceiveInput name,
-                                SerializedVarOutParam exception,
-                                PP_Bool* result);
-  void OnMsgGetProperty(SerializedVarReceiveInput var,
-                        SerializedVarReceiveInput name,
-                        SerializedVarOutParam exception,
-                        SerializedVarReturnValue result);
-  void OnMsgEnumerateProperties(
-      SerializedVarReceiveInput var,
-      SerializedVarVectorOutParam props,
-      SerializedVarOutParam exception);
-  void OnMsgSetPropertyDeprecated(SerializedVarReceiveInput var,
-                                  SerializedVarReceiveInput name,
-                                  SerializedVarReceiveInput value,
-                                  SerializedVarOutParam exception);
-  void OnMsgDeleteProperty(SerializedVarReceiveInput var,
-                           SerializedVarReceiveInput name,
-                           SerializedVarOutParam exception,
-                           PP_Bool* result);
-  void OnMsgCall(SerializedVarReceiveInput object,
-                 SerializedVarReceiveInput this_object,
-                 SerializedVarReceiveInput method_name,
-                 SerializedVarVectorReceiveInput arg_vector,
-                 SerializedVarOutParam exception,
-                 SerializedVarReturnValue result);
-  void OnMsgCallDeprecated(SerializedVarReceiveInput object,
-                           SerializedVarReceiveInput method_name,
-                           SerializedVarVectorReceiveInput arg_vector,
-                           SerializedVarOutParam exception,
-                           SerializedVarReturnValue result);
-  void OnMsgConstruct(SerializedVarReceiveInput var,
-                      SerializedVarVectorReceiveInput arg_vector,
-                      SerializedVarOutParam exception,
-                      SerializedVarReturnValue result);
-  void OnMsgIsInstanceOfDeprecated(SerializedVarReceiveInput var,
-                                   int64_t ppp_class,
-                                   int64_t* ppp_class_data,
-                                   PP_Bool* result);
-  void OnMsgCreateObjectDeprecated(PP_Instance instance,
-                                   int64_t ppp_class,
-                                   int64_t ppp_class_data,
-                                   SerializedVarReturnValue result);
-
-  // Call in the host for messages that can be reentered.
-  void SetAllowPluginReentrancy();
-
-  void DoReleaseObject(int64_t object_id);
-
-  const PPB_Var_Deprecated* ppb_var_impl_;
-
-  base::WeakPtrFactory<PPB_Var_Deprecated_Proxy> task_factory_{this};
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPB_VAR_DEPRECATED_PROXY_H_
diff --git a/proxy/ppb_video_decoder_proxy.cc b/proxy/ppb_video_decoder_proxy.cc
deleted file mode 100644
index 526ef41..0000000
--- a/proxy/ppb_video_decoder_proxy.cc
+++ /dev/null
@@ -1,336 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/proxy/ppb_video_decoder_proxy.h"
-
-#include "base/check.h"
-#include "base/numerics/safe_conversions.h"
-#include "gpu/command_buffer/client/gles2_implementation.h"
-#include "ppapi/proxy/enter_proxy.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/ppb_buffer_proxy.h"
-#include "ppapi/proxy/ppb_graphics_3d_proxy.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-using ppapi::thunk::EnterResourceNoLock;
-using ppapi::thunk::PPB_Buffer_API;
-using ppapi::thunk::PPB_Graphics3D_API;
-using ppapi::thunk::PPB_VideoDecoder_Dev_API;
-
-namespace ppapi {
-namespace proxy {
-
-class VideoDecoder : public PPB_VideoDecoder_Shared {
- public:
-  // You must call Init() before using this class.
-  explicit VideoDecoder(const HostResource& resource);
-
-  VideoDecoder(const VideoDecoder&) = delete;
-  VideoDecoder& operator=(const VideoDecoder&) = delete;
-
-  ~VideoDecoder() override;
-
-  static VideoDecoder* Create(const HostResource& resource,
-                              PP_Resource graphics_context,
-                              PP_VideoDecoder_Profile profile);
-
-  // PPB_VideoDecoder_Dev_API implementation.
-  int32_t Decode(const PP_VideoBitstreamBuffer_Dev* bitstream_buffer,
-                 scoped_refptr<TrackedCallback> callback) override;
-  void AssignPictureBuffers(uint32_t no_of_buffers,
-                            const PP_PictureBuffer_Dev* buffers) override;
-  void ReusePictureBuffer(int32_t picture_buffer_id) override;
-  int32_t Flush(scoped_refptr<TrackedCallback> callback) override;
-  int32_t Reset(scoped_refptr<TrackedCallback> callback) override;
-  void Destroy() override;
-
- private:
-  friend class PPB_VideoDecoder_Proxy;
-
-  PluginDispatcher* GetDispatcher() const;
-
-  // Run the callbacks that were passed into the plugin interface.
-  void FlushACK(int32_t result);
-  void ResetACK(int32_t result);
-  void EndOfBitstreamACK(int32_t buffer_id, int32_t result);
-};
-
-VideoDecoder::VideoDecoder(const HostResource& decoder)
-    : PPB_VideoDecoder_Shared(decoder) {
-}
-
-VideoDecoder::~VideoDecoder() {
-  FlushCommandBuffer();
-  PPB_VideoDecoder_Shared::Destroy();
-}
-
-int32_t VideoDecoder::Decode(
-    const PP_VideoBitstreamBuffer_Dev* bitstream_buffer,
-    scoped_refptr<TrackedCallback> callback) {
-  EnterResourceNoLock<PPB_Buffer_API>
-      enter_buffer(bitstream_buffer->data, true);
-  if (enter_buffer.failed())
-    return PP_ERROR_BADRESOURCE;
-
-  if (!SetBitstreamBufferCallback(bitstream_buffer->id, callback))
-    return PP_ERROR_BADARGUMENT;
-
-  Buffer* ppb_buffer =
-      static_cast<Buffer*>(enter_buffer.object());
-  HostResource host_buffer = ppb_buffer->host_resource();
-
-  FlushCommandBuffer();
-  GetDispatcher()->Send(new PpapiHostMsg_PPBVideoDecoder_Decode(
-      API_ID_PPB_VIDEO_DECODER_DEV, host_resource(),
-      host_buffer, bitstream_buffer->id,
-      bitstream_buffer->size));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void VideoDecoder::AssignPictureBuffers(uint32_t no_of_buffers,
-                                        const PP_PictureBuffer_Dev* buffers) {
-  std::vector<PP_PictureBuffer_Dev> buffer_list(
-      buffers, buffers + no_of_buffers);
-  FlushCommandBuffer();
-  GetDispatcher()->Send(
-      new PpapiHostMsg_PPBVideoDecoder_AssignPictureBuffers(
-          API_ID_PPB_VIDEO_DECODER_DEV, host_resource(), buffer_list));
-}
-
-void VideoDecoder::ReusePictureBuffer(int32_t picture_buffer_id) {
-  FlushCommandBuffer();
-  GetDispatcher()->Send(new PpapiHostMsg_PPBVideoDecoder_ReusePictureBuffer(
-      API_ID_PPB_VIDEO_DECODER_DEV, host_resource(), picture_buffer_id));
-}
-
-int32_t VideoDecoder::Flush(scoped_refptr<TrackedCallback> callback) {
-  if (!SetFlushCallback(callback))
-    return PP_ERROR_INPROGRESS;
-
-  FlushCommandBuffer();
-  GetDispatcher()->Send(new PpapiHostMsg_PPBVideoDecoder_Flush(
-      API_ID_PPB_VIDEO_DECODER_DEV, host_resource()));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t VideoDecoder::Reset(scoped_refptr<TrackedCallback> callback) {
-  if (!SetResetCallback(callback))
-    return PP_ERROR_INPROGRESS;
-
-  FlushCommandBuffer();
-  GetDispatcher()->Send(new PpapiHostMsg_PPBVideoDecoder_Reset(
-      API_ID_PPB_VIDEO_DECODER_DEV, host_resource()));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void VideoDecoder::Destroy() {
-  FlushCommandBuffer();
-  GetDispatcher()->Send(new PpapiHostMsg_PPBVideoDecoder_Destroy(
-      API_ID_PPB_VIDEO_DECODER_DEV, host_resource()));
-  PPB_VideoDecoder_Shared::Destroy();
-}
-
-PluginDispatcher* VideoDecoder::GetDispatcher() const {
-  return PluginDispatcher::GetForResource(this);
-}
-
-void VideoDecoder::ResetACK(int32_t result) {
-  RunResetCallback(result);
-}
-
-void VideoDecoder::FlushACK(int32_t result) {
-  RunFlushCallback(result);
-}
-
-void VideoDecoder::EndOfBitstreamACK(
-    int32_t bitstream_buffer_id, int32_t result) {
-  RunBitstreamBufferCallback(bitstream_buffer_id, result);
-}
-
-PPB_VideoDecoder_Proxy::PPB_VideoDecoder_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher),
-      callback_factory_(this) {
-}
-
-PPB_VideoDecoder_Proxy::~PPB_VideoDecoder_Proxy() {
-}
-
-bool PPB_VideoDecoder_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  if (!dispatcher()->permissions().HasPermission(PERMISSION_DEV))
-    return false;
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPB_VideoDecoder_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVideoDecoder_Create,
-                        OnMsgCreate)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVideoDecoder_Decode, OnMsgDecode)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVideoDecoder_AssignPictureBuffers,
-                        OnMsgAssignPictureBuffers)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVideoDecoder_ReusePictureBuffer,
-                        OnMsgReusePictureBuffer)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVideoDecoder_Flush, OnMsgFlush)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVideoDecoder_Reset, OnMsgReset)
-    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBVideoDecoder_Destroy, OnMsgDestroy)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPBVideoDecoder_ResetACK, OnMsgResetACK)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPBVideoDecoder_EndOfBitstreamACK,
-                        OnMsgEndOfBitstreamACK)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPBVideoDecoder_FlushACK, OnMsgFlushACK)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  DCHECK(handled);
-  return handled;
-}
-
-PP_Resource PPB_VideoDecoder_Proxy::CreateProxyResource(
-    PP_Instance instance,
-    PP_Resource graphics_context,
-    PP_VideoDecoder_Profile profile) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  // Dispatcher is null if it cannot find the instance passed to it (i.e. if the
-  // client passes in an invalid instance).
-  if (!dispatcher)
-    return 0;
-
-  if (!dispatcher->preferences().is_accelerated_video_decode_enabled)
-    return 0;
-
-  EnterResourceNoLock<PPB_Graphics3D_API> enter_context(graphics_context,
-                                                        true);
-  if (enter_context.failed())
-    return 0;
-
-  Graphics3D* context = static_cast<Graphics3D*>(enter_context.object());
-
-  HostResource result;
-  dispatcher->Send(new PpapiHostMsg_PPBVideoDecoder_Create(
-      API_ID_PPB_VIDEO_DECODER_DEV, instance,
-      context->host_resource(), profile, &result));
-  if (result.is_null())
-    return 0;
-
-  // Need a scoped_refptr to keep the object alive during the Init call.
-  scoped_refptr<VideoDecoder> decoder(new VideoDecoder(result));
-  decoder->InitCommon(graphics_context, context->gles2_impl());
-  return decoder->GetReference();
-}
-
-void PPB_VideoDecoder_Proxy::OnMsgCreate(
-    PP_Instance instance, const HostResource& graphics_context,
-    PP_VideoDecoder_Profile profile,
-    HostResource* result) {
-  thunk::EnterResourceCreation resource_creation(instance);
-  if (resource_creation.failed())
-    return;
-
-  // Make the resource and get the API pointer to its interface.
-  result->SetHostResource(
-      instance, resource_creation.functions()->CreateVideoDecoderDev(
-          instance, graphics_context.host_resource(), profile));
-}
-
-void PPB_VideoDecoder_Proxy::OnMsgDecode(const HostResource& decoder,
-                                         const HostResource& buffer,
-                                         int32_t id,
-                                         uint32_t size) {
-  EnterHostFromHostResourceForceCallback<PPB_VideoDecoder_Dev_API> enter(
-      decoder, callback_factory_,
-      &PPB_VideoDecoder_Proxy::SendMsgEndOfBitstreamACKToPlugin, decoder, id);
-  if (enter.failed())
-    return;
-  PP_VideoBitstreamBuffer_Dev bitstream = { id, buffer.host_resource(), size };
-  enter.SetResult(enter.object()->Decode(&bitstream, enter.callback()));
-}
-
-void PPB_VideoDecoder_Proxy::OnMsgAssignPictureBuffers(
-    const HostResource& decoder,
-    const std::vector<PP_PictureBuffer_Dev>& buffers) {
-  EnterHostFromHostResource<PPB_VideoDecoder_Dev_API> enter(decoder);
-  if (enter.succeeded() && !buffers.empty()) {
-    const PP_PictureBuffer_Dev* buffer_array = &buffers.front();
-    enter.object()->AssignPictureBuffers(
-        base::checked_cast<uint32_t>(buffers.size()), buffer_array);
-  }
-}
-
-void PPB_VideoDecoder_Proxy::OnMsgReusePictureBuffer(
-    const HostResource& decoder,
-    int32_t picture_buffer_id) {
-  EnterHostFromHostResource<PPB_VideoDecoder_Dev_API> enter(decoder);
-  if (enter.succeeded())
-    enter.object()->ReusePictureBuffer(picture_buffer_id);
-}
-
-void PPB_VideoDecoder_Proxy::OnMsgFlush(const HostResource& decoder) {
-  EnterHostFromHostResourceForceCallback<PPB_VideoDecoder_Dev_API> enter(
-      decoder, callback_factory_,
-      &PPB_VideoDecoder_Proxy::SendMsgFlushACKToPlugin, decoder);
-  if (enter.succeeded())
-    enter.SetResult(enter.object()->Flush(enter.callback()));
-}
-
-void PPB_VideoDecoder_Proxy::OnMsgReset(const HostResource& decoder) {
-  EnterHostFromHostResourceForceCallback<PPB_VideoDecoder_Dev_API> enter(
-      decoder, callback_factory_,
-      &PPB_VideoDecoder_Proxy::SendMsgResetACKToPlugin, decoder);
-  if (enter.succeeded())
-    enter.SetResult(enter.object()->Reset(enter.callback()));
-}
-
-void PPB_VideoDecoder_Proxy::OnMsgDestroy(const HostResource& decoder) {
-  EnterHostFromHostResource<PPB_VideoDecoder_Dev_API> enter(decoder);
-  if (enter.succeeded())
-    enter.object()->Destroy();
-}
-
-void PPB_VideoDecoder_Proxy::SendMsgEndOfBitstreamACKToPlugin(
-    int32_t result,
-    const HostResource& decoder,
-    int32_t id) {
-  dispatcher()->Send(new PpapiMsg_PPBVideoDecoder_EndOfBitstreamACK(
-      API_ID_PPB_VIDEO_DECODER_DEV, decoder, id, result));
-}
-
-void PPB_VideoDecoder_Proxy::SendMsgFlushACKToPlugin(
-    int32_t result, const HostResource& decoder) {
-  dispatcher()->Send(new PpapiMsg_PPBVideoDecoder_FlushACK(
-      API_ID_PPB_VIDEO_DECODER_DEV, decoder, result));
-}
-
-void PPB_VideoDecoder_Proxy::SendMsgResetACKToPlugin(
-    int32_t result, const HostResource& decoder) {
-  dispatcher()->Send(new PpapiMsg_PPBVideoDecoder_ResetACK(
-      API_ID_PPB_VIDEO_DECODER_DEV, decoder, result));
-}
-
-void PPB_VideoDecoder_Proxy::OnMsgEndOfBitstreamACK(
-    const HostResource& decoder, int32_t id, int32_t result) {
-  EnterPluginFromHostResource<PPB_VideoDecoder_Dev_API> enter(decoder);
-  if (enter.succeeded())
-    static_cast<VideoDecoder*>(enter.object())->EndOfBitstreamACK(id, result);
-}
-
-void PPB_VideoDecoder_Proxy::OnMsgFlushACK(
-    const HostResource& decoder, int32_t result) {
-  EnterPluginFromHostResource<PPB_VideoDecoder_Dev_API> enter(decoder);
-  if (enter.succeeded())
-    static_cast<VideoDecoder*>(enter.object())->FlushACK(result);
-}
-
-void PPB_VideoDecoder_Proxy::OnMsgResetACK(
-    const HostResource& decoder, int32_t result) {
-  EnterPluginFromHostResource<PPB_VideoDecoder_Dev_API> enter(decoder);
-  if (enter.succeeded())
-    static_cast<VideoDecoder*>(enter.object())->ResetACK(result);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppb_video_decoder_proxy.h b/proxy/ppb_video_decoder_proxy.h
deleted file mode 100644
index b2f76e3..0000000
--- a/proxy/ppb_video_decoder_proxy.h
+++ /dev/null
@@ -1,83 +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_PROXY_PPB_VIDEO_DECODER_PROXY_H_
-#define PPAPI_PROXY_PPB_VIDEO_DECODER_PROXY_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/proxy/proxy_completion_callback_factory.h"
-#include "ppapi/shared_impl/ppb_video_decoder_shared.h"
-#include "ppapi/thunk/ppb_video_decoder_dev_api.h"
-#include "ppapi/utility/completion_callback_factory.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPB_VideoDecoder_Proxy : public InterfaceProxy {
- public:
-  explicit PPB_VideoDecoder_Proxy(Dispatcher* dispatcher);
-
-  PPB_VideoDecoder_Proxy(const PPB_VideoDecoder_Proxy&) = delete;
-  PPB_VideoDecoder_Proxy& operator=(const PPB_VideoDecoder_Proxy&) = delete;
-
-  ~PPB_VideoDecoder_Proxy() override;
-
-  // Creates a VideoDecoder object in the plugin process.
-  static PP_Resource CreateProxyResource(
-      PP_Instance instance,
-      PP_Resource graphics_context,
-      PP_VideoDecoder_Profile profile);
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
-  static const ApiID kApiID = API_ID_PPB_VIDEO_DECODER_DEV;
-
- private:
-  // Message handlers in the renderer process to receive messages from the
-  // plugin process.
-  void OnMsgCreate(PP_Instance instance,
-                   const ppapi::HostResource& graphics_context,
-                   PP_VideoDecoder_Profile profile,
-                   ppapi::HostResource* result);
-  void OnMsgDecode(const ppapi::HostResource& decoder,
-                   const ppapi::HostResource& buffer,
-                   int32_t id,
-                   uint32_t size);
-  void OnMsgAssignPictureBuffers(
-      const ppapi::HostResource& decoder,
-      const std::vector<PP_PictureBuffer_Dev>& buffers);
-  void OnMsgReusePictureBuffer(const ppapi::HostResource& decoder,
-                               int32_t picture_buffer_id);
-  void OnMsgFlush(const ppapi::HostResource& decoder);
-  void OnMsgReset(const ppapi::HostResource& decoder);
-  void OnMsgDestroy(const ppapi::HostResource& decoder);
-
-  // Send a message from the renderer process to the plugin process to tell it
-  // to run its callback.
-  void SendMsgEndOfBitstreamACKToPlugin(int32_t result,
-                                        const ppapi::HostResource& decoder,
-                                        int32_t id);
-  void SendMsgFlushACKToPlugin(
-      int32_t result, const ppapi::HostResource& decoder);
-  void SendMsgResetACKToPlugin(
-      int32_t result, const ppapi::HostResource& decoder);
-
-  // Message handlers in the plugin process to receive messages from the
-  // renderer process.
-  void OnMsgEndOfBitstreamACK(const ppapi::HostResource& decoder,
-                              int32_t id, int32_t result);
-  void OnMsgFlushACK(const ppapi::HostResource& decoder, int32_t result);
-  void OnMsgResetACK(const ppapi::HostResource& decoder, int32_t result);
-
-  ProxyCompletionCallbackFactory<PPB_VideoDecoder_Proxy> callback_factory_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPB_VIDEO_DECODER_PROXY_H_
diff --git a/proxy/ppb_x509_certificate_private_proxy.cc b/proxy/ppb_x509_certificate_private_proxy.cc
deleted file mode 100644
index d013184..0000000
--- a/proxy/ppb_x509_certificate_private_proxy.cc
+++ /dev/null
@@ -1,68 +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/proxy/ppb_x509_certificate_private_proxy.h"
-
-#include "ppapi/c/private/ppb_x509_certificate_private.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h"
-#include "ppapi/shared_impl/private/ppb_x509_util_shared.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-class X509CertificatePrivate : public PPB_X509Certificate_Private_Shared {
- public:
-  X509CertificatePrivate(PP_Instance instance);
-
-  X509CertificatePrivate(const X509CertificatePrivate&) = delete;
-  X509CertificatePrivate& operator=(const X509CertificatePrivate&) = delete;
-
-  ~X509CertificatePrivate() override;
-
-  bool ParseDER(const std::vector<char>& der,
-                PPB_X509Certificate_Fields* result) override;
-};
-
-X509CertificatePrivate::X509CertificatePrivate(PP_Instance instance)
-    : PPB_X509Certificate_Private_Shared(OBJECT_IS_PROXY, instance) {
-}
-
-X509CertificatePrivate::~X509CertificatePrivate() {
-}
-
-bool X509CertificatePrivate::ParseDER(const std::vector<char>& der,
-                                      PPB_X509Certificate_Fields* result) {
-  return PPB_X509Util_Shared::GetCertificateFields(der.data(), der.size(),
-                                                   result);
-}
-
-}  // namespace
-
-//------------------------------------------------------------------------------
-
-PPB_X509Certificate_Private_Proxy::PPB_X509Certificate_Private_Proxy(
-    Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher) {
-}
-
-PPB_X509Certificate_Private_Proxy::~PPB_X509Certificate_Private_Proxy() {
-}
-
-// static
-PP_Resource PPB_X509Certificate_Private_Proxy::CreateProxyResource(
-    PP_Instance instance) {
-  return (new X509CertificatePrivate(instance))->GetReference();
-}
-
-bool PPB_X509Certificate_Private_Proxy::OnMessageReceived(
-    const IPC::Message& msg) {
-  return false;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppb_x509_certificate_private_proxy.h b/proxy/ppb_x509_certificate_private_proxy.h
deleted file mode 100644
index 0856bf9..0000000
--- a/proxy/ppb_x509_certificate_private_proxy.h
+++ /dev/null
@@ -1,38 +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_PROXY_PPB_X509_CERTIFICATE_PRIVATE_PROXY_H_
-#define PPAPI_PROXY_PPB_X509_CERTIFICATE_PRIVATE_PROXY_H_
-
-#include "base/compiler_specific.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/proxy/interface_proxy.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPB_X509Certificate_Private_Proxy
-    : public InterfaceProxy {
- public:
-  explicit PPB_X509Certificate_Private_Proxy(Dispatcher* dispatcher);
-
-  PPB_X509Certificate_Private_Proxy(const PPB_X509Certificate_Private_Proxy&) =
-      delete;
-  PPB_X509Certificate_Private_Proxy& operator=(
-      const PPB_X509Certificate_Private_Proxy&) = delete;
-
-  ~PPB_X509Certificate_Private_Proxy() override;
-  static PP_Resource CreateProxyResource(PP_Instance instance);
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
-  static const ApiID kApiID = API_ID_PPB_X509_CERTIFICATE_PRIVATE;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPB_X509_CERTIFICATE_PRIVATE_PROXY_H_
diff --git a/proxy/ppp_class_proxy.cc b/proxy/ppp_class_proxy.cc
deleted file mode 100644
index 5a0922a..0000000
--- a/proxy/ppp_class_proxy.cc
+++ /dev/null
@@ -1,401 +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/proxy/ppp_class_proxy.h"
-
-#include "base/notimplemented.h"
-#include "ppapi/c/dev/ppb_var_deprecated.h"
-#include "ppapi/c/dev/ppp_class_deprecated.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/proxy/dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/serialized_var.h"
-#include "ppapi/shared_impl/api_id.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-// PPP_Class in the browser implementation -------------------------------------
-
-// Represents a plugin-implemented class in the browser process. This just
-// stores the data necessary to call back the plugin.
-struct ObjectProxy {
-  ObjectProxy(Dispatcher* d, int64_t p, int64_t ud)
-      : dispatcher(d), ppp_class(p), user_data(ud) {}
-
-  Dispatcher* dispatcher;
-  int64_t ppp_class;
-  int64_t user_data;
-};
-
-ObjectProxy* ToObjectProxy(void* data) {
-  ObjectProxy* obj = reinterpret_cast<ObjectProxy*>(data);
-  if (!obj || !obj->dispatcher)
-    return NULL;
-  if (!obj->dispatcher->permissions().HasPermission(PERMISSION_FLASH))
-    return NULL;
-  return obj;
-}
-
-bool HasProperty(void* object, PP_Var name, PP_Var* exception) {
-  ObjectProxy* obj = ToObjectProxy(object);
-  if (!obj)
-    return false;
-
-  bool result = false;
-  ReceiveSerializedException se(obj->dispatcher, exception);
-  obj->dispatcher->Send(new PpapiMsg_PPPClass_HasProperty(
-      API_ID_PPP_CLASS, obj->ppp_class, obj->user_data,
-      SerializedVarSendInput(obj->dispatcher, name), &se, &result));
-  return result;
-}
-
-bool HasMethod(void* object, PP_Var name, PP_Var* exception) {
-  ObjectProxy* obj = ToObjectProxy(object);
-  if (!obj)
-    return false;
-
-  bool result = false;
-  ReceiveSerializedException se(obj->dispatcher, exception);
-  obj->dispatcher->Send(new PpapiMsg_PPPClass_HasMethod(
-      API_ID_PPP_CLASS, obj->ppp_class, obj->user_data,
-      SerializedVarSendInput(obj->dispatcher, name), &se, &result));
-  return result;
-}
-
-PP_Var GetProperty(void* object,
-                   PP_Var name,
-                   PP_Var* exception) {
-  ObjectProxy* obj = ToObjectProxy(object);
-  if (!obj)
-    return PP_MakeUndefined();
-
-  ReceiveSerializedException se(obj->dispatcher, exception);
-  ReceiveSerializedVarReturnValue result;
-  obj->dispatcher->Send(new PpapiMsg_PPPClass_GetProperty(
-      API_ID_PPP_CLASS, obj->ppp_class, obj->user_data,
-      SerializedVarSendInput(obj->dispatcher, name), &se, &result));
-  return result.Return(obj->dispatcher);
-}
-
-void GetAllPropertyNames(void* object,
-                         uint32_t* property_count,
-                         PP_Var** properties,
-                         PP_Var* exception) {
-  NOTIMPLEMENTED();
-  // TODO(brettw) implement this.
-}
-
-void SetProperty(void* object,
-                 PP_Var name,
-                 PP_Var value,
-                 PP_Var* exception) {
-  ObjectProxy* obj = ToObjectProxy(object);
-  if (!obj)
-    return;
-
-  ReceiveSerializedException se(obj->dispatcher, exception);
-  obj->dispatcher->Send(new PpapiMsg_PPPClass_SetProperty(
-      API_ID_PPP_CLASS, obj->ppp_class, obj->user_data,
-      SerializedVarSendInput(obj->dispatcher, name),
-      SerializedVarSendInput(obj->dispatcher, value), &se));
-}
-
-void RemoveProperty(void* object,
-                    PP_Var name,
-                    PP_Var* exception) {
-  ObjectProxy* obj = ToObjectProxy(object);
-  if (!obj)
-    return;
-
-  ReceiveSerializedException se(obj->dispatcher, exception);
-  obj->dispatcher->Send(new PpapiMsg_PPPClass_RemoveProperty(
-      API_ID_PPP_CLASS, obj->ppp_class, obj->user_data,
-      SerializedVarSendInput(obj->dispatcher, name), &se));
-}
-
-PP_Var Call(void* object,
-            PP_Var method_name,
-            uint32_t argc,
-            PP_Var* argv,
-            PP_Var* exception) {
-  ObjectProxy* obj = ToObjectProxy(object);
-  if (!obj)
-    return PP_MakeUndefined();
-
-  ReceiveSerializedVarReturnValue result;
-  ReceiveSerializedException se(obj->dispatcher, exception);
-  std::vector<SerializedVar> argv_vect;
-  SerializedVarSendInput::ConvertVector(obj->dispatcher, argv, argc,
-                                        &argv_vect);
-
-  obj->dispatcher->Send(new PpapiMsg_PPPClass_Call(
-      API_ID_PPP_CLASS, obj->ppp_class, obj->user_data,
-      SerializedVarSendInput(obj->dispatcher, method_name), argv_vect,
-      &se, &result));
-  return result.Return(obj->dispatcher);
-}
-
-PP_Var Construct(void* object,
-                 uint32_t argc,
-                 PP_Var* argv,
-                 PP_Var* exception) {
-  ObjectProxy* obj = ToObjectProxy(object);
-  if (!obj)
-    return PP_MakeUndefined();
-
-  ReceiveSerializedVarReturnValue result;
-  ReceiveSerializedException se(obj->dispatcher, exception);
-  std::vector<SerializedVar> argv_vect;
-  SerializedVarSendInput::ConvertVector(obj->dispatcher, argv, argc,
-                                        &argv_vect);
-
-  obj->dispatcher->Send(new PpapiMsg_PPPClass_Construct(
-      API_ID_PPP_CLASS,
-      obj->ppp_class, obj->user_data, argv_vect, &se, &result));
-  return result.Return(obj->dispatcher);
-}
-
-void Deallocate(void* object) {
-  ObjectProxy* obj = ToObjectProxy(object);
-  if (!obj)
-    return;
-
-  obj->dispatcher->Send(new PpapiMsg_PPPClass_Deallocate(
-      API_ID_PPP_CLASS, obj->ppp_class, obj->user_data));
-  delete obj;
-}
-
-const PPP_Class_Deprecated class_interface = {
-  &HasProperty,
-  &HasMethod,
-  &GetProperty,
-  &GetAllPropertyNames,
-  &SetProperty,
-  &RemoveProperty,
-  &Call,
-  &Construct,
-  &Deallocate
-};
-
-// Plugin helper functions -----------------------------------------------------
-
-// Converts an int64_t object from IPC to a PPP_Class* for calling into the
-// plugin's implementation.
-const PPP_Class_Deprecated* ToPPPClass(int64_t value) {
-  return reinterpret_cast<const PPP_Class_Deprecated*>(
-      static_cast<intptr_t>(value));
-}
-
-// Converts an int64_t object from IPC to a void* for calling into the plugin's
-// implementation as the user data.
-void* ToUserData(int64_t value) {
-  return reinterpret_cast<void*>(static_cast<intptr_t>(value));
-}
-
-}  // namespace
-
-// PPP_Class_Proxy -------------------------------------------------------------
-
-PPP_Class_Proxy::PPP_Class_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher) {
-}
-
-PPP_Class_Proxy::~PPP_Class_Proxy() {
-}
-
-// static
-InterfaceProxy* PPP_Class_Proxy::Create(Dispatcher* dispatcher) {
-  return new PPP_Class_Proxy(dispatcher);
-}
-
-// static
-PP_Var PPP_Class_Proxy::CreateProxiedObject(const PPB_Var_Deprecated* var,
-                                            Dispatcher* dispatcher,
-                                            PP_Instance instance_id,
-                                            int64_t ppp_class,
-                                            int64_t class_data) {
-  ObjectProxy* object_proxy = new ObjectProxy(dispatcher,
-                                              ppp_class, class_data);
-  return var->CreateObject(instance_id, &class_interface, object_proxy);
-}
-
-// static
-PP_Bool PPP_Class_Proxy::IsInstanceOf(const PPB_Var_Deprecated* ppb_var_impl,
-                                      const PP_Var& var,
-                                      int64_t ppp_class,
-                                      int64_t* ppp_class_data) {
-  void* proxied_object = NULL;
-  if (ppb_var_impl->IsInstanceOf(var,
-                                 &class_interface,
-                                 &proxied_object)) {
-    if (static_cast<ObjectProxy*>(proxied_object)->ppp_class == ppp_class) {
-      DCHECK(ppp_class_data);
-      *ppp_class_data = static_cast<ObjectProxy*>(proxied_object)->user_data;
-      return PP_TRUE;
-    }
-  }
-  return PP_FALSE;
-}
-
-bool PPP_Class_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  if (!dispatcher()->IsPlugin())
-    return false;  // These messages are only valid from host->plugin.
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPP_Class_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPClass_HasProperty,
-                        OnMsgHasProperty)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPClass_HasMethod,
-                        OnMsgHasMethod)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPClass_GetProperty,
-                        OnMsgGetProperty)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPClass_EnumerateProperties,
-                        OnMsgEnumerateProperties)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPClass_SetProperty,
-                        OnMsgSetProperty)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPClass_Call,
-                        OnMsgCall)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPClass_Construct,
-                        OnMsgConstruct)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPClass_Deallocate,
-                        OnMsgDeallocate)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-void PPP_Class_Proxy::OnMsgHasProperty(int64_t ppp_class,
-                                       int64_t object,
-                                       SerializedVarReceiveInput property,
-                                       SerializedVarOutParam exception,
-                                       bool* result) {
-  if (!ValidateUserData(ppp_class, object, &exception))
-    return;
-  *result = CallWhileUnlocked(ToPPPClass(ppp_class)->HasProperty,
-                              ToUserData(object),
-                              property.Get(dispatcher()),
-                              exception.OutParam(dispatcher()));
-}
-
-void PPP_Class_Proxy::OnMsgHasMethod(int64_t ppp_class,
-                                     int64_t object,
-                                     SerializedVarReceiveInput property,
-                                     SerializedVarOutParam exception,
-                                     bool* result) {
-  if (!ValidateUserData(ppp_class, object, &exception))
-    return;
-  *result = CallWhileUnlocked(ToPPPClass(ppp_class)->HasMethod,
-                              ToUserData(object),
-                              property.Get(dispatcher()),
-                              exception.OutParam(dispatcher()));
-}
-
-void PPP_Class_Proxy::OnMsgGetProperty(int64_t ppp_class,
-                                       int64_t object,
-                                       SerializedVarReceiveInput property,
-                                       SerializedVarOutParam exception,
-                                       SerializedVarReturnValue result) {
-  if (!ValidateUserData(ppp_class, object, &exception))
-    return;
-  result.Return(dispatcher(), CallWhileUnlocked(
-      ToPPPClass(ppp_class)->GetProperty,
-      ToUserData(object), property.Get(dispatcher()),
-      exception.OutParam(dispatcher())));
-}
-
-void PPP_Class_Proxy::OnMsgEnumerateProperties(
-    int64_t ppp_class,
-    int64_t object,
-    std::vector<SerializedVar>* props,
-    SerializedVarOutParam exception) {
-  if (!ValidateUserData(ppp_class, object, &exception))
-    return;
-  NOTIMPLEMENTED();
-  // TODO(brettw) implement this.
-}
-
-void PPP_Class_Proxy::OnMsgSetProperty(int64_t ppp_class,
-                                       int64_t object,
-                                       SerializedVarReceiveInput property,
-                                       SerializedVarReceiveInput value,
-                                       SerializedVarOutParam exception) {
-  if (!ValidateUserData(ppp_class, object, &exception))
-    return;
-  CallWhileUnlocked(ToPPPClass(ppp_class)->SetProperty,
-      ToUserData(object), property.Get(dispatcher()), value.Get(dispatcher()),
-      exception.OutParam(dispatcher()));
-}
-
-void PPP_Class_Proxy::OnMsgRemoveProperty(int64_t ppp_class,
-                                          int64_t object,
-                                          SerializedVarReceiveInput property,
-                                          SerializedVarOutParam exception) {
-  if (!ValidateUserData(ppp_class, object, &exception))
-    return;
-  CallWhileUnlocked(ToPPPClass(ppp_class)->RemoveProperty,
-      ToUserData(object), property.Get(dispatcher()),
-      exception.OutParam(dispatcher()));
-}
-
-void PPP_Class_Proxy::OnMsgCall(int64_t ppp_class,
-                                int64_t object,
-                                SerializedVarReceiveInput method_name,
-                                SerializedVarVectorReceiveInput arg_vector,
-                                SerializedVarOutParam exception,
-                                SerializedVarReturnValue result) {
-  if (!ValidateUserData(ppp_class, object, &exception))
-    return;
-  uint32_t arg_count = 0;
-  PP_Var* args = arg_vector.Get(dispatcher(), &arg_count);
-  result.Return(dispatcher(), CallWhileUnlocked(ToPPPClass(ppp_class)->Call,
-      ToUserData(object), method_name.Get(dispatcher()),
-      arg_count, args, exception.OutParam(dispatcher())));
-}
-
-void PPP_Class_Proxy::OnMsgConstruct(int64_t ppp_class,
-                                     int64_t object,
-                                     SerializedVarVectorReceiveInput arg_vector,
-                                     SerializedVarOutParam exception,
-                                     SerializedVarReturnValue result) {
-  if (!ValidateUserData(ppp_class, object, &exception))
-    return;
-  uint32_t arg_count = 0;
-  PP_Var* args = arg_vector.Get(dispatcher(), &arg_count);
-  result.Return(dispatcher(), CallWhileUnlocked(
-      ToPPPClass(ppp_class)->Construct,
-      ToUserData(object), arg_count, args, exception.OutParam(dispatcher())));
-}
-
-void PPP_Class_Proxy::OnMsgDeallocate(int64_t ppp_class, int64_t object) {
-  if (!ValidateUserData(ppp_class, object, NULL))
-    return;
-  PluginGlobals::Get()->plugin_var_tracker()->PluginImplementedObjectDestroyed(
-      ToUserData(object));
-  CallWhileUnlocked(ToPPPClass(ppp_class)->Deallocate, ToUserData(object));
-}
-
-bool PPP_Class_Proxy::ValidateUserData(int64_t ppp_class,
-                                       int64_t class_data,
-                                       SerializedVarOutParam* exception) {
-  if (!PluginGlobals::Get()->plugin_var_tracker()->ValidatePluginObjectCall(
-          ToPPPClass(ppp_class), ToUserData(class_data))) {
-    // Set the exception. This is so the caller will know about the error and
-    // also that we won't assert that somebody forgot to call OutParam on the
-    // output parameter. Although this exception of "1" won't be very useful
-    // this shouldn't happen in normal usage, only when the renderer is being
-    // malicious.
-    if (exception)
-      *exception->OutParam(dispatcher()) = PP_MakeInt32(1);
-    return false;
-  }
-  return true;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppp_class_proxy.h b/proxy/ppp_class_proxy.h
deleted file mode 100644
index 09bcbc2..0000000
--- a/proxy/ppp_class_proxy.h
+++ /dev/null
@@ -1,111 +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_PROXY_PPP_CLASS_PROXY_H_
-#define PPAPI_PROXY_PPP_CLASS_PROXY_H_
-
-#include <stdint.h>
-
-#include <vector>
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/proxy/interface_proxy.h"
-
-struct PPB_Var_Deprecated;
-
-namespace ppapi {
-namespace proxy {
-
-class SerializedVar;
-class SerializedVarReceiveInput;
-class SerializedVarVectorReceiveInput;
-class SerializedVarOutParam;
-class SerializedVarReturnValue;
-
-class PPP_Class_Proxy : public InterfaceProxy {
- public:
-  // PPP_Class isn't a normal interface that you can query for, so this
-  // constructor doesn't take an interface pointer.
-  explicit PPP_Class_Proxy(Dispatcher* dispatcher);
-
-  PPP_Class_Proxy(const PPP_Class_Proxy&) = delete;
-  PPP_Class_Proxy& operator=(const PPP_Class_Proxy&) = delete;
-
-  ~PPP_Class_Proxy() override;
-
-  // Factory function used for registration (normal code can just use the
-  // constructor).
-  static InterfaceProxy* Create(Dispatcher* dispatcher);
-
-  // Creates a proxied object in the browser process. This takes the browser's
-  // PPB_Var_Deprecated interface to use to create the object. The class and
-  static PP_Var CreateProxiedObject(const PPB_Var_Deprecated* var,
-                                    Dispatcher* dispatcher,
-                                    PP_Instance instance_id,
-                                    int64_t ppp_class,
-                                    int64_t class_data);
-
-  static PP_Bool IsInstanceOf(const PPB_Var_Deprecated* ppb_var_impl,
-                              const PP_Var& var,
-                              int64_t ppp_class,
-                              int64_t* ppp_class_data);
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
- private:
-  // IPC message handlers.
-  void OnMsgHasProperty(int64_t ppp_class,
-                        int64_t object,
-                        SerializedVarReceiveInput property,
-                        SerializedVarOutParam exception,
-                        bool* result);
-  void OnMsgHasMethod(int64_t ppp_class,
-                      int64_t object,
-                      SerializedVarReceiveInput property,
-                      SerializedVarOutParam exception,
-                      bool* result);
-  void OnMsgGetProperty(int64_t ppp_class,
-                        int64_t object,
-                        SerializedVarReceiveInput property,
-                        SerializedVarOutParam exception,
-                        SerializedVarReturnValue result);
-  void OnMsgEnumerateProperties(int64_t ppp_class,
-                                int64_t object,
-                                std::vector<SerializedVar>* props,
-                                SerializedVarOutParam exception);
-  void OnMsgSetProperty(int64_t ppp_class,
-                        int64_t object,
-                        SerializedVarReceiveInput property,
-                        SerializedVarReceiveInput value,
-                        SerializedVarOutParam exception);
-  void OnMsgRemoveProperty(int64_t ppp_class,
-                           int64_t object,
-                           SerializedVarReceiveInput property,
-                           SerializedVarOutParam exception);
-  void OnMsgCall(int64_t ppp_class,
-                 int64_t object,
-                 SerializedVarReceiveInput method_name,
-                 SerializedVarVectorReceiveInput arg_vector,
-                 SerializedVarOutParam exception,
-                 SerializedVarReturnValue result);
-  void OnMsgConstruct(int64_t ppp_class,
-                      int64_t object,
-                      SerializedVarVectorReceiveInput arg_vector,
-                      SerializedVarOutParam exception,
-                      SerializedVarReturnValue result);
-  void OnMsgDeallocate(int64_t ppp_class, int64_t object);
-
-  // Returns true if the given class/data points to a plugin-implemented
-  // object. On failure, the exception, if non-NULL, will also be set.
-  bool ValidateUserData(int64_t ppp_class,
-                        int64_t class_data,
-                        SerializedVarOutParam* exception);
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPP_CLASS_PROXY_H_
diff --git a/proxy/ppp_graphics_3d_proxy.cc b/proxy/ppp_graphics_3d_proxy.cc
deleted file mode 100644
index d152629..0000000
--- a/proxy/ppp_graphics_3d_proxy.cc
+++ /dev/null
@@ -1,71 +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/proxy/ppp_graphics_3d_proxy.h"
-
-#include "build/build_config.h"
-#include "ppapi/c/ppp_graphics_3d.h"
-#include "ppapi/proxy/host_dispatcher.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-#if !BUILDFLAG(IS_NACL)
-void ContextLost(PP_Instance instance) {
-  HostDispatcher::GetForInstance(instance)->Send(
-      new PpapiMsg_PPPGraphics3D_ContextLost(API_ID_PPP_GRAPHICS_3D, instance));
-}
-
-static const PPP_Graphics3D graphics_3d_interface = {
-  &ContextLost
-};
-#else
-// The NaCl plugin doesn't need the host side interface - stub it out.
-static const PPP_Graphics3D graphics_3d_interface = {};
-#endif  // !BUILDFLAG(IS_NACL)
-
-}  // namespace
-
-PPP_Graphics3D_Proxy::PPP_Graphics3D_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher),
-      ppp_graphics_3d_impl_(NULL) {
-  if (dispatcher->IsPlugin()) {
-    ppp_graphics_3d_impl_ = static_cast<const PPP_Graphics3D*>(
-        dispatcher->local_get_interface()(PPP_GRAPHICS_3D_INTERFACE));
-  }
-}
-
-PPP_Graphics3D_Proxy::~PPP_Graphics3D_Proxy() {
-}
-
-// static
-const PPP_Graphics3D* PPP_Graphics3D_Proxy::GetProxyInterface() {
-  return &graphics_3d_interface;
-}
-
-bool PPP_Graphics3D_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  if (!dispatcher()->IsPlugin())
-    return false;
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPP_Graphics3D_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPGraphics3D_ContextLost,
-                        OnMsgContextLost)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-void PPP_Graphics3D_Proxy::OnMsgContextLost(PP_Instance instance) {
-  if (ppp_graphics_3d_impl_)
-    CallWhileUnlocked(ppp_graphics_3d_impl_->Graphics3DContextLost, instance);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppp_graphics_3d_proxy.h b/proxy/ppp_graphics_3d_proxy.h
deleted file mode 100644
index 4e9a2f3..0000000
--- a/proxy/ppp_graphics_3d_proxy.h
+++ /dev/null
@@ -1,43 +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_PROXY_PPP_GRAPHICS_3D_PROXY_H_
-#define PPAPI_PROXY_PPP_GRAPHICS_3D_PROXY_H_
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/ppp_graphics_3d.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/shared_impl/host_resource.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPP_Graphics3D_Proxy : public InterfaceProxy {
- public:
-  explicit PPP_Graphics3D_Proxy(Dispatcher* dispatcher);
-
-  PPP_Graphics3D_Proxy(const PPP_Graphics3D_Proxy&) = delete;
-  PPP_Graphics3D_Proxy& operator=(const PPP_Graphics3D_Proxy&) = delete;
-
-  ~PPP_Graphics3D_Proxy() override;
-
-  static const PPP_Graphics3D* GetProxyInterface();
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
- private:
-  // Message handlers.
-  void OnMsgContextLost(PP_Instance instance);
-
-  // When this proxy is in the plugin side, this value caches the interface
-  // pointer so we don't have to retrieve it from the dispatcher each time.
-  // In the host, this value is always NULL.
-  const PPP_Graphics3D* ppp_graphics_3d_impl_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPP_GRAPHICS_3D_PROXY_H_
diff --git a/proxy/ppp_input_event_proxy.cc b/proxy/ppp_input_event_proxy.cc
deleted file mode 100644
index 0914bcc..0000000
--- a/proxy/ppp_input_event_proxy.cc
+++ /dev/null
@@ -1,108 +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/proxy/ppp_input_event_proxy.h"
-
-#include "base/check.h"
-#include "build/build_config.h"
-#include "ppapi/c/ppp_input_event.h"
-#include "ppapi/proxy/host_dispatcher.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/ppb_input_event_shared.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_input_event_api.h"
-
-using ppapi::thunk::EnterResourceNoLock;
-using ppapi::thunk::PPB_InputEvent_API;
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-#if !BUILDFLAG(IS_NACL)
-PP_Bool HandleInputEvent(PP_Instance instance, PP_Resource input_event) {
-  EnterResourceNoLock<PPB_InputEvent_API> enter(input_event, false);
-  CHECK(!enter.failed());
-  const InputEventData& data = enter.object()->GetInputEventData();
-  HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
-  CHECK(dispatcher);
-
-  // Need to send different messages depending on whether filtering is needed.
-  PP_Bool result = PP_FALSE;
-  if (data.is_filtered) {
-    dispatcher->Send(new PpapiMsg_PPPInputEvent_HandleFilteredInputEvent(
-        API_ID_PPP_INPUT_EVENT, instance, data, &result));
-  } else {
-    dispatcher->Send(new PpapiMsg_PPPInputEvent_HandleInputEvent(
-        API_ID_PPP_INPUT_EVENT, instance, data));
-  }
-  return result;
-}
-
-static const PPP_InputEvent input_event_interface = {
-  &HandleInputEvent
-};
-#else
-// The NaCl plugin doesn't need the host side interface - stub it out.
-static const PPP_InputEvent input_event_interface = {};
-#endif  // !BUILDFLAG(IS_NACL)
-
-}  // namespace
-
-PPP_InputEvent_Proxy::PPP_InputEvent_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher),
-      ppp_input_event_impl_(NULL) {
-  if (dispatcher->IsPlugin()) {
-    ppp_input_event_impl_ = static_cast<const PPP_InputEvent*>(
-        dispatcher->local_get_interface()(PPP_INPUT_EVENT_INTERFACE));
-  }
-}
-
-PPP_InputEvent_Proxy::~PPP_InputEvent_Proxy() {
-}
-
-// static
-const PPP_InputEvent* PPP_InputEvent_Proxy::GetProxyInterface() {
-  return &input_event_interface;
-}
-
-bool PPP_InputEvent_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  if (!dispatcher()->IsPlugin())
-    return false;
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPP_InputEvent_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPInputEvent_HandleInputEvent,
-                        OnMsgHandleInputEvent)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPInputEvent_HandleFilteredInputEvent,
-                        OnMsgHandleFilteredInputEvent)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-void PPP_InputEvent_Proxy::OnMsgHandleInputEvent(PP_Instance instance,
-                                                 const InputEventData& data) {
-  scoped_refptr<PPB_InputEvent_Shared> resource(new PPB_InputEvent_Shared(
-      OBJECT_IS_PROXY, instance, data));
-  CallWhileUnlocked(ppp_input_event_impl_->HandleInputEvent,
-                    instance,
-                    resource->pp_resource());
-}
-
-void PPP_InputEvent_Proxy::OnMsgHandleFilteredInputEvent(
-    PP_Instance instance,
-    const InputEventData& data,
-    PP_Bool* result) {
-  scoped_refptr<PPB_InputEvent_Shared> resource(new PPB_InputEvent_Shared(
-      OBJECT_IS_PROXY, instance, data));
-  *result = CallWhileUnlocked(ppp_input_event_impl_->HandleInputEvent,
-                              instance,
-                              resource->pp_resource());
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppp_input_event_proxy.h b/proxy/ppp_input_event_proxy.h
deleted file mode 100644
index e1e1b7c..0000000
--- a/proxy/ppp_input_event_proxy.h
+++ /dev/null
@@ -1,49 +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_PROXY_PPP_INPUT_EVENT_PROXY_H_
-#define PPAPI_PROXY_PPP_INPUT_EVENT_PROXY_H_
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/ppp_input_event.h"
-#include "ppapi/proxy/interface_proxy.h"
-
-namespace ppapi {
-
-struct InputEventData;
-
-namespace proxy {
-
-class PPP_InputEvent_Proxy : public InterfaceProxy {
- public:
-  explicit PPP_InputEvent_Proxy(Dispatcher* dispatcher);
-
-  PPP_InputEvent_Proxy(const PPP_InputEvent_Proxy&) = delete;
-  PPP_InputEvent_Proxy& operator=(const PPP_InputEvent_Proxy&) = delete;
-
-  ~PPP_InputEvent_Proxy() override;
-
-  static const PPP_InputEvent* GetProxyInterface();
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
- private:
-  // Message handlers.
-  void OnMsgHandleInputEvent(PP_Instance instance,
-                             const ppapi::InputEventData& data);
-  void OnMsgHandleFilteredInputEvent(PP_Instance instance,
-                                     const ppapi::InputEventData& data,
-                                     PP_Bool* result);
-
-  // When this proxy is in the plugin side, this value caches the interface
-  // pointer so we don't have to retrieve it from the dispatcher each time.
-  // In the host, this value is always NULL.
-  const PPP_InputEvent* ppp_input_event_impl_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPP_INPUT_EVENT_PROXY_H_
diff --git a/proxy/ppp_instance_private_proxy.cc b/proxy/ppp_instance_private_proxy.cc
deleted file mode 100644
index 9f7278f..0000000
--- a/proxy/ppp_instance_private_proxy.cc
+++ /dev/null
@@ -1,78 +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/proxy/ppp_instance_private_proxy.h"
-
-#include <algorithm>
-
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/private/ppp_instance_private.h"
-#include "ppapi/proxy/host_dispatcher.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-PP_Var GetInstanceObject(PP_Instance instance) {
-  Dispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
-  if (!dispatcher->permissions().HasPermission(PERMISSION_PRIVATE))
-    return PP_MakeUndefined();
-
-  ReceiveSerializedVarReturnValue result;
-  dispatcher->Send(new PpapiMsg_PPPInstancePrivate_GetInstanceObject(
-      API_ID_PPP_INSTANCE_PRIVATE, instance, &result));
-  return result.Return(dispatcher);
-}
-
-static const PPP_Instance_Private instance_private_interface = {
-  &GetInstanceObject
-};
-
-}  // namespace
-
-PPP_Instance_Private_Proxy::PPP_Instance_Private_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher),
-      ppp_instance_private_impl_(NULL) {
-  if (dispatcher->IsPlugin()) {
-    ppp_instance_private_impl_ = static_cast<const PPP_Instance_Private*>(
-        dispatcher->local_get_interface()(PPP_INSTANCE_PRIVATE_INTERFACE));
-  }
-}
-
-PPP_Instance_Private_Proxy::~PPP_Instance_Private_Proxy() {
-}
-
-// static
-const PPP_Instance_Private* PPP_Instance_Private_Proxy::GetProxyInterface() {
-  return &instance_private_interface;
-}
-
-bool PPP_Instance_Private_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  if (!dispatcher()->IsPlugin())
-    return false;
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPP_Instance_Private_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPInstancePrivate_GetInstanceObject,
-                        OnMsgGetInstanceObject)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-void PPP_Instance_Private_Proxy::OnMsgGetInstanceObject(
-    PP_Instance instance,
-    SerializedVarReturnValue result) {
-  result.Return(dispatcher(),
-                CallWhileUnlocked(ppp_instance_private_impl_->GetInstanceObject,
-                                  instance));
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppp_instance_private_proxy.h b/proxy/ppp_instance_private_proxy.h
deleted file mode 100644
index 6723f05..0000000
--- a/proxy/ppp_instance_private_proxy.h
+++ /dev/null
@@ -1,49 +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_PROXY_PPP_INSTANCE_PRIVATE_PROXY_H_
-#define PPAPI_PROXY_PPP_INSTANCE_PRIVATE_PROXY_H_
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/private/ppp_instance_private.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/shared_impl/host_resource.h"
-
-namespace ppapi {
-namespace proxy {
-
-class SerializedVarReturnValue;
-
-class PPP_Instance_Private_Proxy : public InterfaceProxy {
- public:
-  explicit PPP_Instance_Private_Proxy(Dispatcher* dispatcher);
-
-  PPP_Instance_Private_Proxy(const PPP_Instance_Private_Proxy&) = delete;
-  PPP_Instance_Private_Proxy& operator=(const PPP_Instance_Private_Proxy&) =
-      delete;
-
-  ~PPP_Instance_Private_Proxy() override;
-
-  static const PPP_Instance_Private* GetProxyInterface();
-
- private:
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
-  // Message handlers.
-  void OnMsgGetInstanceObject(PP_Instance instance,
-                              SerializedVarReturnValue result);
-
-  // When this proxy is in the plugin side, this value caches the interface
-  // pointer so we don't have to retrieve it from the dispatcher each time.
-  // In the host, this value is always NULL.
-  const PPP_Instance_Private* ppp_instance_private_impl_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPP_INSTANCE_PRIVATE_PROXY_H_
diff --git a/proxy/ppp_instance_proxy.cc b/proxy/ppp_instance_proxy.cc
deleted file mode 100644
index dc40207..0000000
--- a/proxy/ppp_instance_proxy.cc
+++ /dev/null
@@ -1,251 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/proxy/ppp_instance_proxy.h"
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <algorithm>
-
-#include "base/check.h"
-#include "base/functional/bind.h"
-#include "build/build_config.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/ppb_core.h"
-#include "ppapi/c/ppb_fullscreen.h"
-#include "ppapi/c/ppp_instance.h"
-#include "ppapi/proxy/host_dispatcher.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/plugin_proxy_delegate.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/url_loader_resource.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/ppb_view_shared.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/shared_impl/scoped_pp_resource.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_view_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-using thunk::EnterInstanceAPINoLock;
-using thunk::EnterInstanceNoLock;
-using thunk::EnterResourceNoLock;
-using thunk::PPB_Instance_API;
-using thunk::PPB_View_API;
-
-namespace {
-
-#if !BUILDFLAG(IS_NACL)
-PP_Bool DidCreate(PP_Instance instance,
-                  uint32_t argc,
-                  const char* argn[],
-                  const char* argv[]) {
-  std::vector<std::string> argn_vect;
-  std::vector<std::string> argv_vect;
-  for (uint32_t i = 0; i < argc; i++) {
-    argn_vect.push_back(std::string(argn[i]));
-    argv_vect.push_back(std::string(argv[i]));
-  }
-
-  PP_Bool result = PP_FALSE;
-  HostDispatcher::GetForInstance(instance)->Send(
-      new PpapiMsg_PPPInstance_DidCreate(API_ID_PPP_INSTANCE, instance,
-                                         argn_vect, argv_vect, &result));
-  return result;
-}
-
-void DidDestroy(PP_Instance instance) {
-  HostDispatcher::GetForInstance(instance)->Send(
-      new PpapiMsg_PPPInstance_DidDestroy(API_ID_PPP_INSTANCE, instance));
-}
-
-void DidChangeView(PP_Instance instance, PP_Resource view_resource) {
-  HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
-
-  EnterResourceNoLock<PPB_View_API> enter_view(view_resource, false);
-  CHECK(!enter_view.failed());
-
-  EnterInstanceNoLock enter_instance(instance);
-  dispatcher->Send(new PpapiMsg_PPPInstance_DidChangeView(
-      API_ID_PPP_INSTANCE, instance, enter_view.object()->GetData(),
-      /*flash_fullscreen=*/PP_FALSE));
-}
-
-void DidChangeFocus(PP_Instance instance, PP_Bool has_focus) {
-  HostDispatcher::GetForInstance(instance)->Send(
-      new PpapiMsg_PPPInstance_DidChangeFocus(API_ID_PPP_INSTANCE,
-                                              instance, has_focus));
-}
-
-PP_Bool HandleDocumentLoad(PP_Instance instance, PP_Resource url_loader) {
-  // This should never get called. Out-of-process document loads are handled
-  // specially.
-  NOTREACHED();
-}
-
-static const PPP_Instance_1_1 instance_interface = {
-  &DidCreate,
-  &DidDestroy,
-  &DidChangeView,
-  &DidChangeFocus,
-  &HandleDocumentLoad
-};
-#endif  // !BUILDFLAG(IS_NACL)
-
-}  // namespace
-
-PPP_Instance_Proxy::PPP_Instance_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher) {
-  if (dispatcher->IsPlugin()) {
-    // The PPP_Instance proxy works by always proxying the 1.1 version of the
-    // interface, and then detecting in the plugin process which one to use.
-    // PPP_Instance_Combined handles dispatching to whatever interface is
-    // supported.
-    //
-    // This means that if the plugin supports either 1.0 or 1.1 version of
-    // the interface, we want to say it supports the 1.1 version since we'll
-    // convert it here. This magic conversion code is hardcoded into
-    // PluginDispatcher::OnMsgSupportsInterface.
-    combined_interface_.reset(PPP_Instance_Combined::Create(
-        base::BindRepeating(dispatcher->local_get_interface())));
-  }
-}
-
-PPP_Instance_Proxy::~PPP_Instance_Proxy() {
-}
-
-#if !BUILDFLAG(IS_NACL)
-// static
-const PPP_Instance* PPP_Instance_Proxy::GetInstanceInterface() {
-  return &instance_interface;
-}
-#endif  // !BUILDFLAG(IS_NACL)
-
-bool PPP_Instance_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  if (!dispatcher()->IsPlugin())
-    return false;
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPP_Instance_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPInstance_DidCreate,
-                        OnPluginMsgDidCreate)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPInstance_DidDestroy,
-                        OnPluginMsgDidDestroy)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPInstance_DidChangeView,
-                        OnPluginMsgDidChangeView)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPInstance_DidChangeFocus,
-                        OnPluginMsgDidChangeFocus)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPInstance_HandleDocumentLoad,
-                        OnPluginMsgHandleDocumentLoad)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-void PPP_Instance_Proxy::OnPluginMsgDidCreate(
-    PP_Instance instance,
-    const std::vector<std::string>& argn,
-    const std::vector<std::string>& argv,
-    PP_Bool* result) {
-  *result = PP_FALSE;
-  if (argn.size() != argv.size())
-    return;
-
-  // Set up the routing associating this new instance with the dispatcher we
-  // just got the message from. This must be done before calling into the
-  // plugin so it can in turn call PPAPI functions.
-  PluginDispatcher* plugin_dispatcher =
-      static_cast<PluginDispatcher*>(dispatcher());
-  plugin_dispatcher->DidCreateInstance(instance);
-  PpapiGlobals::Get()->GetResourceTracker()->DidCreateInstance(instance);
-
-  // Make sure the arrays always have at least one element so we can take the
-  // address below.
-  std::vector<const char*> argn_array(
-      std::max(static_cast<size_t>(1), argn.size()));
-  std::vector<const char*> argv_array(
-      std::max(static_cast<size_t>(1), argn.size()));
-  for (size_t i = 0; i < argn.size(); i++) {
-    argn_array[i] = argn[i].c_str();
-    argv_array[i] = argv[i].c_str();
-  }
-
-  DCHECK(combined_interface_.get());
-  *result = combined_interface_->DidCreate(instance,
-                                           static_cast<uint32_t>(argn.size()),
-                                           &argn_array[0], &argv_array[0]);
-}
-
-void PPP_Instance_Proxy::OnPluginMsgDidDestroy(PP_Instance instance) {
-  combined_interface_->DidDestroy(instance);
-
-  PpapiGlobals* globals = PpapiGlobals::Get();
-  globals->GetResourceTracker()->DidDeleteInstance(instance);
-  globals->GetVarTracker()->DidDeleteInstance(instance);
-
-  static_cast<PluginDispatcher*>(dispatcher())->DidDestroyInstance(instance);
-}
-
-void PPP_Instance_Proxy::OnPluginMsgDidChangeView(
-    PP_Instance instance,
-    const ViewData& new_data,
-    PP_Bool /*flash_fullscreen*/) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return;
-  InstanceData* data = dispatcher->GetInstanceData(instance);
-  if (!data)
-    return;
-  data->view = new_data;
-
-  ScopedPPResource resource(
-      ScopedPPResource::PassRef(),
-      (new PPB_View_Shared(OBJECT_IS_PROXY,
-                           instance, new_data))->GetReference());
-
-  combined_interface_->DidChangeView(instance, resource,
-                                     &new_data.rect,
-                                     &new_data.clip_rect);
-}
-
-void PPP_Instance_Proxy::OnPluginMsgDidChangeFocus(PP_Instance instance,
-                                                   PP_Bool has_focus) {
-  combined_interface_->DidChangeFocus(instance, has_focus);
-}
-
-void PPP_Instance_Proxy::OnPluginMsgHandleDocumentLoad(
-    PP_Instance instance,
-    int pending_loader_host_id,
-    const URLResponseInfoData& data) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return;
-  Connection connection(PluginGlobals::Get()->GetBrowserSender(),
-                        dispatcher->sender());
-
-  scoped_refptr<URLLoaderResource> loader_resource(
-      new URLLoaderResource(connection, instance,
-                            pending_loader_host_id, data));
-
-  PP_Resource loader_pp_resource = loader_resource->GetReference();
-  if (!combined_interface_->HandleDocumentLoad(instance, loader_pp_resource))
-    loader_resource->Close();
-  // We don't pass a ref into the plugin, if it wants one, it will have taken
-  // an additional one.
-  PpapiGlobals::Get()->GetResourceTracker()->ReleaseResource(
-      loader_pp_resource);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppp_instance_proxy.h b/proxy/ppp_instance_proxy.h
deleted file mode 100644
index bac50b1..0000000
--- a/proxy/ppp_instance_proxy.h
+++ /dev/null
@@ -1,61 +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_PROXY_PPP_INSTANCE_PROXY_H_
-#define PPAPI_PROXY_PPP_INSTANCE_PROXY_H_
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/shared_impl/host_resource.h"
-#include "ppapi/shared_impl/ppp_instance_combined.h"
-
-namespace ppapi {
-
-struct URLResponseInfoData;
-struct ViewData;
-
-namespace proxy {
-
-class PPP_Instance_Proxy : public InterfaceProxy {
- public:
-  explicit PPP_Instance_Proxy(Dispatcher* dispatcher);
-  ~PPP_Instance_Proxy() override;
-
-  static const PPP_Instance* GetInstanceInterface();
-
-  PPP_Instance_Combined* ppp_instance_target() const {
-    return combined_interface_.get();
-  }
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
- private:
-  // Message handlers.
-  void OnPluginMsgDidCreate(PP_Instance instance,
-                            const std::vector<std::string>& argn,
-                            const std::vector<std::string>& argv,
-                            PP_Bool* result);
-  void OnPluginMsgDidDestroy(PP_Instance instance);
-  void OnPluginMsgDidChangeView(PP_Instance instance,
-                                const ViewData& new_data,
-                                PP_Bool flash_fullscreen);
-  void OnPluginMsgDidChangeFocus(PP_Instance instance, PP_Bool has_focus);
-  void OnPluginMsgHandleDocumentLoad(PP_Instance instance,
-                                     int pending_loader_host_id,
-                                     const URLResponseInfoData& data);
-
-  std::unique_ptr<PPP_Instance_Combined> combined_interface_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPP_INSTANCE_PROXY_H_
diff --git a/proxy/ppp_messaging_proxy.cc b/proxy/ppp_messaging_proxy.cc
deleted file mode 100644
index 954a441..0000000
--- a/proxy/ppp_messaging_proxy.cc
+++ /dev/null
@@ -1,141 +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/proxy/ppp_messaging_proxy.h"
-
-#include <algorithm>
-
-#include "base/memory/ptr_util.h"
-#include "ppapi/c/ppp_messaging.h"
-#include "ppapi/proxy/host_dispatcher.h"
-#include "ppapi/proxy/message_handler.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/plugin_var_tracker.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/serialized_var.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/scoped_pp_var.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-MessageHandler* GetMessageHandler(Dispatcher* dispatcher,
-                                  PP_Instance instance) {
-  if (!dispatcher || !dispatcher->IsPlugin()) {
-    NOTREACHED();
-  }
-  PluginDispatcher* plugin_dispatcher =
-      static_cast<PluginDispatcher*>(dispatcher);
-  InstanceData* instance_data = plugin_dispatcher->GetInstanceData(instance);
-  if (!instance_data)
-    return NULL;
-
-  return instance_data->message_handler.get();
-}
-
-void ResetMessageHandler(Dispatcher* dispatcher, PP_Instance instance) {
-  if (!dispatcher || !dispatcher->IsPlugin()) {
-    NOTREACHED();
-  }
-  PluginDispatcher* plugin_dispatcher =
-      static_cast<PluginDispatcher*>(dispatcher);
-  InstanceData* instance_data = plugin_dispatcher->GetInstanceData(instance);
-  if (!instance_data)
-    return;
-
-  instance_data->message_handler.reset();
-}
-
-}  // namespace
-
-PPP_Messaging_Proxy::PPP_Messaging_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher),
-      ppp_messaging_impl_(NULL) {
-  if (dispatcher->IsPlugin()) {
-    ppp_messaging_impl_ = static_cast<const PPP_Messaging*>(
-        dispatcher->local_get_interface()(PPP_MESSAGING_INTERFACE));
-  }
-}
-
-PPP_Messaging_Proxy::~PPP_Messaging_Proxy() {
-}
-
-bool PPP_Messaging_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  if (!dispatcher()->IsPlugin())
-    return false;
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPP_Messaging_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPMessaging_HandleMessage,
-                        OnMsgHandleMessage)
-    IPC_MESSAGE_HANDLER_DELAY_REPLY(
-        PpapiMsg_PPPMessageHandler_HandleBlockingMessage,
-        OnMsgHandleBlockingMessage)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-void PPP_Messaging_Proxy::OnMsgHandleMessage(
-    PP_Instance instance, SerializedVarReceiveInput message_data) {
-  PP_Var received_var(message_data.GetForInstance(dispatcher(), instance));
-  MessageHandler* message_handler = GetMessageHandler(dispatcher(), instance);
-  if (message_handler) {
-    if (message_handler->LoopIsValid()) {
-      message_handler->HandleMessage(ScopedPPVar(received_var));
-      return;
-    } else {
-      // If the MessageHandler's loop has been quit, then we should treat it as
-      // though it has been unregistered and start sending messages to the
-      // default handler. This might mean the plugin has lost messages, but
-      // there's not really anything sane we can do about it. They should have
-      // used UnregisterMessageHandler.
-      ResetMessageHandler(dispatcher(), instance);
-    }
-  }
-  // If we reach this point, then there's no message handler registered, so
-  // we send to the default PPP_Messaging one for the instance.
-
-  // SerializedVarReceiveInput will decrement the reference count, but we want
-  // to give the recipient a reference in the legacy API.
-  PpapiGlobals::Get()->GetVarTracker()->AddRefVar(received_var);
-  CallWhileUnlocked(ppp_messaging_impl_->HandleMessage,
-                    instance,
-                    received_var);
-}
-
-void PPP_Messaging_Proxy::OnMsgHandleBlockingMessage(
-    PP_Instance instance,
-    SerializedVarReceiveInput message_data,
-    IPC::Message* reply_msg) {
-  ScopedPPVar received_var(message_data.GetForInstance(dispatcher(), instance));
-  MessageHandler* message_handler = GetMessageHandler(dispatcher(), instance);
-  if (message_handler) {
-    if (message_handler->LoopIsValid()) {
-      message_handler->HandleBlockingMessage(received_var,
-                                             base::WrapUnique(reply_msg));
-      return;
-    } else {
-      // If the MessageHandler's loop has been quit, then we should treat it as
-      // though it has been unregistered. Also see the note for PostMessage.
-      ResetMessageHandler(dispatcher(), instance);
-    }
-  }
-  // We have no handler, but we still need to respond to unblock the renderer
-  // and inform the JavaScript caller.
-  PpapiMsg_PPPMessageHandler_HandleBlockingMessage::WriteReplyParams(
-      reply_msg,
-      SerializedVarReturnValue::Convert(dispatcher(), PP_MakeUndefined()),
-      false /* was_handled */);
-  dispatcher()->Send(reply_msg);
-}
-
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppp_messaging_proxy.h b/proxy/ppp_messaging_proxy.h
deleted file mode 100644
index 0fff556..0000000
--- a/proxy/ppp_messaging_proxy.h
+++ /dev/null
@@ -1,47 +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_PROXY_PPP_MESSAGING_PROXY_H_
-#define PPAPI_PROXY_PPP_MESSAGING_PROXY_H_
-
-#include "base/compiler_specific.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/ppp_messaging.h"
-#include "ppapi/proxy/interface_proxy.h"
-
-namespace ppapi {
-namespace proxy {
-
-class SerializedVarReceiveInput;
-
-class PPP_Messaging_Proxy : public InterfaceProxy {
- public:
-  PPP_Messaging_Proxy(Dispatcher* dispatcher);
-
-  PPP_Messaging_Proxy(const PPP_Messaging_Proxy&) = delete;
-  PPP_Messaging_Proxy& operator=(const PPP_Messaging_Proxy&) = delete;
-
-  ~PPP_Messaging_Proxy() override;
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
- private:
-  // Message handlers.
-  void OnMsgHandleMessage(PP_Instance instance,
-                          SerializedVarReceiveInput data);
-  void OnMsgHandleBlockingMessage(PP_Instance instance,
-                                  SerializedVarReceiveInput data,
-                                  IPC::Message* reply);
-
-  // When this proxy is in the plugin side, this value caches the interface
-  // pointer so we don't have to retrieve it from the dispatcher each time.
-  // In the host, this value is always NULL.
-  const PPP_Messaging* ppp_messaging_impl_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPP_MESSAGING_PROXY_H_
diff --git a/proxy/ppp_messaging_proxy_perftest.cc b/proxy/ppp_messaging_proxy_perftest.cc
deleted file mode 100644
index cca172f..0000000
--- a/proxy/ppp_messaging_proxy_perftest.cc
+++ /dev/null
@@ -1,95 +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 "base/command_line.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/test/perf_time_logger.h"
-#include "ppapi/c/ppp_messaging.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/ppapi_proxy_test.h"
-#include "ppapi/proxy/serialized_var.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-namespace ppapi {
-namespace proxy {
-namespace {
-
-base::WaitableEvent handle_message_called(
-    base::WaitableEvent::ResetPolicy::AUTOMATIC,
-    base::WaitableEvent::InitialState::NOT_SIGNALED);
-
-void HandleMessage(PP_Instance /* instance */, PP_Var message_data) {
-  ppapi::ProxyAutoLock lock;
-  StringVar* string_var = StringVar::FromPPVar(message_data);
-  DCHECK(string_var);
-  // Retrieve the string to make sure the proxy can't "optimize away" sending
-  // the actual contents of the string (e.g., by doing a lazy retrieve or
-  // something). Note that this test is for performance only, and assumes
-  // other tests check for correctness.
-  std::string s = string_var->value();
-  // Do something simple with the string so the compiler won't complain.
-  if (s.length() > 0)
-    s[0] = 'a';
-  PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(message_data);
-  handle_message_called.Signal();
-}
-
-PPP_Messaging ppp_messaging_mock = {
-  &HandleMessage
-};
-
-class PppMessagingPerfTest : public TwoWayTest {
- public:
-  PppMessagingPerfTest() : TwoWayTest(TwoWayTest::TEST_PPP_INTERFACE) {
-    plugin().RegisterTestInterface(PPP_MESSAGING_INTERFACE,
-                                   &ppp_messaging_mock);
-  }
-};
-
-}  // namespace
-
-// Tests the performance of sending strings through the proxy.
-TEST_F(PppMessagingPerfTest, StringPerformance) {
-  const PP_Instance kTestInstance = pp_instance();
-  int seed = 123;
-  int string_count = 1000;
-  int max_string_size = 1000000;
-  base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
-  if (command_line) {
-    if (command_line->HasSwitch("seed")) {
-      base::StringToInt(command_line->GetSwitchValueASCII("seed"),
-                        &seed);
-    }
-    if (command_line->HasSwitch("string_count")) {
-      base::StringToInt(command_line->GetSwitchValueASCII("string_count"),
-                        &string_count);
-    }
-    if (command_line->HasSwitch("max_string_size")) {
-      base::StringToInt(command_line->GetSwitchValueASCII("max_string_size"),
-                        &max_string_size);
-    }
-  }
-  srand(seed);
-  base::PerfTimeLogger logger("PppMessagingPerfTest.StringPerformance");
-  for (int i = 0; i < string_count; ++i) {
-    const std::string test_string(rand() % max_string_size, 'a');
-    PP_Var host_string = StringVar::StringToPPVar(test_string);
-    // We don't have a host-side PPP_Messaging interface; just send the message
-    // directly like the proxy does.
-    host().host_dispatcher()->Send(new PpapiMsg_PPPMessaging_HandleMessage(
-        ppapi::API_ID_PPP_MESSAGING,
-        kTestInstance,
-        ppapi::proxy::SerializedVarSendInput(host().host_dispatcher(),
-                                             host_string)));
-    handle_message_called.Wait();
-    PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(host_string);
-  }
-}
-
-}  // namespace proxy
-}  // namespace ppapi
-
diff --git a/proxy/ppp_mouse_lock_proxy.cc b/proxy/ppp_mouse_lock_proxy.cc
deleted file mode 100644
index ca97be6..0000000
--- a/proxy/ppp_mouse_lock_proxy.cc
+++ /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/proxy/ppp_mouse_lock_proxy.h"
-
-#include "build/build_config.h"
-#include "ppapi/c/ppp_mouse_lock.h"
-#include "ppapi/proxy/host_dispatcher.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-#if !BUILDFLAG(IS_NACL)
-void MouseLockLost(PP_Instance instance) {
-  HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
-  if (!dispatcher) {
-    // The dispatcher should always be valid.
-    NOTREACHED();
-  }
-
-  dispatcher->Send(new PpapiMsg_PPPMouseLock_MouseLockLost(
-      API_ID_PPP_MOUSE_LOCK, instance));
-}
-
-static const PPP_MouseLock mouse_lock_interface = {
-  &MouseLockLost
-};
-#else
-// The NaCl plugin doesn't need the host side interface - stub it out.
-static const PPP_MouseLock mouse_lock_interface = {};
-#endif  // !BUILDFLAG(IS_NACL)
-
-}  // namespace
-
-PPP_MouseLock_Proxy::PPP_MouseLock_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher),
-      ppp_mouse_lock_impl_(NULL) {
-  if (dispatcher->IsPlugin()) {
-    ppp_mouse_lock_impl_ = static_cast<const PPP_MouseLock*>(
-        dispatcher->local_get_interface()(PPP_MOUSELOCK_INTERFACE));
-  }
-}
-
-PPP_MouseLock_Proxy::~PPP_MouseLock_Proxy() {
-}
-
-// static
-const PPP_MouseLock* PPP_MouseLock_Proxy::GetProxyInterface() {
-  return &mouse_lock_interface;
-}
-
-bool PPP_MouseLock_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  if (!dispatcher()->IsPlugin())
-    return false;
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPP_MouseLock_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPMouseLock_MouseLockLost,
-                        OnMsgMouseLockLost)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-void PPP_MouseLock_Proxy::OnMsgMouseLockLost(PP_Instance instance) {
-  if (ppp_mouse_lock_impl_)
-    CallWhileUnlocked(ppp_mouse_lock_impl_->MouseLockLost, instance);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppp_mouse_lock_proxy.h b/proxy/ppp_mouse_lock_proxy.h
deleted file mode 100644
index a061d5b..0000000
--- a/proxy/ppp_mouse_lock_proxy.h
+++ /dev/null
@@ -1,43 +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_PROXY_PPP_MOUSE_LOCK_PROXY_H_
-#define PPAPI_PROXY_PPP_MOUSE_LOCK_PROXY_H_
-
-#include "base/compiler_specific.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/ppp_mouse_lock.h"
-#include "ppapi/proxy/interface_proxy.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPP_MouseLock_Proxy : public InterfaceProxy {
- public:
-  PPP_MouseLock_Proxy(Dispatcher* dispatcher);
-
-  PPP_MouseLock_Proxy(const PPP_MouseLock_Proxy&) = delete;
-  PPP_MouseLock_Proxy& operator=(const PPP_MouseLock_Proxy&) = delete;
-
-  ~PPP_MouseLock_Proxy() override;
-
-  static const PPP_MouseLock* GetProxyInterface();
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
- private:
-  // Message handlers.
-  void OnMsgMouseLockLost(PP_Instance instance);
-
-  // When this proxy is in the plugin side, this value caches the interface
-  // pointer so we don't have to retrieve it from the dispatcher each time.
-  // In the host, this value is always NULL.
-  const PPP_MouseLock* ppp_mouse_lock_impl_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPP_MOUSE_LOCK_PROXY_H_
diff --git a/proxy/ppp_printing_proxy.cc b/proxy/ppp_printing_proxy.cc
deleted file mode 100644
index 0216dfa..0000000
--- a/proxy/ppp_printing_proxy.cc
+++ /dev/null
@@ -1,216 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/proxy/ppp_printing_proxy.h"
-
-#include <string.h>
-
-#include "base/numerics/safe_conversions.h"
-#include "build/build_config.h"
-#include "ppapi/c/dev/ppp_printing_dev.h"
-#include "ppapi/proxy/host_dispatcher.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-#if !BUILDFLAG(IS_NACL)
-bool HasPrintingPermission(PP_Instance instance) {
-  Dispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return false;
-  return dispatcher->permissions().HasPermission(PERMISSION_DEV);
-}
-
-uint32_t QuerySupportedFormats(PP_Instance instance) {
-  if (!HasPrintingPermission(instance))
-    return 0;
-  uint32_t result = 0;
-  HostDispatcher::GetForInstance(instance)->Send(
-      new PpapiMsg_PPPPrinting_QuerySupportedFormats(API_ID_PPP_PRINTING,
-                                                     instance, &result));
-  return result;
-}
-
-int32_t Begin(PP_Instance instance,
-              const PP_PrintSettings_Dev* print_settings) {
-  if (!HasPrintingPermission(instance))
-    return 0;
-
-  int32_t result = 0;
-  HostDispatcher::GetForInstance(instance)->Send(new PpapiMsg_PPPPrinting_Begin(
-      API_ID_PPP_PRINTING, instance, *print_settings, &result));
-  return result;
-}
-
-PP_Resource PrintPages(PP_Instance instance,
-                       const PP_PrintPageNumberRange_Dev* page_ranges,
-                       uint32_t page_range_count) {
-  if (!HasPrintingPermission(instance))
-    return 0;
-  std::vector<PP_PrintPageNumberRange_Dev> pages(
-      page_ranges, page_ranges + page_range_count);
-
-  HostResource result;
-  HostDispatcher::GetForInstance(instance)->Send(
-      new PpapiMsg_PPPPrinting_PrintPages(API_ID_PPP_PRINTING,
-                                          instance, pages, &result));
-
-  // Explicilty don't add a reference to the received resource here. The plugin
-  // adds a ref during creation of the resource and it will "abandon" the
-  // resource to release it, which ensures that the initial ref won't be
-  // decremented. See the comment below in OnPluginMsgPrintPages.
-
-  return result.host_resource();
-}
-
-void End(PP_Instance instance) {
-  if (!HasPrintingPermission(instance))
-    return;
-  HostDispatcher::GetForInstance(instance)->Send(
-      new PpapiMsg_PPPPrinting_End(API_ID_PPP_PRINTING, instance));
-}
-
-PP_Bool IsScalingDisabled(PP_Instance instance) {
-  if (!HasPrintingPermission(instance))
-    return PP_FALSE;
-  bool result = false;
-  HostDispatcher::GetForInstance(instance)->Send(
-      new PpapiMsg_PPPPrinting_IsScalingDisabled(API_ID_PPP_PRINTING,
-                                                 instance, &result));
-  return PP_FromBool(result);
-}
-
-const PPP_Printing_Dev ppp_printing_interface = {
-  &QuerySupportedFormats,
-  &Begin,
-  &PrintPages,
-  &End,
-  &IsScalingDisabled
-};
-#else
-// The NaCl plugin doesn't need the host side interface - stub it out.
-static const PPP_Printing_Dev ppp_printing_interface = {};
-#endif  // !BUILDFLAG(IS_NACL)
-
-}  // namespace
-
-PPP_Printing_Proxy::PPP_Printing_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher),
-      ppp_printing_impl_(NULL) {
-  if (dispatcher->IsPlugin()) {
-    ppp_printing_impl_ = static_cast<const PPP_Printing_Dev*>(
-        dispatcher->local_get_interface()(PPP_PRINTING_DEV_INTERFACE));
-  }
-}
-
-PPP_Printing_Proxy::~PPP_Printing_Proxy() {
-}
-
-// static
-const PPP_Printing_Dev* PPP_Printing_Proxy::GetProxyInterface() {
-  return &ppp_printing_interface;
-}
-
-bool PPP_Printing_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  if (!dispatcher()->IsPlugin())
-    return false;
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPP_Printing_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPPrinting_QuerySupportedFormats,
-                        OnPluginMsgQuerySupportedFormats)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPPrinting_Begin,
-                        OnPluginMsgBegin)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPPrinting_PrintPages,
-                        OnPluginMsgPrintPages)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPPrinting_End,
-                        OnPluginMsgEnd)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPPrinting_IsScalingDisabled,
-                        OnPluginMsgIsScalingDisabled)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-void PPP_Printing_Proxy::OnPluginMsgQuerySupportedFormats(PP_Instance instance,
-                                                          uint32_t* result) {
-  if (ppp_printing_impl_) {
-    *result = CallWhileUnlocked(ppp_printing_impl_->QuerySupportedFormats,
-                                instance);
-  } else {
-    *result = 0;
-  }
-}
-
-void PPP_Printing_Proxy::OnPluginMsgBegin(PP_Instance instance,
-                                          const PP_PrintSettings_Dev& settings,
-                                          int32_t* result) {
-  if (!ppp_printing_impl_) {
-    *result = 0;
-    return;
-  }
-
-  *result = CallWhileUnlocked(ppp_printing_impl_->Begin, instance, &settings);
-}
-
-void PPP_Printing_Proxy::OnPluginMsgPrintPages(
-    PP_Instance instance,
-    const std::vector<PP_PrintPageNumberRange_Dev>& pages,
-    HostResource* result) {
-  if (!ppp_printing_impl_ || pages.empty())
-    return;
-
-  PP_Resource plugin_resource = CallWhileUnlocked(
-      ppp_printing_impl_->PrintPages,
-      instance, &pages[0], base::checked_cast<uint32_t>(pages.size()));
-  ResourceTracker* resource_tracker = PpapiGlobals::Get()->GetResourceTracker();
-  Resource* resource_object = resource_tracker->GetResource(plugin_resource);
-  if (!resource_object)
-    return;
-
-  *result = resource_object->host_resource();
-
-  // Abandon the resource on the plugin side. This releases a reference to the
-  // resource and allows the plugin side of the resource (the proxy resource) to
-  // be destroyed without sending a message to the renderer notifing it that the
-  // plugin has released the resource. This used to call
-  // ResourceTracker::ReleaseResource directly which would trigger an IPC to be
-  // sent to the renderer to remove a ref to the resource. However due to
-  // arbitrary ordering of received sync/async IPCs in the renderer, this
-  // sometimes resulted in the resource being destroyed in the renderer before
-  // the renderer had a chance to add a reference to it. See crbug.com/490611.
-  static_cast<PluginResourceTracker*>(resource_tracker)
-      ->AbandonResource(plugin_resource);
-}
-
-void PPP_Printing_Proxy::OnPluginMsgEnd(PP_Instance instance) {
-  if (ppp_printing_impl_)
-    CallWhileUnlocked(ppp_printing_impl_->End, instance);
-}
-
-void PPP_Printing_Proxy::OnPluginMsgIsScalingDisabled(PP_Instance instance,
-                                                      bool* result) {
-  if (ppp_printing_impl_) {
-    *result = PP_ToBool(CallWhileUnlocked(ppp_printing_impl_->IsScalingDisabled,
-                                          instance));
-  } else {
-    *result = false;
-  }
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppp_printing_proxy.h b/proxy/ppp_printing_proxy.h
deleted file mode 100644
index 3bb26a5..0000000
--- a/proxy/ppp_printing_proxy.h
+++ /dev/null
@@ -1,59 +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_PROXY_PPP_PRINTING_PROXY_H_
-#define PPAPI_PROXY_PPP_PRINTING_PROXY_H_
-
-#include <stdint.h>
-
-#include <vector>
-
-#include "ppapi/c/dev/ppp_printing_dev.h"
-#include "ppapi/proxy/interface_proxy.h"
-
-struct PP_PrintPageNumberRange_Dev;
-
-namespace ppapi {
-
-class HostResource;
-
-namespace proxy {
-
-class PPP_Printing_Proxy : public InterfaceProxy {
- public:
-  explicit PPP_Printing_Proxy(Dispatcher* dispatcher);
-
-  PPP_Printing_Proxy(const PPP_Printing_Proxy&) = delete;
-  PPP_Printing_Proxy& operator=(const PPP_Printing_Proxy&) = delete;
-
-  ~PPP_Printing_Proxy() override;
-
-  static const PPP_Printing_Dev* GetProxyInterface();
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
- private:
-  // Message handlers.
-  void OnPluginMsgQuerySupportedFormats(PP_Instance instance, uint32_t* result);
-  void OnPluginMsgBegin(PP_Instance instance,
-                        const PP_PrintSettings_Dev& settings,
-                        int32_t* result);
-  void OnPluginMsgPrintPages(
-      PP_Instance instance,
-      const std::vector<PP_PrintPageNumberRange_Dev>& pages,
-      HostResource* result);
-  void OnPluginMsgEnd(PP_Instance instance);
-  void OnPluginMsgIsScalingDisabled(PP_Instance instance, bool* result);
-
-  // When this proxy is in the plugin side, this value caches the interface
-  // pointer so we don't have to retrieve it from the dispatcher each time.
-  // In the host, this value is always NULL.
-  const PPP_Printing_Dev* ppp_printing_impl_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPP_PRINTING_PROXY_H_
diff --git a/proxy/ppp_text_input_proxy.cc b/proxy/ppp_text_input_proxy.cc
deleted file mode 100644
index 8c32a0b..0000000
--- a/proxy/ppp_text_input_proxy.cc
+++ /dev/null
@@ -1,81 +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/proxy/ppp_text_input_proxy.h"
-
-#include "build/build_config.h"
-#include "ppapi/c/dev/ppp_text_input_dev.h"
-#include "ppapi/proxy/host_dispatcher.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-#if !BUILDFLAG(IS_NACL)
-void RequestSurroundingText(PP_Instance instance,
-                            uint32_t desired_number_of_characters) {
-  proxy::HostDispatcher* dispatcher =
-      proxy::HostDispatcher::GetForInstance(instance);
-  if (!dispatcher) {
-    // The dispatcher should always be valid.
-    NOTREACHED();
-  }
-
-  dispatcher->Send(new PpapiMsg_PPPTextInput_RequestSurroundingText(
-      API_ID_PPP_TEXT_INPUT, instance, desired_number_of_characters));
-}
-
-const PPP_TextInput_Dev g_ppp_text_input_thunk = {
-  &RequestSurroundingText
-};
-#else
-// The NaCl plugin doesn't need the host side interface - stub it out.
-static const PPP_TextInput_Dev g_ppp_text_input_thunk = {};
-#endif  // !BUILDFLAG(IS_NACL)
-
-}  // namespace
-
-// static
-const PPP_TextInput_Dev* PPP_TextInput_Proxy::GetProxyInterface() {
-  return &g_ppp_text_input_thunk;
-}
-
-PPP_TextInput_Proxy::PPP_TextInput_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher),
-      ppp_text_input_impl_(NULL) {
-  if (dispatcher->IsPlugin()) {
-    ppp_text_input_impl_ = static_cast<const PPP_TextInput_Dev*>(
-        dispatcher->local_get_interface()(PPP_TEXTINPUT_DEV_INTERFACE));
-  }
-}
-
-PPP_TextInput_Proxy::~PPP_TextInput_Proxy() {
-}
-
-bool PPP_TextInput_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  if (!dispatcher()->IsPlugin())
-    return false;
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPP_TextInput_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPTextInput_RequestSurroundingText,
-                        OnMsgRequestSurroundingText)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  return handled;
-}
-
-void PPP_TextInput_Proxy::OnMsgRequestSurroundingText(
-    PP_Instance instance, uint32_t desired_number_of_characters) {
-  if (ppp_text_input_impl_) {
-    CallWhileUnlocked(ppp_text_input_impl_->RequestSurroundingText,
-                      instance, desired_number_of_characters);
-  }
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppp_text_input_proxy.h b/proxy/ppp_text_input_proxy.h
deleted file mode 100644
index c68ee31..0000000
--- a/proxy/ppp_text_input_proxy.h
+++ /dev/null
@@ -1,46 +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_PROXY_PPP_TEXT_INPUT_PROXY_H_
-#define PPAPI_PROXY_PPP_TEXT_INPUT_PROXY_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "ppapi/c/dev/ppp_text_input_dev.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/proxy/interface_proxy.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPP_TextInput_Proxy : public InterfaceProxy {
- public:
-  PPP_TextInput_Proxy(Dispatcher* dispatcher);
-
-  PPP_TextInput_Proxy(const PPP_TextInput_Proxy&) = delete;
-  PPP_TextInput_Proxy& operator=(const PPP_TextInput_Proxy&) = delete;
-
-  ~PPP_TextInput_Proxy() override;
-
-  static const PPP_TextInput_Dev* GetProxyInterface();
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
- private:
-  // Message handlers.
-  void OnMsgRequestSurroundingText(PP_Instance instance,
-                                   uint32_t desired_number_of_characters);
-
-  // When this proxy is in the plugin side, this value caches the interface
-  // pointer so we don't have to retrieve it from the dispatcher each time.
-  // In the host, this value is always NULL.
-  const PPP_TextInput_Dev* ppp_text_input_impl_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPP_TEXT_INPUT_PROXY_H_
diff --git a/proxy/ppp_video_decoder_proxy.cc b/proxy/ppp_video_decoder_proxy.cc
deleted file mode 100644
index 0a33bb5..0000000
--- a/proxy/ppp_video_decoder_proxy.cc
+++ /dev/null
@@ -1,182 +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/proxy/ppp_video_decoder_proxy.h"
-
-#include "ppapi/proxy/host_dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/ppb_video_decoder_proxy.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_video_decoder_dev_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-void ProvidePictureBuffers(PP_Instance instance, PP_Resource decoder,
-                           uint32_t req_num_of_bufs,
-                           const PP_Size* dimensions,
-                           uint32_t texture_target) {
-  HostResource decoder_resource;
-  decoder_resource.SetHostResource(instance, decoder);
-
-  // This is called by the graphics system in response to a message from the
-  // GPU process. These messages will not be synchronized with the lifetime
-  // of the plugin so we need to null-check here.
-  HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
-  if (dispatcher) {
-    dispatcher->Send(new PpapiMsg_PPPVideoDecoder_ProvidePictureBuffers(
-        API_ID_PPP_VIDEO_DECODER_DEV,
-        decoder_resource, req_num_of_bufs, *dimensions, texture_target));
-  }
-}
-
-void DismissPictureBuffer(PP_Instance instance, PP_Resource decoder,
-                          int32_t picture_buffer_id) {
-  HostResource decoder_resource;
-  decoder_resource.SetHostResource(instance, decoder);
-
-  // Null check as in ProvidePictureBuffers above.
-  HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
-  if (dispatcher) {
-    dispatcher->Send(new PpapiMsg_PPPVideoDecoder_DismissPictureBuffer(
-        API_ID_PPP_VIDEO_DECODER_DEV,
-        decoder_resource, picture_buffer_id));
-  }
-}
-
-void PictureReady(PP_Instance instance, PP_Resource decoder,
-                  const PP_Picture_Dev* picture) {
-  HostResource decoder_resource;
-  decoder_resource.SetHostResource(instance, decoder);
-
-  // Null check as in ProvidePictureBuffers above.
-  HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
-  if (dispatcher) {
-    dispatcher->Send(new PpapiMsg_PPPVideoDecoder_PictureReady(
-        API_ID_PPP_VIDEO_DECODER_DEV, decoder_resource, *picture));
-  }
-}
-
-void NotifyError(PP_Instance instance, PP_Resource decoder,
-                 PP_VideoDecodeError_Dev error) {
-  HostResource decoder_resource;
-  decoder_resource.SetHostResource(instance, decoder);
-
-  // It's possible that the error we're being notified about is happening
-  // because the instance is shutting down. In this case, our instance may
-  // already have been removed from the HostDispatcher map.
-  HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
-  if (dispatcher) {
-    dispatcher->Send(
-      new PpapiMsg_PPPVideoDecoder_NotifyError(
-          API_ID_PPP_VIDEO_DECODER_DEV, decoder_resource, error));
-  }
-}
-
-static const PPP_VideoDecoder_Dev video_decoder_interface = {
-  &ProvidePictureBuffers,
-  &DismissPictureBuffer,
-  &PictureReady,
-  &NotifyError
-};
-
-}  // namespace
-
-PPP_VideoDecoder_Proxy::PPP_VideoDecoder_Proxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher),
-      ppp_video_decoder_impl_(NULL) {
-  if (dispatcher->IsPlugin()) {
-    ppp_video_decoder_impl_ = static_cast<const PPP_VideoDecoder_Dev*>(
-        dispatcher->local_get_interface()(PPP_VIDEODECODER_DEV_INTERFACE));
-  }
-}
-
-PPP_VideoDecoder_Proxy::~PPP_VideoDecoder_Proxy() {
-}
-
-// static
-const PPP_VideoDecoder_Dev* PPP_VideoDecoder_Proxy::GetProxyInterface() {
-  return &video_decoder_interface;
-}
-
-bool PPP_VideoDecoder_Proxy::OnMessageReceived(const IPC::Message& msg) {
-  if (!dispatcher()->IsPlugin())
-    return false;
-
-  bool handled = true;
-  IPC_BEGIN_MESSAGE_MAP(PPP_VideoDecoder_Proxy, msg)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPVideoDecoder_ProvidePictureBuffers,
-                        OnMsgProvidePictureBuffers)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPVideoDecoder_DismissPictureBuffer,
-                        OnMsgDismissPictureBuffer)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPVideoDecoder_PictureReady,
-                        OnMsgPictureReady)
-    IPC_MESSAGE_HANDLER(PpapiMsg_PPPVideoDecoder_NotifyError,
-                        OnMsgNotifyError)
-    IPC_MESSAGE_UNHANDLED(handled = false)
-  IPC_END_MESSAGE_MAP()
-  DCHECK(handled);
-  return handled;
-}
-
-void PPP_VideoDecoder_Proxy::OnMsgProvidePictureBuffers(
-    const HostResource& decoder,
-    uint32_t req_num_of_bufs,
-    const PP_Size& dimensions,
-    uint32_t texture_target) {
-  PP_Resource plugin_decoder = PluginGlobals::Get()->plugin_resource_tracker()->
-      PluginResourceForHostResource(decoder);
-  if (!plugin_decoder)
-    return;
-  CallWhileUnlocked(ppp_video_decoder_impl_->ProvidePictureBuffers,
-                    decoder.instance(),
-                    plugin_decoder,
-                    req_num_of_bufs,
-                    &dimensions,
-                    texture_target);
-}
-
-void PPP_VideoDecoder_Proxy::OnMsgDismissPictureBuffer(
-    const HostResource& decoder, int32_t picture_id) {
-  PP_Resource plugin_decoder = PluginGlobals::Get()->plugin_resource_tracker()->
-      PluginResourceForHostResource(decoder);
-  if (!plugin_decoder)
-    return;
-  CallWhileUnlocked(ppp_video_decoder_impl_->DismissPictureBuffer,
-                    decoder.instance(),
-                    plugin_decoder,
-                    picture_id);
-}
-
-void PPP_VideoDecoder_Proxy::OnMsgPictureReady(
-    const HostResource& decoder, const PP_Picture_Dev& picture) {
-  PP_Resource plugin_decoder = PluginGlobals::Get()->plugin_resource_tracker()->
-      PluginResourceForHostResource(decoder);
-  if (!plugin_decoder)
-    return;
-  CallWhileUnlocked(ppp_video_decoder_impl_->PictureReady,
-                    decoder.instance(),
-                    plugin_decoder,
-                    &picture);
-}
-
-void PPP_VideoDecoder_Proxy::OnMsgNotifyError(
-    const HostResource& decoder, PP_VideoDecodeError_Dev error) {
-  PP_Resource plugin_decoder = PluginGlobals::Get()->plugin_resource_tracker()->
-      PluginResourceForHostResource(decoder);
-  if (!plugin_decoder)
-    return;
-  CallWhileUnlocked(ppp_video_decoder_impl_->NotifyError,
-                    decoder.instance(),
-                    plugin_decoder,
-                    error);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/ppp_video_decoder_proxy.h b/proxy/ppp_video_decoder_proxy.h
deleted file mode 100644
index 076c89b..0000000
--- a/proxy/ppp_video_decoder_proxy.h
+++ /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.
-
-#ifndef PPAPI_PROXY_PPP_VIDEO_DECODER_PROXY_H_
-#define PPAPI_PROXY_PPP_VIDEO_DECODER_PROXY_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/dev/ppp_video_decoder_dev.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/shared_impl/host_resource.h"
-
-struct PP_Picture_Dev;
-struct PP_Size;
-
-namespace ppapi {
-namespace proxy {
-
-class PPP_VideoDecoder_Proxy : public InterfaceProxy {
- public:
-  explicit PPP_VideoDecoder_Proxy(Dispatcher* dispatcher);
-
-  PPP_VideoDecoder_Proxy(const PPP_VideoDecoder_Proxy&) = delete;
-  PPP_VideoDecoder_Proxy& operator=(const PPP_VideoDecoder_Proxy&) = delete;
-
-  ~PPP_VideoDecoder_Proxy() override;
-
-  static const PPP_VideoDecoder_Dev* GetProxyInterface();
-
-  // InterfaceProxy implementation.
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
- private:
-  // Message handlers.
-  void OnMsgProvidePictureBuffers(const ppapi::HostResource& decoder,
-                                  uint32_t req_num_of_buffers,
-                                  const PP_Size& dimensions,
-                                  uint32_t texture_target);
-  void OnMsgDismissPictureBuffer(const ppapi::HostResource& decoder,
-                                 int32_t picture_id);
-  void OnMsgPictureReady(const ppapi::HostResource& decoder,
-                         const PP_Picture_Dev& picture_buffer);
-  void OnMsgNotifyError(const ppapi::HostResource& decoder,
-                        PP_VideoDecodeError_Dev error);
-
-  // When this proxy is in the plugin side, this value caches the interface
-  // pointer so we don't have to retrieve it from the dispatcher each time.
-  // In the host, this value is always NULL.
-  const PPP_VideoDecoder_Dev* ppp_video_decoder_impl_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PPP_VIDEO_DECODER_PROXY_H_
diff --git a/proxy/printing_resource.cc b/proxy/printing_resource.cc
deleted file mode 100644
index b9d4937..0000000
--- a/proxy/printing_resource.cc
+++ /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.
-
-#include "ppapi/proxy/printing_resource.h"
-
-#include "base/functional/bind.h"
-#include "ipc/ipc_message.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/dispatch_reply_message.h"
-#include "ppapi/proxy/ppapi_messages.h"
-
-namespace ppapi {
-namespace proxy {
-
-PrintingResource::PrintingResource(Connection connection, PP_Instance instance)
-    : PluginResource(connection, instance) {
-}
-
-PrintingResource::~PrintingResource() {
-}
-
-thunk::PPB_Printing_API* PrintingResource::AsPPB_Printing_API() {
-  return this;
-}
-
-int32_t PrintingResource::GetDefaultPrintSettings(
-    PP_PrintSettings_Dev* print_settings,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!print_settings)
-    return PP_ERROR_BADARGUMENT;
-
-  if (!sent_create_to_browser())
-    SendCreate(BROWSER, PpapiHostMsg_Printing_Create());
-
-  Call<PpapiPluginMsg_Printing_GetDefaultPrintSettingsReply>(
-      BROWSER, PpapiHostMsg_Printing_GetDefaultPrintSettings(),
-      base::BindOnce(&PrintingResource::OnPluginMsgGetDefaultPrintSettingsReply,
-                     this, print_settings, callback));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void PrintingResource::OnPluginMsgGetDefaultPrintSettingsReply(
-    PP_PrintSettings_Dev* settings_out,
-    scoped_refptr<TrackedCallback> callback,
-    const ResourceMessageReplyParams& params,
-    const PP_PrintSettings_Dev& settings) {
-  if (params.result() == PP_OK)
-    *settings_out = settings;
-
-  // Notify the plugin of the new data.
-  callback->Run(params.result());
-  // DANGER: May delete |this|!
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/printing_resource.h b/proxy/printing_resource.h
deleted file mode 100644
index 46e35b6..0000000
--- a/proxy/printing_resource.h
+++ /dev/null
@@ -1,49 +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_PROXY_PRINTING_RESOURCE_H_
-#define PPAPI_PROXY_PRINTING_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "ppapi/proxy/connection.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/ppb_printing_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT PrintingResource : public PluginResource,
-                                            public thunk::PPB_Printing_API {
- public:
-  PrintingResource(Connection connection,
-                   PP_Instance instance);
-
-  PrintingResource(const PrintingResource&) = delete;
-  PrintingResource& operator=(const PrintingResource&) = delete;
-
-  ~PrintingResource() override;
-
-  // Resource overrides.
-  thunk::PPB_Printing_API* AsPPB_Printing_API() override;
-
-  // PPB_Printing_API.
-  int32_t GetDefaultPrintSettings(
-      PP_PrintSettings_Dev* print_settings,
-      scoped_refptr<TrackedCallback> callback) override;
-
- private:
-  void OnPluginMsgGetDefaultPrintSettingsReply(
-      PP_PrintSettings_Dev* settings_out,
-      scoped_refptr<TrackedCallback> callback,
-      const ResourceMessageReplyParams& params,
-      const PP_PrintSettings_Dev& settings);
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PRINTING_RESOURCE_H_
diff --git a/proxy/proxy_array_output.cc b/proxy/proxy_array_output.cc
deleted file mode 100644
index 26fdbf4..0000000
--- a/proxy/proxy_array_output.cc
+++ /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.
-
-#include "ppapi/proxy/proxy_array_output.h"
-
-
-namespace ppapi {
-namespace proxy {
-
-// static
-void* ArrayOutputAdapterBase::GetDataBufferThunk(void* user_data,
-                                                 uint32_t element_count,
-                                                 uint32_t element_size) {
-  return static_cast<ArrayOutputAdapterBase*>(user_data)->
-      GetDataBuffer(element_count, element_size);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/proxy_array_output.h b/proxy/proxy_array_output.h
deleted file mode 100644
index 193e5ef..0000000
--- a/proxy/proxy_array_output.h
+++ /dev/null
@@ -1,140 +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_PROXY_PROXY_ARRAY_OUTPUT_H_
-#define PPAPI_PROXY_PROXY_ARRAY_OUTPUT_H_
-
-#include <stdint.h>
-
-#include <vector>
-
-#include "base/check.h"
-#include "base/memory/ref_counted.h"
-#include "ppapi/c/pp_array_output.h"
-
-// Like ppapi/cpp/array_output.h file in the C++ wrappers but for use in the
-// proxy where we can't link to the C++ wrappers. This also adds a refcounted
-// version.
-//
-// Use ArrayOutputAdapter when calling a function that synchronously returns
-// an array of data. Use RefCountedArrayOutputAdapterWithStorage for
-// asynchronous returns:
-//
-// void OnCallbackComplete(
-//     int32_t result,
-//     scoped_refptr<RefCountedArrayOutputAdapter<PP_Resource> > output) {
-//   // Vector is in output->output().
-// }
-//
-// void ScheduleCallback() {
-//   base::scoped_refptr<RefCountedArrayOutputAdapter<PP_Resource> > output;
-//
-//   callback = factory.NewOptionalCallback(&OnCallbackComplete, output);
-//   DoSomethingAsynchronously(output->pp_array_output(),
-//                             callback.pp_completion_callback());
-//   ...
-namespace ppapi {
-namespace proxy {
-
-// Non-templatized base class for the array output conversion. It provides the
-// C implementation of a PP_ArrayOutput whose callback function is implemented
-// as a virtual call on a derived class. Do not use directly, use one of the
-// derived classes below.
-class ArrayOutputAdapterBase {
- public:
-  ArrayOutputAdapterBase() {
-    pp_array_output_.GetDataBuffer =
-        &ArrayOutputAdapterBase::GetDataBufferThunk;
-    pp_array_output_.user_data = this;
-  }
-  virtual ~ArrayOutputAdapterBase() {}
-
-  const PP_ArrayOutput& pp_array_output() { return pp_array_output_; }
-
- protected:
-  virtual void* GetDataBuffer(uint32_t element_count,
-                              uint32_t element_size) = 0;
-
- private:
-  static void* GetDataBufferThunk(void* user_data,
-                                  uint32_t element_count,
-                                  uint32_t element_size);
-
-  PP_ArrayOutput pp_array_output_;
-
-  // Disallow copying and assignment. This will do the wrong thing for most
-  // subclasses.
-  ArrayOutputAdapterBase(const ArrayOutputAdapterBase&);
-  ArrayOutputAdapterBase& operator=(const ArrayOutputAdapterBase&);
-};
-
-// This adapter provides functionality for implementing a PP_ArrayOutput
-// structure as writing to a given vector object.
-//
-// This is generally used internally in the C++ wrapper objects to
-// write into an output parameter supplied by the plugin. If the element size
-// that the browser is writing does not match the size of the type we're using
-// this will assert and return NULL (which will cause the browser to fail the
-// call).
-//
-// Example that allows the browser to write into a given vector:
-//   void DoFoo(std::vector<int>* results) {
-//     ArrayOutputAdapter<int> adapter(results);
-//     ppb_foo->DoFoo(adapter.pp_array_output());
-//   }
-template<typename T>
-class ArrayOutputAdapter : public ArrayOutputAdapterBase {
- public:
-  ArrayOutputAdapter(std::vector<T>* output) : output_(output) {}
-
- protected:
-  // Two-step init for the "with storage" version below.
-  ArrayOutputAdapter() : output_(NULL) {}
-  void set_output(std::vector<T>* output) { output_ = output; }
-
-  // ArrayOutputAdapterBase implementation.
-  virtual void* GetDataBuffer(uint32_t element_count, uint32_t element_size) {
-    DCHECK(element_size == sizeof(T));
-    if (element_count == 0 || element_size != sizeof(T))
-      return NULL;
-    output_->resize(element_count);
-    return &(*output_)[0];
-  }
-
- private:
-  std::vector<T>* output_;
-};
-
-template<typename T>
-class ArrayOutputAdapterWithStorage : public ArrayOutputAdapter<T> {
- public:
-  ArrayOutputAdapterWithStorage() {
-    // Note: "this->" is required due to two-phase name lookup where it isn't
-    // allowed to look in the base class during parsing.
-    this->set_output(&output_storage_);
-  }
-
-  std::vector<T>& output() { return output_storage_; }
-
- private:
-  std::vector<T> output_storage_;
-};
-
-// A reference counted version of ArrayOutputAdapterWithStorage. Since it
-// doesn't make much sense to heap-allocate one without storage, we don't
-// call it "with storage" to keep the name length under control.
-template<typename T>
-class RefCountedArrayOutputAdapter
-    : public ArrayOutputAdapterWithStorage<T>,
-      public base::RefCounted<RefCountedArrayOutputAdapter<T> > {
- public:
-  RefCountedArrayOutputAdapter()
-      : ArrayOutputAdapterWithStorage<T>() {
-  }
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PROXY_ARRAY_OUTPUT_H_
diff --git a/proxy/proxy_channel.cc b/proxy/proxy_channel.cc
deleted file mode 100644
index 23b7b0a..0000000
--- a/proxy/proxy_channel.cc
+++ /dev/null
@@ -1,108 +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/proxy/proxy_channel.h"
-
-#include "base/logging.h"
-#include "base/task/single_thread_task_runner.h"
-#include "build/build_config.h"
-#include "ipc/ipc_platform_file.h"
-#include "ipc/ipc_sender.h"
-
-#if BUILDFLAG(IS_NACL)
-#include <unistd.h>
-#endif
-
-namespace ppapi {
-namespace proxy {
-
-ProxyChannel::ProxyChannel()
-    : delegate_(NULL),
-      peer_pid_(base::kNullProcessId),
-      test_sink_(NULL) {
-}
-
-ProxyChannel::~ProxyChannel() {
-  DVLOG(1) << "ProxyChannel::~ProxyChannel()";
-}
-
-bool ProxyChannel::InitWithChannel(
-    Delegate* delegate,
-    base::ProcessId peer_pid,
-    const IPC::ChannelHandle& channel_handle,
-    bool is_client,
-    scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
-  delegate_ = delegate;
-  peer_pid_ = peer_pid;
-  IPC::Channel::Mode mode = is_client
-      ? IPC::Channel::MODE_CLIENT
-      : IPC::Channel::MODE_SERVER;
-  DCHECK(task_runner->BelongsToCurrentThread());
-  channel_ = IPC::SyncChannel::Create(channel_handle, mode, this,
-                                      delegate->GetIPCTaskRunner(), task_runner,
-                                      true, delegate->GetShutdownEvent());
-  return true;
-}
-
-void ProxyChannel::InitWithTestSink(IPC::Sender* sender) {
-  DCHECK(!test_sink_);
-  test_sink_ = sender;
-#if !BUILDFLAG(IS_NACL)
-  peer_pid_ = base::GetCurrentProcId();
-#endif
-}
-
-void ProxyChannel::OnChannelError() {
-  channel_.reset();
-}
-
-IPC::PlatformFileForTransit ProxyChannel::ShareHandleWithRemote(
-      base::PlatformFile handle,
-      bool should_close_source) {
-  // Channel could be closed if the plugin crashes.
-  if (!channel_.get()) {
-    if (should_close_source) {
-      base::File file_closer(handle);
-    }
-    return IPC::InvalidPlatformFileForTransit();
-  }
-  DCHECK(peer_pid_ != base::kNullProcessId);
-  return delegate_->ShareHandleWithRemote(handle, peer_pid_,
-                                          should_close_source);
-}
-
-base::UnsafeSharedMemoryRegion
-ProxyChannel::ShareUnsafeSharedMemoryRegionWithRemote(
-    const base::UnsafeSharedMemoryRegion& region) {
-  if (!channel_.get())
-    return base::UnsafeSharedMemoryRegion();
-
-  DCHECK(peer_pid_ != base::kNullProcessId);
-  return delegate_->ShareUnsafeSharedMemoryRegionWithRemote(region, peer_pid_);
-}
-
-base::ReadOnlySharedMemoryRegion
-ProxyChannel::ShareReadOnlySharedMemoryRegionWithRemote(
-    const base::ReadOnlySharedMemoryRegion& region) {
-  if (!channel_.get())
-    return base::ReadOnlySharedMemoryRegion();
-
-  DCHECK(peer_pid_ != base::kNullProcessId);
-  return delegate_->ShareReadOnlySharedMemoryRegionWithRemote(region,
-                                                              peer_pid_);
-}
-
-bool ProxyChannel::Send(IPC::Message* msg) {
-  if (test_sink_)
-    return test_sink_->Send(msg);
-  if (channel_.get())
-    return channel_->Send(msg);
-
-  // Remote side crashed, drop this message.
-  delete msg;
-  return false;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/proxy_channel.h b/proxy/proxy_channel.h
deleted file mode 100644
index 0803ec6..0000000
--- a/proxy/proxy_channel.h
+++ /dev/null
@@ -1,152 +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_PROXY_PROXY_CHANNEL_H_
-#define PPAPI_PROXY_PROXY_CHANNEL_H_
-
-#include <memory>
-
-#include "base/files/scoped_file.h"
-#include "base/memory/read_only_shared_memory_region.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "base/process/process.h"
-#include "build/build_config.h"
-#include "ipc/ipc_listener.h"
-#include "ipc/ipc_platform_file.h"
-#include "ipc/ipc_sender.h"
-#include "ipc/ipc_sync_channel.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-
-namespace base {
-class SingleThreadTaskRunner;
-class WaitableEvent;
-}
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT ProxyChannel
-    : public IPC::Listener,
-      public IPC::Sender {
- public:
-  class PPAPI_PROXY_EXPORT Delegate {
-   public:
-    virtual ~Delegate() {}
-
-    // Returns the task runner for processing IPC requests.
-    virtual base::SingleThreadTaskRunner* GetIPCTaskRunner() = 0;
-
-    // Returns the event object that becomes signalled when the main thread's
-    // message loop exits.
-    virtual base::WaitableEvent* GetShutdownEvent() = 0;
-
-    // Duplicates a handle to the provided object, returning one that is valid
-    // on the other side of the channel. This is part of the delegate interface
-    // because both sides of the channel may not have sufficient permission to
-    // duplicate handles directly. The implementation must provide the same
-    // guarantees as ProxyChannel::ShareHandleWithRemote below.
-    virtual IPC::PlatformFileForTransit ShareHandleWithRemote(
-        base::PlatformFile handle,
-        base::ProcessId remote_pid,
-        bool should_close_source) = 0;
-
-    // Duplicates a shared memory handle, returning one that is valid on the
-    // other side of the channel. This is part of the delegate interface
-    // because both sides of the channel may not have sufficient permission to
-    // duplicate handles directly. The implementation must provide the same
-    // guarantees as ProxyChannel::ShareSharedMemoryHandleWithRemote below.
-    virtual base::UnsafeSharedMemoryRegion
-    ShareUnsafeSharedMemoryRegionWithRemote(
-        const base::UnsafeSharedMemoryRegion& region,
-        base::ProcessId remote_pid) = 0;
-    virtual base::ReadOnlySharedMemoryRegion
-    ShareReadOnlySharedMemoryRegionWithRemote(
-        const base::ReadOnlySharedMemoryRegion& region,
-        base::ProcessId remote_pid) = 0;
-  };
-
-  ProxyChannel(const ProxyChannel&) = delete;
-  ProxyChannel& operator=(const ProxyChannel&) = delete;
-
-  ~ProxyChannel() override;
-
-  // Alternative to InitWithChannel() for unit tests that want to send all
-  // messages sent via this channel to the given test sink. The test sink
-  // must outlive this class. In this case, the peer PID will be the current
-  // process ID.
-  void InitWithTestSink(IPC::Sender* sender);
-
-  // Shares a file handle (HANDLE / file descriptor) with the remote side. It
-  // returns a handle that should be sent in exactly one IPC message. Upon
-  // receipt, the remote side then owns that handle. Note: if sending the
-  // message fails, the returned handle is properly closed by the IPC system. If
-  // should_close_source is set to true, the original handle is closed by this
-  // operation and should not be used again.
-  IPC::PlatformFileForTransit ShareHandleWithRemote(
-      base::PlatformFile handle,
-      bool should_close_source);
-
-  // Shares a shared memory handle with the remote side. It returns a handle
-  // that should be sent in exactly one IPC message. Upon receipt, the remote
-  // side then owns that handle. Note: if sending the message fails, the
-  // returned handle is properly closed by the IPC system. The original handle
-  // is not closed by this operation.
-  base::UnsafeSharedMemoryRegion ShareUnsafeSharedMemoryRegionWithRemote(
-      const base::UnsafeSharedMemoryRegion& region);
-  base::ReadOnlySharedMemoryRegion ShareReadOnlySharedMemoryRegionWithRemote(
-      const base::ReadOnlySharedMemoryRegion& region);
-
-  // IPC::Sender implementation.
-  bool Send(IPC::Message* msg) override;
-
-  // IPC::Listener implementation.
-  void OnChannelError() override;
-
-  // Will be NULL in some unit tests and if the remote side has crashed.
-  IPC::SyncChannel* channel() const {
-    return channel_.get();
-  }
-
-  base::ProcessId peer_pid() { return peer_pid_; }
-
- protected:
-  explicit ProxyChannel();
-
-  // You must call this function before anything else. Returns true on success.
-  // The delegate pointer must outlive this class, ownership is not
-  // transferred.
-  virtual bool InitWithChannel(
-      Delegate* delegate,
-      base::ProcessId peer_pid,
-      const IPC::ChannelHandle& channel_handle,
-      bool is_client,
-      scoped_refptr<base::SingleThreadTaskRunner> task_runner);
-
-  ProxyChannel::Delegate* delegate() const {
-    return delegate_;
-  }
-
- private:
-  // Non-owning pointer. Guaranteed non-NULL after init is called.
-  ProxyChannel::Delegate* delegate_;
-
-  // PID of the remote process. Use this instead of the Channel::peer_pid since
-  // this is set synchronously on construction rather than waiting on the
-  // "hello" message from the peer (which introduces a race condition).
-  base::ProcessId peer_pid_;
-
-  // When we're unit testing, this will indicate the sink for the messages to
-  // be deposited so they can be inspected by the test. When non-NULL, this
-  // indicates that the channel should not be used.
-  IPC::Sender* test_sink_;
-
-  // Will be null for some tests when there is a test_sink_, and if the
-  // remote side has crashed.
-  std::unique_ptr<IPC::SyncChannel> channel_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PROXY_CHANNEL_H_
diff --git a/proxy/proxy_completion_callback_factory.h b/proxy/proxy_completion_callback_factory.h
deleted file mode 100644
index 504a80c..0000000
--- a/proxy/proxy_completion_callback_factory.h
+++ /dev/null
@@ -1,75 +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_PROXY_PROXY_COMPLETION_CALLBACK_FACTORY_H_
-#define PPAPI_PROXY_PROXY_COMPLETION_CALLBACK_FACTORY_H_
-
-#include <stdint.h>
-
-#include "base/check.h"
-#include "base/sequence_checker.h"
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/utility/completion_callback_factory.h"
-
-namespace ppapi {
-namespace proxy {
-
-// This class is just like pp::NonThreadSafeThreadTraits but rather than using
-// pp::Module::core (which doesn't exist), it uses Chrome threads which do.
-class ProxyNonThreadSafeThreadTraits {
- public:
-  class RefCount {
-   public:
-    RefCount() : ref_(0) {}
-
-    ~RefCount() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); }
-
-    int32_t AddRef() {
-      DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-      return ++ref_;
-    }
-
-    int32_t Release() {
-      DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-      DCHECK(ref_ > 0);
-      return --ref_;
-    }
-
-   private:
-    int32_t ref_;
-    SEQUENCE_CHECKER(sequence_checker_);
-  };
-
-  // No-op lock class.
-  class Lock {
-   public:
-    Lock() {}
-    ~Lock() {}
-
-    void Acquire() {}
-    void Release() {}
-  };
-
-  // No-op AutoLock class.
-  class AutoLock {
-   public:
-    explicit AutoLock(Lock&) {}
-    ~AutoLock() {}
-  };
-};
-
-template<typename T>
-class ProxyCompletionCallbackFactory
-    : public pp::CompletionCallbackFactory<T, ProxyNonThreadSafeThreadTraits> {
- public:
-  ProxyCompletionCallbackFactory()
-      : pp::CompletionCallbackFactory<T, ProxyNonThreadSafeThreadTraits>() {}
-  ProxyCompletionCallbackFactory(T* t)
-      : pp::CompletionCallbackFactory<T, ProxyNonThreadSafeThreadTraits>(t) {}
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PROXY_COMPLETION_CALLBACK_FACTORY_H_
diff --git a/proxy/proxy_object_var.cc b/proxy/proxy_object_var.cc
deleted file mode 100644
index 6eab0a6..0000000
--- a/proxy/proxy_object_var.cc
+++ /dev/null
@@ -1,36 +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/proxy/proxy_object_var.h"
-
-#include "base/check.h"
-#include "ppapi/c/pp_var.h"
-
-using ppapi::proxy::PluginDispatcher;
-
-namespace ppapi {
-
-ProxyObjectVar::ProxyObjectVar(PluginDispatcher* dispatcher,
-                               int32_t host_var_id)
-    : dispatcher_(dispatcher), host_var_id_(host_var_id), user_data_(NULL) {
-  // Should be given valid objects or we'll crash later.
-  DCHECK(host_var_id_);
-}
-
-ProxyObjectVar::~ProxyObjectVar() {
-}
-
-ProxyObjectVar* ProxyObjectVar::AsProxyObjectVar() {
-  return this;
-}
-
-PP_VarType ProxyObjectVar::GetType() const {
-  return PP_VARTYPE_OBJECT;
-}
-
-void ProxyObjectVar::AssignVarID(int32_t id) {
-  return Var::AssignVarID(id);
-}
-
-}  // namespace ppapi
diff --git a/proxy/proxy_object_var.h b/proxy/proxy_object_var.h
deleted file mode 100644
index 5282854..0000000
--- a/proxy/proxy_object_var.h
+++ /dev/null
@@ -1,60 +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_PROXY_PROXY_OBJECT_VAR_H_
-#define PPAPI_PROXY_PROXY_OBJECT_VAR_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-
-namespace proxy {
-class PluginDispatcher;
-}  // namespace proxy
-
-// Tracks a reference to an object var in the plugin side of the proxy. This
-// just stores the dispatcher and host var ID, and provides the interface for
-// integrating this with PP_Var creation.
-class PPAPI_PROXY_EXPORT ProxyObjectVar : public Var {
- public:
-  ProxyObjectVar(proxy::PluginDispatcher* dispatcher, int32_t host_var_id);
-
-  ProxyObjectVar(const ProxyObjectVar&) = delete;
-  ProxyObjectVar& operator=(const ProxyObjectVar&) = delete;
-
-  ~ProxyObjectVar() override;
-
-  // Var overrides.
-  ProxyObjectVar* AsProxyObjectVar() override;
-  PP_VarType GetType() const override;
-
-  proxy::PluginDispatcher* dispatcher() const { return dispatcher_; }
-  int32_t host_var_id() const { return host_var_id_; }
-
-  void* user_data() const { return user_data_; }
-  void set_user_data(void* ud) { user_data_ = ud; }
-
-  // Expose AssignVarID on Var so the PluginResourceTracker can call us when
-  // it's creating IDs.
-  void AssignVarID(int32_t id);
-
-  void clear_dispatcher() { dispatcher_ = NULL; }
-
- private:
-  proxy::PluginDispatcher* dispatcher_;
-  int32_t host_var_id_;
-
-  // When this object is created as representing a var implemented by the
-  // plugin, this stores the user data so that we can look it up later. See
-  // PluginVarTracker.
-  void* user_data_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_PROXY_OBJECT_VAR_H_
diff --git a/proxy/raw_var_data.cc b/proxy/raw_var_data.cc
deleted file mode 100644
index 032b489..0000000
--- a/proxy/raw_var_data.cc
+++ /dev/null
@@ -1,739 +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.
-
-#include "ppapi/proxy/raw_var_data.h"
-
-#include <memory>
-#include <unordered_set>
-
-#include "base/check.h"
-#include "base/containers/stack.h"
-#include "base/logging.h"
-#include "base/memory/ptr_util.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "ipc/ipc_message.h"
-#include "ppapi/proxy/ppapi_param_traits.h"
-#include "ppapi/shared_impl/array_var.h"
-#include "ppapi/shared_impl/dictionary_var.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/resource_var.h"
-#include "ppapi/shared_impl/scoped_pp_var.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-using std::make_pair;
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-// When sending array buffers, if the size is over 256K, we use shared
-// memory instead of sending the data over IPC. Light testing suggests
-// shared memory is much faster for 256K and larger messages.
-static const uint32_t kMinimumArrayBufferSizeForShmem = 256 * 1024;
-static uint32_t g_minimum_array_buffer_size_for_shmem =
-    kMinimumArrayBufferSizeForShmem;
-
-struct StackEntry {
-  StackEntry(PP_Var v, size_t i) : var(v), data_index(i) {}
-  PP_Var var;
-  size_t data_index;
-};
-
-// For a given PP_Var, returns the RawVarData associated with it, or creates a
-// new one if there is no existing one. The data is appended to |data| if it
-// is newly created. The index into |data| pointing to the result is returned.
-// |visited_map| keeps track of RawVarDatas that have already been created.
-size_t GetOrCreateRawVarData(const PP_Var& var,
-                             std::unordered_map<int64_t, size_t>* visited_map,
-                             std::vector<std::unique_ptr<RawVarData>>* data) {
-  if (VarTracker::IsVarTypeRefcounted(var.type)) {
-    std::unordered_map<int64_t, size_t>::iterator it =
-        visited_map->find(var.value.as_id);
-    if (it != visited_map->end()) {
-      return it->second;
-    } else {
-      data->push_back(base::WrapUnique(RawVarData::Create(var.type)));
-      (*visited_map)[var.value.as_id] = data->size() - 1;
-    }
-  } else {
-    data->push_back(base::WrapUnique(RawVarData::Create(var.type)));
-  }
-  return data->size() - 1;
-}
-
-bool CanHaveChildren(PP_Var var) {
-  return var.type == PP_VARTYPE_ARRAY || var.type == PP_VARTYPE_DICTIONARY;
-}
-
-}  // namespace
-
-// RawVarDataGraph ------------------------------------------------------------
-RawVarDataGraph::RawVarDataGraph() {
-}
-
-RawVarDataGraph::~RawVarDataGraph() {
-}
-
-// This function uses a stack-based DFS search to traverse the var graph. Each
-// iteration, the top node on the stack examined. If the node has not been
-// visited yet (i.e. !initialized()) then it is added to the list of
-// |parent_ids| which contains all of the nodes on the path from the start node
-// to the current node. Each of that nodes children are examined. If they appear
-// in the list of |parent_ids| it means we have a cycle and we return NULL.
-// Otherwise, if they haven't been visited yet we add them to the stack, If the
-// node at the top of the stack has already been visited, then we pop it off the
-// stack and erase it from |parent_ids|.
-// static
-std::unique_ptr<RawVarDataGraph> RawVarDataGraph::Create(const PP_Var& var,
-                                                         PP_Instance instance) {
-  std::unique_ptr<RawVarDataGraph> graph(new RawVarDataGraph);
-  // Map of |var.value.as_id| to a RawVarData index in RawVarDataGraph.
-  std::unordered_map<int64_t, size_t> visited_map;
-  std::unordered_set<int64_t> parent_ids;
-
-  base::stack<StackEntry> stack;
-  stack.push(StackEntry(var, GetOrCreateRawVarData(var, &visited_map,
-                                                   &graph->data_)));
-
-  while (!stack.empty()) {
-    PP_Var current_var = stack.top().var;
-    RawVarData* current_var_data = graph->data_[stack.top().data_index].get();
-
-    if (current_var_data->initialized()) {
-      stack.pop();
-      if (CanHaveChildren(current_var))
-        parent_ids.erase(current_var.value.as_id);
-      continue;
-    }
-
-    if (CanHaveChildren(current_var))
-      parent_ids.insert(current_var.value.as_id);
-    const bool success = current_var_data->Init(current_var, instance);
-    CHECK(success);
-
-    // Add child nodes to the stack.
-    if (current_var.type == PP_VARTYPE_ARRAY) {
-      ArrayVar* array_var = ArrayVar::FromPPVar(current_var);
-      CHECK(array_var);
-      for (ArrayVar::ElementVector::const_iterator iter =
-               array_var->elements().begin();
-           iter != array_var->elements().end();
-           ++iter) {
-        const PP_Var& child = iter->get();
-        // If a child of this node is already in parent_ids, we have a cycle so
-        // we just return null.
-        if (CanHaveChildren(child) && parent_ids.count(child.value.as_id) != 0)
-          return nullptr;
-        size_t child_id = GetOrCreateRawVarData(child, &visited_map,
-                                                &graph->data_);
-        static_cast<ArrayRawVarData*>(current_var_data)->AddChild(child_id);
-        if (!graph->data_[child_id]->initialized())
-          stack.push(StackEntry(child, child_id));
-      }
-    } else if (current_var.type == PP_VARTYPE_DICTIONARY) {
-      DictionaryVar* dict_var = DictionaryVar::FromPPVar(current_var);
-      CHECK(dict_var);
-      for (DictionaryVar::KeyValueMap::const_iterator iter =
-               dict_var->key_value_map().begin();
-           iter != dict_var->key_value_map().end();
-           ++iter) {
-        const PP_Var& child = iter->second.get();
-        if (CanHaveChildren(child) && parent_ids.count(child.value.as_id) != 0)
-          return nullptr;
-        size_t child_id = GetOrCreateRawVarData(child, &visited_map,
-                                                &graph->data_);
-        static_cast<DictionaryRawVarData*>(
-            current_var_data)->AddChild(iter->first, child_id);
-        if (!graph->data_[child_id]->initialized())
-          stack.push(StackEntry(child, child_id));
-      }
-    }
-  }
-  return graph;
-}
-
-PP_Var RawVarDataGraph::CreatePPVar(PP_Instance instance) {
-  // Create and initialize each node in the graph.
-  std::vector<PP_Var> graph;
-  for (size_t i = 0; i < data_.size(); ++i)
-    graph.push_back(data_[i]->CreatePPVar(instance));
-  for (size_t i = 0; i < data_.size(); ++i)
-    data_[i]->PopulatePPVar(graph[i], graph);
-  // Everything except the root will have one extra ref. Remove that ref.
-  for (size_t i = 1; i < data_.size(); ++i)
-    ScopedPPVar(ScopedPPVar::PassRef(), graph[i]);
-  // The first element is the root.
-  return graph[0];
-}
-
-void RawVarDataGraph::Write(base::Pickle* m,
-                            const HandleWriter& handle_writer) {
-  // Write the size, followed by each node in the graph.
-  m->WriteUInt32(static_cast<uint32_t>(data_.size()));
-  for (size_t i = 0; i < data_.size(); ++i) {
-    m->WriteInt(data_[i]->Type());
-    data_[i]->Write(m, handle_writer);
-  }
-}
-
-// static
-std::unique_ptr<RawVarDataGraph> RawVarDataGraph::Read(
-    const base::Pickle* m,
-    base::PickleIterator* iter) {
-  std::unique_ptr<RawVarDataGraph> result(new RawVarDataGraph);
-  uint32_t size = 0;
-  if (!iter->ReadUInt32(&size))
-    return nullptr;
-  for (uint32_t i = 0; i < size; ++i) {
-    int32_t type;
-    if (!iter->ReadInt(&type))
-      return nullptr;
-    PP_VarType var_type = static_cast<PP_VarType>(type);
-    result->data_.push_back(base::WrapUnique(RawVarData::Create(var_type)));
-    if (!result->data_.back())
-      return nullptr;
-    if (!result->data_.back()->Read(var_type, m, iter))
-      return nullptr;
-  }
-  return result;
-}
-
-std::vector<SerializedHandle*> RawVarDataGraph::GetHandles() {
-  std::vector<SerializedHandle*> result;
-  for (size_t i = 0; i < data_.size(); ++i) {
-    SerializedHandle* handle = data_[i]->GetHandle();
-    if (handle)
-      result.push_back(handle);
-  }
-  return result;
-}
-
-// static
-void RawVarDataGraph::SetMinimumArrayBufferSizeForShmemForTest(
-    uint32_t threshold) {
-  if (threshold == 0)
-    g_minimum_array_buffer_size_for_shmem = kMinimumArrayBufferSizeForShmem;
-  else
-    g_minimum_array_buffer_size_for_shmem = threshold;
-}
-
-// RawVarData ------------------------------------------------------------------
-
-// static
-RawVarData* RawVarData::Create(PP_VarType type) {
-  switch (type) {
-    case PP_VARTYPE_UNDEFINED:
-    case PP_VARTYPE_NULL:
-    case PP_VARTYPE_BOOL:
-    case PP_VARTYPE_INT32:
-    case PP_VARTYPE_DOUBLE:
-    case PP_VARTYPE_OBJECT:
-      return new BasicRawVarData();
-    case PP_VARTYPE_STRING:
-      return new StringRawVarData();
-    case PP_VARTYPE_ARRAY_BUFFER:
-      return new ArrayBufferRawVarData();
-    case PP_VARTYPE_ARRAY:
-      return new ArrayRawVarData();
-    case PP_VARTYPE_DICTIONARY:
-      return new DictionaryRawVarData();
-    case PP_VARTYPE_RESOURCE:
-      return new ResourceRawVarData();
-  }
-  NOTREACHED();
-}
-
-RawVarData::RawVarData() : initialized_(false) {
-}
-
-RawVarData::~RawVarData() {
-}
-
-SerializedHandle* RawVarData::GetHandle() {
-  return NULL;
-}
-
-// BasicRawVarData -------------------------------------------------------------
-BasicRawVarData::BasicRawVarData() {
-}
-
-BasicRawVarData::~BasicRawVarData() {
-}
-
-PP_VarType BasicRawVarData::Type() {
-  return var_.type;
-}
-
-bool BasicRawVarData::Init(const PP_Var& var, PP_Instance /*instance*/) {
-  var_ = var;
-  initialized_ = true;
-  return true;
-}
-
-PP_Var BasicRawVarData::CreatePPVar(PP_Instance instance) {
-  return var_;
-}
-
-void BasicRawVarData::PopulatePPVar(const PP_Var& var,
-                                    const std::vector<PP_Var>& graph) {
-}
-
-void BasicRawVarData::Write(base::Pickle* m,
-                            const HandleWriter& handle_writer) {
-  switch (var_.type) {
-    case PP_VARTYPE_UNDEFINED:
-    case PP_VARTYPE_NULL:
-      // These don't need any data associated with them other than the type we
-      // just serialized.
-      break;
-    case PP_VARTYPE_BOOL:
-      m->WriteBool(PP_ToBool(var_.value.as_bool));
-      break;
-    case PP_VARTYPE_INT32:
-      m->WriteInt(var_.value.as_int);
-      break;
-    case PP_VARTYPE_DOUBLE:
-      IPC::WriteParam(m, var_.value.as_double);
-      break;
-    case PP_VARTYPE_OBJECT:
-      m->WriteInt64(var_.value.as_id);
-      break;
-    default:
-      NOTREACHED();
-  }
-}
-
-bool BasicRawVarData::Read(PP_VarType type,
-                           const base::Pickle* m,
-                           base::PickleIterator* iter) {
-  PP_Var result;
-  result.type = type;
-  switch (type) {
-    case PP_VARTYPE_UNDEFINED:
-    case PP_VARTYPE_NULL:
-      // These don't have any data associated with them other than the type we
-      // just deserialized.
-      break;
-    case PP_VARTYPE_BOOL: {
-      bool bool_value;
-      if (!iter->ReadBool(&bool_value))
-        return false;
-      result.value.as_bool = PP_FromBool(bool_value);
-      break;
-    }
-    case PP_VARTYPE_INT32:
-      if (!iter->ReadInt(&result.value.as_int))
-        return false;
-      break;
-    case PP_VARTYPE_DOUBLE:
-      if (!IPC::ReadParam(m, iter, &result.value.as_double))
-        return false;
-      break;
-    case PP_VARTYPE_OBJECT:
-      if (!iter->ReadInt64(&result.value.as_id))
-        return false;
-      break;
-    default:
-      NOTREACHED();
-  }
-  var_ = result;
-  return true;
-}
-
-// StringRawVarData ------------------------------------------------------------
-StringRawVarData::StringRawVarData() {
-}
-
-StringRawVarData::~StringRawVarData() {
-}
-
-PP_VarType StringRawVarData::Type() {
-  return PP_VARTYPE_STRING;
-}
-
-bool StringRawVarData::Init(const PP_Var& var, PP_Instance /*instance*/) {
-  DCHECK(var.type == PP_VARTYPE_STRING);
-  StringVar* string_var = StringVar::FromPPVar(var);
-  if (!string_var)
-    return false;
-  data_ = string_var->value();
-  initialized_ = true;
-  return true;
-}
-
-PP_Var StringRawVarData::CreatePPVar(PP_Instance instance) {
-  return StringVar::SwapValidatedUTF8StringIntoPPVar(&data_);
-}
-
-void StringRawVarData::PopulatePPVar(const PP_Var& var,
-                                     const std::vector<PP_Var>& graph) {
-}
-
-void StringRawVarData::Write(base::Pickle* m,
-                             const HandleWriter& handle_writer) {
-  m->WriteString(data_);
-}
-
-bool StringRawVarData::Read(PP_VarType type,
-                            const base::Pickle* m,
-                            base::PickleIterator* iter) {
-  if (!iter->ReadString(&data_))
-    return false;
-  return true;
-}
-
-// ArrayBufferRawVarData -------------------------------------------------------
-ArrayBufferRawVarData::ArrayBufferRawVarData() {
-}
-
-ArrayBufferRawVarData::~ArrayBufferRawVarData() {
-}
-
-PP_VarType ArrayBufferRawVarData::Type() {
-  return PP_VARTYPE_ARRAY_BUFFER;
-}
-
-bool ArrayBufferRawVarData::Init(const PP_Var& var,
-                                 PP_Instance instance) {
-  DCHECK(var.type == PP_VARTYPE_ARRAY_BUFFER);
-  ArrayBufferVar* buffer_var = ArrayBufferVar::FromPPVar(var);
-  if (!buffer_var)
-    return false;
-  bool using_shmem = false;
-  if (buffer_var->ByteLength() >= g_minimum_array_buffer_size_for_shmem &&
-      instance != 0) {
-    int host_handle_id;
-    base::UnsafeSharedMemoryRegion plugin_handle;
-    using_shmem = buffer_var->CopyToNewShmem(instance,
-                                             &host_handle_id,
-                                             &plugin_handle);
-    if (using_shmem) {
-      if (host_handle_id != -1) {
-        DCHECK(!plugin_handle.IsValid());
-        DCHECK(PpapiGlobals::Get()->IsPluginGlobals());
-        type_ = ARRAY_BUFFER_SHMEM_HOST;
-        host_shm_handle_id_ = host_handle_id;
-      } else {
-        DCHECK(plugin_handle.IsValid());
-        DCHECK(PpapiGlobals::Get()->IsHostGlobals());
-        type_ = ARRAY_BUFFER_SHMEM_PLUGIN;
-        plugin_shm_handle_ = SerializedHandle(
-            base::UnsafeSharedMemoryRegion::TakeHandleForSerialization(
-                std::move(plugin_handle)));
-      }
-    }
-  }
-  if (!using_shmem) {
-    type_ = ARRAY_BUFFER_NO_SHMEM;
-    data_ = std::string(static_cast<const char*>(buffer_var->Map()),
-                        buffer_var->ByteLength());
-  }
-  initialized_ = true;
-  return true;
-}
-
-PP_Var ArrayBufferRawVarData::CreatePPVar(PP_Instance instance) {
-  PP_Var result = PP_MakeUndefined();
-  switch (type_) {
-    case ARRAY_BUFFER_SHMEM_HOST: {
-      base::UnsafeSharedMemoryRegion host_handle;
-      uint32_t size_in_bytes;
-      bool ok =
-          PpapiGlobals::Get()->GetVarTracker()->StopTrackingSharedMemoryRegion(
-              host_shm_handle_id_, instance, &host_handle, &size_in_bytes);
-      if (ok) {
-        result = PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(
-            size_in_bytes, std::move(host_handle));
-      } else {
-        LOG(ERROR) << "Couldn't find array buffer id: " << host_shm_handle_id_;
-        return PP_MakeUndefined();
-      }
-      break;
-    }
-    case ARRAY_BUFFER_SHMEM_PLUGIN: {
-      auto region_size = plugin_shm_handle_.shmem_region().GetSize();
-      result = PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(
-          region_size, base::UnsafeSharedMemoryRegion::Deserialize(
-                           plugin_shm_handle_.TakeSharedMemoryRegion()));
-      break;
-    }
-    case ARRAY_BUFFER_NO_SHMEM: {
-      result = PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(
-          static_cast<uint32_t>(data_.size()), data_.data());
-      break;
-    }
-    default:
-      NOTREACHED();
-  }
-  DCHECK(result.type == PP_VARTYPE_ARRAY_BUFFER);
-  return result;
-}
-
-void ArrayBufferRawVarData::PopulatePPVar(const PP_Var& var,
-                                          const std::vector<PP_Var>& graph) {
-}
-
-void ArrayBufferRawVarData::Write(base::Pickle* m,
-                                  const HandleWriter& handle_writer) {
-  m->WriteInt(type_);
-  switch (type_) {
-    case ARRAY_BUFFER_SHMEM_HOST:
-      m->WriteInt(host_shm_handle_id_);
-      break;
-    case ARRAY_BUFFER_SHMEM_PLUGIN:
-      handle_writer.Run(m, plugin_shm_handle_);
-      break;
-    case ARRAY_BUFFER_NO_SHMEM:
-      m->WriteString(data_);
-      break;
-  }
-}
-
-bool ArrayBufferRawVarData::Read(PP_VarType type,
-                                 const base::Pickle* m,
-                                 base::PickleIterator* iter) {
-  int shmem_type;
-  if (!iter->ReadInt(&shmem_type))
-    return false;
-  type_ = static_cast<ShmemType>(shmem_type);
-  switch (type_) {
-    case ARRAY_BUFFER_SHMEM_HOST:
-      if (!iter->ReadInt(&host_shm_handle_id_))
-        return false;
-      break;
-    case ARRAY_BUFFER_SHMEM_PLUGIN:
-      if (!IPC::ReadParam(m, iter, &plugin_shm_handle_)) {
-        return false;
-      }
-      break;
-    case ARRAY_BUFFER_NO_SHMEM:
-      if (!iter->ReadString(&data_))
-        return false;
-      break;
-    default:
-      // We read an invalid ID.
-      NOTREACHED();
-  }
-  return true;
-}
-
-SerializedHandle* ArrayBufferRawVarData::GetHandle() {
-  if (type_ == ARRAY_BUFFER_SHMEM_PLUGIN && plugin_shm_handle_.IsHandleValid())
-    return &plugin_shm_handle_;
-  return nullptr;
-}
-
-// ArrayRawVarData -------------------------------------------------------------
-ArrayRawVarData::ArrayRawVarData() {
-}
-
-ArrayRawVarData::~ArrayRawVarData() {
-}
-
-void ArrayRawVarData::AddChild(size_t element) {
-  children_.push_back(element);
-}
-
-PP_VarType ArrayRawVarData::Type() {
-  return PP_VARTYPE_ARRAY;
-}
-
-bool ArrayRawVarData::Init(const PP_Var& var, PP_Instance /*instance*/) {
-  initialized_ = true;
-  DCHECK(var.type == PP_VARTYPE_ARRAY);
-  initialized_ = true;
-  return true;
-}
-
-PP_Var ArrayRawVarData::CreatePPVar(PP_Instance instance) {
-  return (new ArrayVar())->GetPPVar();
-}
-
-void ArrayRawVarData::PopulatePPVar(const PP_Var& var,
-                                    const std::vector<PP_Var>& graph) {
-  if (var.type != PP_VARTYPE_ARRAY) {
-    NOTREACHED();
-  }
-  ArrayVar* array_var = ArrayVar::FromPPVar(var);
-  DCHECK(array_var->elements().empty());
-  for (size_t i = 0; i < children_.size(); ++i)
-    array_var->elements().push_back(ScopedPPVar(graph[children_[i]]));
-}
-
-void ArrayRawVarData::Write(base::Pickle* m,
-                            const HandleWriter& handle_writer) {
-  m->WriteUInt32(static_cast<uint32_t>(children_.size()));
-  for (size_t i = 0; i < children_.size(); ++i)
-    m->WriteUInt32(static_cast<uint32_t>(children_[i]));
-}
-
-bool ArrayRawVarData::Read(PP_VarType type,
-                           const base::Pickle* m,
-                           base::PickleIterator* iter) {
-  uint32_t size;
-  if (!iter->ReadUInt32(&size))
-    return false;
-  for (uint32_t i = 0; i < size; ++i) {
-    uint32_t index;
-    if (!iter->ReadUInt32(&index))
-      return false;
-    children_.push_back(index);
-  }
-  return true;
-}
-
-// DictionaryRawVarData --------------------------------------------------------
-DictionaryRawVarData::DictionaryRawVarData() {
-}
-
-DictionaryRawVarData::~DictionaryRawVarData() {
-}
-
-void DictionaryRawVarData::AddChild(const std::string& key,
-                                    size_t value) {
-  children_.push_back(make_pair(key, value));
-}
-
-PP_VarType DictionaryRawVarData::Type() {
-  return PP_VARTYPE_DICTIONARY;
-}
-
-bool DictionaryRawVarData::Init(const PP_Var& var, PP_Instance /*instance*/) {
-  DCHECK(var.type == PP_VARTYPE_DICTIONARY);
-  initialized_ = true;
-  return true;
-}
-
-PP_Var DictionaryRawVarData::CreatePPVar(PP_Instance instance) {
-  return (new DictionaryVar())->GetPPVar();
-}
-
-void DictionaryRawVarData::PopulatePPVar(const PP_Var& var,
-                                         const std::vector<PP_Var>& graph) {
-  if (var.type != PP_VARTYPE_DICTIONARY) {
-    NOTREACHED();
-  }
-  DictionaryVar* dictionary_var = DictionaryVar::FromPPVar(var);
-  DCHECK(dictionary_var->key_value_map().empty());
-  for (size_t i = 0; i < children_.size(); ++i) {
-    bool success = dictionary_var->SetWithStringKey(children_[i].first,
-                                                    graph[children_[i].second]);
-    DCHECK(success);
-  }
-}
-
-void DictionaryRawVarData::Write(base::Pickle* m,
-                                 const HandleWriter& handle_writer) {
-  m->WriteUInt32(static_cast<uint32_t>(children_.size()));
-  for (size_t i = 0; i < children_.size(); ++i) {
-    m->WriteString(children_[i].first);
-    m->WriteUInt32(static_cast<uint32_t>(children_[i].second));
-  }
-}
-
-bool DictionaryRawVarData::Read(PP_VarType type,
-                                const base::Pickle* m,
-                                base::PickleIterator* iter) {
-  uint32_t size;
-  if (!iter->ReadUInt32(&size))
-    return false;
-  for (uint32_t i = 0; i < size; ++i) {
-    std::string key;
-    uint32_t value;
-    if (!iter->ReadString(&key))
-      return false;
-    if (!iter->ReadUInt32(&value))
-      return false;
-    children_.push_back(make_pair(key, value));
-  }
-  return true;
-}
-
-// ResourceRawVarData ----------------------------------------------------------
-ResourceRawVarData::ResourceRawVarData()
-    : pp_resource_(0),
-      pending_renderer_host_id_(0),
-      pending_browser_host_id_(0) {}
-
-ResourceRawVarData::~ResourceRawVarData() {
-}
-
-PP_VarType ResourceRawVarData::Type() {
-  return PP_VARTYPE_RESOURCE;
-}
-
-bool ResourceRawVarData::Init(const PP_Var& var, PP_Instance /*instance*/) {
-  DCHECK(var.type == PP_VARTYPE_RESOURCE);
-  ResourceVar* resource_var = ResourceVar::FromPPVar(var);
-  if (!resource_var)
-    return false;
-  pp_resource_ = resource_var->GetPPResource();
-  const IPC::Message* message = resource_var->GetCreationMessage();
-  if (message)
-    creation_message_ = std::make_unique<IPC::Message>(*message);
-  else
-    creation_message_.reset();
-  pending_renderer_host_id_ = resource_var->GetPendingRendererHostId();
-  pending_browser_host_id_ = resource_var->GetPendingBrowserHostId();
-  initialized_ = true;
-  return true;
-}
-
-PP_Var ResourceRawVarData::CreatePPVar(PP_Instance instance) {
-  // If this is not a pending resource host, just create the var.
-  if (pp_resource_ || !creation_message_) {
-    return PpapiGlobals::Get()->GetVarTracker()->MakeResourcePPVar(
-        pp_resource_);
-  }
-
-  // This is a pending resource host, so create the resource and var.
-  return PpapiGlobals::Get()->GetVarTracker()->MakeResourcePPVarFromMessage(
-      instance,
-      *creation_message_,
-      pending_renderer_host_id_,
-      pending_browser_host_id_);
-}
-
-void ResourceRawVarData::PopulatePPVar(const PP_Var& var,
-                                       const std::vector<PP_Var>& graph) {
-}
-
-void ResourceRawVarData::Write(base::Pickle* m,
-                               const HandleWriter& handle_writer) {
-  m->WriteInt(static_cast<int>(pp_resource_));
-  m->WriteInt(pending_renderer_host_id_);
-  m->WriteInt(pending_browser_host_id_);
-  m->WriteBool(!!creation_message_);
-  if (creation_message_)
-    IPC::WriteParam(m, *creation_message_);
-}
-
-bool ResourceRawVarData::Read(PP_VarType type,
-                              const base::Pickle* m,
-                              base::PickleIterator* iter) {
-  int value;
-  if (!iter->ReadInt(&value))
-    return false;
-  pp_resource_ = static_cast<PP_Resource>(value);
-  if (!iter->ReadInt(&pending_renderer_host_id_))
-    return false;
-  if (!iter->ReadInt(&pending_browser_host_id_))
-    return false;
-  bool has_creation_message;
-  if (!iter->ReadBool(&has_creation_message))
-    return false;
-  if (has_creation_message) {
-    creation_message_ = std::make_unique<IPC::Message>();
-    if (!IPC::ReadParam(m, iter, creation_message_.get()))
-      return false;
-  } else {
-    creation_message_.reset();
-  }
-  return true;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/raw_var_data.h b/proxy/raw_var_data.h
deleted file mode 100644
index 667163e..0000000
--- a/proxy/raw_var_data.h
+++ /dev/null
@@ -1,305 +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.
-
-#ifndef PPAPI_PROXY_RAW_VAR_DATA_H_
-#define PPAPI_PROXY_RAW_VAR_DATA_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <memory>
-#include <vector>
-
-#include "base/functional/callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/proxy/ppapi_param_traits.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/proxy/serialized_handle.h"
-
-namespace base {
-class Pickle;
-class PickleIterator;
-}
-
-namespace IPC {
-class Message;
-}
-
-namespace ppapi {
-namespace proxy {
-
-class RawVarData;
-
-typedef base::RepeatingCallback<void(base::Pickle*, const SerializedHandle&)>
-    HandleWriter;
-
-// Contains the data associated with a graph of connected PP_Vars. Useful for
-// serializing/deserializing a graph of PP_Vars. First we compute the transitive
-// closure of the given PP_Var to find all PP_Vars which are referenced by that
-// var. A RawVarData object is created for each of these vars. We then write
-// data contained in each RawVarData to the message. The format looks like this:
-//    idx | size     | (number of vars in the graph)
-//     0  | var type |
-//        | var data |
-//     1  | var type |
-//        | var data |
-//     2  | var type |
-//        | var data |
-//        |   ....   |
-//
-// Vars that reference other vars (such as Arrays or Dictionaries) use indices
-// into the message to denote which PP_Var is pointed to.
-class PPAPI_PROXY_EXPORT RawVarDataGraph {
- public:
-  // Construct a RawVarDataGraph from a given root PP_Var. A null pointer
-  // is returned upon failure.
-  static std::unique_ptr<RawVarDataGraph> Create(const PP_Var& var,
-                                                 PP_Instance instance);
-
-  // Constructs an empty RawVarDataGraph.
-  RawVarDataGraph();
-
-  RawVarDataGraph(const RawVarDataGraph&) = delete;
-  RawVarDataGraph& operator=(const RawVarDataGraph&) = delete;
-
-  ~RawVarDataGraph();
-
-  // Construct a new PP_Var from the graph. All of the PP_Vars referenced by
-  // the returned PP_Var are also constructed. Each PP_Var created has a
-  // ref-count equal to the number of references it has in the graph of vars.
-  // The returned var (the "root") has one additional reference.
-  PP_Var CreatePPVar(PP_Instance instance);
-
-  // Write the graph to a message using the given HandleWriter.
-  void Write(base::Pickle* m, const HandleWriter& handle_writer);
-
-  // Create a RawVarDataGraph from the given message.
-  static std::unique_ptr<RawVarDataGraph> Read(const base::Pickle* m,
-                                               base::PickleIterator* iter);
-
-  // Returns a vector of SerializedHandles associated with this RawVarDataGraph.
-  // Ownership of the pointers remains with the elements of the RawVarDataGraph.
-  std::vector<SerializedHandle*> GetHandles();
-
-  // Sets the threshold size at which point we switch from transmitting
-  // array buffers in IPC messages to using shared memory. This is only used
-  // for testing purposes where we need to transmit small buffers using shmem
-  // (in order to have fast tests).
-  static void SetMinimumArrayBufferSizeForShmemForTest(uint32_t threshold);
-
- private:
-  // A list of the nodes in the graph.
-  std::vector<std::unique_ptr<RawVarData>> data_;
-};
-
-// Abstract base class for the data contained in a PP_Var.
-class RawVarData {
- public:
-  // Create a new, empty RawVarData for the given type.
-  static RawVarData* Create(PP_VarType type);
-  RawVarData();
-  virtual ~RawVarData();
-
-  // Returns the type of the PP_Var represented by the RawVarData.
-  virtual PP_VarType Type() = 0;
-
-  // Initializes a RawVarData from a PP_Var. Returns true on success.
-  virtual bool Init(const PP_Var& var, PP_Instance instance) = 0;
-
-  // Create a PP_Var from the raw data contained in this object.
-  virtual PP_Var CreatePPVar(PP_Instance instance) = 0;
-  // Some PP_Vars may require 2-step initialization. For example, they may
-  // reference other PP_Vars which had not yet been created when |CreatePPVar|
-  // was called. The original var created with |CreatePPVar| is passed back in,
-  // along with the graph it is a part of to be initialized.
-  virtual void PopulatePPVar(const PP_Var& var,
-                             const std::vector<PP_Var>& graph) = 0;
-
-  // Writes the RawVarData to a message.
-  virtual void Write(base::Pickle* m, const HandleWriter& handle_writer) = 0;
-  // Reads the RawVarData from a message. Returns true on success.
-  virtual bool Read(PP_VarType type,
-                    const base::Pickle* m,
-                    base::PickleIterator* iter) = 0;
-
-  // Returns a SerializedHandle associated with this RawVarData or NULL if none
-  // exists. Ownership of the pointer remains with the RawVarData.
-  virtual SerializedHandle* GetHandle();
-
-  bool initialized() { return initialized_; }
-
- protected:
-  bool initialized_;
-};
-
-// A RawVarData class for PP_Vars which are value types.
-class BasicRawVarData : public RawVarData {
- public:
-  BasicRawVarData();
-  ~BasicRawVarData() override;
-
-  // RawVarData implementation.
-  PP_VarType Type() override;
-  bool Init(const PP_Var& var, PP_Instance instance) override;
-  PP_Var CreatePPVar(PP_Instance instance) override;
-  void PopulatePPVar(const PP_Var& var,
-                     const std::vector<PP_Var>& graph) override;
-  void Write(base::Pickle* m, const HandleWriter& handle_writer) override;
-  bool Read(PP_VarType type,
-            const base::Pickle* m,
-            base::PickleIterator* iter) override;
-
- private:
-  PP_Var var_;
-};
-
-// A RawVarData class for string PP_Vars.
-class StringRawVarData : public RawVarData {
- public:
-  StringRawVarData();
-  ~StringRawVarData() override;
-
-  // RawVarData implementation.
-  PP_VarType Type() override;
-  bool Init(const PP_Var& var, PP_Instance instance) override;
-  PP_Var CreatePPVar(PP_Instance instance) override;
-  void PopulatePPVar(const PP_Var& var,
-                     const std::vector<PP_Var>& graph) override;
-  void Write(base::Pickle* m, const HandleWriter& handle_writer) override;
-  bool Read(PP_VarType type,
-            const base::Pickle* m,
-            base::PickleIterator* iter) override;
-
- private:
-  // The data in the string.
-  std::string data_;
-};
-
-// A RawVarData class for array buffer PP_Vars.
-class ArrayBufferRawVarData : public RawVarData {
- public:
-  // Enum for array buffer message types.
-  enum ShmemType {
-    ARRAY_BUFFER_NO_SHMEM,
-    ARRAY_BUFFER_SHMEM_HOST,
-    ARRAY_BUFFER_SHMEM_PLUGIN,
-  };
-
-  ArrayBufferRawVarData();
-  ~ArrayBufferRawVarData() override;
-
-  // RawVarData implementation.
-  PP_VarType Type() override;
-  bool Init(const PP_Var& var, PP_Instance instance) override;
-  PP_Var CreatePPVar(PP_Instance instance) override;
-  void PopulatePPVar(const PP_Var& var,
-                     const std::vector<PP_Var>& graph) override;
-  void Write(base::Pickle* m, const HandleWriter& handle_writer) override;
-  bool Read(PP_VarType type,
-            const base::Pickle* m,
-            base::PickleIterator* iter) override;
-  SerializedHandle* GetHandle() override;
-
- private:
-  // The type of the storage underlying the array buffer.
-  ShmemType type_;
-  // The data in the buffer. Valid for |type_| == ARRAY_BUFFER_NO_SHMEM.
-  std::string data_;
-  // Host shmem handle. Valid for |type_| == ARRAY_BUFFER_SHMEM_HOST.
-  int host_shm_handle_id_;
-  // Plugin shmem handle. Valid for |type_| == ARRAY_BUFFER_SHMEM_PLUGIN.
-  SerializedHandle plugin_shm_handle_;
-};
-
-// A RawVarData class for array PP_Vars.
-class ArrayRawVarData : public RawVarData {
- public:
-  ArrayRawVarData();
-  ~ArrayRawVarData() override;
-
-  void AddChild(size_t element);
-
-  // RawVarData implementation.
-  PP_VarType Type() override;
-  bool Init(const PP_Var& var, PP_Instance instance) override;
-  PP_Var CreatePPVar(PP_Instance instance) override;
-  void PopulatePPVar(const PP_Var& var,
-                     const std::vector<PP_Var>& graph) override;
-  void Write(base::Pickle* m, const HandleWriter& handle_writer) override;
-  bool Read(PP_VarType type,
-            const base::Pickle* m,
-            base::PickleIterator* iter) override;
-
- private:
-  std::vector<size_t> children_;
-};
-
-// A RawVarData class for dictionary PP_Vars.
-class DictionaryRawVarData : public RawVarData {
- public:
-  DictionaryRawVarData();
-  ~DictionaryRawVarData() override;
-
-  void AddChild(const std::string& key, size_t value);
-
-  // RawVarData implementation.
-  PP_VarType Type() override;
-  bool Init(const PP_Var& var, PP_Instance instance) override;
-  PP_Var CreatePPVar(PP_Instance instance) override;
-  void PopulatePPVar(const PP_Var& var,
-                     const std::vector<PP_Var>& graph) override;
-  void Write(base::Pickle* m, const HandleWriter& handle_writer) override;
-  bool Read(PP_VarType type,
-            const base::Pickle* m,
-            base::PickleIterator* iter) override;
-
- private:
-  std::vector<std::pair<std::string, size_t> > children_;
-};
-
-// A RawVarData class for resource PP_Vars.
-// This class does not hold a reference on the PP_Resource that is being
-// serialized. If sending a resource from the plugin to the host, the plugin
-// should not release the ResourceVar before sending the serialized message to
-// the host, and the host should immediately consume the ResourceVar before
-// processing further messages.
-class ResourceRawVarData : public RawVarData {
- public:
-  ResourceRawVarData();
-  ~ResourceRawVarData() override;
-
-  // RawVarData implementation.
-  PP_VarType Type() override;
-  bool Init(const PP_Var& var, PP_Instance instance) override;
-  PP_Var CreatePPVar(PP_Instance instance) override;
-  void PopulatePPVar(const PP_Var& var,
-                     const std::vector<PP_Var>& graph) override;
-  void Write(base::Pickle* m, const HandleWriter& handle_writer) override;
-  bool Read(PP_VarType type,
-            const base::Pickle* m,
-            base::PickleIterator* iter) override;
-
- private:
-  // Resource ID in the plugin. If one has not yet been created, this is 0.
-  // This is a borrowed reference; the resource's refcount is not incremented.
-  PP_Resource pp_resource_;
-
-  // Pending resource host ID in the renderer.
-  int pending_renderer_host_id_;
-
-  // Pending resource host ID in the browser.
-  int pending_browser_host_id_;
-
-  // A message containing information about how to create a plugin-side
-  // resource. The message type will vary based on the resource type, and will
-  // usually contain a pending resource host ID, and other required information.
-  // If the resource was created directly, this is NULL.
-  std::unique_ptr<IPC::Message> creation_message_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_RAW_VAR_DATA_H_
diff --git a/proxy/resource_creation_proxy.cc b/proxy/resource_creation_proxy.cc
deleted file mode 100644
index b03a24b..0000000
--- a/proxy/resource_creation_proxy.cc
+++ /dev/null
@@ -1,440 +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/proxy/resource_creation_proxy.h"
-
-#include "build/build_config.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/proxy/audio_input_resource.h"
-#include "ppapi/proxy/audio_output_resource.h"
-#include "ppapi/proxy/camera_device_resource.h"
-#include "ppapi/proxy/connection.h"
-#include "ppapi/proxy/file_chooser_resource.h"
-#include "ppapi/proxy/file_io_resource.h"
-#include "ppapi/proxy/file_ref_resource.h"
-#include "ppapi/proxy/file_system_resource.h"
-#include "ppapi/proxy/graphics_2d_resource.h"
-#include "ppapi/proxy/host_resolver_private_resource.h"
-#include "ppapi/proxy/host_resolver_resource.h"
-#include "ppapi/proxy/media_stream_video_track_resource.h"
-#include "ppapi/proxy/net_address_resource.h"
-#include "ppapi/proxy/network_monitor_resource.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/ppb_audio_proxy.h"
-#include "ppapi/proxy/ppb_buffer_proxy.h"
-#include "ppapi/proxy/ppb_graphics_3d_proxy.h"
-#include "ppapi/proxy/ppb_image_data_proxy.h"
-#include "ppapi/proxy/ppb_video_decoder_proxy.h"
-#include "ppapi/proxy/ppb_x509_certificate_private_proxy.h"
-#include "ppapi/proxy/printing_resource.h"
-#include "ppapi/proxy/tcp_server_socket_private_resource.h"
-#include "ppapi/proxy/tcp_socket_private_resource.h"
-#include "ppapi/proxy/tcp_socket_resource.h"
-#include "ppapi/proxy/udp_socket_private_resource.h"
-#include "ppapi/proxy/udp_socket_resource.h"
-#include "ppapi/proxy/url_loader_resource.h"
-#include "ppapi/proxy/url_request_info_resource.h"
-#include "ppapi/proxy/url_response_info_resource.h"
-#include "ppapi/proxy/video_capture_resource.h"
-#include "ppapi/proxy/video_decoder_resource.h"
-#include "ppapi/proxy/video_encoder_resource.h"
-#include "ppapi/proxy/vpn_provider_resource.h"
-#include "ppapi/proxy/websocket_resource.h"
-#include "ppapi/shared_impl/api_id.h"
-#include "ppapi/shared_impl/host_resource.h"
-#include "ppapi/shared_impl/ppb_audio_config_shared.h"
-#include "ppapi/shared_impl/ppb_audio_shared.h"
-#include "ppapi/shared_impl/ppb_input_event_shared.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_image_data_api.h"
-
-using ppapi::thunk::ResourceCreationAPI;
-
-namespace ppapi {
-namespace proxy {
-
-ResourceCreationProxy::ResourceCreationProxy(Dispatcher* dispatcher)
-    : InterfaceProxy(dispatcher) {
-}
-
-ResourceCreationProxy::~ResourceCreationProxy() {
-}
-
-// static
-InterfaceProxy* ResourceCreationProxy::Create(Dispatcher* dispatcher) {
-  return new ResourceCreationProxy(dispatcher);
-}
-
-PP_Resource ResourceCreationProxy::CreateFileIO(PP_Instance instance) {
-  return (new FileIOResource(GetConnection(), instance))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateFileRef(
-    PP_Instance instance,
-    const FileRefCreateInfo& create_info) {
-  return FileRefResource::CreateFileRef(GetConnection(), instance, create_info);
-}
-
-PP_Resource ResourceCreationProxy::CreateFileSystem(
-    PP_Instance instance,
-    PP_FileSystemType type) {
-  return (new FileSystemResource(GetConnection(), instance,
-                                 type))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateIMEInputEvent(
-    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) {
-  return PPB_InputEvent_Shared::CreateIMEInputEvent(
-      OBJECT_IS_PROXY, instance, type, time_stamp, text, segment_number,
-      segment_offsets, target_segment, selection_start, selection_end);
-}
-
-PP_Resource ResourceCreationProxy::CreateKeyboardInputEvent_1_0(
-    PP_Instance instance,
-    PP_InputEvent_Type type,
-    PP_TimeTicks time_stamp,
-    uint32_t modifiers,
-    uint32_t key_code,
-    struct PP_Var character_text) {
-  PP_Var code = StringVar::StringToPPVar("");
-  return PPB_InputEvent_Shared::CreateKeyboardInputEvent(
-      OBJECT_IS_PROXY, instance, type, time_stamp, modifiers, key_code,
-      character_text, code);
-}
-
-PP_Resource ResourceCreationProxy::CreateKeyboardInputEvent_1_2(
-    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) {
-  return PPB_InputEvent_Shared::CreateKeyboardInputEvent(
-      OBJECT_IS_PROXY, instance, type, time_stamp, modifiers, key_code,
-      character_text, code);
-}
-
-PP_Resource ResourceCreationProxy::CreateMouseInputEvent(
-    PP_Instance instance,
-    PP_InputEvent_Type type,
-    PP_TimeTicks time_stamp,
-    uint32_t modifiers,
-    PP_InputEvent_MouseButton mouse_button,
-    const PP_Point* mouse_position,
-    int32_t click_count,
-    const PP_Point* mouse_movement) {
-  return PPB_InputEvent_Shared::CreateMouseInputEvent(
-      OBJECT_IS_PROXY, instance, type, time_stamp, modifiers,
-      mouse_button, mouse_position, click_count, mouse_movement);
-}
-
-PP_Resource ResourceCreationProxy::CreateTouchInputEvent(
-    PP_Instance instance,
-    PP_InputEvent_Type type,
-    PP_TimeTicks time_stamp,
-    uint32_t modifiers) {
-  return PPB_InputEvent_Shared::CreateTouchInputEvent(
-      OBJECT_IS_PROXY, instance, type, time_stamp, modifiers);
-}
-
-PP_Resource ResourceCreationProxy::CreateURLLoader(PP_Instance instance) {
-    return (new URLLoaderResource(GetConnection(), instance))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateURLRequestInfo(
-    PP_Instance instance) {
-  return (new URLRequestInfoResource(
-      GetConnection(), instance, URLRequestInfoData()))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateWheelInputEvent(
-    PP_Instance instance,
-    PP_TimeTicks time_stamp,
-    uint32_t modifiers,
-    const PP_FloatPoint* wheel_delta,
-    const PP_FloatPoint* wheel_ticks,
-    PP_Bool scroll_by_page) {
-  return PPB_InputEvent_Shared::CreateWheelInputEvent(
-      OBJECT_IS_PROXY, instance, time_stamp, modifiers,
-      wheel_delta, wheel_ticks, scroll_by_page);
-}
-
-PP_Resource ResourceCreationProxy::CreateAudio1_0(
-    PP_Instance instance,
-    PP_Resource config_id,
-    PPB_Audio_Callback_1_0 audio_callback,
-    void* user_data) {
-  return PPB_Audio_Proxy::CreateProxyResource(
-      instance, config_id, AudioCallbackCombined(audio_callback), user_data);
-}
-
-PP_Resource ResourceCreationProxy::CreateAudio(
-    PP_Instance instance,
-    PP_Resource config_id,
-    PPB_Audio_Callback audio_callback,
-    void* user_data) {
-  return PPB_Audio_Proxy::CreateProxyResource(
-      instance, config_id, AudioCallbackCombined(audio_callback), user_data);
-}
-
-PP_Resource ResourceCreationProxy::CreateAudioTrusted(PP_Instance instance) {
-  // Proxied plugins can't create trusted audio devices.
-  return 0;
-}
-
-PP_Resource ResourceCreationProxy::CreateAudioConfig(
-    PP_Instance instance,
-    PP_AudioSampleRate sample_rate,
-    uint32_t sample_frame_count) {
-  return PPB_AudioConfig_Shared::Create(
-      OBJECT_IS_PROXY, instance, sample_rate, sample_frame_count);
-}
-
-PP_Resource ResourceCreationProxy::CreateCameraDevicePrivate(
-    PP_Instance instance) {
-  return (new CameraDeviceResource(GetConnection(), instance))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateFileChooser(
-    PP_Instance instance,
-    PP_FileChooserMode_Dev mode,
-    const PP_Var& accept_types) {
-  scoped_refptr<StringVar> string_var = StringVar::FromPPVar(accept_types);
-  std::string str = string_var.get() ? string_var->value() : std::string();
-  return (new FileChooserResource(GetConnection(), instance, mode, str.c_str()))
-      ->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateGraphics2D(PP_Instance instance,
-                                                    const PP_Size* size,
-                                                    PP_Bool is_always_opaque) {
-  return (new Graphics2DResource(GetConnection(), instance, *size,
-                                 is_always_opaque))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateGraphics3D(
-    PP_Instance instance,
-    PP_Resource share_context,
-    const int32_t* attrib_list) {
-  return PPB_Graphics3D_Proxy::CreateProxyResource(
-      instance, share_context, attrib_list);
-}
-
-PP_Resource ResourceCreationProxy::CreateGraphics3DRaw(
-    PP_Instance instance,
-    PP_Resource share_context,
-    const Graphics3DContextAttribs& context_attribs,
-    gpu::Capabilities* capabilities,
-    gpu::GLCapabilities* gl_capabilities,
-    const base::UnsafeSharedMemoryRegion** shared_state,
-    gpu::CommandBufferId* command_buffer_id) {
-  // Not proxied. The raw creation function is used only in the implementation
-  // of the proxy on the host side.
-  return 0;
-}
-
-PP_Resource ResourceCreationProxy::CreateHostResolver(PP_Instance instance) {
-  return (new HostResolverResource(GetConnection(), instance))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateHostResolverPrivate(
-    PP_Instance instance) {
-  return (new HostResolverPrivateResource(
-      GetConnection(), instance))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateImageData(
-    PP_Instance instance,
-    PP_ImageDataFormat format,
-    const PP_Size* size,
-    PP_Bool init_to_zero) {
-  // On the plugin side, we create PlatformImageData resources for trusted
-  // plugins and SimpleImageData resources for untrusted ones.
-  PPB_ImageData_Shared::ImageDataType type =
-#if !BUILDFLAG(IS_NACL)
-      PPB_ImageData_Shared::PLATFORM;
-#else
-      PPB_ImageData_Shared::SIMPLE;
-#endif
-  return PPB_ImageData_Proxy::CreateProxyResource(
-      instance, type,
-      format, *size, init_to_zero);
-}
-
-PP_Resource ResourceCreationProxy::CreateImageDataSimple(
-    PP_Instance instance,
-    PP_ImageDataFormat format,
-    const PP_Size* size,
-    PP_Bool init_to_zero) {
-  return PPB_ImageData_Proxy::CreateProxyResource(
-      instance,
-      PPB_ImageData_Shared::SIMPLE,
-      format, *size, init_to_zero);
-}
-
-PP_Resource ResourceCreationProxy::CreateMediaStreamVideoTrack(
-    PP_Instance instance) {
-  return (new MediaStreamVideoTrackResource(GetConnection(),
-                                            instance))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateNetAddressFromIPv4Address(
-    PP_Instance instance,
-    const PP_NetAddress_IPv4* ipv4_addr) {
-  return (new NetAddressResource(GetConnection(), instance,
-                                 *ipv4_addr))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateNetAddressFromIPv6Address(
-    PP_Instance instance,
-    const PP_NetAddress_IPv6* ipv6_addr) {
-  return (new NetAddressResource(GetConnection(), instance,
-                                 *ipv6_addr))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateNetAddressFromNetAddressPrivate(
-    PP_Instance instance,
-    const PP_NetAddress_Private& private_addr) {
-  return (new NetAddressResource(GetConnection(), instance,
-                                 private_addr))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateNetworkMonitor(
-    PP_Instance instance) {
-  return (new NetworkMonitorResource(GetConnection(), instance))->
-      GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreatePrinting(PP_Instance instance) {
-  return (new PrintingResource(GetConnection(), instance))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateTCPServerSocketPrivate(
-    PP_Instance instance) {
-  return (new TCPServerSocketPrivateResource(GetConnection(), instance))->
-      GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateTCPSocket1_0(
-    PP_Instance instance) {
-  return (new TCPSocketResource(GetConnection(), instance,
-                                TCP_SOCKET_VERSION_1_0))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateTCPSocket(
-    PP_Instance instance) {
-  return (new TCPSocketResource(
-      GetConnection(), instance, TCP_SOCKET_VERSION_1_1_OR_ABOVE))->
-          GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateTCPSocketPrivate(
-    PP_Instance instance) {
-  return (new TCPSocketPrivateResource(GetConnection(), instance))->
-      GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateUDPSocket(PP_Instance instance) {
-  return (new UDPSocketResource(GetConnection(), instance))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateUDPSocketPrivate(
-    PP_Instance instance) {
-  return (new UDPSocketPrivateResource(
-      GetConnection(), instance))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateVideoDecoder(PP_Instance instance) {
-  return (new VideoDecoderResource(GetConnection(), instance))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateVideoEncoder(PP_Instance instance) {
-  return (new VideoEncoderResource(GetConnection(), instance))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateVpnProvider(PP_Instance instance) {
-  return (new VpnProviderResource(GetConnection(), instance))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateWebSocket(PP_Instance instance) {
-  return (new WebSocketResource(GetConnection(), instance))->GetReference();
-}
-
-#if !BUILDFLAG(IS_NACL)
-PP_Resource ResourceCreationProxy::CreateX509CertificatePrivate(
-    PP_Instance instance) {
-  return PPB_X509Certificate_Private_Proxy::CreateProxyResource(instance);
-}
-
-PP_Resource ResourceCreationProxy::CreateAudioInput(
-    PP_Instance instance) {
-  return (new AudioInputResource(GetConnection(), instance))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateAudioOutput(PP_Instance instance) {
-  return (new AudioOutputResource(GetConnection(), instance))->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateBrowserFont(
-    PP_Instance instance,
-    const PP_BrowserFont_Trusted_Description* description) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return 0;
-  return PluginGlobals::Get()->CreateBrowserFont(
-      GetConnection(), instance, *description, dispatcher->preferences());
-}
-
-PP_Resource ResourceCreationProxy::CreateBuffer(PP_Instance instance,
-                                                uint32_t size) {
-  return PPB_Buffer_Proxy::CreateProxyResource(instance, size);
-}
-
-PP_Resource ResourceCreationProxy::CreateVideoCapture(PP_Instance instance) {
-  PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
-  if (!dispatcher)
-    return 0;
-  return (new VideoCaptureResource(GetConnection(), instance, dispatcher))
-      ->GetReference();
-}
-
-PP_Resource ResourceCreationProxy::CreateVideoDecoderDev(
-    PP_Instance instance,
-    PP_Resource context3d_id,
-    PP_VideoDecoder_Profile profile) {
-  return PPB_VideoDecoder_Proxy::CreateProxyResource(
-      instance, context3d_id, profile);
-}
-
-#endif  // !BUILDFLAG(IS_NACL)
-
-bool ResourceCreationProxy::Send(IPC::Message* msg) {
-  return dispatcher()->Send(msg);
-}
-
-bool ResourceCreationProxy::OnMessageReceived(const IPC::Message& msg) {
-  return false;
-}
-
-Connection ResourceCreationProxy::GetConnection() {
-  return Connection(PluginGlobals::Get()->GetBrowserSender(),
-                    static_cast<PluginDispatcher*>(dispatcher())->sender());
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/resource_creation_proxy.h b/proxy/resource_creation_proxy.h
deleted file mode 100644
index dcda14a..0000000
--- a/proxy/resource_creation_proxy.h
+++ /dev/null
@@ -1,182 +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_PROXY_RESOURCE_CREATION_PROXY_H_
-#define PPAPI_PROXY_RESOURCE_CREATION_PROXY_H_
-
-#include <stdint.h>
-
-#include "build/build_config.h"
-#include "ipc/ipc_channel.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/proxy/serialized_structs.h"
-#include "ppapi/thunk/resource_creation_api.h"
-
-struct PP_Size;
-
-namespace ppapi {
-
-namespace proxy {
-
-class Connection;
-class Dispatcher;
-
-class ResourceCreationProxy : public InterfaceProxy,
-                              public thunk::ResourceCreationAPI {
- public:
-  explicit ResourceCreationProxy(Dispatcher* dispatcher);
-
-  ResourceCreationProxy(const ResourceCreationProxy&) = delete;
-  ResourceCreationProxy& operator=(const ResourceCreationProxy&) = delete;
-
-  ~ResourceCreationProxy() override;
-
-  // Factory function used for registration (normal code can just use the
-  // constructor).
-  static InterfaceProxy* Create(Dispatcher* dispatcher);
-
-  // ResourceCreationAPI (called in plugin).
-  PP_Resource CreateFileIO(PP_Instance instance) override;
-  PP_Resource CreateFileRef(
-      PP_Instance instance,
-      const FileRefCreateInfo& create_info) override;
-  PP_Resource CreateFileSystem(PP_Instance instance,
-                               PP_FileSystemType type) override;
-  PP_Resource CreateIMEInputEvent(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) override;
-  PP_Resource CreateKeyboardInputEvent_1_0(
-      PP_Instance instance,
-      PP_InputEvent_Type type,
-      PP_TimeTicks time_stamp,
-      uint32_t modifiers,
-      uint32_t key_code,
-      PP_Var character_text) override;
-  PP_Resource CreateKeyboardInputEvent_1_2(
-      PP_Instance instance,
-      PP_InputEvent_Type type,
-      PP_TimeTicks time_stamp,
-      uint32_t modifiers,
-      uint32_t key_code,
-      PP_Var character_text,
-      PP_Var code) override;
-  PP_Resource CreateMouseInputEvent(
-      PP_Instance instance,
-      PP_InputEvent_Type type,
-      PP_TimeTicks time_stamp,
-      uint32_t modifiers,
-      PP_InputEvent_MouseButton mouse_button,
-      const PP_Point* mouse_position,
-      int32_t click_count,
-      const PP_Point* mouse_movement) override;
-  PP_Resource CreateTouchInputEvent(
-      PP_Instance instance,
-      PP_InputEvent_Type type,
-      PP_TimeTicks time_stamp,
-      uint32_t modifiers) override;
-  PP_Resource CreateURLLoader(PP_Instance instance) override;
-  PP_Resource CreateURLRequestInfo(PP_Instance instance) override;
-  PP_Resource CreateWheelInputEvent(
-      PP_Instance instance,
-      PP_TimeTicks time_stamp,
-      uint32_t modifiers,
-      const PP_FloatPoint* wheel_delta,
-      const PP_FloatPoint* wheel_ticks,
-      PP_Bool scroll_by_page) override;
-  PP_Resource CreateAudio1_0(PP_Instance instance,
-                             PP_Resource config_id,
-                             PPB_Audio_Callback_1_0 audio_callback,
-                             void* user_data) override;
-  PP_Resource CreateAudio(PP_Instance instance,
-                          PP_Resource config_id,
-                          PPB_Audio_Callback audio_callback,
-                          void* user_data) override;
-  PP_Resource CreateAudioTrusted(PP_Instance instance) override;
-  PP_Resource CreateAudioConfig(PP_Instance instance,
-                                PP_AudioSampleRate sample_rate,
-                                uint32_t sample_frame_count) override;
-  PP_Resource CreateCameraDevicePrivate(PP_Instance instance) override;
-  PP_Resource CreateFileChooser(PP_Instance instance,
-                                PP_FileChooserMode_Dev mode,
-                                const PP_Var& accept_types) override;
-  PP_Resource CreateGraphics2D(PP_Instance pp_instance,
-                               const PP_Size* size,
-                               PP_Bool is_always_opaque) override;
-  PP_Resource CreateGraphics3D(PP_Instance instance,
-                               PP_Resource share_context,
-                               const int32_t* attrib_list) override;
-  PP_Resource CreateGraphics3DRaw(
-      PP_Instance instance,
-      PP_Resource share_context,
-      const Graphics3DContextAttribs& context_attribs,
-      gpu::Capabilities* capabilities,
-      gpu::GLCapabilities* gl_capabilities,
-      const base::UnsafeSharedMemoryRegion** shared_state,
-      gpu::CommandBufferId* command_buffer_id) override;
-  PP_Resource CreateHostResolver(PP_Instance instance) override;
-  PP_Resource CreateHostResolverPrivate(PP_Instance instance) override;
-  PP_Resource CreateImageData(PP_Instance instance,
-                              PP_ImageDataFormat format,
-                              const PP_Size* size,
-                              PP_Bool init_to_zero) override;
-  PP_Resource CreateImageDataSimple(PP_Instance instance,
-                                    PP_ImageDataFormat format,
-                                    const PP_Size* size,
-                                    PP_Bool init_to_zero) override;
-  PP_Resource CreateMediaStreamVideoTrack(PP_Instance instance) override;
-  PP_Resource CreateNetAddressFromIPv4Address(
-      PP_Instance instance,
-      const PP_NetAddress_IPv4* ipv4_addr) override;
-  PP_Resource CreateNetAddressFromIPv6Address(
-      PP_Instance instance,
-      const PP_NetAddress_IPv6* ipv6_addr) override;
-  PP_Resource CreateNetAddressFromNetAddressPrivate(
-      PP_Instance instance,
-      const PP_NetAddress_Private& private_addr) override;
-  PP_Resource CreateNetworkMonitor(PP_Instance instance) override;
-  PP_Resource CreatePrinting(PP_Instance) override;
-  PP_Resource CreateTCPServerSocketPrivate(PP_Instance instance) override;
-  PP_Resource CreateTCPSocket1_0(PP_Instance instance) override;
-  PP_Resource CreateTCPSocket(PP_Instance instance) override;
-  PP_Resource CreateTCPSocketPrivate(PP_Instance instance) override;
-  PP_Resource CreateUDPSocket(PP_Instance instance) override;
-  PP_Resource CreateUDPSocketPrivate(PP_Instance instance) override;
-  PP_Resource CreateVideoDecoder(PP_Instance instance) override;
-  PP_Resource CreateVideoEncoder(PP_Instance instance) override;
-  PP_Resource CreateVpnProvider(PP_Instance instance) override;
-  PP_Resource CreateWebSocket(PP_Instance instance) override;
-#if !BUILDFLAG(IS_NACL)
-  PP_Resource CreateX509CertificatePrivate(PP_Instance instance) override;
-  PP_Resource CreateAudioInput(PP_Instance instance) override;
-  PP_Resource CreateAudioOutput(PP_Instance instance) override;
-  PP_Resource CreateBrowserFont(
-      PP_Instance instance,
-      const PP_BrowserFont_Trusted_Description* description) override;
-  PP_Resource CreateBuffer(PP_Instance instance, uint32_t size) override;
-  PP_Resource CreateVideoCapture(PP_Instance instance) override;
-  PP_Resource CreateVideoDecoderDev(
-      PP_Instance instance,
-      PP_Resource context3d_id,
-      PP_VideoDecoder_Profile profile) override;
-#endif  // !BUILDFLAG(IS_NACL)
-
-  bool Send(IPC::Message* msg) override;
-  bool OnMessageReceived(const IPC::Message& msg) override;
-
- private:
-  Connection GetConnection();
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_RESOURCE_CREATION_PROXY_H_
diff --git a/proxy/resource_message_filter.h b/proxy/resource_message_filter.h
deleted file mode 100644
index 2ea0b04..0000000
--- a/proxy/resource_message_filter.h
+++ /dev/null
@@ -1,51 +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_PROXY_RESOURCE_MESSAGE_FILTER_H_
-#define PPAPI_PROXY_RESOURCE_MESSAGE_FILTER_H_
-
-#include "base/memory/ref_counted.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-
-namespace IPC {
-class Message;
-}
-
-namespace ppapi {
-namespace proxy {
-class ResourceMessageReplyParams;
-
-// A ResourceMessageFilter lives on the IO thread and handles messages for a
-// particular resource type. This is necessary in some cases where we want to
-// reduce latency by doing some work on the IO thread rather than having to
-// PostTask to the main Pepper thread.
-//
-// Note: In some cases we can rely on a reply being associated with a
-// particular TrackedCallback, in which case we can dispatch directly to the
-// TrackedCallback's thread. See ReplyThreadRegistrar. That should be the first
-// choice for avoiding an unecessary jump to the main-thread.
-//
-// ResourceMessageFilter is for cases where there is not a one-to-one
-// relationship between a reply message and a TrackedCallback. For example, for
-// UDP Socket resources, the browser pushes data to the plugin even when the
-// plugin does not have a pending callback. We can't use the
-// ReplyThreadRegistrar, because data may arrive when there's not yet a
-// TrackedCallback to tell us what thread to use. So instead, we define a
-// UDPSocketFilter which accepts and queues UDP data on the IO thread.
-class PPAPI_PROXY_EXPORT ResourceMessageFilter
-    : public base::RefCountedThreadSafe<ResourceMessageFilter> {
- public:
-  virtual bool OnResourceReplyReceived(
-      const ResourceMessageReplyParams& reply_params,
-      const IPC::Message& nested_msg) = 0;
-
- protected:
-  friend class base::RefCountedThreadSafe<ResourceMessageFilter>;
-  virtual ~ResourceMessageFilter() {}
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_RESOURCE_MESSAGE_FILTER_H_
diff --git a/proxy/resource_message_params.cc b/proxy/resource_message_params.cc
deleted file mode 100644
index be1460d..0000000
--- a/proxy/resource_message_params.cc
+++ /dev/null
@@ -1,207 +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/proxy/resource_message_params.h"
-
-#include "base/check.h"
-#include "base/memory/read_only_shared_memory_region.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/ppapi_messages.h"
-
-namespace ppapi {
-namespace proxy {
-
-ResourceMessageParams::SerializedHandles::SerializedHandles()
-    : should_close_(false) {
-}
-
-ResourceMessageParams::SerializedHandles::~SerializedHandles() {
-  if (should_close_) {
-    for (std::vector<SerializedHandle>::iterator iter = data_.begin();
-         iter != data_.end(); ++iter) {
-      iter->Close();
-    }
-  }
-}
-
-ResourceMessageParams::ResourceMessageParams()
-    : pp_resource_(0),
-      sequence_(0),
-      handles_(new SerializedHandles()) {
-}
-
-ResourceMessageParams::ResourceMessageParams(PP_Resource resource,
-                                             int32_t sequence)
-    : pp_resource_(resource),
-      sequence_(sequence),
-      handles_(new SerializedHandles()) {
-}
-
-ResourceMessageParams::~ResourceMessageParams() {
-}
-
-void ResourceMessageParams::Serialize(base::Pickle* msg) const {
-  WriteHeader(msg);
-  WriteHandles(msg);
-}
-
-bool ResourceMessageParams::Deserialize(const base::Pickle* msg,
-                                        base::PickleIterator* iter) {
-  return ReadHeader(msg, iter) && ReadHandles(msg, iter);
-}
-
-void ResourceMessageParams::WriteHeader(base::Pickle* msg) const {
-  IPC::WriteParam(msg, pp_resource_);
-  IPC::WriteParam(msg, sequence_);
-}
-
-void ResourceMessageParams::WriteHandles(base::Pickle* msg) const {
-  IPC::WriteParam(msg, handles_->data());
-}
-
-bool ResourceMessageParams::ReadHeader(const base::Pickle* msg,
-                                       base::PickleIterator* iter) {
-  DCHECK(handles_->data().empty());
-  handles_->set_should_close(true);
-  return IPC::ReadParam(msg, iter, &pp_resource_) &&
-         IPC::ReadParam(msg, iter, &sequence_);
-}
-
-bool ResourceMessageParams::ReadHandles(const base::Pickle* msg,
-                                        base::PickleIterator* iter) {
-  return IPC::ReadParam(msg, iter, &handles_->data());
-}
-
-void ResourceMessageParams::ConsumeHandles() const {
-  // Note: we must not invalidate the handles. This is used for converting
-  // handles from the host OS to NaCl, and that conversion will not work if we
-  // invalidate the handles (see HandleConverter).
-  handles_->set_should_close(false);
-}
-
-SerializedHandle ResourceMessageParams::TakeHandleOfTypeAtIndex(
-    size_t index,
-    SerializedHandle::Type type) const {
-  SerializedHandle handle;
-  std::vector<SerializedHandle>& data = handles_->data();
-  if (index < data.size() && data[index].type() == type)
-    handle = std::move(data[index]);
-  return handle;
-}
-
-bool ResourceMessageParams::TakeReadOnlySharedMemoryRegionAtIndex(
-    size_t index,
-    base::ReadOnlySharedMemoryRegion* region) const {
-  SerializedHandle serialized =
-      TakeHandleOfTypeAtIndex(index, SerializedHandle::SHARED_MEMORY_REGION);
-  if (!serialized.is_shmem_region())
-    return false;
-  *region = base::ReadOnlySharedMemoryRegion::Deserialize(
-      serialized.TakeSharedMemoryRegion());
-  return true;
-}
-
-bool ResourceMessageParams::TakeUnsafeSharedMemoryRegionAtIndex(
-    size_t index,
-    base::UnsafeSharedMemoryRegion* region) const {
-  SerializedHandle serialized =
-      TakeHandleOfTypeAtIndex(index, SerializedHandle::SHARED_MEMORY_REGION);
-  if (!serialized.is_shmem_region())
-    return false;
-  *region = base::UnsafeSharedMemoryRegion::Deserialize(
-      serialized.TakeSharedMemoryRegion());
-  return true;
-}
-
-bool ResourceMessageParams::TakeSocketHandleAtIndex(
-    size_t index,
-    IPC::PlatformFileForTransit* handle) const {
-  SerializedHandle serialized = TakeHandleOfTypeAtIndex(
-      index, SerializedHandle::SOCKET);
-  if (!serialized.is_socket())
-    return false;
-  *handle = serialized.descriptor();
-  return true;
-}
-
-bool ResourceMessageParams::TakeFileHandleAtIndex(
-    size_t index,
-    IPC::PlatformFileForTransit* handle) const {
-  SerializedHandle serialized = TakeHandleOfTypeAtIndex(
-      index, SerializedHandle::FILE);
-  if (!serialized.is_file())
-    return false;
-  *handle = serialized.descriptor();
-  return true;
-}
-
-void ResourceMessageParams::TakeAllHandles(
-    std::vector<SerializedHandle>* handles) const {
-  std::vector<SerializedHandle>& data = handles_->data();
-  for (size_t i = 0; i < data.size(); ++i)
-    handles->push_back(std::move(data[i]));
-}
-
-void ResourceMessageParams::AppendHandle(SerializedHandle handle) const {
-  handles_->data().push_back(std::move(handle));
-}
-
-ResourceMessageCallParams::ResourceMessageCallParams()
-    : ResourceMessageParams(), has_callback_(false) {}
-
-ResourceMessageCallParams::ResourceMessageCallParams(PP_Resource resource,
-                                                     int32_t sequence)
-    : ResourceMessageParams(resource, sequence), has_callback_(false) {}
-
-ResourceMessageCallParams::~ResourceMessageCallParams() {
-}
-
-void ResourceMessageCallParams::Serialize(base::Pickle* msg) const {
-  ResourceMessageParams::Serialize(msg);
-  IPC::WriteParam(msg, has_callback_);
-}
-
-bool ResourceMessageCallParams::Deserialize(const base::Pickle* msg,
-                                            base::PickleIterator* iter) {
-  if (!ResourceMessageParams::Deserialize(msg, iter))
-    return false;
-  return IPC::ReadParam(msg, iter, &has_callback_);
-}
-
-ResourceMessageReplyParams::ResourceMessageReplyParams()
-    : ResourceMessageParams(),
-      result_(PP_OK) {
-}
-
-ResourceMessageReplyParams::ResourceMessageReplyParams(PP_Resource resource,
-                                                       int32_t sequence)
-    : ResourceMessageParams(resource, sequence),
-      result_(PP_OK) {
-}
-
-ResourceMessageReplyParams::~ResourceMessageReplyParams() {
-}
-
-void ResourceMessageReplyParams::Serialize(base::Pickle* msg) const {
-  // Rather than serialize all of ResourceMessageParams first, we serialize all
-  // non-handle data first, then the handles. When transferring to NaCl on
-  // Windows, we need to be able to translate Windows-style handles to POSIX-
-  // style handles, and it's easier to put all the regular stuff at the front.
-  WriteReplyHeader(msg);
-  WriteHandles(msg);
-}
-
-bool ResourceMessageReplyParams::Deserialize(const base::Pickle* msg,
-                                             base::PickleIterator* iter) {
-  return (ReadHeader(msg, iter) && IPC::ReadParam(msg, iter, &result_) &&
-          ReadHandles(msg, iter));
-}
-
-void ResourceMessageReplyParams::WriteReplyHeader(base::Pickle* msg) const {
-  WriteHeader(msg);
-  IPC::WriteParam(msg, result_);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/resource_message_params.h b/proxy/resource_message_params.h
deleted file mode 100644
index b3af153..0000000
--- a/proxy/resource_message_params.h
+++ /dev/null
@@ -1,221 +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_PROXY_RESOURCE_MESSAGE_PARAMS_H_
-#define PPAPI_PROXY_RESOURCE_MESSAGE_PARAMS_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <vector>
-
-#include "base/memory/ref_counted.h"
-#include "ipc/ipc_message_utils.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/proxy/serialized_handle.h"
-
-namespace base {
-class ReadOnlySharedMemoryRegion;
-}
-
-namespace ppapi {
-namespace proxy {
-
-// Common parameters for resource call and reply params structures below.
-class PPAPI_PROXY_EXPORT ResourceMessageParams {
- public:
-  virtual ~ResourceMessageParams();
-
-  PP_Resource pp_resource() const { return pp_resource_; }
-  int32_t sequence() const { return sequence_; }
-
-  // Note that the caller doesn't take ownership of the returned handles.
-  const std::vector<SerializedHandle>& handles() const {
-    return handles_->data();
-  }
-
-  // Makes ResourceMessageParams leave its handles open, even if they weren't
-  // taken using a Take.* function. After this call, no Take.* calls are
-  // allowed.
-  void ConsumeHandles() const;
-
-  // Returns the handle at the given index if it exists and is of the given
-  // type. The corresponding slot in the list is set to an invalid handle.
-  // If the index doesn't exist or the handle isn't of the given type, returns
-  // an invalid handle.
-  // Note that the caller is responsible for closing the returned handle, if it
-  // is valid.
-  SerializedHandle TakeHandleOfTypeAtIndex(size_t index,
-                                           SerializedHandle::Type type) const;
-
-  // Helper functions to return shared memory, socket or file handles passed in
-  // the params struct.
-  // If the index has a valid handle of the given type, it will be placed in the
-  // output parameter, the corresponding slot in the list will be set to an
-  // invalid handle, and the function will return true. If the handle doesn't
-  // exist or is a different type, the functions will return false and the
-  // output parameter will be untouched.
-  //
-  // Note: 1) the handle could still be a "null" or invalid handle of the right
-  //          type and the functions will succeed.
-  //       2) the caller is responsible for closing the returned handle, if it
-  //          is valid.
-  bool TakeReadOnlySharedMemoryRegionAtIndex(
-      size_t index,
-      base::ReadOnlySharedMemoryRegion* region) const;
-  bool TakeUnsafeSharedMemoryRegionAtIndex(
-      size_t index,
-      base::UnsafeSharedMemoryRegion* region) const;
-  bool TakeSocketHandleAtIndex(size_t index,
-                               IPC::PlatformFileForTransit* handle) const;
-  bool TakeFileHandleAtIndex(size_t index,
-                             IPC::PlatformFileForTransit* handle) const;
-  void TakeAllHandles(std::vector<SerializedHandle>* handles) const;
-
-  // Appends the given handle to the list of handles sent with the call or
-  // reply.
-  void AppendHandle(SerializedHandle handle) const;
-
- protected:
-  ResourceMessageParams();
-  ResourceMessageParams(PP_Resource resource, int32_t sequence);
-
-  virtual void Serialize(base::Pickle* msg) const;
-  virtual bool Deserialize(const base::Pickle* msg, base::PickleIterator* iter);
-
-  // Writes everything except the handles to |msg|.
-  void WriteHeader(base::Pickle* msg) const;
-  // Writes the handles to |msg|.
-  void WriteHandles(base::Pickle* msg) const;
-  // Matching deserialize helpers.
-  bool ReadHeader(const base::Pickle* msg, base::PickleIterator* iter);
-  bool ReadHandles(const base::Pickle* msg, base::PickleIterator* iter);
-
- private:
-  class PPAPI_PROXY_EXPORT SerializedHandles
-      : public base::RefCountedThreadSafe<SerializedHandles> {
-   public:
-    SerializedHandles();
-    ~SerializedHandles();
-
-    void set_should_close(bool value) { should_close_ = value; }
-    std::vector<SerializedHandle>& data() { return data_; }
-
-   private:
-    friend class base::RefCountedThreadSafe<SerializedHandles>;
-
-    // Whether the handles stored in |data_| should be closed when this object
-    // goes away.
-    //
-    // It is set to true by ResourceMessageParams::Deserialize(), so that the
-    // receiving side of the params (the host side for
-    // ResourceMessageCallParams; the plugin side for
-    // ResourceMessageReplyParams) will close those handles which haven't been
-    // taken using any of the Take*() methods.
-    bool should_close_;
-    std::vector<SerializedHandle> data_;
-  };
-
-  PP_Resource pp_resource_;
-
-  // Identifier for this message. Sequence numbers are quasi-unique within a
-  // resource, but will overlap between different resource objects.
-  //
-  // If you send a lot of messages, the ID may wrap around. This is OK. All IDs
-  // are valid and 0 and -1 aren't special, so those cases won't confuse us.
-  // In practice, if you send more than 4 billion messages for a resource, the
-  // old ones will be long gone and there will be no collisions.
-  //
-  // If there is a malicious plugin (or exceptionally bad luck) that causes a
-  // wraparound and collision the worst that will happen is that we can get
-  // confused between different callbacks. But since these can only cause
-  // confusion within the plugin and within callbacks on the same resource,
-  // there shouldn't be a security problem.
-  int32_t sequence_;
-
-  // A list of all handles transferred in the message. Handles go here so that
-  // the NaCl adapter can extract them generally when it rewrites them to
-  // go between Windows and NaCl (Posix) apps.
-  // TODO(yzshen): Mark it as mutable so that we can take/append handles using a
-  // const reference. We need to change all the callers and make it not mutable.
-  mutable scoped_refptr<SerializedHandles> handles_;
-};
-
-// Parameters common to all ResourceMessage "Call" requests.
-class PPAPI_PROXY_EXPORT ResourceMessageCallParams
-    : public ResourceMessageParams {
- public:
-  ResourceMessageCallParams();
-  ResourceMessageCallParams(PP_Resource resource, int32_t sequence);
-  ~ResourceMessageCallParams() override;
-
-  void set_has_callback() { has_callback_ = true; }
-  bool has_callback() const { return has_callback_; }
-
-  void Serialize(base::Pickle* msg) const override;
-  bool Deserialize(const base::Pickle* msg,
-                   base::PickleIterator* iter) override;
-
- private:
-  bool has_callback_;
-};
-
-// Parameters common to all ResourceMessage "Reply" requests.
-class PPAPI_PROXY_EXPORT ResourceMessageReplyParams
-    : public ResourceMessageParams {
- public:
-  ResourceMessageReplyParams();
-  ResourceMessageReplyParams(PP_Resource resource, int32_t sequence);
-  ~ResourceMessageReplyParams() override;
-
-  void set_result(int32_t r) { result_ = r; }
-  int32_t result() const { return result_; }
-
-  void Serialize(base::Pickle* msg) const override;
-  bool Deserialize(const base::Pickle* msg,
-                   base::PickleIterator* iter) override;
-
-  // Writes everything except the handles to |msg|.
-  void WriteReplyHeader(base::Pickle* msg) const;
-
- private:
-  // Pepper "result code" for the callback.
-  int32_t result_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-namespace IPC {
-
-template <> struct PPAPI_PROXY_EXPORT
-ParamTraits<ppapi::proxy::ResourceMessageCallParams> {
-  typedef ppapi::proxy::ResourceMessageCallParams param_type;
-  static void Write(base::Pickle* m, const param_type& p) { p.Serialize(m); }
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* r) {
-    return r->Deserialize(m, iter);
-  }
-  static void Log(const param_type& p, std::string* l) {
-  }
-};
-
-template <> struct PPAPI_PROXY_EXPORT
-ParamTraits<ppapi::proxy::ResourceMessageReplyParams> {
-  typedef ppapi::proxy::ResourceMessageReplyParams param_type;
-  static void Write(base::Pickle* m, const param_type& p) { p.Serialize(m); }
-  static bool Read(const base::Pickle* m,
-                   base::PickleIterator* iter,
-                   param_type* r) {
-    return r->Deserialize(m, iter);
-  }
-  static void Log(const param_type& p, std::string* l) {
-  }
-};
-
-}  // namespace IPC
-
-#endif  // PPAPI_PROXY_RESOURCE_MESSAGE_PARAMS_H_
diff --git a/proxy/resource_reply_thread_registrar.cc b/proxy/resource_reply_thread_registrar.cc
deleted file mode 100644
index 12b8929..0000000
--- a/proxy/resource_reply_thread_registrar.cc
+++ /dev/null
@@ -1,74 +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.
-
-#include "ppapi/proxy/resource_reply_thread_registrar.h"
-
-#include "base/check.h"
-#include "base/task/single_thread_task_runner.h"
-#include "ipc/ipc_message.h"
-#include "ppapi/proxy/resource_message_params.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-
-namespace ppapi {
-namespace proxy {
-
-ResourceReplyThreadRegistrar::ResourceReplyThreadRegistrar(
-    scoped_refptr<base::SingleThreadTaskRunner> main_thread)
-    : main_thread_(main_thread) {
-}
-
-ResourceReplyThreadRegistrar::~ResourceReplyThreadRegistrar() {
-}
-
-void ResourceReplyThreadRegistrar::Register(
-    PP_Resource resource,
-    int32_t sequence_number,
-    scoped_refptr<TrackedCallback> reply_thread_hint) {
-  ProxyLock::AssertAcquiredDebugOnly();
-
-  // Use the main thread if |reply_thread_hint| is NULL or blocking.
-  if (!reply_thread_hint.get() || reply_thread_hint->is_blocking())
-    return;
-
-  DCHECK(reply_thread_hint->target_loop());
-  scoped_refptr<base::SingleThreadTaskRunner> reply_thread(
-      reply_thread_hint->target_loop()->GetTaskRunner());
-  {
-    base::AutoLock auto_lock(lock_);
-
-    if (reply_thread.get() == main_thread_.get())
-      return;
-
-    map_[resource][sequence_number] = reply_thread;
-  }
-}
-
-void ResourceReplyThreadRegistrar::Unregister(PP_Resource resource) {
-  base::AutoLock auto_lock(lock_);
-  map_.erase(resource);
-}
-
-scoped_refptr<base::SingleThreadTaskRunner>
-ResourceReplyThreadRegistrar::GetTargetThread(
-    const ResourceMessageReplyParams& reply_params,
-    const IPC::Message& nested_msg) {
-  base::AutoLock auto_lock(lock_);
-  ResourceMap::iterator resource_iter = map_.find(reply_params.pp_resource());
-  if (resource_iter != map_.end()) {
-    SequenceThreadMap::iterator sequence_thread_iter =
-        resource_iter->second.find(reply_params.sequence());
-    if (sequence_thread_iter != resource_iter->second.end()) {
-      scoped_refptr<base::SingleThreadTaskRunner> target =
-          sequence_thread_iter->second;
-      resource_iter->second.erase(sequence_thread_iter);
-      return target;
-    }
-  }
-
-  return main_thread_;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/resource_reply_thread_registrar.h b/proxy/resource_reply_thread_registrar.h
deleted file mode 100644
index 64d6579..0000000
--- a/proxy/resource_reply_thread_registrar.h
+++ /dev/null
@@ -1,79 +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.
-
-#ifndef PPAPI_PROXY_RESOURCE_REPLY_THREAD_REGISTRAR_H_
-#define PPAPI_PROXY_RESOURCE_REPLY_THREAD_REGISTRAR_H_
-
-#include <stdint.h>
-
-#include <map>
-#include <set>
-
-#include "base/memory/ref_counted.h"
-#include "base/synchronization/lock.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-
-
-namespace base {
-class SingleThreadTaskRunner;
-}
-
-namespace IPC {
-class Message;
-}
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace proxy {
-
-class ResourceMessageReplyParams;
-
-// ResourceReplyThreadRegistrar records the handling thread for
-// PpapiPluginMsg_ResourceReply messages.
-// This class is thread safe.
-class PPAPI_PROXY_EXPORT ResourceReplyThreadRegistrar
-    : public base::RefCountedThreadSafe<ResourceReplyThreadRegistrar> {
- public:
-  explicit ResourceReplyThreadRegistrar(
-      scoped_refptr<base::SingleThreadTaskRunner> main_thread);
-
-  ResourceReplyThreadRegistrar(const ResourceReplyThreadRegistrar&) = delete;
-  ResourceReplyThreadRegistrar& operator=(const ResourceReplyThreadRegistrar&) =
-      delete;
-
-  // This method can only be called while holding the Pepper proxy lock; the
-  // other methods can be called with/without the Pepper proxy lock.
-  void Register(PP_Resource resource,
-                int32_t sequence_number,
-                scoped_refptr<TrackedCallback> reply_thread_hint);
-  void Unregister(PP_Resource resource);
-
-  scoped_refptr<base::SingleThreadTaskRunner> GetTargetThread(
-      const ResourceMessageReplyParams& reply_params,
-      const IPC::Message& nested_msg);
-
- private:
-  friend class base::RefCountedThreadSafe<ResourceReplyThreadRegistrar>;
-
-  typedef std::map<int32_t, scoped_refptr<base::SingleThreadTaskRunner>>
-      SequenceThreadMap;
-  typedef std::map<PP_Resource, SequenceThreadMap> ResourceMap;
-
-  ~ResourceReplyThreadRegistrar();
-
-  // The lock that protects the data members below.
-  // Please note that we should never try to acquire the Pepper proxy lock while
-  // holding |lock_|, otherwise we will cause deadlock.
-  base::Lock lock_;
-  ResourceMap map_;
-  scoped_refptr<base::SingleThreadTaskRunner> main_thread_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif   // PPAPI_PROXY_RESOURCE_REPLY_THREAD_REGISTRAR_H_
diff --git a/proxy/serialized_handle.cc b/proxy/serialized_handle.cc
deleted file mode 100644
index 495a7b6..0000000
--- a/proxy/serialized_handle.cc
+++ /dev/null
@@ -1,158 +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.
-
-#include "ppapi/proxy/serialized_handle.h"
-
-#include "base/check_op.h"
-#include "base/files/file.h"
-#include "base/notreached.h"
-#include "base/pickle.h"
-#include "build/build_config.h"
-#include "ipc/ipc_platform_file.h"
-
-#if BUILDFLAG(IS_NACL)
-#include <unistd.h>
-#endif
-
-namespace ppapi {
-namespace proxy {
-
-SerializedHandle::SerializedHandle()
-    : type_(INVALID),
-      descriptor_(IPC::InvalidPlatformFileForTransit()),
-      open_flags_(0),
-      file_io_(0) {
-}
-
-SerializedHandle::SerializedHandle(SerializedHandle&& other)
-    : type_(other.type_),
-      shm_region_(std::move(other.shm_region_)),
-      descriptor_(other.descriptor_),
-      open_flags_(other.open_flags_),
-      file_io_(other.file_io_) {
-  other.set_null();
-}
-
-SerializedHandle& SerializedHandle::operator=(SerializedHandle&& other) {
-  Close();
-  type_ = other.type_;
-  shm_region_ = std::move(other.shm_region_);
-  descriptor_ = other.descriptor_;
-  open_flags_ = other.open_flags_;
-  file_io_ = other.file_io_;
-  other.set_null();
-  return *this;
-}
-
-SerializedHandle::SerializedHandle(Type type_param)
-    : type_(type_param),
-      descriptor_(IPC::InvalidPlatformFileForTransit()),
-      open_flags_(0),
-      file_io_(0) {
-}
-
-SerializedHandle::SerializedHandle(base::ReadOnlySharedMemoryRegion region)
-    : SerializedHandle(
-          base::ReadOnlySharedMemoryRegion::TakeHandleForSerialization(
-              std::move(region))) {}
-
-SerializedHandle::SerializedHandle(base::UnsafeSharedMemoryRegion region)
-    : SerializedHandle(
-          base::UnsafeSharedMemoryRegion::TakeHandleForSerialization(
-              std::move(region))) {}
-
-SerializedHandle::SerializedHandle(
-    base::subtle::PlatformSharedMemoryRegion region)
-    : type_(SHARED_MEMORY_REGION),
-      shm_region_(std::move(region)),
-      descriptor_(IPC::InvalidPlatformFileForTransit()),
-      open_flags_(0),
-      file_io_(0) {
-  // Writable regions are not supported.
-  DCHECK_NE(shm_region_.GetMode(),
-            base::subtle::PlatformSharedMemoryRegion::Mode::kWritable);
-}
-
-SerializedHandle::SerializedHandle(
-    Type type,
-    const IPC::PlatformFileForTransit& socket_descriptor)
-    : type_(type),
-      descriptor_(socket_descriptor),
-      open_flags_(0),
-      file_io_(0) {
-}
-
-bool SerializedHandle::IsHandleValid() const {
-  switch (type_) {
-    case SHARED_MEMORY_REGION:
-      return shm_region_.IsValid();
-    case SOCKET:
-    case FILE:
-      return !(IPC::InvalidPlatformFileForTransit() == descriptor_);
-    case INVALID:
-      return false;
-    // No default so the compiler will warn us if a new type is added.
-  }
-  return false;
-}
-
-void SerializedHandle::Close() {
-  if (IsHandleValid()) {
-    switch (type_) {
-      case INVALID:
-        NOTREACHED();
-      case SHARED_MEMORY_REGION:
-        shm_region_ = base::subtle::PlatformSharedMemoryRegion();
-        break;
-      case SOCKET:
-      case FILE:
-        base::File file_closer = IPC::PlatformFileForTransitToFile(descriptor_);
-        break;
-      // No default so the compiler will warn us if a new type is added.
-    }
-  }
-  set_null();
-}
-
-// static
-void SerializedHandle::WriteHeader(const Header& hdr, base::Pickle* pickle) {
-  pickle->WriteInt(hdr.type);
-  if (hdr.type == FILE) {
-    pickle->WriteInt(hdr.open_flags);
-    pickle->WriteInt(hdr.file_io);
-  }
-}
-
-// static
-bool SerializedHandle::ReadHeader(base::PickleIterator* iter, Header* hdr) {
-  *hdr = Header(INVALID, 0, 0);
-  int type = 0;
-  if (!iter->ReadInt(&type))
-    return false;
-  bool valid_type = false;
-  switch (type) {
-    case FILE: {
-      int open_flags = 0;
-      PP_Resource file_io = 0;
-      if (!iter->ReadInt(&open_flags) || !iter->ReadInt(&file_io))
-        return false;
-      hdr->open_flags = open_flags;
-      hdr->file_io = file_io;
-      valid_type = true;
-      break;
-    }
-    case SHARED_MEMORY_REGION:
-    case SOCKET:
-    case INVALID:
-      valid_type = true;
-      break;
-    // No default so the compiler will warn us if a new type is added.
-  }
-  if (valid_type)
-    hdr->type = Type(type);
-  return valid_type;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/serialized_handle.h b/proxy/serialized_handle.h
deleted file mode 100644
index c2f3825..0000000
--- a/proxy/serialized_handle.h
+++ /dev/null
@@ -1,173 +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.
-
-#ifndef PPAPI_PROXY_SERIALIZED_HANDLE_H_
-#define PPAPI_PROXY_SERIALIZED_HANDLE_H_
-
-#include <stdint.h>
-
-#include <utility>
-
-#include "base/atomicops.h"
-#include "base/check_op.h"
-#include "base/memory/platform_shared_memory_region.h"
-#include "base/memory/read_only_shared_memory_region.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "build/build_config.h"
-#include "ipc/ipc_platform_file.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-
-namespace base {
-class Pickle;
-}
-
-namespace ppapi {
-namespace proxy {
-
-// SerializedHandle is a unified structure for holding a handle (e.g., a shared
-// memory handle, socket descriptor, etc). This is useful for passing handles in
-// resource messages and also makes it easier to translate handles in
-// NaClIPCAdapter for use in NaCl.
-class PPAPI_PROXY_EXPORT SerializedHandle {
- public:
-  enum Type { INVALID, SHARED_MEMORY_REGION, SOCKET, FILE };
-  // Header contains the fields that we send in IPC messages, apart from the
-  // actual handle. See comments on the SerializedHandle fields below.
-  struct Header {
-    Header() : type(INVALID), size(0), open_flags(0) {}
-    Header(Type type_arg,
-           int32_t open_flags_arg,
-           PP_Resource file_io_arg)
-        : type(type_arg),
-          open_flags(open_flags_arg),
-          file_io(file_io_arg) {}
-
-    Type type;
-    uint32_t size;
-    int32_t open_flags;
-    PP_Resource file_io;
-  };
-
-  SerializedHandle();
-  // Move operations are allowed.
-  SerializedHandle(SerializedHandle&&);
-  SerializedHandle& operator=(SerializedHandle&&);
-  // Create an invalid handle of the given type.
-  explicit SerializedHandle(Type type);
-
-  SerializedHandle(const SerializedHandle&) = delete;
-  SerializedHandle& operator=(const SerializedHandle&) = delete;
-
-  // Create a shared memory region handle.
-  explicit SerializedHandle(base::ReadOnlySharedMemoryRegion region);
-  explicit SerializedHandle(base::UnsafeSharedMemoryRegion region);
-  explicit SerializedHandle(base::subtle::PlatformSharedMemoryRegion region);
-
-  // Create a socket or file handle.
-  SerializedHandle(const Type type,
-                   const IPC::PlatformFileForTransit& descriptor);
-
-  Type type() const { return type_; }
-  bool is_shmem_region() const { return type_ == SHARED_MEMORY_REGION; }
-  bool is_socket() const { return type_ == SOCKET; }
-  bool is_file() const { return type_ == FILE; }
-  const base::subtle::PlatformSharedMemoryRegion& shmem_region() const {
-    DCHECK(is_shmem_region());
-    return shm_region_;
-  }
-  base::subtle::PlatformSharedMemoryRegion TakeSharedMemoryRegion() {
-    DCHECK(is_shmem_region());
-    return std::move(shm_region_);
-  }
-  const IPC::PlatformFileForTransit& descriptor() const {
-    DCHECK(is_socket() || is_file());
-    return descriptor_;
-  }
-  int32_t open_flags() const { return open_flags_; }
-  PP_Resource file_io() const {
-    return file_io_;
-  }
-  void set_shmem_region(base::subtle::PlatformSharedMemoryRegion region) {
-    type_ = SHARED_MEMORY_REGION;
-    shm_region_ = std::move(region);
-    // Writable regions are not supported.
-    DCHECK_NE(shm_region_.GetMode(),
-              base::subtle::PlatformSharedMemoryRegion::Mode::kWritable);
-
-    descriptor_ = IPC::InvalidPlatformFileForTransit();
-  }
-  void set_unsafe_shmem_region(base::UnsafeSharedMemoryRegion region) {
-    set_shmem_region(base::UnsafeSharedMemoryRegion::TakeHandleForSerialization(
-        std::move(region)));
-  }
-  void set_socket(const IPC::PlatformFileForTransit& socket) {
-    type_ = SOCKET;
-    descriptor_ = socket;
-
-    shm_region_ = base::subtle::PlatformSharedMemoryRegion();
-  }
-  void set_file_handle(const IPC::PlatformFileForTransit& descriptor,
-                       int32_t open_flags,
-                       PP_Resource file_io) {
-    type_ = FILE;
-
-    descriptor_ = descriptor;
-    shm_region_ = base::subtle::PlatformSharedMemoryRegion();
-    open_flags_ = open_flags;
-    file_io_ = file_io;
-  }
-  void set_null() {
-    type_ = INVALID;
-
-    shm_region_ = base::subtle::PlatformSharedMemoryRegion();
-    descriptor_ = IPC::InvalidPlatformFileForTransit();
-  }
-  void set_null_shmem_region() {
-    set_shmem_region(base::subtle::PlatformSharedMemoryRegion());
-  }
-  void set_null_socket() {
-    set_socket(IPC::InvalidPlatformFileForTransit());
-  }
-  void set_null_file_handle() {
-    set_file_handle(IPC::InvalidPlatformFileForTransit(), 0, 0);
-  }
-  bool IsHandleValid() const;
-
-  Header header() const { return Header(type_, open_flags_, file_io_); }
-
-  // Closes the handle and sets it to invalid.
-  void Close();
-
-  // Write/Read a Header, which contains all the data except the handle. This
-  // allows us to write the handle in a platform-specific way, as is necessary
-  // in NaClIPCAdapter to share handles with NaCl from Windows.
-  static void WriteHeader(const Header& hdr, base::Pickle* pickle);
-  static bool ReadHeader(base::PickleIterator* iter, Header* hdr);
-
- private:
-  // The kind of handle we're holding.
-  Type type_;
-
-  // We hold more members than we really need; we can't easily use a union,
-  // because we hold non-POD types. But these types are pretty light-weight. If
-  // we add more complex things later, we should come up with a more memory-
-  // efficient strategy.
-
-  // This is valid if type == SHARED_MEMORY_REGION.
-  base::subtle::PlatformSharedMemoryRegion shm_region_;
-
-  // This is valid if type == SOCKET || type == FILE.
-  IPC::PlatformFileForTransit descriptor_;
-
-  // The following fields are valid if type == FILE.
-  int32_t open_flags_;
-  // This is non-zero if file writes require quota checking.
-  PP_Resource file_io_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_SERIALIZED_HANDLE_H_
diff --git a/proxy/serialized_structs.cc b/proxy/serialized_structs.cc
deleted file mode 100644
index 29c8a23..0000000
--- a/proxy/serialized_structs.cc
+++ /dev/null
@@ -1,65 +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/proxy/serialized_structs.h"
-
-#include "base/pickle.h"
-#include "build/build_config.h"
-#include "ppapi/c/pp_file_info.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/trusted/ppb_browser_font_trusted.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-SerializedFontDescription::SerializedFontDescription()
-    : face(),
-      family(0),
-      size(0),
-      weight(0),
-      italic(PP_FALSE),
-      small_caps(PP_FALSE),
-      letter_spacing(0),
-      word_spacing(0) {
-}
-
-SerializedFontDescription::~SerializedFontDescription() {}
-
-void SerializedFontDescription::SetFromPPBrowserFontDescription(
-    const PP_BrowserFont_Trusted_Description& desc) {
-  StringVar* string_var = StringVar::FromPPVar(desc.face);
-  face = string_var ? string_var->value() : std::string();
-
-  family = desc.family;
-  size = desc.size;
-  weight = desc.weight;
-  italic = desc.italic;
-  small_caps = desc.small_caps;
-  letter_spacing = desc.letter_spacing;
-  word_spacing = desc.word_spacing;
-}
-
-void SerializedFontDescription::SetToPPBrowserFontDescription(
-    PP_BrowserFont_Trusted_Description* desc) const {
-  desc->face = StringVar::StringToPPVar(face);
-  desc->family = static_cast<PP_BrowserFont_Trusted_Family>(family);
-  desc->size = size;
-  desc->weight = static_cast<PP_BrowserFont_Trusted_Weight>(weight);
-  desc->italic = italic;
-  desc->small_caps = small_caps;
-  desc->letter_spacing = letter_spacing;
-  desc->word_spacing = word_spacing;
-}
-
-SerializedNetworkInfo::SerializedNetworkInfo()
-    : type(PP_NETWORKLIST_TYPE_UNKNOWN),
-      state(PP_NETWORKLIST_STATE_DOWN),
-      mtu(0) {
-}
-
-SerializedNetworkInfo::~SerializedNetworkInfo() {}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/serialized_structs.h b/proxy/serialized_structs.h
deleted file mode 100644
index eb08026..0000000
--- a/proxy/serialized_structs.h
+++ /dev/null
@@ -1,81 +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_PROXY_SERIALIZED_STRUCTS_H_
-#define PPAPI_PROXY_SERIALIZED_STRUCTS_H_
-
-#include <stdint.h>
-
-#include <string>
-#include <vector>
-
-#include "build/build_config.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_codecs.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/ppb_network_list.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/host_resource.h"
-
-struct PP_BrowserFont_Trusted_Description;
-
-namespace ppapi {
-namespace proxy {
-
-// PP_BrowserFontDescription  has to be redefined with a string in place of the
-// PP_Var used for the face name.
-struct PPAPI_PROXY_EXPORT SerializedFontDescription {
-  SerializedFontDescription();
-  ~SerializedFontDescription();
-
-  void SetFromPPBrowserFontDescription(
-      const PP_BrowserFont_Trusted_Description& desc);
-
-  void SetToPPBrowserFontDescription(
-      PP_BrowserFont_Trusted_Description* desc) const;
-
-  std::string face;
-  int32_t family;
-  uint32_t size;
-  int32_t weight;
-  PP_Bool italic;
-  PP_Bool small_caps;
-  int32_t letter_spacing;
-  int32_t word_spacing;
-};
-
-struct PPAPI_PROXY_EXPORT SerializedNetworkInfo {
-  SerializedNetworkInfo();
-  ~SerializedNetworkInfo();
-
-  std::string name;
-  PP_NetworkList_Type type;
-  PP_NetworkList_State state;
-  std::vector<PP_NetAddress_Private> addresses;
-  std::string display_name;
-  int mtu;
-};
-typedef std::vector<SerializedNetworkInfo> SerializedNetworkList;
-
-struct SerializedDirEntry {
-  std::string name;
-  bool is_dir;
-};
-
-struct PPBURLLoader_UpdateProgress_Params {
-  PP_Instance instance;
-  ppapi::HostResource resource;
-  int64_t bytes_sent;
-  int64_t total_bytes_to_be_sent;
-  int64_t bytes_received;
-  int64_t total_bytes_to_be_received;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_SERIALIZED_STRUCTS_H_
diff --git a/proxy/serialized_var.cc b/proxy/serialized_var.cc
deleted file mode 100644
index 498e60b..0000000
--- a/proxy/serialized_var.cc
+++ /dev/null
@@ -1,467 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/proxy/serialized_var.h"
-
-#include "base/check.h"
-#include "base/functional/bind.h"
-#include "base/notreached.h"
-#include "ipc/ipc_message_utils.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/proxy/dispatcher.h"
-#include "ppapi/proxy/interface_proxy.h"
-#include "ppapi/proxy/ppapi_param_traits.h"
-#include "ppapi/proxy/ppb_buffer_proxy.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/thunk/enter.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-void DefaultHandleWriter(base::Pickle* m, const SerializedHandle& handle) {
-  IPC::ParamTraits<SerializedHandle>::Write(m, handle);
-}
-}  // namespace
-
-// SerializedVar::Inner --------------------------------------------------------
-
-SerializedVar::Inner::Inner()
-    : serialization_rules_(nullptr),
-      var_(PP_MakeUndefined()),
-      instance_(0),
-      cleanup_mode_(CLEANUP_NONE),
-      is_valid_var_(true) {
-#ifndef NDEBUG
-  has_been_serialized_ = false;
-  has_been_deserialized_ = false;
-#endif
-}
-
-SerializedVar::Inner::Inner(VarSerializationRules* serialization_rules)
-    : serialization_rules_(serialization_rules),
-      var_(PP_MakeUndefined()),
-      instance_(0),
-      cleanup_mode_(CLEANUP_NONE) {
-#ifndef NDEBUG
-  has_been_serialized_ = false;
-  has_been_deserialized_ = false;
-#endif
-}
-
-SerializedVar::Inner::~Inner() {
-  switch (cleanup_mode_) {
-    case END_SEND_PASS_REF:
-      serialization_rules_->EndSendPassRef(var_);
-      break;
-    case END_RECEIVE_CALLER_OWNED:
-      serialization_rules_->EndReceiveCallerOwned(var_);
-      break;
-    default:
-      break;
-  }
-}
-
-PP_Var SerializedVar::Inner::GetVar() {
-  DCHECK(serialization_rules_.get());
-  if (raw_var_data_.get()) {
-    var_ = raw_var_data_->CreatePPVar(instance_);
-    raw_var_data_.reset(nullptr);
-  }
-
-  return var_;
-}
-
-void SerializedVar::Inner::SetVar(PP_Var var) {
-  // Sanity check, when updating the var we should have received a
-  // serialization rules pointer already.
-  DCHECK(serialization_rules_.get());
-  var_ = var;
-  raw_var_data_.reset(nullptr);
-}
-
-void SerializedVar::Inner::SetInstance(PP_Instance instance) {
-  instance_ = instance;
-}
-
-void SerializedVar::Inner::ForceSetVarValueForTest(PP_Var value) {
-  var_ = value;
-  raw_var_data_.reset(nullptr);
-}
-
-void SerializedVar::Inner::WriteToMessage(base::Pickle* m) const {
-  // When writing to the IPC messages, a serialization rules handler should
-  // always have been set.
-  //
-  // When sending a message, it should be difficult to trigger this if you're
-  // using the SerializedVarSendInput class and giving a non-null dispatcher.
-  // Make sure you're using the proper "Send" helper class.
-  //
-  // It should be more common to see this when handling an incoming message
-  // that returns a var. This means the message handler didn't write to the
-  // output parameter, or possibly you used the wrong helper class
-  // (normally SerializedVarReturnValue).
-  DCHECK(serialization_rules_.get());
-
-#ifndef NDEBUG
-  // We should only be serializing something once.
-  DCHECK(!has_been_serialized_);
-  has_been_serialized_ = true;
-#endif
-  std::unique_ptr<RawVarDataGraph> data =
-      RawVarDataGraph::Create(var_, instance_);
-  if (data) {
-    m->WriteBool(true);  // Success.
-    data->Write(m, base::BindRepeating(&DefaultHandleWriter));
-  } else {
-    m->WriteBool(false);  // Failure.
-  }
-}
-
-void SerializedVar::Inner::WriteDataToMessage(
-    base::Pickle* m,
-    const HandleWriter& handle_writer) const {
-  if (raw_var_data_) {
-    m->WriteBool(true);  // Success.
-    raw_var_data_->Write(m, handle_writer);
-  } else {
-    m->WriteBool(false);  // Failure.
-  }
-}
-
-bool SerializedVar::Inner::ReadFromMessage(const base::Pickle* m,
-                                           base::PickleIterator* iter) {
-#ifndef NDEBUG
-  // We should only deserialize something once or will end up with leaked
-  // references.
-  //
-  // One place this has happened in the past is using
-  // std::vector<SerializedVar>.resize(). If you're doing this manually instead
-  // of using the helper classes for handling in/out vectors of vars, be
-  // sure you use the same pattern as the SerializedVarVector classes.
-  DCHECK(!has_been_deserialized_);
-  has_been_deserialized_ = true;
-#endif
-  // When reading, the dispatcher should be set when we get a Deserialize
-  // call (which will supply a dispatcher).
-  if (!iter->ReadBool(&is_valid_var_))
-      return false;
-  if (is_valid_var_) {
-    raw_var_data_ = RawVarDataGraph::Read(m, iter);
-    if (!raw_var_data_)
-      return false;
-  }
-
-  return true;
-}
-
-void SerializedVar::Inner::SetCleanupModeToEndSendPassRef() {
-  cleanup_mode_ = END_SEND_PASS_REF;
-}
-
-void SerializedVar::Inner::SetCleanupModeToEndReceiveCallerOwned() {
-  cleanup_mode_ = END_RECEIVE_CALLER_OWNED;
-}
-
-// SerializedVar ---------------------------------------------------------------
-
-SerializedVar::SerializedVar() : inner_(new Inner) {
-}
-
-SerializedVar::SerializedVar(VarSerializationRules* serialization_rules)
-    : inner_(new Inner(serialization_rules)) {
-}
-
-SerializedVar::~SerializedVar() {
-}
-
-// SerializedVarSendInput ------------------------------------------------------
-
-SerializedVarSendInput::SerializedVarSendInput(Dispatcher* dispatcher,
-                                               const PP_Var& var)
-    : SerializedVar(dispatcher->serialization_rules()) {
-  inner_->SetVar(dispatcher->serialization_rules()->SendCallerOwned(var));
-}
-
-// static
-void SerializedVarSendInput::ConvertVector(Dispatcher* dispatcher,
-                                           const PP_Var* input,
-                                           size_t input_count,
-                                           std::vector<SerializedVar>* output) {
-  output->reserve(input_count);
-  for (size_t i = 0; i < input_count; i++)
-    output->push_back(SerializedVarSendInput(dispatcher, input[i]));
-}
-
-// SerializedVarSendInputShmem -------------------------------------------------
-
-SerializedVarSendInputShmem::SerializedVarSendInputShmem(
-    Dispatcher* dispatcher,
-    const PP_Var& var,
-    const PP_Instance& instance)
-    : SerializedVar(dispatcher->serialization_rules()) {
-  inner_->SetVar(dispatcher->serialization_rules()->SendCallerOwned(var));
-  inner_->SetInstance(instance);
-}
-
-// ReceiveSerializedVarReturnValue ---------------------------------------------
-
-ReceiveSerializedVarReturnValue::ReceiveSerializedVarReturnValue() {
-}
-
-ReceiveSerializedVarReturnValue::ReceiveSerializedVarReturnValue(
-    const SerializedVar& serialized)
-    : SerializedVar(serialized) {
-}
-
-PP_Var ReceiveSerializedVarReturnValue::Return(Dispatcher* dispatcher) {
-  inner_->set_serialization_rules(dispatcher->serialization_rules());
-  inner_->SetVar(inner_->serialization_rules()->ReceivePassRef(
-      inner_->GetVar()));
-  return inner_->GetVar();
-}
-
-// ReceiveSerializedException --------------------------------------------------
-
-ReceiveSerializedException::ReceiveSerializedException(Dispatcher* dispatcher,
-                                                       PP_Var* exception)
-    : SerializedVar(dispatcher->serialization_rules()),
-      exception_(exception) {
-}
-
-ReceiveSerializedException::~ReceiveSerializedException() {
-  if (exception_) {
-    // When an output exception is specified, it will take ownership of the
-    // reference.
-    inner_->SetVar(
-        inner_->serialization_rules()->ReceivePassRef(inner_->GetVar()));
-    *exception_ = inner_->GetVar();
-  } else {
-    // When no output exception is specified, the browser thinks we have a ref
-    // to an object that we don't want (this will happen only in the plugin
-    // since the browser will always specify an out exception for the plugin to
-    // write into).
-    //
-    // Strings don't need this handling since we can just avoid creating a
-    // Var from the std::string in the first place.
-    if (inner_->GetVar().type == PP_VARTYPE_OBJECT)
-      inner_->serialization_rules()->ReleaseObjectRef(inner_->GetVar());
-  }
-}
-
-bool ReceiveSerializedException::IsThrown() const {
-  return exception_ && exception_->type != PP_VARTYPE_UNDEFINED;
-}
-
-// ReceiveSerializedVarVectorOutParam ------------------------------------------
-
-ReceiveSerializedVarVectorOutParam::ReceiveSerializedVarVectorOutParam(
-    Dispatcher* dispatcher,
-    uint32_t* output_count,
-    PP_Var** output)
-    : dispatcher_(dispatcher),
-      output_count_(output_count),
-      output_(output) {
-}
-
-ReceiveSerializedVarVectorOutParam::~ReceiveSerializedVarVectorOutParam() {
-  *output_count_ = static_cast<uint32_t>(vector_.size());
-  if (vector_.empty()) {
-    *output_ = nullptr;
-    return;
-  }
-
-  *output_ = static_cast<PP_Var*>(malloc(vector_.size() * sizeof(PP_Var)));
-  for (size_t i = 0; i < vector_.size(); i++) {
-    // Here we just mimic what happens when returning a value.
-    ReceiveSerializedVarReturnValue converted;
-    SerializedVar* serialized = &converted;
-    *serialized = vector_[i];
-    (*output_)[i] = converted.Return(dispatcher_);
-  }
-}
-
-std::vector<SerializedVar>* ReceiveSerializedVarVectorOutParam::OutParam() {
-  return &vector_;
-}
-
-// SerializedVarReceiveInput ---------------------------------------------------
-
-SerializedVarReceiveInput::SerializedVarReceiveInput(
-    const SerializedVar& serialized)
-    : serialized_(serialized) {
-}
-
-SerializedVarReceiveInput::~SerializedVarReceiveInput() {
-}
-
-PP_Var SerializedVarReceiveInput::Get(Dispatcher* dispatcher) {
-  serialized_.inner_->set_serialization_rules(
-      dispatcher->serialization_rules());
-
-  // Ensure that when the serialized var goes out of scope it cleans up the
-  // stuff we're making in BeginReceiveCallerOwned.
-  serialized_.inner_->SetCleanupModeToEndReceiveCallerOwned();
-
-  serialized_.inner_->SetVar(
-      serialized_.inner_->serialization_rules()->BeginReceiveCallerOwned(
-          serialized_.inner_->GetVar()));
-  return serialized_.inner_->GetVar();
-}
-
-
-PP_Var SerializedVarReceiveInput::GetForInstance(Dispatcher* dispatcher,
-                                                 PP_Instance instance) {
-  serialized_.inner_->SetInstance(instance);
-  return Get(dispatcher);
-}
-
-// SerializedVarVectorReceiveInput ---------------------------------------------
-
-SerializedVarVectorReceiveInput::SerializedVarVectorReceiveInput(
-    const std::vector<SerializedVar>& serialized)
-    : serialized_(serialized) {
-}
-
-SerializedVarVectorReceiveInput::~SerializedVarVectorReceiveInput() {
-  for (size_t i = 0; i < deserialized_.size(); i++) {
-    serialized_[i].inner_->serialization_rules()->EndReceiveCallerOwned(
-        deserialized_[i]);
-  }
-}
-
-PP_Var* SerializedVarVectorReceiveInput::Get(Dispatcher* dispatcher,
-                                             uint32_t* array_size) {
-  deserialized_.resize(serialized_.size());
-  for (size_t i = 0; i < serialized_.size(); i++) {
-    // The vectors must be able to clean themselves up after this call is
-    // torn down.
-    serialized_[i].inner_->set_serialization_rules(
-        dispatcher->serialization_rules());
-
-    serialized_[i].inner_->SetVar(
-        serialized_[i].inner_->serialization_rules()->BeginReceiveCallerOwned(
-            serialized_[i].inner_->GetVar()));
-    deserialized_[i] = serialized_[i].inner_->GetVar();
-  }
-
-  *array_size = static_cast<uint32_t>(serialized_.size());
-  return deserialized_.empty() ? nullptr : &deserialized_[0];
-}
-
-// SerializedVarReturnValue ----------------------------------------------------
-
-SerializedVarReturnValue::SerializedVarReturnValue(SerializedVar* serialized)
-    : serialized_(serialized) {
-}
-
-void SerializedVarReturnValue::Return(Dispatcher* dispatcher,
-                                      const PP_Var& var) {
-  serialized_->inner_->set_serialization_rules(
-      dispatcher->serialization_rules());
-
-  // Var must clean up after our BeginSendPassRef call.
-  serialized_->inner_->SetCleanupModeToEndSendPassRef();
-
-  serialized_->inner_->SetVar(
-      dispatcher->serialization_rules()->BeginSendPassRef(var));
-}
-
-// static
-SerializedVar SerializedVarReturnValue::Convert(Dispatcher* dispatcher,
-                                                const PP_Var& var) {
-  // Mimic what happens in the normal case.
-  SerializedVar result;
-  SerializedVarReturnValue retvalue(&result);
-  retvalue.Return(dispatcher, var);
-  return result;
-}
-
-// SerializedVarOutParam -------------------------------------------------------
-
-SerializedVarOutParam::SerializedVarOutParam(SerializedVar* serialized)
-    : serialized_(serialized),
-      writable_var_(PP_MakeUndefined()),
-      dispatcher_(nullptr) {}
-
-SerializedVarOutParam::~SerializedVarOutParam() {
-  if (serialized_->inner_->serialization_rules()) {
-    // When unset, OutParam wasn't called. We'll just leave the var untouched
-    // in that case.
-    serialized_->inner_->SetVar(
-        serialized_->inner_->serialization_rules()->BeginSendPassRef(
-            writable_var_));
-
-    // Normally the current object will be created on the stack to wrap a
-    // SerializedVar and won't have a scope around the actual IPC send. So we
-    // need to tell the SerializedVar to do the begin/end send pass ref calls.
-    serialized_->inner_->SetCleanupModeToEndSendPassRef();
-  }
-}
-
-PP_Var* SerializedVarOutParam::OutParam(Dispatcher* dispatcher) {
-  dispatcher_ = dispatcher;
-  serialized_->inner_->set_serialization_rules(
-      dispatcher->serialization_rules());
-  return &writable_var_;
-}
-
-// SerializedVarVectorOutParam -------------------------------------------------
-
-SerializedVarVectorOutParam::SerializedVarVectorOutParam(
-    std::vector<SerializedVar>* serialized)
-    : dispatcher_(nullptr),
-      serialized_(serialized),
-      count_(0),
-      array_(nullptr) {}
-
-SerializedVarVectorOutParam::~SerializedVarVectorOutParam() {
-  DCHECK(dispatcher_);
-
-  // Convert the array written by the pepper code to the serialized structure.
-  // Note we can't use resize here, we have to allocate a new SerializedVar
-  // for each serialized item. See ParamTraits<vector<SerializedVar>>::Read.
-  serialized_->reserve(count_);
-  for (uint32_t i = 0; i < count_; i++) {
-    // Just mimic what we do for regular OutParams.
-    SerializedVar var;
-    SerializedVarOutParam out(&var);
-    *out.OutParam(dispatcher_) = array_[i];
-    serialized_->push_back(var);
-  }
-
-  // When returning arrays, the pepper code expects the caller to take
-  // ownership of the array.
-  free(array_);
-}
-
-PP_Var** SerializedVarVectorOutParam::ArrayOutParam(Dispatcher* dispatcher) {
-  DCHECK(!dispatcher_);  // Should only be called once.
-  dispatcher_ = dispatcher;
-  return &array_;
-}
-
-SerializedVarTestConstructor::SerializedVarTestConstructor(
-    const PP_Var& pod_var) {
-  DCHECK(pod_var.type != PP_VARTYPE_STRING);
-  inner_->ForceSetVarValueForTest(pod_var);
-}
-
-SerializedVarTestConstructor::SerializedVarTestConstructor(
-    const std::string& str) {
-  inner_->ForceSetVarValueForTest(StringVar::StringToPPVar(str));
-}
-
-SerializedVarTestReader::SerializedVarTestReader(const SerializedVar& var)
-    : SerializedVar(var) {
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/serialized_var.h b/proxy/serialized_var.h
deleted file mode 100644
index 8921279..0000000
--- a/proxy/serialized_var.h
+++ /dev/null
@@ -1,518 +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_PROXY_SERIALIZED_VAR_H_
-#define PPAPI_PROXY_SERIALIZED_VAR_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "base/memory/ref_counted.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/proxy/raw_var_data.h"
-#include "ppapi/proxy/serialized_handle.h"
-#include "ppapi/proxy/serialized_structs.h"
-#include "ppapi/proxy/var_serialization_rules.h"
-
-namespace base {
-class PickleIterator;
-}
-
-namespace IPC {
-class Message;
-}
-
-namespace ppapi {
-namespace proxy {
-
-class Dispatcher;
-class VarSerializationRules;
-
-// This class encapsulates a var so that we can serialize and deserialize it.
-// The problem is that for strings, serialization and deserialization requires
-// knowledge from outside about how to get at or create a string. So this
-// object groups the var with a dispatcher so that string values can be set or
-// gotten.
-//
-// Declare IPC messages as using this type, but don't use it directly (it has
-// no useful public methods). Instead, instantiate one of the helper classes
-// below which are conveniently named for each use case to prevent screwups.
-//
-// Design background
-// -----------------
-// This is sadly super complicated. The IPC system needs a consistent type to
-// use for sending and receiving vars (this is a SerializedVar). But there are
-// different combinations of reference counting for sending and receiving
-// objects and for dealing with strings
-//
-// This makes SerializedVar complicated and easy to mess up. To make it
-// reasonable to use, all functions are protected and there are use-specific
-// classes that each encapsulate exactly one type of use in a way that typically
-// won't compile if you do the wrong thing.
-//
-// The IPC system is designed to pass things around and will make copies in
-// some cases, so our system must be designed so that this stuff will work.
-// This is challenging when the SerializedVar must do some cleanup after the
-// message is sent. To work around this, we create an inner class using a
-// scoped_refptr so all copies of a SerializedVar can share and we can guarantee
-// that the actual data will get cleaned up on shutdown.
-//
-// Constness
-// ---------
-// SerializedVar basically doesn't support const. Everything is mutable and
-// most functions are declared const. This unfortunateness is because of the
-// way the IPC system works. When deserializing, it will have a const
-// SerializedVar in a Tuple and this will be given to the function. We kind of
-// want to modify that to convert strings and do refcounting.
-//
-// The helper classes used for accessing the SerializedVar have more reasonable
-// behavior and will enforce that you don't do bad things.
-class PPAPI_PROXY_EXPORT SerializedVar {
- public:
-  SerializedVar();
-  ~SerializedVar();
-
-  // Backend implementation for IPC::ParamTraits<SerializedVar>.
-  void WriteToMessage(base::Pickle* m) const { inner_->WriteToMessage(m); }
-  // If ReadFromMessage has been called, WriteDataToMessage will write the var
-  // that has been read from ReadFromMessage back to a message. This is used
-  // when converting handles for use in NaCl.
-  void WriteDataToMessage(base::Pickle* m,
-                          const HandleWriter& handle_writer) const {
-    inner_->WriteDataToMessage(m, handle_writer);
-  }
-  bool ReadFromMessage(const base::Pickle* m, base::PickleIterator* iter) {
-    return inner_->ReadFromMessage(m, iter);
-  }
-
-  bool is_valid_var() const {
-    return inner_->is_valid_var();
-  }
-
-  // Returns the shared memory handles associated with this SerializedVar.
-  std::vector<SerializedHandle*> GetHandles() const {
-    return inner_->GetHandles();
-  }
-
- protected:
-  friend class SerializedVarReceiveInput;
-  friend class SerializedVarReturnValue;
-  friend class SerializedVarOutParam;
-  friend class SerializedVarSendInput;
-  friend class SerializedVarSendInputShmem;
-  friend class SerializedVarTestConstructor;
-  friend class SerializedVarVectorReceiveInput;
-
-  class PPAPI_PROXY_EXPORT Inner : public base::RefCounted<Inner> {
-   public:
-    Inner();
-    Inner(VarSerializationRules* serialization_rules);
-
-    Inner(const Inner&) = delete;
-    Inner& operator=(const Inner&) = delete;
-
-    ~Inner();
-
-    VarSerializationRules* serialization_rules() {
-      return serialization_rules_.get();
-    }
-    void set_serialization_rules(VarSerializationRules* serialization_rules) {
-      serialization_rules_ = serialization_rules;
-    }
-
-    bool is_valid_var() const {
-      return is_valid_var_;
-    }
-
-    std::vector<SerializedHandle*> GetHandles() {
-      return (raw_var_data_ ? raw_var_data_->GetHandles() :
-          std::vector<SerializedHandle*>());
-    }
-
-    // See outer class's declarations above.
-    PP_Var GetVar();
-    void SetVar(PP_Var var);
-    void SetInstance(PP_Instance instance);
-
-    // For the SerializedVarTestConstructor, this writes the Var value as if
-    // it was just received off the wire, without any serialization rules.
-    void ForceSetVarValueForTest(PP_Var value);
-
-    void WriteToMessage(base::Pickle* m) const;
-    void WriteDataToMessage(base::Pickle* m,
-                            const HandleWriter& handle_writer) const;
-    bool ReadFromMessage(const base::Pickle* m, base::PickleIterator* iter);
-
-    // Sets the cleanup mode. See the CleanupMode enum below.
-    void SetCleanupModeToEndSendPassRef();
-    void SetCleanupModeToEndReceiveCallerOwned();
-
-   private:
-    enum CleanupMode {
-      // The serialized var won't do anything special in the destructor
-      // (default).
-      CLEANUP_NONE,
-
-      // The serialized var will call EndSendPassRef in the destructor.
-      END_SEND_PASS_REF,
-
-      // The serialized var will call EndReceiveCallerOwned in the destructor.
-      END_RECEIVE_CALLER_OWNED
-    };
-
-    // Rules for serializing and deserializing vars for this process type.
-    // This may be NULL, but must be set before trying to serialize to IPC when
-    // sending, or before converting back to a PP_Var when receiving.
-    scoped_refptr<VarSerializationRules> serialization_rules_;
-
-    // If this is set to VARTYPE_STRING and the 'value.id' is 0, then the
-    // string_from_ipc_ holds the string. This means that the caller hasn't
-    // called Deserialize with a valid Dispatcher yet, which is how we can
-    // convert the serialized string value to a PP_Var string ID.
-    //
-    // This var may not be complete until the serialization rules are set when
-    // reading from IPC since we'll need that to convert the string_value to
-    // a string ID. Before this, the as_id will be 0 for VARTYPE_STRING.
-    PP_Var var_;
-
-    PP_Instance instance_;
-
-    CleanupMode cleanup_mode_;
-
-    // If the var is not properly serialized, this will be false.
-    bool is_valid_var_;
-
-#ifndef NDEBUG
-    // When being sent or received over IPC, we should only be serialized or
-    // deserialized once. These flags help us assert this is true.
-    mutable bool has_been_serialized_;
-    mutable bool has_been_deserialized_;
-#endif
-
-    // ReadFromMessage() may be called on the I/O thread, e.g., when reading the
-    // reply to a sync message. We cannot use the var tracker on the I/O thread,
-    // which means we cannot create some types of PP_Var
-    // (e.g. PP_VARTYPE_STRING). The data is stored in |raw_var_data_| and the
-    // PP_Var is constructed when |GetVar()| is called.
-    std::unique_ptr<RawVarDataGraph> raw_var_data_;
-  };
-
-  SerializedVar(VarSerializationRules* serialization_rules);
-
-  mutable scoped_refptr<Inner> inner_;
-};
-
-// Helpers for message sending side --------------------------------------------
-
-// For sending a value to the remote side.
-//
-// Example for API:
-//   void MyFunction(PP_Var)
-// IPC message:
-//   IPC_MESSAGE_ROUTED1(MyFunction, SerializedVar);
-// Sender would be:
-//   void MyFunctionProxy(PP_Var param) {
-//     Send(new MyFunctionMsg(SerializedVarSendInput(dispatcher, param));
-//   }
-class PPAPI_PROXY_EXPORT SerializedVarSendInput : public SerializedVar {
- public:
-  SerializedVarSendInput(Dispatcher* dispatcher, const PP_Var& var);
-
-  // Helper function for serializing a vector of input vars for serialization.
-  static void ConvertVector(Dispatcher* dispatcher,
-                            const PP_Var* input,
-                            size_t input_count,
-                            std::vector<SerializedVar>* output);
-
- private:
-  // Disallow the empty constructor, but keep the default copy constructor
-  // which is required to send the object to the IPC system.
-  SerializedVarSendInput();
-};
-
-// Specialization for optionally sending over shared memory.
-class PPAPI_PROXY_EXPORT SerializedVarSendInputShmem : public SerializedVar {
- public:
-  SerializedVarSendInputShmem(Dispatcher* dispatcher, const PP_Var& var,
-                              const PP_Instance& instance);
-
- private:
-  // Disallow the empty constructor, but keep the default copy constructor
-  // which is required to send the object to the IPC system.
-  SerializedVarSendInputShmem();
-};
-
-
-// For the calling side of a function returning a var. The sending side uses
-// SerializedVarReturnValue.
-//
-// Example for API:
-//   PP_Var MyFunction()
-// IPC message:
-//   IPC_SYNC_MESSAGE_ROUTED0_1(MyFunction, SerializedVar);
-// Message handler would be:
-//   PP_Var MyFunctionProxy() {
-//     ReceiveSerializedVarReturnValue result;
-//     Send(new MyFunctionMsg(&result));
-//     return result.Return(dispatcher());
-//   }
-//
-// TODO(yzshen): Move the dispatcher parameter to the constructor and store a
-// VarSerializationRules reference instead, in case the dispatcher is destroyed
-// while waiting for reply to the sync message.
-class PPAPI_PROXY_EXPORT ReceiveSerializedVarReturnValue
-    : public SerializedVar {
- public:
-  // Note that we can't set the dispatcher in the constructor because the
-  // data will be overridden when the return value is set. This constructor is
-  // normally used in the pattern above (operator= will be implicitly invoked
-  // when the sync message writes the output values).
-  ReceiveSerializedVarReturnValue();
-
-  // This constructor can be used when deserializing manually. This is useful
-  // when you're getting strings "returned" via a struct and need to manually
-  // get the PP_Vars out. In this case just do:
-  //   ReceiveSerializedVarReturnValue(serialized).Return(dispatcher);
-  explicit ReceiveSerializedVarReturnValue(const SerializedVar& serialized);
-
-  ReceiveSerializedVarReturnValue(const ReceiveSerializedVarReturnValue&) =
-      delete;
-  ReceiveSerializedVarReturnValue& operator=(
-      const ReceiveSerializedVarReturnValue&) = delete;
-
-  PP_Var Return(Dispatcher* dispatcher);
-};
-
-// Example for API:
-//   "void MyFunction(PP_Var* exception);"
-// IPC message:
-//   IPC_SYNC_MESSAGE_ROUTED0_1(MyFunction, SerializedVar);
-// Message handler would be:
-//   void OnMsgMyFunction(PP_Var* exception) {
-//     ReceiveSerializedException se(dispatcher(), exception)
-//     Send(new PpapiHostMsg_Foo(&se));
-//   }
-class PPAPI_PROXY_EXPORT ReceiveSerializedException : public SerializedVar {
- public:
-  ReceiveSerializedException() = delete;
-
-  ReceiveSerializedException(Dispatcher* dispatcher, PP_Var* exception);
-
-  ReceiveSerializedException(const ReceiveSerializedException&) = delete;
-  ReceiveSerializedException& operator=(const ReceiveSerializedException&) =
-      delete;
-
-  ~ReceiveSerializedException();
-
-  // Returns true if the exception passed in the constructor is set. Check
-  // this before actually issuing the IPC.
-  bool IsThrown() const;
-
- private:
-  // The input/output exception we're wrapping. May be NULL.
-  PP_Var* exception_;
-};
-
-// Helper class for when we're returning a vector of Vars. When it goes out
-// of scope it will automatically convert the vector filled by the IPC layer
-// into the array specified by the constructor params.
-//
-// Example for API:
-//   "void MyFunction(uint32_t* count, PP_Var** vars);"
-// IPC message:
-//   IPC_SYNC_MESSAGE_ROUTED0_1(MyFunction, std::vector<SerializedVar>);
-// Proxy function:
-//   void MyFunction(uint32_t* count, PP_Var** vars) {
-//     ReceiveSerializedVarVectorOutParam vect(dispatcher, count, vars);
-//     Send(new MyMsg(vect.OutParam()));
-//   }
-class PPAPI_PROXY_EXPORT ReceiveSerializedVarVectorOutParam {
- public:
-  ReceiveSerializedVarVectorOutParam() = delete;
-
-  ReceiveSerializedVarVectorOutParam(Dispatcher* dispatcher,
-                                     uint32_t* output_count,
-                                     PP_Var** output);
-
-  ReceiveSerializedVarVectorOutParam(
-      const ReceiveSerializedVarVectorOutParam&) = delete;
-  ReceiveSerializedVarVectorOutParam& operator=(
-      const ReceiveSerializedVarVectorOutParam&) = delete;
-
-  ~ReceiveSerializedVarVectorOutParam();
-
-  std::vector<SerializedVar>* OutParam();
-
- private:
-  Dispatcher* dispatcher_;
-  uint32_t* output_count_;
-  PP_Var** output_;
-
-  std::vector<SerializedVar> vector_;
-};
-
-// Helpers for message receiving side ------------------------------------------
-
-// For receiving a value from the remote side.
-//
-// Example for API:
-//   void MyFunction(PP_Var)
-// IPC message:
-//   IPC_MESSAGE_ROUTED1(MyFunction, SerializedVar);
-// Message handler would be:
-//   void OnMsgMyFunction(SerializedVarReceiveInput param) {
-//     MyFunction(param.Get());
-//   }
-class PPAPI_PROXY_EXPORT SerializedVarReceiveInput {
- public:
-  // We rely on the implicit constructor here since the IPC layer will call
-  // us with a SerializedVar. Pass this object by value, the copy constructor
-  // will pass along the pointer (as cheap as passing a pointer arg).
-  SerializedVarReceiveInput(const SerializedVar& serialized);
-  ~SerializedVarReceiveInput();
-
-  PP_Var Get(Dispatcher* dispatcher);
-  PP_Var GetForInstance(Dispatcher* dispatcher, PP_Instance instance);
-  bool is_valid_var() { return serialized_.is_valid_var(); }
-
- private:
-  const SerializedVar& serialized_;
-};
-
-// For receiving an input vector of vars from the remote side.
-//
-// Example:
-//   OnMsgMyFunction(SerializedVarVectorReceiveInput vector) {
-//     uint32_t size;
-//     PP_Var* array = vector.Get(dispatcher, &size);
-//     MyFunction(size, array);
-//   }
-class PPAPI_PROXY_EXPORT SerializedVarVectorReceiveInput {
- public:
-  SerializedVarVectorReceiveInput(const std::vector<SerializedVar>& serialized);
-  ~SerializedVarVectorReceiveInput();
-
-  // Only call Get() once. It will return a pointer to the converted array and
-  // place the array size in the out param. Will return NULL when the array is
-  // empty.
-  PP_Var* Get(Dispatcher* dispatcher, uint32_t* array_size);
-
- private:
-  const std::vector<SerializedVar>& serialized_;
-
-  // Filled by Get().
-  std::vector<PP_Var> deserialized_;
-};
-
-// For the receiving side of a function returning a var. The calling side uses
-// ReceiveSerializedVarReturnValue.
-//
-// Example for API:
-//   PP_Var MyFunction()
-// IPC message:
-//   IPC_SYNC_MESSAGE_ROUTED0_1(MyFunction, SerializedVar);
-// Message handler would be:
-//   void OnMsgMyFunction(SerializedVarReturnValue result) {
-//     result.Return(dispatcher(), MyFunction());
-//   }
-class PPAPI_PROXY_EXPORT SerializedVarReturnValue {
- public:
-  // We rely on the implicit constructor here since the IPC layer will call
-  // us with a SerializedVar*. Pass this object by value, the copy constructor
-  // will pass along the pointer (as cheap as passing a pointer arg).
-  SerializedVarReturnValue(SerializedVar* serialized);
-
-  void Return(Dispatcher* dispatcher, const PP_Var& var);
-
-  // Helper function for code that doesn't use the pattern above, but gets
-  // a return value from the remote side via a struct. You can pass in the
-  // SerializedVar and a PP_Var will be created with return value semantics.
-  static SerializedVar Convert(Dispatcher* dispatcher, const PP_Var& var);
-
- private:
-  SerializedVar* serialized_;
-};
-
-// For writing an out param to the remote side.
-//
-// Example for API:
-//   "void MyFunction(PP_Var* out);"
-// IPC message:
-//   IPC_SYNC_MESSAGE_ROUTED0_1(MyFunction, SerializedVar);
-// Message handler would be:
-//   void OnMsgMyFunction(SerializedVarOutParam out_param) {
-//     MyFunction(out_param.OutParam(dispatcher()));
-//   }
-class PPAPI_PROXY_EXPORT SerializedVarOutParam {
- public:
-  // We rely on the implicit constructor here since the IPC layer will call
-  // us with a SerializedVar*. Pass this object by value, the copy constructor
-  // will pass along the pointer (as cheap as passing a pointer arg).
-  SerializedVarOutParam(SerializedVar* serialized);
-  ~SerializedVarOutParam();
-
-  // Call this function only once. The caller should write its result to the
-  // returned var pointer before this class goes out of scope. The var's
-  // initial value will be VARTYPE_UNDEFINED.
-  PP_Var* OutParam(Dispatcher* dispatcher);
-
- private:
-  SerializedVar* serialized_;
-
-  // This is the value actually written by the code and returned by OutParam.
-  // We'll write this into serialized_ in our destructor.
-  PP_Var writable_var_;
-
-  Dispatcher* dispatcher_;
-};
-
-// For returning an array of PP_Vars to the other side and transferring
-// ownership.
-//
-class PPAPI_PROXY_EXPORT SerializedVarVectorOutParam {
- public:
-  SerializedVarVectorOutParam(std::vector<SerializedVar>* serialized);
-  ~SerializedVarVectorOutParam();
-
-  uint32_t* CountOutParam() { return &count_; }
-  PP_Var** ArrayOutParam(Dispatcher* dispatcher);
-
- private:
-  Dispatcher* dispatcher_;
-  std::vector<SerializedVar>* serialized_;
-
-  uint32_t count_;
-  PP_Var* array_;
-};
-
-// For tests that just want to construct a SerializedVar for giving it to one
-// of the other classes. This emulates a SerializedVar just received over the
-// wire from another process.
-class PPAPI_PROXY_EXPORT SerializedVarTestConstructor : public SerializedVar {
- public:
-  // For POD-types and objects.
-  explicit SerializedVarTestConstructor(const PP_Var& pod_var);
-
-  // For strings.
-  explicit SerializedVarTestConstructor(const std::string& str);
-};
-
-// For tests that want to read what's in a SerializedVar.
-class PPAPI_PROXY_EXPORT SerializedVarTestReader : public SerializedVar {
- public:
-  explicit SerializedVarTestReader(const SerializedVar& var);
-
-  PP_Var GetVar() const { return inner_->GetVar(); }
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_SERIALIZED_VAR_H_
diff --git a/proxy/tcp_server_socket_private_resource.cc b/proxy/tcp_server_socket_private_resource.cc
deleted file mode 100644
index fa91e69..0000000
--- a/proxy/tcp_server_socket_private_resource.cc
+++ /dev/null
@@ -1,127 +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.
-
-#include "ppapi/proxy/tcp_server_socket_private_resource.h"
-
-#include "base/functional/bind.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/tcp_socket_private_resource.h"
-
-namespace ppapi {
-namespace proxy {
-
-TCPServerSocketPrivateResource::TCPServerSocketPrivateResource(
-    Connection connection,
-    PP_Instance instance)
-    : PluginResource(connection, instance),
-      state_(STATE_BEFORE_LISTENING),
-      local_addr_() {
-  SendCreate(BROWSER, PpapiHostMsg_TCPServerSocket_CreatePrivate());
-}
-
-TCPServerSocketPrivateResource::~TCPServerSocketPrivateResource() {
-}
-
-thunk::PPB_TCPServerSocket_Private_API*
-TCPServerSocketPrivateResource::AsPPB_TCPServerSocket_Private_API() {
-  return this;
-}
-
-int32_t TCPServerSocketPrivateResource::Listen(
-    const PP_NetAddress_Private* addr,
-    int32_t backlog,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!addr)
-    return PP_ERROR_BADARGUMENT;
-  if (state_ != STATE_BEFORE_LISTENING)
-    return PP_ERROR_FAILED;
-  if (TrackedCallback::IsPending(listen_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  listen_callback_ = callback;
-
-  // Send the request, the browser will call us back via ListenACK
-  Call<PpapiPluginMsg_TCPServerSocket_ListenReply>(
-      BROWSER, PpapiHostMsg_TCPServerSocket_Listen(*addr, backlog),
-      base::BindOnce(&TCPServerSocketPrivateResource::OnPluginMsgListenReply,
-                     base::Unretained(this)));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t TCPServerSocketPrivateResource::Accept(
-    PP_Resource* tcp_socket,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!tcp_socket)
-    return PP_ERROR_BADARGUMENT;
-  if (state_ != STATE_LISTENING)
-    return PP_ERROR_FAILED;
-  if (TrackedCallback::IsPending(accept_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  accept_callback_ = callback;
-
-  Call<PpapiPluginMsg_TCPServerSocket_AcceptReply>(
-      BROWSER, PpapiHostMsg_TCPServerSocket_Accept(),
-      base::BindOnce(&TCPServerSocketPrivateResource::OnPluginMsgAcceptReply,
-                     base::Unretained(this), tcp_socket));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t TCPServerSocketPrivateResource::GetLocalAddress(
-    PP_NetAddress_Private* addr) {
-  if (!addr)
-    return PP_ERROR_BADARGUMENT;
-  if (state_ != STATE_LISTENING)
-    return PP_ERROR_FAILED;
-  *addr = local_addr_;
-  return PP_OK;
-}
-
-void TCPServerSocketPrivateResource::StopListening() {
-  if (state_ == STATE_CLOSED)
-    return;
-  state_ = STATE_CLOSED;
-  Post(BROWSER, PpapiHostMsg_TCPServerSocket_StopListening());
-  if (TrackedCallback::IsPending(listen_callback_))
-    listen_callback_->PostAbort();
-  if (TrackedCallback::IsPending(accept_callback_))
-    accept_callback_->PostAbort();
-}
-
-void TCPServerSocketPrivateResource::OnPluginMsgListenReply(
-    const ResourceMessageReplyParams& params,
-    const PP_NetAddress_Private& local_addr) {
-  if (state_ != STATE_BEFORE_LISTENING ||
-      !TrackedCallback::IsPending(listen_callback_)) {
-    return;
-  }
-  if (params.result() == PP_OK) {
-    local_addr_ = local_addr;
-    state_ = STATE_LISTENING;
-  }
-  listen_callback_->Run(params.result());
-}
-
-void TCPServerSocketPrivateResource::OnPluginMsgAcceptReply(
-    PP_Resource* tcp_socket,
-    const ResourceMessageReplyParams& params,
-    int pending_resource_id,
-    const PP_NetAddress_Private& local_addr,
-    const PP_NetAddress_Private& remote_addr) {
-  DCHECK(tcp_socket);
-  if (state_ != STATE_LISTENING ||
-      !TrackedCallback::IsPending(accept_callback_)) {
-    return;
-  }
-  if (params.result() == PP_OK) {
-    *tcp_socket = (new TCPSocketPrivateResource(connection(), pp_instance(),
-                                                pending_resource_id,
-                                                local_addr,
-                                                remote_addr))->GetReference();
-  }
-  accept_callback_->Run(params.result());
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/tcp_server_socket_private_resource.h b/proxy/tcp_server_socket_private_resource.h
deleted file mode 100644
index 57e7876..0000000
--- a/proxy/tcp_server_socket_private_resource.h
+++ /dev/null
@@ -1,72 +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.
-
-#ifndef PPAPI_PROXY_TCP_SERVER_SOCKET_PRIVATE_RESOURCE_H_
-#define PPAPI_PROXY_TCP_SERVER_SOCKET_PRIVATE_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/ppb_tcp_server_socket_private_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT TCPServerSocketPrivateResource
-    : public PluginResource,
-      public thunk::PPB_TCPServerSocket_Private_API {
- public:
-  TCPServerSocketPrivateResource(Connection connection, PP_Instance instance);
-
-  TCPServerSocketPrivateResource(const TCPServerSocketPrivateResource&) =
-      delete;
-  TCPServerSocketPrivateResource& operator=(
-      const TCPServerSocketPrivateResource&) = delete;
-
-  ~TCPServerSocketPrivateResource() override;
-
-  // PluginResource implementation.
-  thunk::PPB_TCPServerSocket_Private_API* AsPPB_TCPServerSocket_Private_API()
-      override;
-
-  // PPB_TCPServerSocket_Private_API implementation.
-  int32_t Listen(const PP_NetAddress_Private* addr,
-                 int32_t backlog,
-                 scoped_refptr<TrackedCallback> callback) override;
-  int32_t Accept(PP_Resource* tcp_socket,
-                 scoped_refptr<TrackedCallback> callback) override;
-  int32_t GetLocalAddress(PP_NetAddress_Private* addr) override;
-  void StopListening() override;
-
- private:
-  enum State {
-    STATE_BEFORE_LISTENING,
-    STATE_LISTENING,
-    STATE_CLOSED
-  };
-
-  // IPC message handlers.
-  void OnPluginMsgListenReply(const ResourceMessageReplyParams& params,
-                              const PP_NetAddress_Private& local_addr);
-  void OnPluginMsgAcceptReply(PP_Resource* tcp_socket,
-                              const ResourceMessageReplyParams& params,
-                              int pending_resource_id,
-                              const PP_NetAddress_Private& local_addr,
-                              const PP_NetAddress_Private& remote_addr);
-
-  State state_;
-  PP_NetAddress_Private local_addr_;
-
-  scoped_refptr<TrackedCallback> listen_callback_;
-  scoped_refptr<TrackedCallback> accept_callback_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_TCP_SERVER_SOCKET_PRIVATE_RESOURCE_H_
diff --git a/proxy/tcp_socket_private_resource.cc b/proxy/tcp_socket_private_resource.cc
deleted file mode 100644
index cdceeba..0000000
--- a/proxy/tcp_socket_private_resource.cc
+++ /dev/null
@@ -1,120 +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.
-
-#include "ppapi/proxy/tcp_socket_private_resource.h"
-
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/ppb_tcp_socket_shared.h"
-
-namespace ppapi {
-namespace proxy {
-
-TCPSocketPrivateResource::TCPSocketPrivateResource(Connection connection,
-                                                   PP_Instance instance)
-    : TCPSocketResourceBase(connection, instance, TCP_SOCKET_VERSION_PRIVATE) {
-  SendCreate(BROWSER, PpapiHostMsg_TCPSocket_CreatePrivate());
-}
-
-TCPSocketPrivateResource::TCPSocketPrivateResource(
-    Connection connection,
-    PP_Instance instance,
-    int pending_resource_id,
-    const PP_NetAddress_Private& local_addr,
-    const PP_NetAddress_Private& remote_addr)
-    : TCPSocketResourceBase(connection, instance, TCP_SOCKET_VERSION_PRIVATE,
-                            local_addr, remote_addr) {
-  AttachToPendingHost(BROWSER, pending_resource_id);
-}
-
-TCPSocketPrivateResource::~TCPSocketPrivateResource() {
-}
-
-thunk::PPB_TCPSocket_Private_API*
-TCPSocketPrivateResource::AsPPB_TCPSocket_Private_API() {
-  return this;
-}
-
-int32_t TCPSocketPrivateResource::Connect(
-    const char* host,
-    uint16_t port,
-    scoped_refptr<TrackedCallback> callback) {
-  return ConnectImpl(host, port, callback);
-}
-
-int32_t TCPSocketPrivateResource::ConnectWithNetAddress(
-    const PP_NetAddress_Private* addr,
-    scoped_refptr<TrackedCallback> callback) {
-  return ConnectWithNetAddressImpl(addr, callback);
-}
-
-PP_Bool TCPSocketPrivateResource::GetLocalAddress(
-    PP_NetAddress_Private* local_addr) {
-  return GetLocalAddressImpl(local_addr);
-}
-
-PP_Bool TCPSocketPrivateResource::GetRemoteAddress(
-    PP_NetAddress_Private* remote_addr) {
-  return GetRemoteAddressImpl(remote_addr);
-}
-
-int32_t TCPSocketPrivateResource::SSLHandshake(
-    const char* server_name,
-    uint16_t server_port,
-    scoped_refptr<TrackedCallback> callback) {
-  return SSLHandshakeImpl(server_name, server_port, callback);
-}
-
-PP_Resource TCPSocketPrivateResource::GetServerCertificate() {
-  return GetServerCertificateImpl();
-}
-
-PP_Bool TCPSocketPrivateResource::AddChainBuildingCertificate(
-    PP_Resource certificate,
-    PP_Bool trusted) {
-  return AddChainBuildingCertificateImpl(certificate, trusted);
-}
-
-int32_t TCPSocketPrivateResource::Read(
-    char* buffer,
-    int32_t bytes_to_read,
-    scoped_refptr<TrackedCallback> callback) {
-  return ReadImpl(buffer, bytes_to_read, callback);
-}
-
-int32_t TCPSocketPrivateResource::Write(
-    const char* buffer,
-    int32_t bytes_to_write,
-    scoped_refptr<TrackedCallback> callback) {
-  return WriteImpl(buffer, bytes_to_write, callback);
-}
-
-void TCPSocketPrivateResource::Disconnect() {
-  CloseImpl();
-}
-
-int32_t TCPSocketPrivateResource::SetOption(
-    PP_TCPSocketOption_Private name,
-    const PP_Var& value,
-    scoped_refptr<TrackedCallback> callback) {
-  switch (name) {
-    case PP_TCPSOCKETOPTION_PRIVATE_INVALID:
-      return PP_ERROR_BADARGUMENT;
-    case PP_TCPSOCKETOPTION_PRIVATE_NO_DELAY:
-      return SetOptionImpl(PP_TCPSOCKET_OPTION_NO_DELAY, value,
-                           true,  // Check connect() state.
-                           callback);
-    default:
-      NOTREACHED();
-  }
-}
-
-PP_Resource TCPSocketPrivateResource::CreateAcceptedSocket(
-    int /* pending_host_id */,
-    const PP_NetAddress_Private& /* local_addr */,
-    const PP_NetAddress_Private& /* remote_addr */) {
-  NOTREACHED();
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/tcp_socket_private_resource.h b/proxy/tcp_socket_private_resource.h
deleted file mode 100644
index 830fcf1..0000000
--- a/proxy/tcp_socket_private_resource.h
+++ /dev/null
@@ -1,76 +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.
-
-#ifndef PPAPI_PROXY_TCP_SOCKET_PRIVATE_RESOURCE_H_
-#define PPAPI_PROXY_TCP_SOCKET_PRIVATE_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "ppapi/proxy/tcp_socket_resource_base.h"
-#include "ppapi/thunk/ppb_tcp_socket_private_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT TCPSocketPrivateResource
-    : public thunk::PPB_TCPSocket_Private_API,
-      public TCPSocketResourceBase {
- public:
-  // C-tor used for new sockets.
-  TCPSocketPrivateResource(Connection connection, PP_Instance instance);
-
-  // C-tor used for already accepted sockets.
-  TCPSocketPrivateResource(Connection connection,
-                           PP_Instance instance,
-                           int pending_resource_id,
-                           const PP_NetAddress_Private& local_addr,
-                           const PP_NetAddress_Private& remote_addr);
-
-  TCPSocketPrivateResource(const TCPSocketPrivateResource&) = delete;
-  TCPSocketPrivateResource& operator=(const TCPSocketPrivateResource&) = delete;
-
-  ~TCPSocketPrivateResource() override;
-
-  // PluginResource overrides.
-  PPB_TCPSocket_Private_API* AsPPB_TCPSocket_Private_API() override;
-
-  // PPB_TCPSocket_Private_API implementation.
-  int32_t Connect(const char* host,
-                  uint16_t port,
-                  scoped_refptr<TrackedCallback> callback) override;
-  int32_t ConnectWithNetAddress(
-      const PP_NetAddress_Private* addr,
-      scoped_refptr<TrackedCallback> callback) override;
-  PP_Bool GetLocalAddress(PP_NetAddress_Private* local_addr) override;
-  PP_Bool GetRemoteAddress(PP_NetAddress_Private* remote_addr) override;
-  int32_t SSLHandshake(
-      const char* server_name,
-      uint16_t server_port,
-      scoped_refptr<TrackedCallback> callback) override;
-  PP_Resource GetServerCertificate() override;
-  PP_Bool AddChainBuildingCertificate(PP_Resource certificate,
-                                      PP_Bool trusted) override;
-  int32_t Read(char* buffer,
-               int32_t bytes_to_read,
-               scoped_refptr<TrackedCallback> callback) override;
-  int32_t Write(const char* buffer,
-                int32_t bytes_to_write,
-                scoped_refptr<TrackedCallback> callback) override;
-  void Disconnect() override;
-  int32_t SetOption(PP_TCPSocketOption_Private name,
-                    const PP_Var& value,
-                    scoped_refptr<TrackedCallback> callback) override;
-
-  // TCPSocketResourceBase implementation.
-  PP_Resource CreateAcceptedSocket(
-      int pending_host_id,
-      const PP_NetAddress_Private& local_addr,
-      const PP_NetAddress_Private& remote_addr) override;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_TCP_SOCKET_PRIVATE_RESOURCE_H_
diff --git a/proxy/tcp_socket_resource.cc b/proxy/tcp_socket_resource.cc
deleted file mode 100644
index 20328cf..0000000
--- a/proxy/tcp_socket_resource.cc
+++ /dev/null
@@ -1,144 +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.
-
-#include "ppapi/proxy/tcp_socket_resource.h"
-
-#include "base/check_op.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/ppb_tcp_socket_shared.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_net_address_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-typedef thunk::EnterResourceNoLock<thunk::PPB_NetAddress_API>
-    EnterNetAddressNoLock;
-
-}  // namespace
-
-TCPSocketResource::TCPSocketResource(Connection connection,
-                                     PP_Instance instance,
-                                     TCPSocketVersion version)
-    : TCPSocketResourceBase(connection, instance, version) {
-  DCHECK_NE(version, TCP_SOCKET_VERSION_PRIVATE);
-  SendCreate(BROWSER, PpapiHostMsg_TCPSocket_Create(version));
-}
-
-TCPSocketResource::TCPSocketResource(Connection connection,
-                                     PP_Instance instance,
-                                     int pending_host_id,
-                                     const PP_NetAddress_Private& local_addr,
-                                     const PP_NetAddress_Private& remote_addr)
-    : TCPSocketResourceBase(connection, instance,
-                            TCP_SOCKET_VERSION_1_1_OR_ABOVE, local_addr,
-                            remote_addr) {
-  AttachToPendingHost(BROWSER, pending_host_id);
-}
-
-TCPSocketResource::~TCPSocketResource() {
-}
-
-thunk::PPB_TCPSocket_API* TCPSocketResource::AsPPB_TCPSocket_API() {
-  return this;
-}
-
-int32_t TCPSocketResource::Bind(PP_Resource addr,
-                                scoped_refptr<TrackedCallback> callback) {
-  EnterNetAddressNoLock enter(addr, true);
-  if (enter.failed())
-    return PP_ERROR_BADARGUMENT;
-
-  return BindImpl(&enter.object()->GetNetAddressPrivate(), callback);
-}
-
-int32_t TCPSocketResource::Connect(PP_Resource addr,
-                                   scoped_refptr<TrackedCallback> callback) {
-  EnterNetAddressNoLock enter(addr, true);
-  if (enter.failed())
-    return PP_ERROR_BADARGUMENT;
-
-  return ConnectWithNetAddressImpl(&enter.object()->GetNetAddressPrivate(),
-                                   callback);
-}
-
-PP_Resource TCPSocketResource::GetLocalAddress() {
-  PP_NetAddress_Private addr_private;
-  if (!GetLocalAddressImpl(&addr_private))
-    return 0;
-
-  thunk::EnterResourceCreationNoLock enter(pp_instance());
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateNetAddressFromNetAddressPrivate(
-      pp_instance(), addr_private);
-}
-
-PP_Resource TCPSocketResource::GetRemoteAddress() {
-  PP_NetAddress_Private addr_private;
-  if (!GetRemoteAddressImpl(&addr_private))
-    return 0;
-
-  thunk::EnterResourceCreationNoLock enter(pp_instance());
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateNetAddressFromNetAddressPrivate(
-      pp_instance(), addr_private);
-}
-
-int32_t TCPSocketResource::Read(char* buffer,
-                                int32_t bytes_to_read,
-                                scoped_refptr<TrackedCallback> callback) {
-  return ReadImpl(buffer, bytes_to_read, callback);
-}
-
-int32_t TCPSocketResource::Write(const char* buffer,
-                                 int32_t bytes_to_write,
-                                 scoped_refptr<TrackedCallback> callback) {
-  return WriteImpl(buffer, bytes_to_write, callback);
-}
-
-int32_t TCPSocketResource::Listen(int32_t backlog,
-                                  scoped_refptr<TrackedCallback> callback) {
-  return ListenImpl(backlog, callback);
-}
-
-int32_t TCPSocketResource::Accept(PP_Resource* accepted_tcp_socket,
-                                  scoped_refptr<TrackedCallback> callback) {
-  return AcceptImpl(accepted_tcp_socket, callback);
-}
-
-void TCPSocketResource::Close() {
-  CloseImpl();
-}
-
-int32_t TCPSocketResource::SetOption1_1(
-    PP_TCPSocket_Option name,
-    const PP_Var& value,
-    scoped_refptr<TrackedCallback> callback) {
-  return SetOptionImpl(name, value,
-                       true,  // Check connect() state.
-                       callback);
-}
-
-int32_t TCPSocketResource::SetOption(PP_TCPSocket_Option name,
-                                     const PP_Var& value,
-                                     scoped_refptr<TrackedCallback> callback) {
-  return SetOptionImpl(name, value,
-                       false,  // Do not check connect() state.
-                       callback);
-}
-
-PP_Resource TCPSocketResource::CreateAcceptedSocket(
-    int pending_host_id,
-    const PP_NetAddress_Private& local_addr,
-    const PP_NetAddress_Private& remote_addr) {
-  return (new TCPSocketResource(connection(), pp_instance(), pending_host_id,
-                                local_addr, remote_addr))->GetReference();
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/tcp_socket_resource.h b/proxy/tcp_socket_resource.h
deleted file mode 100644
index 5f16ec3..0000000
--- a/proxy/tcp_socket_resource.h
+++ /dev/null
@@ -1,78 +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.
-
-#ifndef PPAPI_PROXY_TCP_SOCKET_RESOURCE_H_
-#define PPAPI_PROXY_TCP_SOCKET_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "ppapi/proxy/tcp_socket_resource_base.h"
-#include "ppapi/thunk/ppb_tcp_socket_api.h"
-
-namespace ppapi {
-
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT TCPSocketResource : public thunk::PPB_TCPSocket_API,
-                                             public TCPSocketResourceBase {
- public:
-  // C-tor used for new sockets created.
-  TCPSocketResource(Connection connection,
-                    PP_Instance instance,
-                    TCPSocketVersion version);
-
-  TCPSocketResource(const TCPSocketResource&) = delete;
-  TCPSocketResource& operator=(const TCPSocketResource&) = delete;
-
-  ~TCPSocketResource() override;
-
-  // PluginResource overrides.
-  thunk::PPB_TCPSocket_API* AsPPB_TCPSocket_API() override;
-
-  // thunk::PPB_TCPSocket_API implementation.
-  int32_t Bind(PP_Resource addr,
-               scoped_refptr<TrackedCallback> callback) override;
-  int32_t Connect(PP_Resource addr,
-                  scoped_refptr<TrackedCallback> callback) override;
-  PP_Resource GetLocalAddress() override;
-  PP_Resource GetRemoteAddress() override;
-  int32_t Read(char* buffer,
-               int32_t bytes_to_read,
-               scoped_refptr<TrackedCallback> callback) override;
-  int32_t Write(const char* buffer,
-                int32_t bytes_to_write,
-                scoped_refptr<TrackedCallback> callback) override;
-  int32_t Listen(int32_t backlog,
-                 scoped_refptr<TrackedCallback> callback) override;
-  int32_t Accept(PP_Resource* accepted_tcp_socket,
-                 scoped_refptr<TrackedCallback> callback) override;
-  void Close() override;
-  int32_t SetOption1_1(
-      PP_TCPSocket_Option name,
-      const PP_Var& value,
-      scoped_refptr<TrackedCallback> callback) override;
-  int32_t SetOption(PP_TCPSocket_Option name,
-                    const PP_Var& value,
-                    scoped_refptr<TrackedCallback> callback) override;
-
-  // TCPSocketResourceBase implementation.
-  PP_Resource CreateAcceptedSocket(
-      int pending_host_id,
-      const PP_NetAddress_Private& local_addr,
-      const PP_NetAddress_Private& remote_addr) override;
-
- private:
-  // C-tor used for accepted sockets.
-  TCPSocketResource(Connection connection,
-                    PP_Instance instance,
-                    int pending_host_id,
-                    const PP_NetAddress_Private& local_addr,
-                    const PP_NetAddress_Private& remote_addr);
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_TCP_SOCKET_RESOURCE_H_
diff --git a/proxy/tcp_socket_resource_base.cc b/proxy/tcp_socket_resource_base.cc
deleted file mode 100644
index e56abc5..0000000
--- a/proxy/tcp_socket_resource_base.cc
+++ /dev/null
@@ -1,500 +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.
-
-#include "ppapi/proxy/tcp_socket_resource_base.h"
-
-#include <cstring>
-#include <iterator>
-
-#include "base/check.h"
-#include "base/check_op.h"
-#include "base/functional/bind.h"
-#include "base/notimplemented.h"
-#include "base/notreached.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/error_conversion.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/tcp_socket_resource_constants.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h"
-#include "ppapi/shared_impl/socket_option_data.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/shared_impl/var_tracker.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_x509_certificate_private_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-TCPSocketResourceBase::TCPSocketResourceBase(Connection connection,
-                                             PP_Instance instance,
-                                             TCPSocketVersion version)
-    : PluginResource(connection, instance),
-      state_(TCPSocketState::INITIAL),
-      read_buffer_(NULL),
-      bytes_to_read_(-1),
-      accepted_tcp_socket_(NULL),
-      version_(version) {
-  local_addr_.size = 0;
-  memset(local_addr_.data, 0,
-         std::size(local_addr_.data) * sizeof(*local_addr_.data));
-  remote_addr_.size = 0;
-  memset(remote_addr_.data, 0,
-         std::size(remote_addr_.data) * sizeof(*remote_addr_.data));
-}
-
-TCPSocketResourceBase::TCPSocketResourceBase(
-    Connection connection,
-    PP_Instance instance,
-    TCPSocketVersion version,
-    const PP_NetAddress_Private& local_addr,
-    const PP_NetAddress_Private& remote_addr)
-    : PluginResource(connection, instance),
-      state_(TCPSocketState::CONNECTED),
-      read_buffer_(NULL),
-      bytes_to_read_(-1),
-      local_addr_(local_addr),
-      remote_addr_(remote_addr),
-      accepted_tcp_socket_(NULL),
-      version_(version) {
-}
-
-TCPSocketResourceBase::~TCPSocketResourceBase() {
-  CloseImpl();
-}
-
-int32_t TCPSocketResourceBase::BindImpl(
-    const PP_NetAddress_Private* addr,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!addr)
-    return PP_ERROR_BADARGUMENT;
-  if (state_.IsPending(TCPSocketState::BIND))
-    return PP_ERROR_INPROGRESS;
-  if (!state_.IsValidTransition(TCPSocketState::BIND))
-    return PP_ERROR_FAILED;
-
-  bind_callback_ = callback;
-  state_.SetPendingTransition(TCPSocketState::BIND);
-
-  Call<PpapiPluginMsg_TCPSocket_BindReply>(
-      BROWSER, PpapiHostMsg_TCPSocket_Bind(*addr),
-      base::BindOnce(&TCPSocketResourceBase::OnPluginMsgBindReply,
-                     base::Unretained(this)),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t TCPSocketResourceBase::ConnectImpl(
-    const char* host,
-    uint16_t port,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!host)
-    return PP_ERROR_BADARGUMENT;
-  if (state_.IsPending(TCPSocketState::CONNECT))
-    return PP_ERROR_INPROGRESS;
-  if (!state_.IsValidTransition(TCPSocketState::CONNECT))
-    return PP_ERROR_FAILED;
-
-  connect_callback_ = callback;
-  state_.SetPendingTransition(TCPSocketState::CONNECT);
-
-  Call<PpapiPluginMsg_TCPSocket_ConnectReply>(
-      BROWSER, PpapiHostMsg_TCPSocket_Connect(host, port),
-      base::BindOnce(&TCPSocketResourceBase::OnPluginMsgConnectReply,
-                     base::Unretained(this)),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t TCPSocketResourceBase::ConnectWithNetAddressImpl(
-    const PP_NetAddress_Private* addr,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!addr)
-    return PP_ERROR_BADARGUMENT;
-  if (state_.IsPending(TCPSocketState::CONNECT))
-    return PP_ERROR_INPROGRESS;
-  if (!state_.IsValidTransition(TCPSocketState::CONNECT))
-    return PP_ERROR_FAILED;
-
-  connect_callback_ = callback;
-  state_.SetPendingTransition(TCPSocketState::CONNECT);
-
-  Call<PpapiPluginMsg_TCPSocket_ConnectReply>(
-      BROWSER, PpapiHostMsg_TCPSocket_ConnectWithNetAddress(*addr),
-      base::BindOnce(&TCPSocketResourceBase::OnPluginMsgConnectReply,
-                     base::Unretained(this)),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-PP_Bool TCPSocketResourceBase::GetLocalAddressImpl(
-    PP_NetAddress_Private* local_addr) {
-  if (!state_.IsBound() || !local_addr)
-    return PP_FALSE;
-  *local_addr = local_addr_;
-  return PP_TRUE;
-}
-
-PP_Bool TCPSocketResourceBase::GetRemoteAddressImpl(
-    PP_NetAddress_Private* remote_addr) {
-  if (!state_.IsConnected() || !remote_addr)
-    return PP_FALSE;
-  *remote_addr = remote_addr_;
-  return PP_TRUE;
-}
-
-int32_t TCPSocketResourceBase::SSLHandshakeImpl(
-    const char* server_name,
-    uint16_t server_port,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!server_name)
-    return PP_ERROR_BADARGUMENT;
-
-  if (state_.IsPending(TCPSocketState::SSL_CONNECT) ||
-      TrackedCallback::IsPending(read_callback_) ||
-      TrackedCallback::IsPending(write_callback_)) {
-    return PP_ERROR_INPROGRESS;
-  }
-  if (!state_.IsValidTransition(TCPSocketState::SSL_CONNECT))
-    return PP_ERROR_FAILED;
-
-  ssl_handshake_callback_ = callback;
-  state_.SetPendingTransition(TCPSocketState::SSL_CONNECT);
-
-  Call<PpapiPluginMsg_TCPSocket_SSLHandshakeReply>(
-      BROWSER,
-      PpapiHostMsg_TCPSocket_SSLHandshake(server_name, server_port,
-                                          trusted_certificates_,
-                                          untrusted_certificates_),
-      base::BindOnce(&TCPSocketResourceBase::OnPluginMsgSSLHandshakeReply,
-                     base::Unretained(this)),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-PP_Resource TCPSocketResourceBase::GetServerCertificateImpl() {
-  if (!server_certificate_.get())
-    return 0;
-  return server_certificate_->GetReference();
-}
-
-PP_Bool TCPSocketResourceBase::AddChainBuildingCertificateImpl(
-    PP_Resource certificate,
-    PP_Bool trusted) {
-  // TODO(raymes): This is exposed in the private PPB_TCPSocket_Private
-  // interface for Flash but isn't currently implemented due to security
-  // implications. It is exposed so that it can be hooked up on the Flash side
-  // and if we decide to implement it we can do so without modifying the Flash
-  // codebase.
-  NOTIMPLEMENTED();
-  return PP_FALSE;
-}
-
-int32_t TCPSocketResourceBase::ReadImpl(
-    char* buffer,
-    int32_t bytes_to_read,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!buffer || bytes_to_read <= 0)
-    return PP_ERROR_BADARGUMENT;
-
-  if (!state_.IsConnected())
-    return PP_ERROR_FAILED;
-  if (TrackedCallback::IsPending(read_callback_) ||
-      state_.IsPending(TCPSocketState::SSL_CONNECT))
-    return PP_ERROR_INPROGRESS;
-  read_buffer_ = buffer;
-  bytes_to_read_ =
-      std::min(bytes_to_read,
-               static_cast<int32_t>(TCPSocketResourceConstants::kMaxReadSize));
-  read_callback_ = callback;
-
-  Call<PpapiPluginMsg_TCPSocket_ReadReply>(
-      BROWSER, PpapiHostMsg_TCPSocket_Read(bytes_to_read_),
-      base::BindOnce(&TCPSocketResourceBase::OnPluginMsgReadReply,
-                     base::Unretained(this)),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t TCPSocketResourceBase::WriteImpl(
-    const char* buffer,
-    int32_t bytes_to_write,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!buffer || bytes_to_write <= 0)
-    return PP_ERROR_BADARGUMENT;
-
-  if (!state_.IsConnected())
-    return PP_ERROR_FAILED;
-  if (TrackedCallback::IsPending(write_callback_) ||
-      state_.IsPending(TCPSocketState::SSL_CONNECT))
-    return PP_ERROR_INPROGRESS;
-
-  if (bytes_to_write > TCPSocketResourceConstants::kMaxWriteSize)
-    bytes_to_write = TCPSocketResourceConstants::kMaxWriteSize;
-
-  write_callback_ = callback;
-
-  Call<PpapiPluginMsg_TCPSocket_WriteReply>(
-      BROWSER,
-      PpapiHostMsg_TCPSocket_Write(std::string(buffer, bytes_to_write)),
-      base::BindOnce(&TCPSocketResourceBase::OnPluginMsgWriteReply,
-                     base::Unretained(this)),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t TCPSocketResourceBase::ListenImpl(
-    int32_t backlog,
-    scoped_refptr<TrackedCallback> callback) {
-  if (backlog <= 0)
-    return PP_ERROR_BADARGUMENT;
-  if (state_.IsPending(TCPSocketState::LISTEN))
-    return PP_ERROR_INPROGRESS;
-  if (!state_.IsValidTransition(TCPSocketState::LISTEN))
-    return PP_ERROR_FAILED;
-
-  listen_callback_ = callback;
-  state_.SetPendingTransition(TCPSocketState::LISTEN);
-
-  Call<PpapiPluginMsg_TCPSocket_ListenReply>(
-      BROWSER, PpapiHostMsg_TCPSocket_Listen(backlog),
-      base::BindOnce(&TCPSocketResourceBase::OnPluginMsgListenReply,
-                     base::Unretained(this)),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t TCPSocketResourceBase::AcceptImpl(
-    PP_Resource* accepted_tcp_socket,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!accepted_tcp_socket)
-    return PP_ERROR_BADARGUMENT;
-  if (TrackedCallback::IsPending(accept_callback_))
-    return PP_ERROR_INPROGRESS;
-  if (state_.state() != TCPSocketState::LISTENING)
-    return PP_ERROR_FAILED;
-
-  accept_callback_ = callback;
-  accepted_tcp_socket_ = accepted_tcp_socket;
-
-  Call<PpapiPluginMsg_TCPSocket_AcceptReply>(
-      BROWSER, PpapiHostMsg_TCPSocket_Accept(),
-      base::BindOnce(&TCPSocketResourceBase::OnPluginMsgAcceptReply,
-                     base::Unretained(this)),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void TCPSocketResourceBase::CloseImpl() {
-  if (state_.state() == TCPSocketState::CLOSED)
-    return;
-
-  state_.DoTransition(TCPSocketState::CLOSE, true);
-
-  Post(BROWSER, PpapiHostMsg_TCPSocket_Close());
-
-  PostAbortIfNecessary(&bind_callback_);
-  PostAbortIfNecessary(&connect_callback_);
-  PostAbortIfNecessary(&ssl_handshake_callback_);
-  PostAbortIfNecessary(&read_callback_);
-  PostAbortIfNecessary(&write_callback_);
-  PostAbortIfNecessary(&listen_callback_);
-  PostAbortIfNecessary(&accept_callback_);
-  read_buffer_ = NULL;
-  bytes_to_read_ = -1;
-  server_certificate_.reset();
-  accepted_tcp_socket_ = NULL;
-}
-
-int32_t TCPSocketResourceBase::SetOptionImpl(
-    PP_TCPSocket_Option name,
-    const PP_Var& value,
-    bool check_connect_state,
-    scoped_refptr<TrackedCallback> callback) {
-  SocketOptionData option_data;
-  switch (name) {
-    case PP_TCPSOCKET_OPTION_NO_DELAY: {
-      if (check_connect_state && !state_.IsConnected())
-        return PP_ERROR_FAILED;
-
-      if (value.type != PP_VARTYPE_BOOL)
-        return PP_ERROR_BADARGUMENT;
-      option_data.SetBool(PP_ToBool(value.value.as_bool));
-      break;
-    }
-    case PP_TCPSOCKET_OPTION_SEND_BUFFER_SIZE:
-    case PP_TCPSOCKET_OPTION_RECV_BUFFER_SIZE: {
-      if (check_connect_state && !state_.IsConnected())
-        return PP_ERROR_FAILED;
-
-      if (value.type != PP_VARTYPE_INT32)
-        return PP_ERROR_BADARGUMENT;
-      option_data.SetInt32(value.value.as_int);
-      break;
-    }
-    default: {
-      NOTREACHED();
-    }
-  }
-
-  set_option_callbacks_.push(callback);
-
-  Call<PpapiPluginMsg_TCPSocket_SetOptionReply>(
-      BROWSER, PpapiHostMsg_TCPSocket_SetOption(name, option_data),
-      base::BindOnce(&TCPSocketResourceBase::OnPluginMsgSetOptionReply,
-                     base::Unretained(this)),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void TCPSocketResourceBase::PostAbortIfNecessary(
-    scoped_refptr<TrackedCallback>* callback) {
-  if (TrackedCallback::IsPending(*callback))
-    (*callback)->PostAbort();
-}
-
-void TCPSocketResourceBase::OnPluginMsgBindReply(
-    const ResourceMessageReplyParams& params,
-    const PP_NetAddress_Private& local_addr) {
-  // It is possible that CloseImpl() has been called. We don't want to update
-  // class members in this case.
-  if (!state_.IsPending(TCPSocketState::BIND))
-    return;
-
-  DCHECK(TrackedCallback::IsPending(bind_callback_));
-  if (params.result() == PP_OK) {
-    local_addr_ = local_addr;
-    state_.CompletePendingTransition(true);
-  } else {
-    state_.CompletePendingTransition(false);
-  }
-  RunCallback(bind_callback_, params.result());
-}
-
-void TCPSocketResourceBase::OnPluginMsgConnectReply(
-    const ResourceMessageReplyParams& params,
-    const PP_NetAddress_Private& local_addr,
-    const PP_NetAddress_Private& remote_addr) {
-  // It is possible that CloseImpl() has been called. We don't want to update
-  // class members in this case.
-  if (!state_.IsPending(TCPSocketState::CONNECT))
-    return;
-
-  DCHECK(TrackedCallback::IsPending(connect_callback_));
-  if (params.result() == PP_OK) {
-    local_addr_ = local_addr;
-    remote_addr_ = remote_addr;
-    state_.CompletePendingTransition(true);
-  } else {
-    if (version_ == TCP_SOCKET_VERSION_1_1_OR_ABOVE) {
-      state_.CompletePendingTransition(false);
-    } else {
-      // In order to maintain backward compatibility, allow to connect the
-      // socket again.
-      state_ = TCPSocketState(TCPSocketState::INITIAL);
-    }
-  }
-  RunCallback(connect_callback_, params.result());
-}
-
-void TCPSocketResourceBase::OnPluginMsgSSLHandshakeReply(
-      const ResourceMessageReplyParams& params,
-      const PPB_X509Certificate_Fields& certificate_fields) {
-  // It is possible that CloseImpl() has been called. We don't want to
-  // update class members in this case.
-  if (!state_.IsPending(TCPSocketState::SSL_CONNECT))
-    return;
-
-  DCHECK(TrackedCallback::IsPending(ssl_handshake_callback_));
-  if (params.result() == PP_OK) {
-    state_.CompletePendingTransition(true);
-    server_certificate_ = new PPB_X509Certificate_Private_Shared(
-        OBJECT_IS_PROXY,
-        pp_instance(),
-        certificate_fields);
-  } else {
-    state_.CompletePendingTransition(false);
-  }
-  RunCallback(ssl_handshake_callback_, params.result());
-}
-
-void TCPSocketResourceBase::OnPluginMsgReadReply(
-    const ResourceMessageReplyParams& params,
-    const std::string& data) {
-  // It is possible that CloseImpl() has been called. We shouldn't access the
-  // buffer in that case. The user may have released it.
-  if (!state_.IsConnected() || !TrackedCallback::IsPending(read_callback_) ||
-      !read_buffer_) {
-    return;
-  }
-
-  const bool succeeded = params.result() == PP_OK;
-  if (succeeded) {
-    CHECK_LE(static_cast<int32_t>(data.size()), bytes_to_read_);
-    if (!data.empty())
-      memmove(read_buffer_, data.c_str(), data.size());
-  }
-  read_buffer_ = NULL;
-  bytes_to_read_ = -1;
-
-  RunCallback(read_callback_,
-              succeeded ? static_cast<int32_t>(data.size()) : params.result());
-}
-
-void TCPSocketResourceBase::OnPluginMsgWriteReply(
-    const ResourceMessageReplyParams& params) {
-  if (!state_.IsConnected() || !TrackedCallback::IsPending(write_callback_))
-    return;
-  RunCallback(write_callback_, params.result());
-}
-
-void TCPSocketResourceBase::OnPluginMsgListenReply(
-    const ResourceMessageReplyParams& params) {
-  if (!state_.IsPending(TCPSocketState::LISTEN))
-    return;
-
-  DCHECK(TrackedCallback::IsPending(listen_callback_));
-  state_.CompletePendingTransition(params.result() == PP_OK);
-
-  RunCallback(listen_callback_, params.result());
-}
-
-void TCPSocketResourceBase::OnPluginMsgAcceptReply(
-    const ResourceMessageReplyParams& params,
-    int pending_host_id,
-    const PP_NetAddress_Private& local_addr,
-    const PP_NetAddress_Private& remote_addr) {
-  // It is possible that CloseImpl() has been called. We shouldn't access the
-  // output parameter in that case. The user may have released it.
-  if (state_.state() != TCPSocketState::LISTENING ||
-      !TrackedCallback::IsPending(accept_callback_) || !accepted_tcp_socket_) {
-    return;
-  }
-
-  if (params.result() == PP_OK) {
-    *accepted_tcp_socket_ = CreateAcceptedSocket(pending_host_id, local_addr,
-                                                 remote_addr);
-  }
-  accepted_tcp_socket_ = NULL;
-  RunCallback(accept_callback_, params.result());
-}
-
-void TCPSocketResourceBase::OnPluginMsgSetOptionReply(
-    const ResourceMessageReplyParams& params) {
-  CHECK(!set_option_callbacks_.empty());
-  scoped_refptr<TrackedCallback> callback = set_option_callbacks_.front();
-  set_option_callbacks_.pop();
-  if (TrackedCallback::IsPending(callback))
-    RunCallback(callback, params.result());
-}
-
-void TCPSocketResourceBase::RunCallback(scoped_refptr<TrackedCallback> callback,
-                                        int32_t pp_result) {
-  callback->Run(ConvertNetworkAPIErrorForCompatibility(
-      pp_result, version_ == TCP_SOCKET_VERSION_PRIVATE));
-}
-
-}  // namespace ppapi
-}  // namespace proxy
diff --git a/proxy/tcp_socket_resource_base.h b/proxy/tcp_socket_resource_base.h
deleted file mode 100644
index 00edded..0000000
--- a/proxy/tcp_socket_resource_base.h
+++ /dev/null
@@ -1,137 +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.
-
-#ifndef PPAPI_PROXY_TCP_SOCKET_RESOURCE_BASE_H_
-#define PPAPI_PROXY_TCP_SOCKET_RESOURCE_BASE_H_
-
-#include <stdint.h>
-
-#include <string>
-#include <vector>
-
-#include "base/containers/queue.h"
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/ppb_tcp_socket.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/ppb_tcp_socket_shared.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-
-namespace ppapi {
-
-class PPB_X509Certificate_Fields;
-class PPB_X509Certificate_Private_Shared;
-
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT TCPSocketResourceBase : public PluginResource {
- protected:
-  // C-tor used for new sockets.
-  TCPSocketResourceBase(Connection connection,
-                        PP_Instance instance,
-                        TCPSocketVersion version);
-
-  // C-tor used for already accepted sockets.
-  TCPSocketResourceBase(Connection connection,
-                        PP_Instance instance,
-                        TCPSocketVersion version,
-                        const PP_NetAddress_Private& local_addr,
-                        const PP_NetAddress_Private& remote_addr);
-
-  TCPSocketResourceBase(const TCPSocketResourceBase&) = delete;
-  TCPSocketResourceBase& operator=(const TCPSocketResourceBase&) = delete;
-
-  virtual ~TCPSocketResourceBase();
-
-  // Implemented by subclasses to create resources for accepted sockets.
-  virtual PP_Resource CreateAcceptedSocket(
-      int pending_host_id,
-      const PP_NetAddress_Private& local_addr,
-      const PP_NetAddress_Private& remote_addr) = 0;
-
-  int32_t BindImpl(const PP_NetAddress_Private* addr,
-                   scoped_refptr<TrackedCallback> callback);
-  int32_t ConnectImpl(const char* host,
-                      uint16_t port,
-                      scoped_refptr<TrackedCallback> callback);
-  int32_t ConnectWithNetAddressImpl(const PP_NetAddress_Private* addr,
-                                    scoped_refptr<TrackedCallback> callback);
-  PP_Bool GetLocalAddressImpl(PP_NetAddress_Private* local_addr);
-  PP_Bool GetRemoteAddressImpl(PP_NetAddress_Private* remote_addr);
-  int32_t SSLHandshakeImpl(const char* server_name,
-                           uint16_t server_port,
-                           scoped_refptr<TrackedCallback> callback);
-  PP_Resource GetServerCertificateImpl();
-  PP_Bool AddChainBuildingCertificateImpl(PP_Resource certificate,
-                                          PP_Bool trusted);
-  int32_t ReadImpl(char* buffer,
-                   int32_t bytes_to_read,
-                   scoped_refptr<TrackedCallback> callback);
-  int32_t WriteImpl(const char* buffer,
-                    int32_t bytes_to_write,
-                    scoped_refptr<TrackedCallback> callback);
-  int32_t ListenImpl(int32_t backlog, scoped_refptr<TrackedCallback> callback);
-  int32_t AcceptImpl(PP_Resource* accepted_tcp_socket,
-                     scoped_refptr<TrackedCallback> callback);
-  void CloseImpl();
-  int32_t SetOptionImpl(PP_TCPSocket_Option name,
-                        const PP_Var& value,
-                        bool check_connect_state,
-                        scoped_refptr<TrackedCallback> callback);
-
-  void PostAbortIfNecessary(scoped_refptr<TrackedCallback>* callback);
-
-  // IPC message handlers.
-  void OnPluginMsgBindReply(const ResourceMessageReplyParams& params,
-                            const PP_NetAddress_Private& local_addr);
-  void OnPluginMsgConnectReply(const ResourceMessageReplyParams& params,
-                               const PP_NetAddress_Private& local_addr,
-                               const PP_NetAddress_Private& remote_addr);
-  void OnPluginMsgSSLHandshakeReply(
-      const ResourceMessageReplyParams& params,
-      const PPB_X509Certificate_Fields& certificate_fields);
-  void OnPluginMsgReadReply(const ResourceMessageReplyParams& params,
-                            const std::string& data);
-  void OnPluginMsgWriteReply(const ResourceMessageReplyParams& params);
-  void OnPluginMsgListenReply(const ResourceMessageReplyParams& params);
-  void OnPluginMsgAcceptReply(const ResourceMessageReplyParams& params,
-                              int pending_host_id,
-                              const PP_NetAddress_Private& local_addr,
-                              const PP_NetAddress_Private& remote_addr);
-  void OnPluginMsgSetOptionReply(const ResourceMessageReplyParams& params);
-
-  scoped_refptr<TrackedCallback> bind_callback_;
-  scoped_refptr<TrackedCallback> connect_callback_;
-  scoped_refptr<TrackedCallback> ssl_handshake_callback_;
-  scoped_refptr<TrackedCallback> read_callback_;
-  scoped_refptr<TrackedCallback> write_callback_;
-  scoped_refptr<TrackedCallback> listen_callback_;
-  scoped_refptr<TrackedCallback> accept_callback_;
-  base::queue<scoped_refptr<TrackedCallback>> set_option_callbacks_;
-
-  TCPSocketState state_;
-  char* read_buffer_;
-  int32_t bytes_to_read_;
-
-  PP_NetAddress_Private local_addr_;
-  PP_NetAddress_Private remote_addr_;
-
-  scoped_refptr<PPB_X509Certificate_Private_Shared> server_certificate_;
-
-  std::vector<std::vector<char> > trusted_certificates_;
-  std::vector<std::vector<char> > untrusted_certificates_;
-
-  PP_Resource* accepted_tcp_socket_;
-
- private:
-  void RunCallback(scoped_refptr<TrackedCallback> callback, int32_t pp_result);
-
-  TCPSocketVersion version_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_TCP_SOCKET_RESOURCE_BASE_H_
diff --git a/proxy/tcp_socket_resource_constants.h b/proxy/tcp_socket_resource_constants.h
deleted file mode 100644
index 3676c44..0000000
--- a/proxy/tcp_socket_resource_constants.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2017 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_PROXY_TCP_SOCKET_RESOURCE_CONSTANTS_H_
-#define PPAPI_PROXY_TCP_SOCKET_RESOURCE_CONSTANTS_H_
-
-#include <stdint.h>
-
-namespace ppapi {
-namespace proxy {
-
-class TCPSocketResourceConstants {
- public:
-  TCPSocketResourceConstants(const TCPSocketResourceConstants&) = delete;
-  TCPSocketResourceConstants& operator=(const TCPSocketResourceConstants&) =
-      delete;
-
-  // The maximum number of bytes that each PpapiHostMsg_PPBTCPSocket_Read
-  // message is allowed to request.
-  enum { kMaxReadSize = 1024 * 1024 };
-  // The maximum number of bytes that each PpapiHostMsg_PPBTCPSocket_Write
-  // message is allowed to carry.
-  enum { kMaxWriteSize = 1024 * 1024 };
-
-  // The maximum number that we allow for setting
-  // PP_TCPSOCKET_OPTION_SEND_BUFFER_SIZE. This number is only for input
-  // argument sanity check, it doesn't mean the browser guarantees to support
-  // such a buffer size.
-  enum { kMaxSendBufferSize = 1024 * kMaxWriteSize };
-  // The maximum number that we allow for setting
-  // PP_TCPSOCKET_OPTION_RECV_BUFFER_SIZE. This number is only for input
-  // argument sanity check, it doesn't mean the browser guarantees to support
-  // such a buffer size.
-  enum { kMaxReceiveBufferSize = 1024 * kMaxReadSize };
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_TCP_SOCKET_RESOURCE_CONSTANTS_H_
diff --git a/proxy/udp_socket_filter.cc b/proxy/udp_socket_filter.cc
deleted file mode 100644
index ee97822..0000000
--- a/proxy/udp_socket_filter.cc
+++ /dev/null
@@ -1,247 +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/proxy/udp_socket_filter.h"
-
-#include <algorithm>
-#include <cstring>
-#include <memory>
-#include <utility>
-
-#include "base/check_op.h"
-#include "base/functional/bind.h"
-#include "base/notreached.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/error_conversion.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/udp_socket_resource_constants.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/resource_creation_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-int32_t SetRecvFromOutput(PP_Instance pp_instance,
-                          const std::unique_ptr<std::string>& data,
-                          const PP_NetAddress_Private& addr,
-                          char* output_buffer,
-                          int32_t num_bytes,
-                          PP_Resource* output_addr,
-                          int32_t browser_result) {
-  ProxyLock::AssertAcquired();
-  DCHECK_GE(num_bytes, static_cast<int32_t>(data->size()));
-
-  int32_t result = browser_result;
-  if (result == PP_OK && output_addr) {
-    thunk::EnterResourceCreationNoLock enter(pp_instance);
-    if (enter.succeeded()) {
-      *output_addr = enter.functions()->CreateNetAddressFromNetAddressPrivate(
-          pp_instance, addr);
-    } else {
-      result = PP_ERROR_FAILED;
-    }
-  }
-
-  if (result == PP_OK && !data->empty())
-    memcpy(output_buffer, data->c_str(), data->size());
-
-  return result == PP_OK ? static_cast<int32_t>(data->size()) : result;
-}
-
-}  // namespace
-
-UDPSocketFilter::UDPSocketFilter() {
-}
-
-UDPSocketFilter::~UDPSocketFilter() {
-}
-
-void UDPSocketFilter::AddUDPResource(
-    PP_Instance instance,
-    PP_Resource resource,
-    bool private_api,
-    base::RepeatingClosure slot_available_callback) {
-  ProxyLock::AssertAcquired();
-  base::AutoLock acquire(lock_);
-  DCHECK(queues_.find(resource) == queues_.end());
-  queues_[resource] = std::make_unique<RecvQueue>(
-      instance, private_api, std::move(slot_available_callback));
-}
-
-void UDPSocketFilter::RemoveUDPResource(PP_Resource resource) {
-  ProxyLock::AssertAcquired();
-  base::AutoLock acquire(lock_);
-  auto erase_count = queues_.erase(resource);
-  DCHECK_GT(erase_count, 0u);
-}
-
-int32_t UDPSocketFilter::RequestData(
-    PP_Resource resource,
-    int32_t num_bytes,
-    char* buffer,
-    PP_Resource* addr,
-    const scoped_refptr<TrackedCallback>& callback) {
-  ProxyLock::AssertAcquired();
-  base::AutoLock acquire(lock_);
-  auto it = queues_.find(resource);
-  if (it == queues_.end()) {
-    NOTREACHED();
-  }
-  return it->second->RequestData(num_bytes, buffer, addr, callback);
-}
-
-bool UDPSocketFilter::OnResourceReplyReceived(
-    const ResourceMessageReplyParams& params,
-    const IPC::Message& nested_msg) {
-  bool handled = true;
-  PPAPI_BEGIN_MESSAGE_MAP(UDPSocketFilter, nested_msg)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(PpapiPluginMsg_UDPSocket_PushRecvResult,
-                                        OnPluginMsgPushRecvResult)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(handled = false)
-  PPAPI_END_MESSAGE_MAP()
-  return handled;
-}
-
-PP_NetAddress_Private UDPSocketFilter::GetLastAddrPrivate(
-    PP_Resource resource) const {
-  base::AutoLock acquire(lock_);
-  auto it = queues_.find(resource);
-  return it->second->GetLastAddrPrivate();
-}
-
-void UDPSocketFilter::OnPluginMsgPushRecvResult(
-    const ResourceMessageReplyParams& params,
-    int32_t result,
-    const std::string& data,
-    const PP_NetAddress_Private& addr) {
-  DCHECK(PluginGlobals::Get()->ipc_task_runner()->RunsTasksInCurrentSequence());
-  base::AutoLock acquire(lock_);
-  auto it = queues_.find(params.pp_resource());
-  // The RecvQueue might be gone if there were messages in-flight for a
-  // resource that has been destroyed.
-  if (it != queues_.end()) {
-    // TODO(yzshen): Support passing in a non-const string ref, so that we can
-    // eliminate one copy when storing the data in the buffer.
-    it->second->DataReceivedOnIOThread(result, data, addr);
-  }
-}
-
-UDPSocketFilter::RecvQueue::RecvQueue(
-    PP_Instance pp_instance,
-    bool private_api,
-    base::RepeatingClosure slot_available_callback)
-    : pp_instance_(pp_instance),
-      read_buffer_(nullptr),
-      bytes_to_read_(0),
-      recvfrom_addr_resource_(nullptr),
-      last_recvfrom_addr_(),
-      private_api_(private_api),
-      slot_available_callback_(std::move(slot_available_callback)) {}
-
-UDPSocketFilter::RecvQueue::~RecvQueue() {
-  if (TrackedCallback::IsPending(recvfrom_callback_))
-    recvfrom_callback_->PostAbort();
-}
-
-void UDPSocketFilter::RecvQueue::DataReceivedOnIOThread(
-    int32_t result,
-    const std::string& data,
-    const PP_NetAddress_Private& addr) {
-  DCHECK(PluginGlobals::Get()->ipc_task_runner()->RunsTasksInCurrentSequence());
-  DCHECK_LT(recv_buffers_.size(),
-            static_cast<size_t>(
-                UDPSocketResourceConstants::kPluginReceiveBufferSlots));
-
-  if (!TrackedCallback::IsPending(recvfrom_callback_) || !read_buffer_) {
-    recv_buffers_.push(RecvBuffer());
-    RecvBuffer& back = recv_buffers_.back();
-    back.result = result;
-    back.data = data;
-    back.addr = addr;
-    return;
-  }
-  DCHECK_EQ(recv_buffers_.size(), 0u);
-
-  if (bytes_to_read_ < static_cast<int32_t>(data.size())) {
-    recv_buffers_.push(RecvBuffer());
-    RecvBuffer& back = recv_buffers_.back();
-    back.result = result;
-    back.data = data;
-    back.addr = addr;
-
-    result = PP_ERROR_MESSAGE_TOO_BIG;
-  } else {
-    // Instead of calling SetRecvFromOutput directly, post it as a completion
-    // task, so that:
-    // 1) It can run with the ProxyLock (we can't lock it on the IO thread.)
-    // 2) So that we only write to the output params in the case of success.
-    //    (Since the callback will complete on another thread, it's possible
-    //     that the resource will be deleted and abort the callback before it
-    //     is actually run.)
-    std::unique_ptr<std::string> data_to_pass(new std::string(data));
-    recvfrom_callback_->set_completion_task(base::BindOnce(
-        &SetRecvFromOutput, pp_instance_, std::move(data_to_pass), addr,
-        base::Unretained(read_buffer_), bytes_to_read_,
-        base::Unretained(recvfrom_addr_resource_)));
-    last_recvfrom_addr_ = addr;
-    PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask(
-        FROM_HERE, RunWhileLocked(base::BindOnce(slot_available_callback_)));
-  }
-
-  read_buffer_ = NULL;
-  bytes_to_read_ = -1;
-  recvfrom_addr_resource_ = NULL;
-
-  recvfrom_callback_->Run(
-      ConvertNetworkAPIErrorForCompatibility(result, private_api_));
-}
-
-int32_t UDPSocketFilter::RecvQueue::RequestData(
-    int32_t num_bytes,
-    char* buffer_out,
-    PP_Resource* addr_out,
-    const scoped_refptr<TrackedCallback>& callback) {
-  ProxyLock::AssertAcquired();
-  if (!buffer_out || num_bytes <= 0)
-    return PP_ERROR_BADARGUMENT;
-  if (TrackedCallback::IsPending(recvfrom_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  if (recv_buffers_.empty()) {
-    read_buffer_ = buffer_out;
-    bytes_to_read_ = std::min(
-        num_bytes,
-        static_cast<int32_t>(UDPSocketResourceConstants::kMaxReadSize));
-    recvfrom_addr_resource_ = addr_out;
-    recvfrom_callback_ = callback;
-    return PP_OK_COMPLETIONPENDING;
-  } else {
-    RecvBuffer& front = recv_buffers_.front();
-
-    if (static_cast<size_t>(num_bytes) < front.data.size())
-      return PP_ERROR_MESSAGE_TOO_BIG;
-
-    std::unique_ptr<std::string> data_to_pass(new std::string);
-    data_to_pass->swap(front.data);
-    int32_t result =
-        SetRecvFromOutput(pp_instance_, std::move(data_to_pass), front.addr,
-                          buffer_out, num_bytes, addr_out, front.result);
-    last_recvfrom_addr_ = front.addr;
-    recv_buffers_.pop();
-    slot_available_callback_.Run();
-
-    return result;
-  }
-}
-
-PP_NetAddress_Private UDPSocketFilter::RecvQueue::GetLastAddrPrivate() const {
-  CHECK(private_api_);
-  return last_recvfrom_addr_;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/udp_socket_filter.h b/proxy/udp_socket_filter.h
deleted file mode 100644
index f2d1b9b..0000000
--- a/proxy/udp_socket_filter.h
+++ /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.
-
-#ifndef PPAPI_PROXY_UDP_SOCKET_FILTER_H_
-#define PPAPI_PROXY_UDP_SOCKET_FILTER_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <memory>
-#include <string>
-#include <unordered_map>
-
-#include "base/compiler_specific.h"
-#include "base/containers/queue.h"
-#include "base/memory/ref_counted.h"
-#include "ppapi/c/ppb_udp_socket.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/proxy/resource_message_filter.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-
-namespace ppapi {
-namespace proxy {
-
-class ResourceMessageReplyParams;
-
-// Handles receiving UDP packets on the IO thread so that when the recipient is
-// not on the main thread, we can post directly to the appropriate thread.
-class PPAPI_PROXY_EXPORT UDPSocketFilter : public ResourceMessageFilter {
- public:
-  UDPSocketFilter();
-
-  // All these are called on whatever thread the plugin wants, while already
-  // holding the ppapi::ProxyLock. The "slot_available_callback" will be invoked
-  // whenever we detect that a slot is now available, so that the client can
-  // take appropriate action (like informing the host we can receive another
-  // buffer). It will always be run with the ProxyLock.
-  void AddUDPResource(PP_Instance instance,
-                      PP_Resource resource,
-                      bool private_api,
-                      base::RepeatingClosure slot_available_callback);
-  void RemoveUDPResource(PP_Resource resource);
-  // Note, the slot_available_callback that was provided to AddUDPResource may
-  // be invoked during the RequestData call; this gives the client the
-  // opportunity to post a message to the host immediately.
-  int32_t RequestData(PP_Resource resource,
-                      int32_t num_bytes,
-                      char* buffer,
-                      PP_Resource* addr,
-                      const scoped_refptr<TrackedCallback>& callback);
-
-  // ResourceMessageFilter implementation.
-  bool OnResourceReplyReceived(const ResourceMessageReplyParams& reply_params,
-                               const IPC::Message& nested_msg) override;
-
-  PP_NetAddress_Private GetLastAddrPrivate(PP_Resource resource) const;
-
-  // The maximum number of bytes that each
-  // PpapiPluginMsg_PPBUDPSocket_PushRecvResult message is allowed to carry.
-  static const int32_t kMaxReadSize;
-  // The maximum number that we allow for setting
-  // PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE. This number is only for input
-  // argument sanity check, it doesn't mean the browser guarantees to support
-  // such a buffer size.
-  static const int32_t kMaxReceiveBufferSize;
-  // The maximum number of received packets that we allow instances of this
-  // class to buffer.
-  static const size_t kPluginReceiveBufferSlots;
-
- private:
-  // The queue of received data intended for 1 UDPSocketResourceBase. All usage
-  // must be protected by UDPSocketFilter::lock_.
-  class RecvQueue {
-   public:
-    explicit RecvQueue(PP_Instance instance,
-                       bool private_api,
-                       base::RepeatingClosure slot_available_callback);
-    ~RecvQueue();
-
-    // Called on the IO thread when data is received. It will post |callback_|
-    // if it's valid, otherwise push the data on buffers_.
-    // The ppapi::ProxyLock should *not* be held, and won't be acquired.
-    void DataReceivedOnIOThread(int32_t result,
-                                const std::string& d,
-                                const PP_NetAddress_Private& addr);
-    // Called on whatever thread the plugin chooses. Must already hold the
-    // PpapiProxyLock. Returns a code from pp_errors.h, or a positive number.
-    //
-    // Note, the out-params are owned by the plugin, and if the request can't be
-    // handled immediately, they will be written later just before the callback
-    // is invoked.
-    int32_t RequestData(int32_t num_bytes,
-                        char* buffer_out,
-                        PP_Resource* addr_out,
-                        const scoped_refptr<TrackedCallback>& callback);
-    PP_NetAddress_Private GetLastAddrPrivate() const;
-
-   private:
-    struct RecvBuffer {
-      int32_t result;
-      std::string data;
-      PP_NetAddress_Private addr;
-    };
-    base::queue<RecvBuffer> recv_buffers_;
-
-    PP_Instance pp_instance_;
-    scoped_refptr<ppapi::TrackedCallback> recvfrom_callback_;
-    char* read_buffer_;
-    int32_t bytes_to_read_;
-    PP_Resource* recvfrom_addr_resource_;
-    PP_NetAddress_Private last_recvfrom_addr_;
-    bool private_api_;
-    // Callback to invoke when a UDP receive slot is available.
-    base::RepeatingClosure slot_available_callback_;
-  };
-
- private:
-  // This is deleted via RefCountedThreadSafe (see ResourceMessageFilter).
-  ~UDPSocketFilter();
-  void OnPluginMsgPushRecvResult(const ResourceMessageReplyParams& params,
-                                 int32_t result,
-                                 const std::string& data,
-                                 const PP_NetAddress_Private& addr);
-
-  // lock_ protects queues_.
-  //
-  // Lock order (if >1 acquired):
-  // 1 ppapi::ProxyLock
-  // \-->2 Filter lock_
-  mutable base::Lock lock_;
-  std::unordered_map<PP_Resource, std::unique_ptr<RecvQueue>> queues_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_UDP_SOCKET_FILTER_H_
diff --git a/proxy/udp_socket_private_resource.cc b/proxy/udp_socket_private_resource.cc
deleted file mode 100644
index 548449f..0000000
--- a/proxy/udp_socket_private_resource.cc
+++ /dev/null
@@ -1,84 +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/proxy/udp_socket_private_resource.h"
-
-#include "base/notreached.h"
-#include "ppapi/c/ppb_udp_socket.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-
-namespace ppapi {
-namespace proxy {
-
-UDPSocketPrivateResource::UDPSocketPrivateResource(Connection connection,
-                                                   PP_Instance instance)
-    : UDPSocketResourceBase(connection, instance, true) {
-}
-
-UDPSocketPrivateResource::~UDPSocketPrivateResource() {
-}
-
-thunk::PPB_UDPSocket_Private_API*
-UDPSocketPrivateResource::AsPPB_UDPSocket_Private_API() {
-  return this;
-}
-
-int32_t UDPSocketPrivateResource::SetSocketFeature(
-    PP_UDPSocketFeature_Private name,
-    PP_Var value) {
-  PP_UDPSocket_Option public_name = PP_UDPSOCKET_OPTION_ADDRESS_REUSE;
-  switch (name) {
-    case PP_UDPSOCKETFEATURE_PRIVATE_ADDRESS_REUSE:
-      // |public_name| has been initialized above.
-      break;
-    case PP_UDPSOCKETFEATURE_PRIVATE_BROADCAST:
-      public_name = PP_UDPSOCKET_OPTION_BROADCAST;
-      break;
-    case PP_UDPSOCKETFEATURE_PRIVATE_COUNT:
-      return PP_ERROR_BADARGUMENT;
-    default:
-      NOTREACHED();
-  }
-  int32_t result = SetOptionImpl(public_name, value,
-                                 true,  // Check bind() state.
-                                 nullptr);
-  return result == PP_OK_COMPLETIONPENDING ? PP_OK : result;
-}
-
-int32_t UDPSocketPrivateResource::Bind(
-    const PP_NetAddress_Private* addr,
-    scoped_refptr<TrackedCallback> callback) {
-  return BindImpl(addr, callback);
-}
-
-PP_Bool UDPSocketPrivateResource::GetBoundAddress(PP_NetAddress_Private* addr) {
-  return GetBoundAddressImpl(addr);
-}
-
-int32_t UDPSocketPrivateResource::RecvFrom(
-    char* buffer,
-    int32_t num_bytes,
-    scoped_refptr<TrackedCallback> callback) {
-  return RecvFromImpl(buffer, num_bytes, nullptr, callback);
-}
-
-PP_Bool UDPSocketPrivateResource::GetRecvFromAddress(
-    PP_NetAddress_Private* addr) {
-  return GetRecvFromAddressImpl(addr);
-}
-
-int32_t UDPSocketPrivateResource::SendTo(
-    const char* buffer,
-    int32_t num_bytes,
-    const PP_NetAddress_Private* addr,
-    scoped_refptr<TrackedCallback> callback) {
-  return SendToImpl(buffer, num_bytes, addr, callback);
-}
-
-void UDPSocketPrivateResource::Close() {
-  CloseImpl();
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/udp_socket_private_resource.h b/proxy/udp_socket_private_resource.h
deleted file mode 100644
index 8519283..0000000
--- a/proxy/udp_socket_private_resource.h
+++ /dev/null
@@ -1,52 +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_PROXY_UDP_SOCKET_PRIVATE_RESOURCE_H_
-#define PPAPI_PROXY_UDP_SOCKET_PRIVATE_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/proxy/udp_socket_resource_base.h"
-#include "ppapi/thunk/ppb_udp_socket_private_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT UDPSocketPrivateResource
-    : public UDPSocketResourceBase,
-      public thunk::PPB_UDPSocket_Private_API {
- public:
-  UDPSocketPrivateResource(Connection connection, PP_Instance instance);
-
-  UDPSocketPrivateResource(const UDPSocketPrivateResource&) = delete;
-  UDPSocketPrivateResource& operator=(const UDPSocketPrivateResource&) = delete;
-
-  ~UDPSocketPrivateResource() override;
-
-  // PluginResource implementation.
-  thunk::PPB_UDPSocket_Private_API* AsPPB_UDPSocket_Private_API() override;
-
-  // PPB_UDPSocket_Private_API implementation.
-  int32_t SetSocketFeature(PP_UDPSocketFeature_Private name,
-                           PP_Var value) override;
-  int32_t Bind(const PP_NetAddress_Private* addr,
-               scoped_refptr<TrackedCallback> callback) override;
-  PP_Bool GetBoundAddress(PP_NetAddress_Private* addr) override;
-  int32_t RecvFrom(char* buffer,
-                   int32_t num_bytes,
-                   scoped_refptr<TrackedCallback> callback) override;
-  PP_Bool GetRecvFromAddress(PP_NetAddress_Private* addr) override;
-  int32_t SendTo(const char* buffer,
-                 int32_t num_bytes,
-                 const PP_NetAddress_Private* addr,
-                 scoped_refptr<TrackedCallback> callback) override;
-  void Close() override;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_UDP_SOCKET_PRIVATE_RESOURCE_H_
diff --git a/proxy/udp_socket_resource.cc b/proxy/udp_socket_resource.cc
deleted file mode 100644
index 3c2d2bf..0000000
--- a/proxy/udp_socket_resource.cc
+++ /dev/null
@@ -1,134 +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.
-
-#include "ppapi/proxy/udp_socket_resource.h"
-
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_net_address_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-typedef thunk::EnterResourceNoLock<thunk::PPB_NetAddress_API>
-    EnterNetAddressNoLock;
-
-}  // namespace
-
-UDPSocketResource::UDPSocketResource(Connection connection,
-                                     PP_Instance instance)
-    : UDPSocketResourceBase(connection, instance, false) {
-}
-
-UDPSocketResource::~UDPSocketResource() {
-}
-
-thunk::PPB_UDPSocket_API* UDPSocketResource::AsPPB_UDPSocket_API() {
-  return this;
-}
-
-int32_t UDPSocketResource::Bind(PP_Resource addr,
-                                scoped_refptr<TrackedCallback> callback) {
-  EnterNetAddressNoLock enter(addr, true);
-  if (enter.failed())
-    return PP_ERROR_BADARGUMENT;
-
-  return BindImpl(&enter.object()->GetNetAddressPrivate(), callback);
-}
-
-PP_Resource UDPSocketResource::GetBoundAddress() {
-  PP_NetAddress_Private addr_private;
-  if (!GetBoundAddressImpl(&addr_private))
-    return 0;
-
-  thunk::EnterResourceCreationNoLock enter(pp_instance());
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateNetAddressFromNetAddressPrivate(
-      pp_instance(), addr_private);
-}
-
-int32_t UDPSocketResource::RecvFrom(char* buffer,
-                                    int32_t num_bytes,
-                                    PP_Resource* addr,
-                                    scoped_refptr<TrackedCallback> callback) {
-  return RecvFromImpl(buffer, num_bytes, addr, callback);
-}
-
-int32_t UDPSocketResource::SendTo(const char* buffer,
-                                  int32_t num_bytes,
-                                  PP_Resource addr,
-                                  scoped_refptr<TrackedCallback> callback) {
-  EnterNetAddressNoLock enter(addr, true);
-  if (enter.failed())
-    return PP_ERROR_BADARGUMENT;
-
-  return SendToImpl(buffer, num_bytes, &enter.object()->GetNetAddressPrivate(),
-                    callback);
-}
-
-void UDPSocketResource::Close() {
-  CloseImpl();
-}
-
-int32_t UDPSocketResource::SetOption1_0(
-    PP_UDPSocket_Option name,
-    const PP_Var& value,
-    scoped_refptr<TrackedCallback> callback) {
-  if (name > PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE)
-    return PP_ERROR_BADARGUMENT;
-
-  return SetOptionImpl(name, value,
-                       true,  // Check bind() state.
-                       callback);
-}
-
-int32_t UDPSocketResource::SetOption1_1(
-    PP_UDPSocket_Option name,
-    const PP_Var& value,
-    scoped_refptr<TrackedCallback> callback) {
-  if (name > PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE)
-    return PP_ERROR_BADARGUMENT;
-
-  return SetOptionImpl(name, value,
-                       false,  // Check bind() state.
-                       callback);
-}
-
-int32_t UDPSocketResource::SetOption(
-    PP_UDPSocket_Option name,
-    const PP_Var& value,
-    scoped_refptr<TrackedCallback> callback) {
-  return SetOptionImpl(name, value,
-                       false,  // Check bind() state.
-                       callback);
-}
-
-int32_t UDPSocketResource::JoinGroup(
-    PP_Resource group,
-    scoped_refptr<TrackedCallback> callback) {
-  EnterNetAddressNoLock enter(group, true);
-  if (enter.failed())
-    return PP_ERROR_BADRESOURCE;
-
-  return JoinGroupImpl(&enter.object()->GetNetAddressPrivate(),
-                       callback);
-}
-
-int32_t UDPSocketResource::LeaveGroup(
-    PP_Resource group,
-    scoped_refptr<TrackedCallback> callback) {
-  EnterNetAddressNoLock enter(group, true);
-  if (enter.failed())
-    return PP_ERROR_BADRESOURCE;
-
-  return LeaveGroupImpl(&enter.object()->GetNetAddressPrivate(),
-                        callback);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/udp_socket_resource.h b/proxy/udp_socket_resource.h
deleted file mode 100644
index fc9c1d6..0000000
--- a/proxy/udp_socket_resource.h
+++ /dev/null
@@ -1,64 +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.
-
-#ifndef PPAPI_PROXY_UDP_SOCKET_RESOURCE_H_
-#define PPAPI_PROXY_UDP_SOCKET_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/proxy/udp_socket_resource_base.h"
-#include "ppapi/thunk/ppb_udp_socket_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT UDPSocketResource : public UDPSocketResourceBase,
-                                             public thunk::PPB_UDPSocket_API {
- public:
-  UDPSocketResource(Connection connection, PP_Instance instance);
-
-  UDPSocketResource(const UDPSocketResource&) = delete;
-  UDPSocketResource& operator=(const UDPSocketResource&) = delete;
-
-  ~UDPSocketResource() override;
-
-  // PluginResource implementation.
-  thunk::PPB_UDPSocket_API* AsPPB_UDPSocket_API() override;
-
-  // thunk::PPB_UDPSocket_API implementation.
-  int32_t Bind(PP_Resource addr,
-               scoped_refptr<TrackedCallback> callback) override;
-  PP_Resource GetBoundAddress() override;
-  int32_t RecvFrom(char* buffer,
-                   int32_t num_bytes,
-                   PP_Resource* addr,
-                   scoped_refptr<TrackedCallback> callback) override;
-  int32_t SendTo(const char* buffer,
-                 int32_t num_bytes,
-                 PP_Resource addr,
-                 scoped_refptr<TrackedCallback> callback) override;
-  void Close() override;
-  int32_t SetOption1_0(
-      PP_UDPSocket_Option name,
-      const PP_Var& value,
-      scoped_refptr<TrackedCallback> callback) override;
-  int32_t SetOption1_1(
-      PP_UDPSocket_Option name,
-      const PP_Var& value,
-      scoped_refptr<TrackedCallback> callback) override;
-  int32_t SetOption(PP_UDPSocket_Option name,
-                    const PP_Var& value,
-                    scoped_refptr<TrackedCallback> callback) override;
-  int32_t JoinGroup(PP_Resource group,
-                    scoped_refptr<TrackedCallback> callback) override;
-  int32_t LeaveGroup(PP_Resource group,
-                     scoped_refptr<TrackedCallback> callback) override;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_UDP_SOCKET_RESOURCE_H_
diff --git a/proxy/udp_socket_resource_base.cc b/proxy/udp_socket_resource_base.cc
deleted file mode 100644
index 1ee6cdb..0000000
--- a/proxy/udp_socket_resource_base.cc
+++ /dev/null
@@ -1,317 +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.
-
-#include "ppapi/proxy/udp_socket_resource_base.h"
-
-#include <cstring>
-
-#include "base/check.h"
-#include "base/functional/bind.h"
-#include "base/notreached.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/error_conversion.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/udp_socket_resource_constants.h"
-#include "ppapi/shared_impl/socket_option_data.h"
-#include "ppapi/thunk/enter.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-void RunCallback(scoped_refptr<TrackedCallback> callback,
-                 int32_t pp_result,
-                 bool private_api) {
-  callback->Run(ConvertNetworkAPIErrorForCompatibility(pp_result, private_api));
-}
-
-void PostAbortIfNecessary(const scoped_refptr<TrackedCallback>& callback) {
-  if (TrackedCallback::IsPending(callback))
-    callback->PostAbort();
-}
-
-}  // namespace
-
-UDPSocketResourceBase::UDPSocketResourceBase(Connection connection,
-                                             PP_Instance instance,
-                                             bool private_api)
-    : PluginResource(connection, instance),
-      private_api_(private_api),
-      bind_called_(false),
-      bound_(false),
-      closed_(false),
-      recv_filter_(PluginGlobals::Get()->udp_socket_filter()),
-      bound_addr_() {
-  recv_filter_->AddUDPResource(
-      pp_instance(), pp_resource(), private_api,
-      base::BindRepeating(&UDPSocketResourceBase::SlotBecameAvailable,
-                          pp_resource()));
-  if (private_api)
-    SendCreate(BROWSER, PpapiHostMsg_UDPSocket_CreatePrivate());
-  else
-    SendCreate(BROWSER, PpapiHostMsg_UDPSocket_Create());
-}
-
-UDPSocketResourceBase::~UDPSocketResourceBase() {
-  CloseImpl();
-}
-
-int32_t UDPSocketResourceBase::SetOptionImpl(
-    PP_UDPSocket_Option name,
-    const PP_Var& value,
-    bool check_bind_state,
-    scoped_refptr<TrackedCallback> callback) {
-  if (closed_)
-    return PP_ERROR_FAILED;
-
-  // Check if socket is expected to be bound or not according to the option.
-  switch (name) {
-    case PP_UDPSOCKET_OPTION_ADDRESS_REUSE:
-    case PP_UDPSOCKET_OPTION_BROADCAST:
-    case PP_UDPSOCKET_OPTION_MULTICAST_LOOP:
-    case PP_UDPSOCKET_OPTION_MULTICAST_TTL: {
-      if ((check_bind_state || name == PP_UDPSOCKET_OPTION_ADDRESS_REUSE) &&
-          bind_called_) {
-        // SetOption should fail in this case in order to give predictable
-        // behavior while binding. Note that we use |bind_called_| rather
-        // than |bound_| since the latter is only set on successful completion
-        // of Bind().
-        return PP_ERROR_FAILED;
-      }
-      break;
-    }
-    case PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE:
-    case PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE: {
-      if (check_bind_state && !bound_)
-        return PP_ERROR_FAILED;
-      break;
-    }
-  }
-
-  SocketOptionData option_data;
-  switch (name) {
-    case PP_UDPSOCKET_OPTION_ADDRESS_REUSE:
-    case PP_UDPSOCKET_OPTION_BROADCAST:
-    case PP_UDPSOCKET_OPTION_MULTICAST_LOOP: {
-      if (value.type != PP_VARTYPE_BOOL)
-        return PP_ERROR_BADARGUMENT;
-      option_data.SetBool(PP_ToBool(value.value.as_bool));
-      break;
-    }
-    case PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE:
-    case PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE: {
-      if (value.type != PP_VARTYPE_INT32)
-        return PP_ERROR_BADARGUMENT;
-      option_data.SetInt32(value.value.as_int);
-      break;
-    }
-    case PP_UDPSOCKET_OPTION_MULTICAST_TTL: {
-      int32_t ival = value.value.as_int;
-      if (value.type != PP_VARTYPE_INT32 && (ival < 0 || ival > 255))
-        return PP_ERROR_BADARGUMENT;
-      option_data.SetInt32(ival);
-      break;
-    }
-    default: {
-      NOTREACHED();
-    }
-  }
-
-  Call<PpapiPluginMsg_UDPSocket_SetOptionReply>(
-      BROWSER, PpapiHostMsg_UDPSocket_SetOption(name, option_data),
-      base::BindOnce(&UDPSocketResourceBase::OnPluginMsgGeneralReply,
-                     base::Unretained(this), callback),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t UDPSocketResourceBase::BindImpl(
-    const PP_NetAddress_Private* addr,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!addr)
-    return PP_ERROR_BADARGUMENT;
-  if (bound_ || closed_)
-    return PP_ERROR_FAILED;
-  if (TrackedCallback::IsPending(bind_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  bind_called_ = true;
-  bind_callback_ = callback;
-
-  // Send the request, the browser will call us back via BindReply.
-  Call<PpapiPluginMsg_UDPSocket_BindReply>(
-      BROWSER, PpapiHostMsg_UDPSocket_Bind(*addr),
-      base::BindOnce(&UDPSocketResourceBase::OnPluginMsgBindReply,
-                     base::Unretained(this)),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-PP_Bool UDPSocketResourceBase::GetBoundAddressImpl(
-    PP_NetAddress_Private* addr) {
-  if (!addr || !bound_ || closed_)
-    return PP_FALSE;
-
-  *addr = bound_addr_;
-  return PP_TRUE;
-}
-
-int32_t UDPSocketResourceBase::RecvFromImpl(
-    char* buffer_out,
-    int32_t num_bytes,
-    PP_Resource* addr,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!bound_)
-    return PP_ERROR_FAILED;
-  return recv_filter_->RequestData(pp_resource(), num_bytes, buffer_out, addr,
-                                   callback);
-}
-
-PP_Bool UDPSocketResourceBase::GetRecvFromAddressImpl(
-    PP_NetAddress_Private* addr) {
-  if (!addr)
-    return PP_FALSE;
-  *addr = recv_filter_->GetLastAddrPrivate(pp_resource());
-  return PP_TRUE;
-}
-
-int32_t UDPSocketResourceBase::SendToImpl(
-    const char* buffer,
-    int32_t num_bytes,
-    const PP_NetAddress_Private* addr,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!buffer || num_bytes <= 0 || !addr)
-    return PP_ERROR_BADARGUMENT;
-  if (!bound_)
-    return PP_ERROR_FAILED;
-  if (sendto_callbacks_.size() ==
-      UDPSocketResourceConstants::kPluginSendBufferSlots)
-    return PP_ERROR_INPROGRESS;
-
-  if (num_bytes > UDPSocketResourceConstants::kMaxWriteSize)
-    num_bytes = UDPSocketResourceConstants::kMaxWriteSize;
-
-  sendto_callbacks_.push(callback);
-
-  // Send the request, the browser will call us back via SendToReply.
-  Call<PpapiPluginMsg_UDPSocket_SendToReply>(
-      BROWSER,
-      PpapiHostMsg_UDPSocket_SendTo(std::string(buffer, num_bytes), *addr),
-      base::BindOnce(&UDPSocketResourceBase::OnPluginMsgSendToReply,
-                     base::Unretained(this)),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void UDPSocketResourceBase::CloseImpl() {
-  if(closed_)
-    return;
-
-  bound_ = false;
-  closed_ = true;
-
-  Post(BROWSER, PpapiHostMsg_UDPSocket_Close());
-
-  PostAbortIfNecessary(bind_callback_);
-  while (!sendto_callbacks_.empty()) {
-    scoped_refptr<TrackedCallback> callback = sendto_callbacks_.front();
-    sendto_callbacks_.pop();
-    PostAbortIfNecessary(callback);
-  }
-  recv_filter_->RemoveUDPResource(pp_resource());
-}
-
-int32_t UDPSocketResourceBase::JoinGroupImpl(
-    const PP_NetAddress_Private *group,
-    scoped_refptr<TrackedCallback> callback) {
-  DCHECK(group);
-
-  Call<PpapiPluginMsg_UDPSocket_JoinGroupReply>(
-      BROWSER, PpapiHostMsg_UDPSocket_JoinGroup(*group),
-      base::BindOnce(&UDPSocketResourceBase::OnPluginMsgGeneralReply,
-                     base::Unretained(this), callback),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t UDPSocketResourceBase::LeaveGroupImpl(
-    const PP_NetAddress_Private *group,
-    scoped_refptr<TrackedCallback> callback) {
-  DCHECK(group);
-
-  Call<PpapiPluginMsg_UDPSocket_LeaveGroupReply>(
-      BROWSER, PpapiHostMsg_UDPSocket_LeaveGroup(*group),
-      base::BindOnce(&UDPSocketResourceBase::OnPluginMsgGeneralReply,
-                     base::Unretained(this), callback),
-      callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void UDPSocketResourceBase::OnPluginMsgGeneralReply(
-    scoped_refptr<TrackedCallback> callback,
-    const ResourceMessageReplyParams& params) {
-  if (TrackedCallback::IsPending(callback))
-    RunCallback(callback, params.result(), private_api_);
-}
-
-void UDPSocketResourceBase::OnPluginMsgBindReply(
-    const ResourceMessageReplyParams& params,
-    const PP_NetAddress_Private& bound_addr) {
-  // It is possible that |bind_callback_| is pending while |closed_| is true:
-  // CloseImpl() has been called, but a BindReply came earlier than the task to
-  // abort |bind_callback_|. We don't want to update |bound_| or |bound_addr_|
-  // in that case.
-  if (!TrackedCallback::IsPending(bind_callback_) || closed_)
-    return;
-
-  if (params.result() == PP_OK)
-    bound_ = true;
-  bound_addr_ = bound_addr;
-  RunCallback(bind_callback_, params.result(), private_api_);
-}
-
-void UDPSocketResourceBase::OnPluginMsgSendToReply(
-    const ResourceMessageReplyParams& params,
-    int32_t bytes_written) {
-  // This can be empty if the socket was closed, but there are still tasks
-  // to be posted for this resource.
-  if (sendto_callbacks_.empty())
-    return;
-
-  scoped_refptr<TrackedCallback> callback = sendto_callbacks_.front();
-  sendto_callbacks_.pop();
-  if (!TrackedCallback::IsPending(callback))
-    return;
-
-  if (params.result() == PP_OK)
-    RunCallback(callback, bytes_written, private_api_);
-  else
-    RunCallback(callback, params.result(), private_api_);
-}
-
-// static
-void UDPSocketResourceBase::SlotBecameAvailable(PP_Resource resource) {
-  ProxyLock::AssertAcquired();
-  UDPSocketResourceBase* thiz = nullptr;
-  // We have to try to enter all subclasses of UDPSocketResourceBase. Currently,
-  // these are the public and private resources.
-  thunk::EnterResourceNoLock<thunk::PPB_UDPSocket_API> enter(resource, false);
-  if (enter.succeeded()) {
-    thiz = static_cast<UDPSocketResourceBase*>(enter.resource());
-  } else {
-    thunk::EnterResourceNoLock<thunk::PPB_UDPSocket_Private_API> enter_private(
-        resource, false);
-    if (enter_private.succeeded())
-      thiz = static_cast<UDPSocketResourceBase*>(enter_private.resource());
-  }
-
-  if (thiz && !thiz->closed_)
-    thiz->Post(BROWSER, PpapiHostMsg_UDPSocket_RecvSlotAvailable());
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/udp_socket_resource_base.h b/proxy/udp_socket_resource_base.h
deleted file mode 100644
index cad606a..0000000
--- a/proxy/udp_socket_resource_base.h
+++ /dev/null
@@ -1,92 +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.
-
-#ifndef PPAPI_PROXY_UDP_SOCKET_RESOURCE_BASE_H_
-#define PPAPI_PROXY_UDP_SOCKET_RESOURCE_BASE_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "base/containers/queue.h"
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/ppb_udp_socket.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/proxy/udp_socket_filter.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-
-namespace ppapi {
-namespace proxy {
-
-class ResourceMessageReplyParams;
-
-class PPAPI_PROXY_EXPORT UDPSocketResourceBase : public PluginResource {
- protected:
-  UDPSocketResourceBase(Connection connection,
-                        PP_Instance instance,
-                        bool private_api);
-
-  UDPSocketResourceBase(const UDPSocketResourceBase&) = delete;
-  UDPSocketResourceBase& operator=(const UDPSocketResourceBase&) = delete;
-
-  virtual ~UDPSocketResourceBase();
-
-  int32_t SetOptionImpl(PP_UDPSocket_Option name,
-                        const PP_Var& value,
-                        bool check_bind_state,
-                        scoped_refptr<TrackedCallback> callback);
-  int32_t BindImpl(const PP_NetAddress_Private* addr,
-                   scoped_refptr<TrackedCallback> callback);
-  PP_Bool GetBoundAddressImpl(PP_NetAddress_Private* addr);
-  // |addr| could be NULL to indicate that an output value is not needed.
-  int32_t RecvFromImpl(char* buffer,
-                       int32_t num_bytes,
-                       PP_Resource* addr,
-                       scoped_refptr<TrackedCallback> callback);
-  PP_Bool GetRecvFromAddressImpl(PP_NetAddress_Private* addr);
-  int32_t SendToImpl(const char* buffer,
-                     int32_t num_bytes,
-                     const PP_NetAddress_Private* addr,
-                     scoped_refptr<TrackedCallback> callback);
-  void CloseImpl();
-  int32_t JoinGroupImpl(const PP_NetAddress_Private *group,
-                        scoped_refptr<TrackedCallback> callback);
-  int32_t LeaveGroupImpl(const PP_NetAddress_Private *group,
-                         scoped_refptr<TrackedCallback> callback);
-
- private:
-  // IPC message handlers.
-  void OnPluginMsgGeneralReply(scoped_refptr<TrackedCallback> callback,
-                               const ResourceMessageReplyParams& params);
-  void OnPluginMsgBindReply(const ResourceMessageReplyParams& params,
-                            const PP_NetAddress_Private& bound_addr);
-  void OnPluginMsgSendToReply(const ResourceMessageReplyParams& params,
-                              int32_t bytes_written);
-
-  static void SlotBecameAvailable(PP_Resource resource);
-  static void SlotBecameAvailableWithLock(PP_Resource resource);
-
-  bool private_api_;
-
-  // |bind_called_| is true after Bind() is called, while |bound_| is true
-  // after Bind() succeeds. Bind() is an asynchronous method, so the timing
-  // on which of these is set is slightly different.
-  bool bind_called_;
-  bool bound_;
-  bool closed_;
-
-  scoped_refptr<TrackedCallback> bind_callback_;
-  scoped_refptr<UDPSocketFilter> recv_filter_;
-
-  PP_NetAddress_Private bound_addr_;
-
-  base::queue<scoped_refptr<TrackedCallback>> sendto_callbacks_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_UDP_SOCKET_RESOURCE_BASE_H_
diff --git a/proxy/udp_socket_resource_constants.h b/proxy/udp_socket_resource_constants.h
deleted file mode 100644
index e32b0fd..0000000
--- a/proxy/udp_socket_resource_constants.h
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2017 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_PROXY_UDP_SOCKET_RESOURCE_CONSTANTS_H_
-#define PPAPI_PROXY_UDP_SOCKET_RESOURCE_CONSTANTS_H_
-
-#include <stdint.h>
-
-namespace ppapi {
-namespace proxy {
-
-class UDPSocketResourceConstants {
- public:
-  UDPSocketResourceConstants(const UDPSocketResourceConstants&) = delete;
-  UDPSocketResourceConstants& operator=(const UDPSocketResourceConstants&) =
-      delete;
-
-  // The maximum number of bytes that each
-  // PpapiPluginMsg_PPBUDPSocket_PushRecvResult message is allowed to carry.
-  enum { kMaxReadSize = 128 * 1024 };
-  // The maximum number of bytes that each PpapiHostMsg_PPBUDPSocket_SendTo
-  // message is allowed to carry.
-  enum { kMaxWriteSize = 128 * 1024 };
-
-  // The maximum number that we allow for setting
-  // PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE. This number is only for input
-  // argument sanity check, it doesn't mean the browser guarantees to support
-  // such a buffer size.
-  enum { kMaxSendBufferSize = 1024 * kMaxWriteSize };
-  // The maximum number that we allow for setting
-  // PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE. This number is only for input
-  // argument sanity check, it doesn't mean the browser guarantees to support
-  // such a buffer size.
-  enum { kMaxReceiveBufferSize = 1024 * kMaxReadSize };
-
-  // The maximum number of received packets that we allow instances of this
-  // class to buffer.
-  enum { kPluginReceiveBufferSlots = 32u };
-  // The maximum number of buffers that we allow instances of this class to be
-  // sending before we block the plugin.
-  enum { kPluginSendBufferSlots = 8u };
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_UDP_SOCKET_RESOURCE_CONSTANTS_H_
diff --git a/proxy/uma_private_resource.cc b/proxy/uma_private_resource.cc
deleted file mode 100644
index f36feea..0000000
--- a/proxy/uma_private_resource.cc
+++ /dev/null
@@ -1,109 +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/proxy/uma_private_resource.h"
-
-#include "base/functional/bind.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/resource_message_params.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace {
-
-std::string StringFromPPVar(const PP_Var& var) {
-  scoped_refptr<ppapi::StringVar> name_stringvar =
-      ppapi::StringVar::FromPPVar(var);
-  if (!name_stringvar.get())
-    return std::string();
-  return name_stringvar->value();
-}
-
-}
-
-namespace ppapi {
-namespace proxy {
-
-UMAPrivateResource::UMAPrivateResource(
-    Connection connection, PP_Instance instance)
-    : PluginResource(connection, instance) {
-  SendCreate(RENDERER, PpapiHostMsg_UMA_Create());
-}
-
-UMAPrivateResource::~UMAPrivateResource() {
-}
-
-thunk::PPB_UMA_Singleton_API* UMAPrivateResource::AsPPB_UMA_Singleton_API() {
-  return this;
-}
-
-void UMAPrivateResource::HistogramCustomTimes(
-    PP_Instance instance,
-    struct PP_Var name,
-    int64_t sample,
-    int64_t min,
-    int64_t max,
-    uint32_t bucket_count) {
-  if (name.type != PP_VARTYPE_STRING)
-    return;
-
-  Post(RENDERER, PpapiHostMsg_UMA_HistogramCustomTimes(StringFromPPVar(name),
-                                                       sample,
-                                                       min,
-                                                       max,
-                                                       bucket_count));
-}
-
-void UMAPrivateResource::HistogramCustomCounts(
-    PP_Instance instance,
-    struct PP_Var name,
-    int32_t sample,
-    int32_t min,
-    int32_t max,
-    uint32_t bucket_count) {
-  if (name.type != PP_VARTYPE_STRING)
-    return;
-
-  Post(RENDERER, PpapiHostMsg_UMA_HistogramCustomCounts(StringFromPPVar(name),
-                                                        sample,
-                                                        min,
-                                                        max,
-                                                        bucket_count));
-}
-
-void UMAPrivateResource::HistogramEnumeration(
-    PP_Instance instance,
-    struct PP_Var name,
-    int32_t sample,
-    int32_t boundary_value) {
-  if (name.type != PP_VARTYPE_STRING)
-    return;
-
-  Post(RENDERER, PpapiHostMsg_UMA_HistogramEnumeration(StringFromPPVar(name),
-                                                       sample,
-                                                       boundary_value));
-}
-
-int32_t UMAPrivateResource::IsCrashReportingEnabled(
-    PP_Instance instance,
-    scoped_refptr<TrackedCallback> callback) {
-  if (pending_callback_.get() != NULL)
-    return PP_ERROR_INPROGRESS;
-  pending_callback_ = callback;
-  Call<PpapiPluginMsg_UMA_IsCrashReportingEnabledReply>(
-      RENDERER, PpapiHostMsg_UMA_IsCrashReportingEnabled(),
-      base::BindOnce(&UMAPrivateResource::OnPluginMsgIsCrashReportingEnabled,
-                     this));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void UMAPrivateResource::OnPluginMsgIsCrashReportingEnabled(
-    const ResourceMessageReplyParams& params) {
-  if (TrackedCallback::IsPending(pending_callback_))
-    pending_callback_->Run(params.result());
-  pending_callback_.reset();
-}
-
-}  // namespace proxy
-}  // namespace ppapi
-
diff --git a/proxy/uma_private_resource.h b/proxy/uma_private_resource.h
deleted file mode 100644
index e05acd1..0000000
--- a/proxy/uma_private_resource.h
+++ /dev/null
@@ -1,66 +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_PROXY_UMA_PRIVATE_RESOURCE_H_
-#define PPAPI_PROXY_UMA_PRIVATE_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "ppapi/proxy/connection.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/thunk/ppb_uma_singleton_api.h"
-
-namespace ppapi {
-
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT UMAPrivateResource
-    : public PluginResource,
-      public thunk::PPB_UMA_Singleton_API {
- public:
-  UMAPrivateResource(Connection connection, PP_Instance instance);
-
-  UMAPrivateResource(const UMAPrivateResource&) = delete;
-  UMAPrivateResource& operator=(const UMAPrivateResource&) = delete;
-
-  ~UMAPrivateResource() override;
-
-  // Resource overrides.
-  thunk::PPB_UMA_Singleton_API* AsPPB_UMA_Singleton_API() override;
-
-  // PPB_UMA_Singleton_API implementation.
-  void HistogramCustomTimes(PP_Instance instance,
-                            struct PP_Var name,
-                            int64_t sample,
-                            int64_t min,
-                            int64_t max,
-                            uint32_t bucket_count) override;
-
-  void HistogramCustomCounts(PP_Instance instance,
-                             struct PP_Var name,
-                             int32_t sample,
-                             int32_t min,
-                             int32_t max,
-                             uint32_t bucket_count) override;
-
-  void HistogramEnumeration(PP_Instance instance,
-                            struct PP_Var name,
-                            int32_t sample,
-                            int32_t boundary_value) override;
-
-  int32_t IsCrashReportingEnabled(
-      PP_Instance instance,
-      scoped_refptr<TrackedCallback> callback) override;
-
- private:
-  void OnPluginMsgIsCrashReportingEnabled(
-      const ResourceMessageReplyParams& params);
-  scoped_refptr<TrackedCallback> pending_callback_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_UMA_PRIVATE_RESOURCE_H_
diff --git a/proxy/url_loader_resource.cc b/proxy/url_loader_resource.cc
deleted file mode 100644
index f97f5e6..0000000
--- a/proxy/url_loader_resource.cc
+++ /dev/null
@@ -1,371 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/proxy/url_loader_resource.h"
-
-#include <algorithm>
-
-#include "base/logging.h"
-#include "base/numerics/safe_conversions.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_url_loader.h"
-#include "ppapi/proxy/dispatch_reply_message.h"
-#include "ppapi/proxy/file_ref_resource.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/url_request_info_resource.h"
-#include "ppapi/proxy/url_response_info_resource.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/url_response_info_data.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/resource_creation_api.h"
-
-using ppapi::thunk::EnterResourceNoLock;
-using ppapi::thunk::PPB_URLLoader_API;
-using ppapi::thunk::PPB_URLRequestInfo_API;
-
-namespace ppapi {
-namespace proxy {
-
-URLLoaderResource::URLLoaderResource(Connection connection,
-                                     PP_Instance instance)
-    : PluginResource(connection, instance),
-      mode_(MODE_WAITING_TO_OPEN),
-      status_callback_(NULL),
-      bytes_sent_(0),
-      total_bytes_to_be_sent_(-1),
-      bytes_received_(0),
-      total_bytes_to_be_received_(-1),
-      user_buffer_(NULL),
-      user_buffer_size_(0),
-      done_status_(PP_OK_COMPLETIONPENDING),
-      is_streaming_to_file_(false),
-      is_asynchronous_load_suspended_(false) {
-  SendCreate(RENDERER, PpapiHostMsg_URLLoader_Create());
-}
-
-URLLoaderResource::URLLoaderResource(Connection connection,
-                                     PP_Instance instance,
-                                     int pending_main_document_loader_id,
-                                     const ppapi::URLResponseInfoData& data)
-    : PluginResource(connection, instance),
-      mode_(MODE_OPENING),
-      status_callback_(NULL),
-      bytes_sent_(0),
-      total_bytes_to_be_sent_(-1),
-      bytes_received_(0),
-      total_bytes_to_be_received_(-1),
-      user_buffer_(NULL),
-      user_buffer_size_(0),
-      done_status_(PP_OK_COMPLETIONPENDING),
-      is_streaming_to_file_(false),
-      is_asynchronous_load_suspended_(false) {
-  AttachToPendingHost(RENDERER, pending_main_document_loader_id);
-  SaveResponseInfo(data);
-}
-
-URLLoaderResource::~URLLoaderResource() {
-}
-
-PPB_URLLoader_API* URLLoaderResource::AsPPB_URLLoader_API() {
-  return this;
-}
-
-int32_t URLLoaderResource::Open(PP_Resource request_id,
-                                scoped_refptr<TrackedCallback> callback) {
-  EnterResourceNoLock<PPB_URLRequestInfo_API> enter_request(request_id, true);
-  if (enter_request.failed()) {
-    Log(PP_LOGLEVEL_ERROR,
-        "PPB_URLLoader.Open: invalid request resource ID. (Hint to C++ wrapper"
-        " users: use the ResourceRequest constructor that takes an instance or"
-        " else the request will be null.)");
-    return PP_ERROR_BADARGUMENT;
-  }
-  return Open(enter_request.object()->GetData(), 0, callback);
-}
-
-int32_t URLLoaderResource::Open(
-    const ::ppapi::URLRequestInfoData& request_data,
-    int requestor_pid,
-    scoped_refptr<TrackedCallback> callback) {
-  int32_t rv = ValidateCallback(callback);
-  if (rv != PP_OK)
-    return rv;
-  if (mode_ != MODE_WAITING_TO_OPEN)
-    return PP_ERROR_INPROGRESS;
-
-  request_data_ = request_data;
-
-  mode_ = MODE_OPENING;
-  is_asynchronous_load_suspended_ = false;
-
-  RegisterCallback(callback);
-  Post(RENDERER, PpapiHostMsg_URLLoader_Open(request_data));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t URLLoaderResource::FollowRedirect(
-    scoped_refptr<TrackedCallback> callback) {
-  int32_t rv = ValidateCallback(callback);
-  if (rv != PP_OK)
-    return rv;
-  if (mode_ != MODE_OPENING)
-    return PP_ERROR_INPROGRESS;
-
-  SetDefersLoading(false);  // Allow the redirect to continue.
-  RegisterCallback(callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-PP_Bool URLLoaderResource::GetUploadProgress(int64_t* bytes_sent,
-                                              int64_t* total_bytes_to_be_sent) {
-  if (!request_data_.record_upload_progress) {
-    *bytes_sent = 0;
-    *total_bytes_to_be_sent = 0;
-    return PP_FALSE;
-  }
-  *bytes_sent = bytes_sent_;
-  *total_bytes_to_be_sent = total_bytes_to_be_sent_;
-  return PP_TRUE;
-}
-
-PP_Bool URLLoaderResource::GetDownloadProgress(
-    int64_t* bytes_received,
-    int64_t* total_bytes_to_be_received) {
-  if (!request_data_.record_download_progress) {
-    *bytes_received = 0;
-    *total_bytes_to_be_received = 0;
-    return PP_FALSE;
-  }
-  *bytes_received = bytes_received_;
-  *total_bytes_to_be_received = total_bytes_to_be_received_;
-  return PP_TRUE;
-}
-
-PP_Resource URLLoaderResource::GetResponseInfo() {
-  if (response_info_.get())
-    return response_info_->GetReference();
-  return 0;
-}
-
-int32_t URLLoaderResource::ReadResponseBody(
-    void* buffer,
-    int32_t bytes_to_read,
-    scoped_refptr<TrackedCallback> callback) {
-  int32_t rv = ValidateCallback(callback);
-  if (rv != PP_OK)
-    return rv;
-  if (!response_info_.get())
-    return PP_ERROR_FAILED;
-
-  if (bytes_to_read <= 0 || !buffer)
-    return PP_ERROR_BADARGUMENT;
-
-  user_buffer_ = static_cast<char*>(buffer);
-  user_buffer_size_ = bytes_to_read;
-
-  if (!buffer_.empty())
-    return FillUserBuffer();
-
-  // We may have already reached EOF.
-  if (done_status_ != PP_OK_COMPLETIONPENDING) {
-    user_buffer_ = NULL;
-    user_buffer_size_ = 0;
-    return done_status_;
-  }
-
-  RegisterCallback(callback);
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t URLLoaderResource::FinishStreamingToFile(
-    scoped_refptr<TrackedCallback> callback) {
-  return PP_ERROR_NOTSUPPORTED;
-}
-
-void URLLoaderResource::Close() {
-  mode_ = MODE_LOAD_COMPLETE;
-  done_status_ = PP_ERROR_ABORTED;
-
-  Post(RENDERER, PpapiHostMsg_URLLoader_Close());
-
-  // Abort the callbacks, the plugin doesn't want to be called back after this.
-  if (TrackedCallback::IsPending(pending_callback_))
-    pending_callback_->PostAbort();
-}
-
-void URLLoaderResource::GrantUniversalAccess() {
-  Post(RENDERER, PpapiHostMsg_URLLoader_GrantUniversalAccess());
-}
-
-void URLLoaderResource::RegisterStatusCallback(
-    PP_URLLoaderTrusted_StatusCallback callback) {
-  status_callback_ = callback;
-}
-
-void URLLoaderResource::OnReplyReceived(
-    const ResourceMessageReplyParams& params,
-    const IPC::Message& msg) {
-  PPAPI_BEGIN_MESSAGE_MAP(URLLoaderResource, msg)
-    case PpapiPluginMsg_URLLoader_SendData::ID:
-      // Special message, manually dispatch since we don't want the automatic
-      // unpickling.
-      OnPluginMsgSendData(params, msg);
-      break;
-
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_URLLoader_ReceivedResponse,
-        OnPluginMsgReceivedResponse)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_URLLoader_FinishedLoading,
-        OnPluginMsgFinishedLoading)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_URLLoader_UpdateProgress,
-        OnPluginMsgUpdateProgress)
-  PPAPI_END_MESSAGE_MAP()
-}
-
-void URLLoaderResource::OnPluginMsgReceivedResponse(
-    const ResourceMessageReplyParams& params,
-    const URLResponseInfoData& data) {
-  SaveResponseInfo(data);
-  RunCallback(PP_OK);
-}
-
-void URLLoaderResource::OnPluginMsgSendData(
-    const ResourceMessageReplyParams& params,
-    const IPC::Message& message) {
-  base::PickleIterator iter(message);
-  const char* data;
-  size_t data_length;
-  if (!iter.ReadData(&data, &data_length)) {
-    NOTREACHED() << "Expecting data";
-  }
-
-  mode_ = MODE_STREAMING_DATA;
-  buffer_.insert(buffer_.end(), data, data + data_length);
-
-  // To avoid letting the network stack download an entire stream all at once,
-  // defer loading when we have enough buffer.
-  // Check for this before we run the callback, even though that could move
-  // data out of the buffer. Doing anything after the callback is unsafe.
-  DCHECK(request_data_.prefetch_buffer_lower_threshold <
-         request_data_.prefetch_buffer_upper_threshold);
-  if (!is_streaming_to_file_ &&
-      !is_asynchronous_load_suspended_ &&
-      (buffer_.size() >= static_cast<size_t>(
-          request_data_.prefetch_buffer_upper_threshold))) {
-    DVLOG(1) << "Suspending async load - buffer size: " << buffer_.size();
-    SetDefersLoading(true);
-  }
-
-  if (user_buffer_)
-    RunCallback(FillUserBuffer());
-  else
-    DCHECK(!TrackedCallback::IsPending(pending_callback_));
-}
-
-void URLLoaderResource::OnPluginMsgFinishedLoading(
-    const ResourceMessageReplyParams& params,
-    int32_t result) {
-  mode_ = MODE_LOAD_COMPLETE;
-  done_status_ = result;
-  user_buffer_ = NULL;
-  user_buffer_size_ = 0;
-
-  // If the client hasn't called any function that takes a callback since
-  // the initial call to Open, or called ReadResponseBody and got a
-  // synchronous return, then the callback will be NULL.
-  if (TrackedCallback::IsPending(pending_callback_))
-    RunCallback(done_status_);
-}
-
-void URLLoaderResource::OnPluginMsgUpdateProgress(
-    const ResourceMessageReplyParams& params,
-    int64_t bytes_sent,
-    int64_t total_bytes_to_be_sent,
-    int64_t bytes_received,
-    int64_t total_bytes_to_be_received) {
-  bytes_sent_ = bytes_sent;
-  total_bytes_to_be_sent_ = total_bytes_to_be_sent;
-  bytes_received_ = bytes_received;
-  total_bytes_to_be_received_ = total_bytes_to_be_received;
-
-  if (status_callback_) {
-    status_callback_(pp_instance(), pp_resource(),
-                     bytes_sent_, total_bytes_to_be_sent_,
-                     bytes_received_, total_bytes_to_be_received_);
-  }
-}
-
-void URLLoaderResource::SetDefersLoading(bool defers_loading) {
-  is_asynchronous_load_suspended_ = defers_loading;
-  Post(RENDERER, PpapiHostMsg_URLLoader_SetDeferLoading(defers_loading));
-}
-
-int32_t URLLoaderResource::ValidateCallback(
-    scoped_refptr<TrackedCallback> callback) {
-  DCHECK(callback.get());
-  if (TrackedCallback::IsPending(pending_callback_))
-    return PP_ERROR_INPROGRESS;
-  return PP_OK;
-}
-
-void URLLoaderResource::RegisterCallback(
-    scoped_refptr<TrackedCallback> callback) {
-  DCHECK(!TrackedCallback::IsPending(pending_callback_));
-  pending_callback_ = callback;
-}
-
-void URLLoaderResource::RunCallback(int32_t result) {
-  // This may be null when this is a main document loader.
-  if (!pending_callback_.get())
-    return;
-
-  // If |user_buffer_| was set as part of registering a callback, the paths
-  // which trigger that callack must have cleared it since the callback is now
-  // free to delete it.
-  DCHECK(!user_buffer_);
-
-  // As a second line of defense, clear the |user_buffer_| in case the
-  // callbacks get called in an unexpected order.
-  user_buffer_ = NULL;
-  user_buffer_size_ = 0;
-  pending_callback_->Run(result);
-}
-
-void URLLoaderResource::SaveResponseInfo(const URLResponseInfoData& data) {
-  response_info_ =
-      new URLResponseInfoResource(connection(), pp_instance(), data);
-}
-
-int32_t URLLoaderResource::FillUserBuffer() {
-  DCHECK(user_buffer_);
-  DCHECK(user_buffer_size_);
-
-  size_t bytes_to_copy = std::min(buffer_.size(), user_buffer_size_);
-  std::copy(buffer_.begin(), buffer_.begin() + bytes_to_copy, user_buffer_);
-  buffer_.erase(buffer_.begin(), buffer_.begin() + bytes_to_copy);
-
-  // If the buffer is getting too empty, resume asynchronous loading.
-  if (is_asynchronous_load_suspended_ &&
-      buffer_.size() <= static_cast<size_t>(
-          request_data_.prefetch_buffer_lower_threshold)) {
-    DVLOG(1) << "Resuming async load - buffer size: " << buffer_.size();
-    SetDefersLoading(false);
-  }
-
-  // Reset for next time.
-  user_buffer_ = NULL;
-  user_buffer_size_ = 0;
-  return base::checked_cast<int32_t>(bytes_to_copy);
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/url_loader_resource.h b/proxy/url_loader_resource.h
deleted file mode 100644
index 9eda4e1..0000000
--- a/proxy/url_loader_resource.h
+++ /dev/null
@@ -1,149 +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.
-
-#ifndef PPAPI_PROXY_URL_LOADER_RESOURCE_H_
-#define PPAPI_PROXY_URL_LOADER_RESOURCE_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "base/containers/circular_deque.h"
-#include "ppapi/c/trusted/ppb_url_loader_trusted.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/url_request_info_data.h"
-#include "ppapi/thunk/ppb_url_loader_api.h"
-
-namespace ppapi {
-
-struct URLResponseInfoData;
-
-namespace proxy {
-
-class URLResponseInfoResource;
-
-class PPAPI_PROXY_EXPORT URLLoaderResource : public PluginResource,
-                                             public thunk::PPB_URLLoader_API {
- public:
-  // Constructor for plugin-initiated loads.
-  URLLoaderResource(Connection connection,
-                    PP_Instance instance);
-
-  // Constructor for renderer-initiated (document) loads. The loader ID is the
-  // pending host ID for the already-created host in the renderer, and the
-  // response data is the response for the already-opened connection.
-  URLLoaderResource(Connection connection,
-                    PP_Instance instance,
-                    int pending_main_document_loader_id,
-                    const URLResponseInfoData& data);
-
-  URLLoaderResource(const URLLoaderResource&) = delete;
-  URLLoaderResource& operator=(const URLLoaderResource&) = delete;
-
-  ~URLLoaderResource() override;
-
-  // Resource override.
-  thunk::PPB_URLLoader_API* AsPPB_URLLoader_API() override;
-
-  // PPB_URLLoader_API implementation.
-  int32_t Open(PP_Resource request_id,
-               scoped_refptr<TrackedCallback> callback) override;
-  int32_t Open(const URLRequestInfoData& data,
-               int requestor_pid,
-               scoped_refptr<TrackedCallback> callback) override;
-  int32_t FollowRedirect(scoped_refptr<TrackedCallback> callback) override;
-  PP_Bool GetUploadProgress(int64_t* bytes_sent,
-                            int64_t* total_bytes_to_be_sent) override;
-  PP_Bool GetDownloadProgress(
-      int64_t* bytes_received,
-      int64_t* total_bytes_to_be_received) override;
-  PP_Resource GetResponseInfo() override;
-  int32_t ReadResponseBody(
-      void* buffer,
-      int32_t bytes_to_read,
-      scoped_refptr<TrackedCallback> callback) override;
-  int32_t FinishStreamingToFile(
-      scoped_refptr<TrackedCallback> callback) override;
-  void Close() override;
-  void GrantUniversalAccess() override;
-  void RegisterStatusCallback(
-      PP_URLLoaderTrusted_StatusCallback callback) override;
-
-  // PluginResource implementation.
-  void OnReplyReceived(const ResourceMessageReplyParams& params,
-                       const IPC::Message& msg) override;
-
- private:
-  enum Mode {
-    // The plugin has not called Open() yet.
-    MODE_WAITING_TO_OPEN,
-
-    // The plugin is waiting for the Open() or FollowRedirect callback.
-    MODE_OPENING,
-
-    // We've started to receive data and may receive more.
-    MODE_STREAMING_DATA,
-
-    // All data has been streamed or there was an error.
-    MODE_LOAD_COMPLETE
-  };
-
-  // IPC message handlers.
-  void OnPluginMsgReceivedResponse(const ResourceMessageReplyParams& params,
-                                   const URLResponseInfoData& data);
-  void OnPluginMsgSendData(const ResourceMessageReplyParams& params,
-                           const IPC::Message& message);
-  void OnPluginMsgFinishedLoading(const ResourceMessageReplyParams& params,
-                                  int32_t result);
-  void OnPluginMsgUpdateProgress(const ResourceMessageReplyParams& params,
-                                 int64_t bytes_sent,
-                                 int64_t total_bytes_to_be_sent,
-                                 int64_t bytes_received,
-                                 int64_t total_bytes_to_be_received);
-
-  // Sends the defers loading message to the renderer to block or unblock the
-  // load.
-  void SetDefersLoading(bool defers_loading);
-
-  int32_t ValidateCallback(scoped_refptr<TrackedCallback> callback);
-
-  // Sets up |callback| as the pending callback. This should only be called once
-  // it is certain that |PP_OK_COMPLETIONPENDING| will be returned.
-  void RegisterCallback(scoped_refptr<TrackedCallback> callback);
-
-  void RunCallback(int32_t result);
-
-  // Saves the given response info to response_info_, handling file refs if
-  // necessary. This does not issue any callbacks.
-  void SaveResponseInfo(const URLResponseInfoData& data);
-
-  int32_t FillUserBuffer();
-
-  Mode mode_;
-  URLRequestInfoData request_data_;
-
-  scoped_refptr<TrackedCallback> pending_callback_;
-
-  PP_URLLoaderTrusted_StatusCallback status_callback_;
-
-  base::circular_deque<char> buffer_;
-  int64_t bytes_sent_;
-  int64_t total_bytes_to_be_sent_;
-  int64_t bytes_received_;
-  int64_t total_bytes_to_be_received_;
-  char* user_buffer_;
-  size_t user_buffer_size_;
-  int32_t done_status_;
-  bool is_streaming_to_file_;
-  bool is_asynchronous_load_suspended_;
-
-  // The response info if we've received it.
-  scoped_refptr<URLResponseInfoResource> response_info_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_URL_LOADER_RESOURCE_H_
diff --git a/proxy/url_request_info_resource.cc b/proxy/url_request_info_resource.cc
deleted file mode 100644
index a48f28b..0000000
--- a/proxy/url_request_info_resource.cc
+++ /dev/null
@@ -1,221 +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/proxy/url_request_info_resource.h"
-
-#include "base/strings/string_number_conversions.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_file_ref_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-URLRequestInfoResource::URLRequestInfoResource(Connection connection,
-                                               PP_Instance instance,
-                                               const URLRequestInfoData& data)
-    : PluginResource(connection, instance),
-      data_(data) {
-}
-
-URLRequestInfoResource::~URLRequestInfoResource() {
-}
-
-thunk::PPB_URLRequestInfo_API*
-URLRequestInfoResource::AsPPB_URLRequestInfo_API() {
-  return this;
-}
-
-PP_Bool URLRequestInfoResource::SetProperty(PP_URLRequestProperty property,
-                                            PP_Var var) {
-  // IMPORTANT: Do not do security validation of parameters at this level
-  // without also adding them to PPB_URLRequestInfo_Impl::ValidateData. This
-  // code is used both in the plugin (which we don't trust) and in the renderer
-  // (which we trust more). When running out-of-process, the plugin calls this
-  // function to configure the URLRequestInfoData, which is then sent to
-  // the renderer and *not* run through SetProperty again.
-  //
-  // This means that anything in the PPB_URLRequestInfo_Data needs to be
-  // validated at the time the URL is requested (which is what ValidateData
-  // does). If your feature requires security checks, it should be in the
-  // implementation in the renderer when the WebKit request is actually
-  // constructed.
-  //
-  // It is legal to do some validation here if you want to report failure to
-  // the plugin as a convenience, as long as you also do it in the renderer
-  // later.
-  PP_Bool result = PP_FALSE;
-  switch (var.type) {
-    case PP_VARTYPE_UNDEFINED:
-      result = PP_FromBool(SetUndefinedProperty(property));
-      break;
-    case PP_VARTYPE_BOOL:
-      result = PP_FromBool(
-          SetBooleanProperty(property, PP_ToBool(var.value.as_bool)));
-      break;
-    case PP_VARTYPE_INT32:
-      result = PP_FromBool(
-          SetIntegerProperty(property, var.value.as_int));
-      break;
-    case PP_VARTYPE_STRING: {
-      StringVar* string = StringVar::FromPPVar(var);
-      if (string)
-        result = PP_FromBool(SetStringProperty(property, string->value()));
-      break;
-    }
-    default:
-      break;
-  }
-  if (!result) {
-    std::string error_msg("PPB_URLRequestInfo.SetProperty: Attempted to set a "
-                          "value for PP_URLRequestProperty ");
-    error_msg += base::NumberToString(property);
-    error_msg += ", but either this property type is invalid or its parameter "
-                 "was inappropriate (e.g., the wrong type of PP_Var).";
-    Log(PP_LOGLEVEL_ERROR, error_msg);
-  }
-  return result;
-}
-
-PP_Bool URLRequestInfoResource::AppendDataToBody(const void* data,
-                                                 uint32_t len) {
-  if (len > 0) {
-    data_.body.push_back(URLRequestInfoData::BodyItem(
-        std::string(static_cast<const char*>(data), len)));
-  }
-  return PP_TRUE;
-}
-
-PP_Bool URLRequestInfoResource::AppendFileToBody(
-    PP_Resource file_ref,
-    int64_t start_offset,
-    int64_t number_of_bytes,
-    PP_Time expected_last_modified_time) {
-  thunk::EnterResourceNoLock<thunk::PPB_FileRef_API> enter(file_ref, true);
-  if (enter.failed())
-    return PP_FALSE;
-
-  // Ignore a call to append nothing.
-  if (number_of_bytes == 0)
-    return PP_TRUE;
-
-  // Check for bad values.  (-1 means read until end of file.)
-  if (start_offset < 0 || number_of_bytes < -1)
-    return PP_FALSE;
-
-  data_.body.push_back(URLRequestInfoData::BodyItem(
-      enter.resource(),
-      start_offset,
-      number_of_bytes,
-      expected_last_modified_time));
-  return PP_TRUE;
-}
-
-const URLRequestInfoData& URLRequestInfoResource::GetData() const {
-  return data_;
-}
-
-bool URLRequestInfoResource::SetUndefinedProperty(
-    PP_URLRequestProperty property) {
-  // IMPORTANT: Do not do security validation of parameters at this level
-  // without also adding them to PPB_URLRequestInfo_Impl::ValidateData. See
-  // SetProperty() above for why.
-  switch (property) {
-    case PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL:
-      data_.has_custom_referrer_url = false;
-      data_.custom_referrer_url = std::string();
-      return true;
-    case PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING:
-      data_.has_custom_content_transfer_encoding = false;
-      data_.custom_content_transfer_encoding = std::string();
-      return true;
-    case PP_URLREQUESTPROPERTY_CUSTOMUSERAGENT:
-      data_.has_custom_user_agent = false;
-      data_.custom_user_agent = std::string();
-      return true;
-    default:
-      return false;
-  }
-}
-
-bool URLRequestInfoResource::SetBooleanProperty(
-    PP_URLRequestProperty property,
-    bool value) {
-  // IMPORTANT: Do not do security validation of parameters at this level
-  // without also adding them to PPB_URLRequestInfo_Impl::ValidateData. See
-  // SetProperty() above for why.
-  switch (property) {
-    case PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS:
-      data_.follow_redirects = value;
-      return true;
-    case PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS:
-      data_.record_download_progress = value;
-      return true;
-    case PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS:
-      data_.record_upload_progress = value;
-      return true;
-    case PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS:
-      data_.allow_cross_origin_requests = value;
-      return true;
-    case PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS:
-      data_.allow_credentials = value;
-      return true;
-    default:
-      return false;
-  }
-}
-
-bool URLRequestInfoResource::SetIntegerProperty(
-    PP_URLRequestProperty property,
-    int32_t value) {
-  // IMPORTANT: Do not do security validation of parameters at this level
-  // without also adding them to PPB_URLRequestInfo_Impl::ValidateData. See
-  // SetProperty() above for why.
-  switch (property) {
-    case PP_URLREQUESTPROPERTY_PREFETCHBUFFERUPPERTHRESHOLD:
-      data_.prefetch_buffer_upper_threshold = value;
-      return true;
-    case PP_URLREQUESTPROPERTY_PREFETCHBUFFERLOWERTHRESHOLD:
-      data_.prefetch_buffer_lower_threshold = value;
-      return true;
-    default:
-      return false;
-  }
-}
-
-bool URLRequestInfoResource::SetStringProperty(
-    PP_URLRequestProperty property,
-    const std::string& value) {
-  // IMPORTANT: Do not do security validation of parameters at this level
-  // without also adding them to PPB_URLRequestInfo_Impl::ValidateData. See
-  // SetProperty() above for why.
-  switch (property) {
-    case PP_URLREQUESTPROPERTY_URL:
-      data_.url = value;  // NOTE: This may be a relative URL.
-      return true;
-    case PP_URLREQUESTPROPERTY_METHOD:
-      data_.method = value;
-      return true;
-    case PP_URLREQUESTPROPERTY_HEADERS:
-      data_.headers = value;
-      return true;
-    case PP_URLREQUESTPROPERTY_CUSTOMREFERRERURL:
-      data_.has_custom_referrer_url = true;
-      data_.custom_referrer_url = value;
-      return true;
-    case PP_URLREQUESTPROPERTY_CUSTOMCONTENTTRANSFERENCODING:
-      data_.has_custom_content_transfer_encoding = true;
-      data_.custom_content_transfer_encoding = value;
-      return true;
-    case PP_URLREQUESTPROPERTY_CUSTOMUSERAGENT:
-      data_.has_custom_user_agent = true;
-      data_.custom_user_agent = value;
-      return true;
-    default:
-      return false;
-  }
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/url_request_info_resource.h b/proxy/url_request_info_resource.h
deleted file mode 100644
index b7671b7..0000000
--- a/proxy/url_request_info_resource.h
+++ /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.
-
-#ifndef PPAPI_PROXY_URL_REQUEST_INFO_RESOURCE_H_
-#define PPAPI_PROXY_URL_REQUEST_INFO_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/url_request_info_data.h"
-#include "ppapi/thunk/ppb_url_request_info_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT URLRequestInfoResource
-    : public PluginResource,
-      public thunk::PPB_URLRequestInfo_API {
- public:
-  URLRequestInfoResource(Connection connection, PP_Instance instance,
-                         const URLRequestInfoData& data);
-
-  URLRequestInfoResource(const URLRequestInfoResource&) = delete;
-  URLRequestInfoResource& operator=(const URLRequestInfoResource&) = delete;
-
-  ~URLRequestInfoResource() override;
-
-  // Resource overrides.
-  thunk::PPB_URLRequestInfo_API* AsPPB_URLRequestInfo_API() override;
-
-  // PPB_URLRequestInfo_API implementation.
-  PP_Bool SetProperty(PP_URLRequestProperty property, PP_Var var) override;
-  PP_Bool AppendDataToBody(const void* data, uint32_t len) override;
-  PP_Bool AppendFileToBody(
-      PP_Resource file_ref,
-      int64_t start_offset,
-      int64_t number_of_bytes,
-      PP_Time expected_last_modified_time) override;
-  const URLRequestInfoData& GetData() const override;
-
-  bool SetUndefinedProperty(PP_URLRequestProperty property);
-  bool SetBooleanProperty(PP_URLRequestProperty property, bool value);
-  bool SetIntegerProperty(PP_URLRequestProperty property, int32_t value);
-  bool SetStringProperty(PP_URLRequestProperty property,
-                         const std::string& value);
-
- private:
-  URLRequestInfoData data_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_URL_REQUEST_INFO_RESOURCE_H_
diff --git a/proxy/url_response_info_resource.cc b/proxy/url_response_info_resource.cc
deleted file mode 100644
index b70ea98..0000000
--- a/proxy/url_response_info_resource.cc
+++ /dev/null
@@ -1,67 +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/proxy/url_response_info_resource.h"
-
-#include <stdint.h>
-
-#include "ppapi/proxy/file_ref_resource.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/resource_creation_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-bool IsRedirect(int32_t status) {
-  return status >= 300 && status <= 399;
-}
-
-}  // namespace
-
-URLResponseInfoResource::URLResponseInfoResource(
-    Connection connection,
-    PP_Instance instance,
-    const URLResponseInfoData& data)
-    : PluginResource(connection, instance), data_(data) {}
-
-URLResponseInfoResource::~URLResponseInfoResource() {
-}
-
-thunk::PPB_URLResponseInfo_API*
-URLResponseInfoResource::AsPPB_URLResponseInfo_API() {
-  return this;
-}
-
-PP_Var URLResponseInfoResource::GetProperty(PP_URLResponseProperty property) {
-  switch (property) {
-    case PP_URLRESPONSEPROPERTY_URL:
-      return StringVar::StringToPPVar(data_.url);
-    case PP_URLRESPONSEPROPERTY_REDIRECTURL:
-      if (IsRedirect(data_.status_code))
-        return StringVar::StringToPPVar(data_.redirect_url);
-      break;
-    case PP_URLRESPONSEPROPERTY_REDIRECTMETHOD:
-      if (IsRedirect(data_.status_code))
-        return StringVar::StringToPPVar(data_.status_text);
-      break;
-    case PP_URLRESPONSEPROPERTY_STATUSCODE:
-      return PP_MakeInt32(data_.status_code);
-    case PP_URLRESPONSEPROPERTY_STATUSLINE:
-      return StringVar::StringToPPVar(data_.status_text);
-    case PP_URLRESPONSEPROPERTY_HEADERS:
-      return StringVar::StringToPPVar(data_.headers);
-  }
-  // The default is to return an undefined PP_Var.
-  return PP_MakeUndefined();
-}
-
-PP_Resource URLResponseInfoResource::GetBodyAsFileRef() {
-  return 0;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/url_response_info_resource.h b/proxy/url_response_info_resource.h
deleted file mode 100644
index d945574..0000000
--- a/proxy/url_response_info_resource.h
+++ /dev/null
@@ -1,47 +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_PROXY_URL_RESPONSE_INFO_RESOURCE_H_
-#define PPAPI_PROXY_URL_RESPONSE_INFO_RESOURCE_H_
-
-#include "base/compiler_specific.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/scoped_pp_resource.h"
-#include "ppapi/shared_impl/url_response_info_data.h"
-#include "ppapi/thunk/ppb_url_response_info_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT URLResponseInfoResource
-    : public PluginResource,
-      public thunk::PPB_URLResponseInfo_API {
- public:
-  URLResponseInfoResource(Connection connection,
-                          PP_Instance instance,
-                          const URLResponseInfoData& data);
-
-  URLResponseInfoResource(const URLResponseInfoResource&) = delete;
-  URLResponseInfoResource& operator=(const URLResponseInfoResource&) = delete;
-
-  ~URLResponseInfoResource() override;
-
-  // Resource override.
-  PPB_URLResponseInfo_API* AsPPB_URLResponseInfo_API() override;
-
-  // PPB_URLResponseInfo_API implementation.
-  PP_Var GetProperty(PP_URLResponseProperty property) override;
-  PP_Resource GetBodyAsFileRef() override;
-
-  const URLResponseInfoData& data() const { return data_; }
-
- private:
-  URLResponseInfoData data_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_URL_RESPONSE_INFO_RESOURCE_H_
diff --git a/proxy/var_serialization_rules.h b/proxy/var_serialization_rules.h
deleted file mode 100644
index eebf2c4..0000000
--- a/proxy/var_serialization_rules.h
+++ /dev/null
@@ -1,88 +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_PROXY_VAR_SERIALIZATION_RULES_H_
-#define PPAPI_PROXY_VAR_SERIALIZATION_RULES_H_
-
-#include "base/memory/ref_counted.h"
-#include "ppapi/c/pp_var.h"
-
-namespace ppapi {
-namespace proxy {
-
-// Encapsulates the rules for serializing and deserializing vars to and from
-// the local process. The renderer and the plugin process each have separate
-// bookkeeping rules.
-class VarSerializationRules
-    : public base::RefCountedThreadSafe<VarSerializationRules> {
- public:
-  // Caller-owned calls --------------------------------------------------------
-  //
-  // A caller-owned call is when doing a function call with a "normal" input
-  // argument. The caller has a reference to the var, and the caller is
-  // responsible for freeing that reference.
-
-  // Prepares the given var for sending to the remote process. For object vars,
-  // the returned var will contain the id valid for the host process.
-  // Otherwise, the returned var is valid in the local process.
-  virtual PP_Var SendCallerOwned(const PP_Var& var) = 0;
-
-  // When receiving a caller-owned variable, normally we don't have to do
-  // anything. However, in the case of strings, we need to deserialize the
-  // string from IPC, call the function, and then destroy the temporary string.
-  // These two functions handle that process.
-  //
-  // BeginReceiveCallerOwned takes a var from IPC and returns a new var
-  // representing the input in the local process.
-  //
-  // EndReceiveCallerOwned releases the reference count in the Var tracker for
-  // the object or string that was added to the tracker. (Note, if the recipient
-  // took a reference to the Var, it will remain in the tracker after
-  // EndReceiveCallerOwned).
-  virtual PP_Var BeginReceiveCallerOwned(const PP_Var& var) = 0;
-  virtual void EndReceiveCallerOwned(const PP_Var& var) = 0;
-
-  // Passing refs -------------------------------------------------------------
-  //
-  // A pass-ref transfer is when ownership of a reference is passed from
-  // one side to the other. Normally, this happens via return values and
-  // output arguments, as for exceptions. The code generating the value
-  // (the function returning it in the case of a return value) will AddRef
-  // the var on behalf of the consumer of the value. Responsibility for
-  // Release is on the consumer (the caller of the function in the case of a
-  // return value).
-
-  // Creates a var in the context of the local process from the given
-  // deserialized var. The input var should be the result of calling
-  // SendPassRef in the remote process. The return value is the var valid in
-  // the host process for object vars. Otherwise, the return value is a var
-  // which is valid in the local process.
-  virtual PP_Var ReceivePassRef(const PP_Var& var) = 0;
-
-  // Prepares a var to be sent to the remote side. One local reference will
-  // be passed to the remote side. Call Begin* before doing the send and End*
-  // after doing the send
-  //
-  // For object vars, the return value from BeginSendPassRef will be the var
-  // valid for the host process. Otherwise, it is a var that is valid in the
-  // local process. This same var must be passed to EndSendPassRef.
-  virtual PP_Var BeginSendPassRef(const PP_Var& var) = 0;
-  virtual void EndSendPassRef(const PP_Var& var) = 0;
-
-  // ---------------------------------------------------------------------------
-
-  virtual void ReleaseObjectRef(const PP_Var& var) = 0;
-
- protected:
-  VarSerializationRules() {}
-  virtual ~VarSerializationRules() {}
-
- private:
-  friend class base::RefCountedThreadSafe<VarSerializationRules>;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_VAR_SERIALIZATION_RULES_H_
diff --git a/proxy/video_capture_resource.cc b/proxy/video_capture_resource.cc
deleted file mode 100644
index f168013..0000000
--- a/proxy/video_capture_resource.cc
+++ /dev/null
@@ -1,239 +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/proxy/video_capture_resource.h"
-
-#include <stddef.h>
-
-#include "base/containers/heap_array.h"
-#include "base/functional/bind.h"
-#include "ppapi/c/dev/ppp_video_capture_dev.h"
-#include "ppapi/proxy/dispatch_reply_message.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/plugin_globals.h"
-#include "ppapi/proxy/plugin_resource_tracker.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/ppb_buffer_proxy.h"
-#include "ppapi/proxy/resource_message_params.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-
-namespace ppapi {
-namespace proxy {
-
-VideoCaptureResource::VideoCaptureResource(
-    Connection connection,
-    PP_Instance instance,
-    PluginDispatcher* dispatcher)
-    : PluginResource(connection, instance),
-      open_state_(BEFORE_OPEN),
-      enumeration_helper_(this) {
-  SendCreate(RENDERER, PpapiHostMsg_VideoCapture_Create());
-
-  ppp_video_capture_impl_ = static_cast<const PPP_VideoCapture_Dev*>(
-      dispatcher->local_get_interface()(PPP_VIDEO_CAPTURE_DEV_INTERFACE));
-}
-
-VideoCaptureResource::~VideoCaptureResource() {
-}
-
-void VideoCaptureResource::OnReplyReceived(
-    const ResourceMessageReplyParams& params,
-    const IPC::Message& msg) {
-  if (enumeration_helper_.HandleReply(params, msg))
-    return;
-
-  if (params.sequence()) {
-    PluginResource::OnReplyReceived(params, msg);
-    return;
-  }
-
-  PPAPI_BEGIN_MESSAGE_MAP(VideoCaptureResource, msg)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_VideoCapture_OnDeviceInfo,
-        OnPluginMsgOnDeviceInfo)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_VideoCapture_OnStatus,
-        OnPluginMsgOnStatus)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_VideoCapture_OnError,
-        OnPluginMsgOnError)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_VideoCapture_OnBufferReady,
-        OnPluginMsgOnBufferReady)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(NOTREACHED())
-  PPAPI_END_MESSAGE_MAP()
-}
-
-int32_t VideoCaptureResource::EnumerateDevices(
-    const PP_ArrayOutput& output,
-    scoped_refptr<TrackedCallback> callback) {
-  return enumeration_helper_.EnumerateDevices(output, callback);
-}
-
-int32_t VideoCaptureResource::MonitorDeviceChange(
-    PP_MonitorDeviceChangeCallback callback,
-    void* user_data) {
-  return enumeration_helper_.MonitorDeviceChange(callback, user_data);
-}
-
-int32_t VideoCaptureResource::Open(
-    const std::string& device_id,
-    const PP_VideoCaptureDeviceInfo_Dev& requested_info,
-    uint32_t buffer_count,
-    scoped_refptr<TrackedCallback> callback) {
-  if (open_state_ != BEFORE_OPEN)
-    return PP_ERROR_FAILED;
-
-  if (TrackedCallback::IsPending(open_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  open_callback_ = callback;
-
-  Call<PpapiPluginMsg_VideoCapture_OpenReply>(
-      RENDERER,
-      PpapiHostMsg_VideoCapture_Open(device_id, requested_info, buffer_count),
-      base::BindOnce(&VideoCaptureResource::OnPluginMsgOpenReply, this));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t VideoCaptureResource::StartCapture() {
-  if (open_state_ != OPENED)
-    return PP_ERROR_FAILED;
-
-  Post(RENDERER, PpapiHostMsg_VideoCapture_StartCapture());
-  return PP_OK;
-}
-
-int32_t VideoCaptureResource::ReuseBuffer(uint32_t buffer) {
-  if (buffer >= buffer_in_use_.size() || !buffer_in_use_[buffer])
-    return PP_ERROR_BADARGUMENT;
-  Post(RENDERER, PpapiHostMsg_VideoCapture_ReuseBuffer(buffer));
-  return PP_OK;
-}
-
-int32_t VideoCaptureResource::StopCapture() {
-  if (open_state_ != OPENED)
-    return PP_ERROR_FAILED;
-
-  Post(RENDERER, PpapiHostMsg_VideoCapture_StopCapture());
-  return PP_OK;
-}
-
-void VideoCaptureResource::Close() {
-  if (open_state_ == CLOSED)
-    return;
-
-  Post(RENDERER, PpapiHostMsg_VideoCapture_Close());
-
-  open_state_ = CLOSED;
-
-  if (TrackedCallback::IsPending(open_callback_))
-    open_callback_->PostAbort();
-}
-
-int32_t VideoCaptureResource::EnumerateDevicesSync(
-    const PP_ArrayOutput& devices) {
-  return enumeration_helper_.EnumerateDevicesSync(devices);
-}
-
-void VideoCaptureResource::LastPluginRefWasDeleted() {
-  enumeration_helper_.LastPluginRefWasDeleted();
-}
-
-void VideoCaptureResource::OnPluginMsgOnDeviceInfo(
-    const ResourceMessageReplyParams& params,
-    const struct PP_VideoCaptureDeviceInfo_Dev& info,
-    const std::vector<HostResource>& buffers,
-    uint32_t buffer_size) {
-  if (!ppp_video_capture_impl_)
-    return;
-
-  std::vector<base::UnsafeSharedMemoryRegion> regions;
-  for (size_t i = 0; i < params.handles().size(); ++i) {
-    base::UnsafeSharedMemoryRegion region;
-    params.TakeUnsafeSharedMemoryRegionAtIndex(i, &region);
-    DCHECK_EQ(buffer_size, region.GetSize());
-    regions.push_back(std::move(region));
-  }
-  CHECK(regions.size() == buffers.size());
-
-  PluginResourceTracker* tracker =
-      PluginGlobals::Get()->plugin_resource_tracker();
-  auto resources = base::HeapArray<PP_Resource>::WithSize(buffers.size());
-  for (size_t i = 0; i < buffers.size(); ++i) {
-    // We assume that the browser created a new set of resources.
-    DCHECK(!tracker->PluginResourceForHostResource(buffers[i]));
-    resources[i] = ppapi::proxy::PPB_Buffer_Proxy::AddProxyResource(
-        buffers[i], std::move(regions[i]));
-  }
-
-  buffer_in_use_ = std::vector<bool>(buffers.size());
-
-  CallWhileUnlocked(ppp_video_capture_impl_->OnDeviceInfo, pp_instance(),
-                    pp_resource(), &info, static_cast<uint32_t>(buffers.size()),
-                    resources.data());
-
-  for (size_t i = 0; i < buffers.size(); ++i)
-    tracker->ReleaseResource(resources[i]);
-}
-
-void VideoCaptureResource::OnPluginMsgOnStatus(
-    const ResourceMessageReplyParams& params,
-    uint32_t status) {
-  switch (status) {
-    case PP_VIDEO_CAPTURE_STATUS_STARTING:
-    case PP_VIDEO_CAPTURE_STATUS_STOPPING:
-      // Those states are not sent by the browser.
-      NOTREACHED();
-  }
-  if (ppp_video_capture_impl_) {
-    CallWhileUnlocked(ppp_video_capture_impl_->OnStatus,
-                      pp_instance(),
-                      pp_resource(),
-                      status);
-  }
-}
-
-void VideoCaptureResource::OnPluginMsgOnError(
-    const ResourceMessageReplyParams& params,
-    uint32_t error_code) {
-  open_state_ = CLOSED;
-  if (ppp_video_capture_impl_) {
-    CallWhileUnlocked(ppp_video_capture_impl_->OnError,
-                      pp_instance(),
-                      pp_resource(),
-                      error_code);
-  }
-}
-
-void VideoCaptureResource::OnPluginMsgOnBufferReady(
-    const ResourceMessageReplyParams& params,
-    uint32_t buffer) {
-  SetBufferInUse(buffer);
-  if (ppp_video_capture_impl_) {
-    CallWhileUnlocked(ppp_video_capture_impl_->OnBufferReady,
-                      pp_instance(),
-                      pp_resource(),
-                      buffer);
-  }
-}
-
-void VideoCaptureResource::OnPluginMsgOpenReply(
-    const ResourceMessageReplyParams& params) {
-  if (open_state_ == BEFORE_OPEN && params.result() == PP_OK)
-    open_state_ = OPENED;
-
-  // The callback may have been aborted by Close().
-  if (TrackedCallback::IsPending(open_callback_))
-    open_callback_->Run(params.result());
-}
-
-void VideoCaptureResource::SetBufferInUse(uint32_t buffer_index) {
-  CHECK(buffer_index < buffer_in_use_.size());
-  buffer_in_use_[buffer_index] = true;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/video_capture_resource.h b/proxy/video_capture_resource.h
deleted file mode 100644
index bf0161e..0000000
--- a/proxy/video_capture_resource.h
+++ /dev/null
@@ -1,102 +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_PROXY_VIDEO_CAPTURE_RESOURCE_H_
-#define PPAPI_PROXY_VIDEO_CAPTURE_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "ppapi/c/dev/ppp_video_capture_dev.h"
-#include "ppapi/proxy/device_enumeration_resource_helper.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/thunk/ppb_video_capture_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PluginDispatcher;
-
-class VideoCaptureResource
-    : public PluginResource,
-      public ::ppapi::thunk::PPB_VideoCapture_API {
- public:
-  VideoCaptureResource(Connection connection,
-                       PP_Instance instance,
-                       PluginDispatcher* dispatcher);
-
-  VideoCaptureResource(const VideoCaptureResource&) = delete;
-  VideoCaptureResource& operator=(const VideoCaptureResource&) = delete;
-
-  ~VideoCaptureResource() override;
-
-  // PluginResource override.
-  thunk::PPB_VideoCapture_API* AsPPB_VideoCapture_API() override {
-    return this;
-  }
-
-  // PPB_VideoCapture_API implementation.
-  int32_t EnumerateDevices(
-      const PP_ArrayOutput& output,
-      scoped_refptr<TrackedCallback> callback) override;
-  int32_t MonitorDeviceChange(
-      PP_MonitorDeviceChangeCallback callback,
-      void* user_data) override;
-  int32_t Open(const std::string& device_id,
-               const PP_VideoCaptureDeviceInfo_Dev& requested_info,
-               uint32_t buffer_count,
-               scoped_refptr<TrackedCallback> callback) override;
-  int32_t StartCapture() override;
-  int32_t ReuseBuffer(uint32_t buffer) override;
-  int32_t StopCapture() override;
-  void Close() override;
-  int32_t EnumerateDevicesSync(const PP_ArrayOutput& devices) override;
-
- protected:
-  // Resource override.
-  void LastPluginRefWasDeleted() override;
-
- private:
-  enum OpenState {
-    BEFORE_OPEN,
-    OPENED,
-    CLOSED
-  };
-
-  // PluginResource overrides.
-  void OnReplyReceived(const ResourceMessageReplyParams& params,
-                       const IPC::Message& msg) override;
-
-  void OnPluginMsgOnDeviceInfo(const ResourceMessageReplyParams& params,
-                               const struct PP_VideoCaptureDeviceInfo_Dev& info,
-                               const std::vector<HostResource>& buffers,
-                               uint32_t buffer_size);
-  void OnPluginMsgOnStatus(const ResourceMessageReplyParams& params,
-                           uint32_t status);
-  void OnPluginMsgOnError(const ResourceMessageReplyParams& params,
-                          uint32_t error);
-  void OnPluginMsgOnBufferReady(const ResourceMessageReplyParams& params,
-                                uint32_t buffer);
-
-  void OnPluginMsgOpenReply(const ResourceMessageReplyParams& params);
-
-  void SetBufferInUse(uint32_t buffer_index);
-
-  // Points to the C interface of client implementation.
-  const PPP_VideoCapture_Dev* ppp_video_capture_impl_;
-
-  // Indicates that the i-th buffer is currently in use.
-  std::vector<bool> buffer_in_use_;
-
-  // Holds a reference of the callback so that Close() can cancel it.
-  scoped_refptr<TrackedCallback> open_callback_;
-  OpenState open_state_;
-
-  DeviceEnumerationResourceHelper enumeration_helper_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_VIDEO_CAPTURE_RESOURCE_H_
diff --git a/proxy/video_decoder_constants.h b/proxy/video_decoder_constants.h
deleted file mode 100644
index 38a65da..0000000
--- a/proxy/video_decoder_constants.h
+++ /dev/null
@@ -1,33 +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_PROXY_VIDEO_DECODER_CONSTANTS_H_
-#define PPAPI_PROXY_VIDEO_DECODER_CONSTANTS_H_
-
-namespace ppapi {
-namespace proxy {
-
-// These constants are shared by the video decoder resource and host.
-enum {
-  // Maximum number of concurrent decodes which can be pending.
-  kMaximumPendingDecodes = 8,
-
-  // Minimum size of shared-memory buffers (100 KB). Make them large since we
-  // try to reuse them.
-  kMinimumBitstreamBufferSize = 100 << 10,
-
-  // Maximum size of shared-memory buffers (4 MB). This should be enough even
-  // for 4K video at reasonable compression levels.
-  kMaximumBitstreamBufferSize = 4 << 20,
-
-  // The maximum number of pictures that the client can pass in for
-  // min_picture_count, just as a sanity check on the argument.
-  // This should match the constant of the same name in test_video_decoder.cc.
-  kMaximumPictureCount = 100
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_VIDEO_DECODER_CONSTANTS_H_
diff --git a/proxy/video_decoder_resource.cc b/proxy/video_decoder_resource.cc
deleted file mode 100644
index 2f0501a..0000000
--- a/proxy/video_decoder_resource.cc
+++ /dev/null
@@ -1,541 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/proxy/video_decoder_resource.h"
-
-#include <utility>
-
-#include "base/functional/bind.h"
-#include "gpu/GLES2/gl2extchromium.h"
-#include "gpu/command_buffer/client/gles2_cmd_helper.h"
-#include "gpu/command_buffer/client/gles2_implementation.h"
-#include "gpu/command_buffer/common/mailbox.h"
-#include "ipc/ipc_message.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_opengles2.h"
-#include "ppapi/proxy/plugin_dispatcher.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/ppb_graphics_3d_proxy.h"
-#include "ppapi/proxy/serialized_handle.h"
-#include "ppapi/proxy/video_decoder_constants.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/ppb_graphics_3d_shared.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/thunk/enter.h"
-
-using ppapi::thunk::EnterResourceNoLock;
-using ppapi::thunk::PPB_Graphics3D_API;
-using ppapi::thunk::PPB_VideoDecoder_API;
-
-namespace ppapi {
-namespace proxy {
-
-VideoDecoderResource::ShmBuffer::ShmBuffer(
-    base::UnsafeSharedMemoryRegion region,
-    uint32_t shm_id)
-    : region(std::move(region)), shm_id(shm_id) {
-  mapping = this->region.Map();
-  if (mapping.IsValid())
-    addr = mapping.memory();
-}
-
-VideoDecoderResource::ShmBuffer::~ShmBuffer() {
-}
-
-VideoDecoderResource::VideoDecoderResource(Connection connection,
-                                           PP_Instance instance)
-    : PluginResource(connection, instance),
-      num_decodes_(0),
-      min_picture_count_(0),
-      get_picture_(NULL),
-      get_picture_0_1_(NULL),
-      gles2_impl_(NULL),
-      initialized_(false),
-      testing_(false),
-      // Set |decoder_last_error_| to PP_OK after successful initialization.
-      // This makes error checking a little more concise, since we can check
-      // that the decoder has been initialized and hasn't returned an error by
-      // just testing |decoder_last_error_|.
-      decoder_last_error_(PP_ERROR_FAILED) {
-  // Clear the decode_ids_ array.
-  memset(decode_ids_, 0, sizeof(decode_ids_));
-  SendCreate(RENDERER, PpapiHostMsg_VideoDecoder_Create());
-}
-
-VideoDecoderResource::~VideoDecoderResource() {
-  // Destroy any textures which haven't been dismissed.
-  if (initialized_) {
-    if (!testing_) {
-      CHECK(gles2_impl_);
-      for (const auto& shared_image : used_shared_images_) {
-        gles2_impl_->EndSharedImageAccessDirectCHROMIUM(shared_image.first);
-        gles2_impl_->DeleteTextures(1, &shared_image.first);
-      }
-
-      gles2_impl_->ShallowFlushCHROMIUM();
-    }
-  }
-}
-
-PPB_VideoDecoder_API* VideoDecoderResource::AsPPB_VideoDecoder_API() {
-  return this;
-}
-
-int32_t VideoDecoderResource::Initialize0_1(
-    PP_Resource graphics_context,
-    PP_VideoProfile profile,
-    PP_Bool allow_software_fallback,
-    scoped_refptr<TrackedCallback> callback) {
-  return Initialize(graphics_context,
-                    profile,
-                    allow_software_fallback
-                        ? PP_HARDWAREACCELERATION_WITHFALLBACK
-                        : PP_HARDWAREACCELERATION_ONLY,
-                    0,
-                    callback);
-}
-
-int32_t VideoDecoderResource::Initialize0_2(
-    PP_Resource graphics_context,
-    PP_VideoProfile profile,
-    PP_HardwareAcceleration acceleration,
-    scoped_refptr<TrackedCallback> callback) {
-  return Initialize(graphics_context,
-                    profile,
-                    acceleration,
-                    0,
-                    callback);
-}
-
-int32_t VideoDecoderResource::Initialize(
-    PP_Resource graphics_context,
-    PP_VideoProfile profile,
-    PP_HardwareAcceleration acceleration,
-    uint32_t min_picture_count,
-    scoped_refptr<TrackedCallback> callback) {
-  if (initialized_)
-    return PP_ERROR_FAILED;
-  if (profile < 0 || profile > PP_VIDEOPROFILE_MAX)
-    return PP_ERROR_BADARGUMENT;
-  if (min_picture_count > kMaximumPictureCount)
-    return PP_ERROR_BADARGUMENT;
-  if (initialize_callback_.get())
-    return PP_ERROR_INPROGRESS;
-  if (!graphics_context)
-    return PP_ERROR_BADRESOURCE;
-
-  min_picture_count_ = min_picture_count;
-
-  HostResource host_resource;
-  if (!testing_) {
-    // Create a new Graphics3D resource that can create texture resources to
-    // share with the plugin. We can't use the plugin's Graphics3D, since we
-    // create textures on a proxy thread, and would interfere with the plugin.
-    thunk::EnterResourceCreationNoLock enter_create(pp_instance());
-    if (enter_create.failed())
-      return PP_ERROR_FAILED;
-    int32_t attrib_list[] = {PP_GRAPHICS3DATTRIB_NONE};
-    graphics3d_ =
-        ScopedPPResource(ScopedPPResource::PassRef(),
-                         enter_create.functions()->CreateGraphics3D(
-                             pp_instance(), graphics_context, attrib_list));
-    EnterResourceNoLock<PPB_Graphics3D_API> enter_graphics(graphics3d_.get(),
-                                                           false);
-    if (enter_graphics.failed())
-      return PP_ERROR_BADRESOURCE;
-
-    PPB_Graphics3D_Shared* ppb_graphics3d_shared =
-        static_cast<PPB_Graphics3D_Shared*>(enter_graphics.object());
-    gles2_impl_ = ppb_graphics3d_shared->gles2_impl();
-    host_resource = ppb_graphics3d_shared->host_resource();
-  }
-
-  initialize_callback_ = callback;
-
-  Call<PpapiPluginMsg_VideoDecoder_InitializeReply>(
-      RENDERER,
-      PpapiHostMsg_VideoDecoder_Initialize(host_resource, profile, acceleration,
-                                           min_picture_count),
-      base::BindOnce(&VideoDecoderResource::OnPluginMsgInitializeComplete,
-                     this));
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t VideoDecoderResource::Decode(uint32_t decode_id,
-                                     uint32_t size,
-                                     const void* buffer,
-                                     scoped_refptr<TrackedCallback> callback) {
-  if (decoder_last_error_)
-    return decoder_last_error_;
-  if (flush_callback_.get() || reset_callback_.get())
-    return PP_ERROR_FAILED;
-  if (decode_callback_.get())
-    return PP_ERROR_INPROGRESS;
-  if (size > kMaximumBitstreamBufferSize)
-    return PP_ERROR_NOMEMORY;
-
-  // If we allow the plugin to call Decode again, we must have somewhere to
-  // copy their buffer.
-  DCHECK(!available_shm_buffers_.empty() ||
-         shm_buffers_.size() < kMaximumPendingDecodes);
-
-  // Count up, wrapping back to 0 before overflowing.
-  int32_t uid = ++num_decodes_;
-  if (uid == std::numeric_limits<int32_t>::max())
-    num_decodes_ = 0;
-
-  // Save decode_id in a ring buffer. The ring buffer is sized to store
-  // decode_id for the maximum picture delay.
-  decode_ids_[uid % kMaximumPictureDelay] = decode_id;
-
-  if (available_shm_buffers_.empty() ||
-      available_shm_buffers_.back()->mapping.size() < size) {
-    uint32_t shm_id;
-    if (shm_buffers_.size() < kMaximumPendingDecodes) {
-      // Signal the host to create a new shm buffer by passing an index outside
-      // the legal range.
-      shm_id = static_cast<uint32_t>(shm_buffers_.size());
-    } else {
-      // Signal the host to grow a buffer by passing a legal index. Choose the
-      // last available shm buffer for simplicity.
-      shm_id = available_shm_buffers_.back()->shm_id;
-      available_shm_buffers_.pop_back();
-    }
-
-    // Synchronously get shared memory. Use GenericSyncCall so we can get the
-    // reply params, which contain the handle.
-    uint32_t shm_size = 0;
-    IPC::Message reply;
-    ResourceMessageReplyParams reply_params;
-    int32_t result =
-        GenericSyncCall(RENDERER,
-                        PpapiHostMsg_VideoDecoder_GetShm(shm_id, size),
-                        &reply,
-                        &reply_params);
-    if (result != PP_OK)
-      return PP_ERROR_FAILED;
-    if (!UnpackMessage<PpapiPluginMsg_VideoDecoder_GetShmReply>(reply,
-                                                                &shm_size))
-      return PP_ERROR_FAILED;
-    base::UnsafeSharedMemoryRegion shm_region;
-    if (!reply_params.TakeUnsafeSharedMemoryRegionAtIndex(0, &shm_region) ||
-        !shm_region.IsValid() || shm_region.GetSize() != shm_size)
-      return PP_ERROR_NOMEMORY;
-    std::unique_ptr<ShmBuffer> shm_buffer(
-        new ShmBuffer(std::move(shm_region), shm_id));
-    if (!shm_buffer->addr)
-      return PP_ERROR_NOMEMORY;
-
-    available_shm_buffers_.push_back(shm_buffer.get());
-    if (shm_buffers_.size() < kMaximumPendingDecodes)
-      shm_buffers_.push_back(std::move(shm_buffer));
-    else
-      shm_buffers_[shm_id] = std::move(shm_buffer);
-  }
-
-  // At this point we should have shared memory to hold the plugin's buffer.
-  DCHECK(!available_shm_buffers_.empty() &&
-         available_shm_buffers_.back()->mapping.size() >= size);
-
-  ShmBuffer* shm_buffer = available_shm_buffers_.back();
-  available_shm_buffers_.pop_back();
-  memcpy(shm_buffer->addr, buffer, size);
-
-  Call<PpapiPluginMsg_VideoDecoder_DecodeReply>(
-      RENDERER, PpapiHostMsg_VideoDecoder_Decode(shm_buffer->shm_id, size, uid),
-      base::BindOnce(&VideoDecoderResource::OnPluginMsgDecodeComplete, this));
-
-  // If we have another free buffer, or we can still create new buffers, let
-  // the plugin call Decode again.
-  if (!available_shm_buffers_.empty() ||
-      shm_buffers_.size() < kMaximumPendingDecodes)
-    return PP_OK;
-
-  // All buffers are busy and we can't create more. Delay completion until a
-  // buffer is available.
-  decode_callback_ = callback;
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t VideoDecoderResource::GetPicture0_1(
-    PP_VideoPicture_0_1* picture,
-    scoped_refptr<TrackedCallback> callback) {
-  get_picture_0_1_ = picture;
-  return GetPicture(NULL, callback);
-}
-
-int32_t VideoDecoderResource::GetPicture(
-    PP_VideoPicture* picture,
-    scoped_refptr<TrackedCallback> callback) {
-  if (!initialized_) {
-    return PP_ERROR_FAILED;
-  }
-  if (decoder_last_error_) {
-    return decoder_last_error_;
-  }
-  if (reset_callback_.get()) {
-    return PP_ERROR_FAILED;
-  }
-  if (get_picture_callback_.get()) {
-    return PP_ERROR_INPROGRESS;
-  }
-
-  get_picture_ = picture;
-
-  // If the next shared image is ready, return it synchronously.
-  if (!received_shared_images_.empty()) {
-    WriteNextSharedImage();
-    return PP_OK;
-  }
-
-  get_picture_callback_ = callback;
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void VideoDecoderResource::RecyclePicture(const PP_VideoPicture* picture) {
-  if (!initialized_) {
-    return;
-  }
-  if (decoder_last_error_) {
-    return;
-  }
-
-  auto it = used_shared_images_.find(picture->texture_id);
-  if (it != used_shared_images_.end()) {
-    gpu::Mailbox mailbox = it->second.mailbox;
-
-    if (!testing_) {
-      CHECK(gles2_impl_);
-      gles2_impl_->EndSharedImageAccessDirectCHROMIUM(picture->texture_id);
-      gles2_impl_->DeleteTextures(1, &picture->texture_id);
-      gles2_impl_->ShallowFlushCHROMIUM();
-    }
-
-    used_shared_images_.erase(it);
-
-    Post(RENDERER, PpapiHostMsg_VideoDecoder_RecycleSharedImage(mailbox));
-  }
-}
-
-int32_t VideoDecoderResource::Flush(scoped_refptr<TrackedCallback> callback) {
-  if (decoder_last_error_)
-    return decoder_last_error_;
-  if (reset_callback_.get())
-    return PP_ERROR_FAILED;
-  if (flush_callback_.get())
-    return PP_ERROR_INPROGRESS;
-  flush_callback_ = callback;
-
-  Call<PpapiPluginMsg_VideoDecoder_FlushReply>(
-      RENDERER, PpapiHostMsg_VideoDecoder_Flush(),
-      base::BindOnce(&VideoDecoderResource::OnPluginMsgFlushComplete, this));
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t VideoDecoderResource::Reset(scoped_refptr<TrackedCallback> callback) {
-  if (decoder_last_error_)
-    return decoder_last_error_;
-  if (flush_callback_.get())
-    return PP_ERROR_FAILED;
-  if (reset_callback_.get())
-    return PP_ERROR_INPROGRESS;
-  reset_callback_ = callback;
-
-  // Cause any pending Decode or GetPicture callbacks to abort after we return,
-  // to avoid reentering the plugin.
-  if (TrackedCallback::IsPending(decode_callback_))
-    decode_callback_->PostAbort();
-  decode_callback_.reset();
-  if (TrackedCallback::IsPending(get_picture_callback_))
-    get_picture_callback_->PostAbort();
-  get_picture_callback_.reset();
-  Call<PpapiPluginMsg_VideoDecoder_ResetReply>(
-      RENDERER, PpapiHostMsg_VideoDecoder_Reset(),
-      base::BindOnce(&VideoDecoderResource::OnPluginMsgResetComplete, this));
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void VideoDecoderResource::OnReplyReceived(
-    const ResourceMessageReplyParams& params,
-    const IPC::Message& msg) {
-  PPAPI_BEGIN_MESSAGE_MAP(VideoDecoderResource, msg)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_VideoDecoder_SharedImageReady,
-        OnPluginMsgSharedImageReady)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_VideoDecoder_NotifyError, OnPluginMsgNotifyError)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(
-        PluginResource::OnReplyReceived(params, msg))
-  PPAPI_END_MESSAGE_MAP()
-}
-
-void VideoDecoderResource::SetForTest() {
-  testing_ = true;
-}
-
-void VideoDecoderResource::OnPluginMsgSharedImageReady(
-    const ResourceMessageReplyParams& params,
-    int32_t decode_id,
-    const gpu::Mailbox& mailbox,
-    const PP_Size& size,
-    const PP_Rect& visible_rect) {
-  received_shared_images_.push(
-      ReceivedSharedImage{decode_id, mailbox, size, visible_rect});
-
-  if (TrackedCallback::IsPending(get_picture_callback_)) {
-    // The plugin may call GetPicture in its callback.
-    scoped_refptr<TrackedCallback> callback;
-    callback.swap(get_picture_callback_);
-    WriteNextSharedImage();
-    callback->Run(PP_OK);
-  }
-}
-
-void VideoDecoderResource::OnPluginMsgNotifyError(
-    const ResourceMessageReplyParams& params,
-    int32_t error) {
-  decoder_last_error_ = error;
-  // Cause any pending callbacks to run immediately. Reentrancy isn't a problem,
-  // since the plugin wasn't calling us.
-  RunCallbackWithError(&initialize_callback_);
-  RunCallbackWithError(&decode_callback_);
-  RunCallbackWithError(&get_picture_callback_);
-  RunCallbackWithError(&flush_callback_);
-  RunCallbackWithError(&reset_callback_);
-}
-
-void VideoDecoderResource::OnPluginMsgInitializeComplete(
-    const ResourceMessageReplyParams& params) {
-  decoder_last_error_ = params.result();
-  if (decoder_last_error_ == PP_OK) {
-    initialized_ = true;
-  }
-
-  // Let the plugin call Initialize again from its callback in case of failure.
-  scoped_refptr<TrackedCallback> callback;
-  callback.swap(initialize_callback_);
-  callback->Run(decoder_last_error_);
-}
-
-void VideoDecoderResource::OnPluginMsgDecodeComplete(
-    const ResourceMessageReplyParams& params,
-    uint32_t shm_id) {
-  if (shm_id >= shm_buffers_.size()) {
-    NOTREACHED();
-  }
-  // Make the shm buffer available.
-  available_shm_buffers_.push_back(shm_buffers_[shm_id].get());
-  // If the plugin is waiting, let it call Decode again.
-  if (decode_callback_.get()) {
-    scoped_refptr<TrackedCallback> callback;
-    callback.swap(decode_callback_);
-    callback->Run(PP_OK);
-  }
-}
-
-void VideoDecoderResource::OnPluginMsgFlushComplete(
-    const ResourceMessageReplyParams& params) {
-  // All shm buffers should have been made available by now.
-  DCHECK_EQ(shm_buffers_.size(), available_shm_buffers_.size());
-
-  if (get_picture_callback_.get()) {
-    scoped_refptr<TrackedCallback> callback;
-    callback.swap(get_picture_callback_);
-    callback->Abort();
-  }
-
-  scoped_refptr<TrackedCallback> callback;
-  callback.swap(flush_callback_);
-  callback->Run(params.result());
-}
-
-void VideoDecoderResource::OnPluginMsgResetComplete(
-    const ResourceMessageReplyParams& params) {
-  // All shm buffers should have been made available by now.
-  DCHECK_EQ(shm_buffers_.size(), available_shm_buffers_.size());
-
-  // Recycle any pictures which haven't been passed to the plugin.
-  while (!received_shared_images_.empty()) {
-    Post(RENDERER, PpapiHostMsg_VideoDecoder_RecycleSharedImage(
-                       received_shared_images_.front().mailbox));
-    received_shared_images_.pop();
-  }
-
-  scoped_refptr<TrackedCallback> callback;
-  callback.swap(reset_callback_);
-  callback->Run(params.result());
-}
-
-void VideoDecoderResource::RunCallbackWithError(
-    scoped_refptr<TrackedCallback>* callback) {
-  SafeRunCallback(callback, decoder_last_error_);
-}
-
-void VideoDecoderResource::WriteNextSharedImage() {
-  CHECK(!received_shared_images_.empty());
-  auto& shared_image = received_shared_images_.front();
-
-  // Internally, we identify decodes by a unique id, which the host returns
-  // to us in the picture. Use this to get the plugin's decode_id.
-  uint32_t decode_id =
-      decode_ids_[shared_image.decode_id % kMaximumPictureDelay];
-  uint32_t texture_id;
-
-  if (testing_) {
-    // In unit tests we don't have gles2_impl_, so just generate ids
-    // sequentially.
-    static uint32_t texture_ids_for_testing = 1;
-    texture_id = texture_ids_for_testing++;
-  } else {
-    CHECK(gles2_impl_);
-    // Plugin's GLES2Interface and Renderer's RasterInterface are synchronized
-    // by issued `ShallowFlushCHROMIUM` after each work. We get shared image
-    // here after VideoDecoderShim copies new content to it on RasterInterface
-    // and the context provider is flushed, so we don't need to wait on
-    // SyncToken here.
-    texture_id = base::strict_cast<uint32_t>(
-        gles2_impl_->CreateAndTexStorage2DSharedImageCHROMIUM(
-            shared_image.mailbox.name));
-    gles2_impl_->BeginSharedImageAccessDirectCHROMIUM(
-        texture_id, GL_SHARED_IMAGE_ACCESS_MODE_READWRITE_CHROMIUM);
-
-    // Flush our GLES2Interface to synchronize with the one that the plugin has.
-    // They are in a same share group.
-    gles2_impl_->Flush();
-  }
-
-  if (get_picture_) {
-    DCHECK(!get_picture_0_1_);
-    get_picture_->decode_id = decode_id;
-    get_picture_->texture_id = texture_id;
-    get_picture_->texture_target = GL_TEXTURE_2D;
-    get_picture_->texture_size = shared_image.size;
-    get_picture_->visible_rect = shared_image.visible_rect;
-    get_picture_ = nullptr;
-  } else {
-    DCHECK(get_picture_0_1_);
-    get_picture_0_1_->decode_id = decode_id;
-    get_picture_0_1_->texture_id = texture_id;
-    get_picture_0_1_->texture_target = GL_TEXTURE_2D;
-    get_picture_0_1_->texture_size = shared_image.size;
-    get_picture_0_1_ = nullptr;
-  }
-
-  used_shared_images_.insert(std::make_pair(texture_id, shared_image));
-
-  received_shared_images_.pop();
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/video_decoder_resource.h b/proxy/video_decoder_resource.h
deleted file mode 100644
index 1cc8562..0000000
--- a/proxy/video_decoder_resource.h
+++ /dev/null
@@ -1,178 +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_PROXY_VIDEO_DECODER_RESOURCE_H_
-#define PPAPI_PROXY_VIDEO_DECODER_RESOURCE_H_
-
-#include <stdint.h>
-
-#include <memory>
-#include <unordered_map>
-#include <vector>
-
-#include "base/containers/queue.h"
-#include "base/memory/scoped_refptr.h"
-#include "gpu/command_buffer/common/mailbox.h"
-#include "ppapi/proxy/connection.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/shared_impl/scoped_pp_resource.h"
-#include "ppapi/thunk/ppb_video_decoder_api.h"
-
-namespace gpu {
-namespace gles2 {
-class GLES2Implementation;
-}
-}
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT VideoDecoderResource
-    : public PluginResource,
-      public thunk::PPB_VideoDecoder_API {
- public:
-  VideoDecoderResource(Connection connection, PP_Instance instance);
-
-  VideoDecoderResource(const VideoDecoderResource&) = delete;
-  VideoDecoderResource& operator=(const VideoDecoderResource&) = delete;
-
-  ~VideoDecoderResource() override;
-
-  // Resource overrides.
-  thunk::PPB_VideoDecoder_API* AsPPB_VideoDecoder_API() override;
-
-  // PPB_VideoDecoder_API implementation.
-  int32_t Initialize0_1(
-      PP_Resource graphics_context,
-      PP_VideoProfile profile,
-      PP_Bool allow_software_fallback,
-      scoped_refptr<TrackedCallback> callback) override;
-  int32_t Initialize0_2(
-      PP_Resource graphics_context,
-      PP_VideoProfile profile,
-      PP_HardwareAcceleration acceleration,
-      scoped_refptr<TrackedCallback> callback) override;
-  int32_t Initialize(PP_Resource graphics_context,
-                     PP_VideoProfile profile,
-                     PP_HardwareAcceleration acceleration,
-                     uint32_t min_picture_count,
-                     scoped_refptr<TrackedCallback> callback) override;
-  int32_t Decode(uint32_t decode_id,
-                 uint32_t size,
-                 const void* buffer,
-                 scoped_refptr<TrackedCallback> callback) override;
-  int32_t GetPicture0_1(
-      PP_VideoPicture_0_1* picture,
-      scoped_refptr<TrackedCallback> callback) override;
-  int32_t GetPicture(PP_VideoPicture* picture,
-                     scoped_refptr<TrackedCallback> callback) override;
-  void RecyclePicture(const PP_VideoPicture* picture) override;
-  int32_t Flush(scoped_refptr<TrackedCallback> callback) override;
-  int32_t Reset(scoped_refptr<TrackedCallback> callback) override;
-
-  // PluginResource implementation.
-  void OnReplyReceived(const ResourceMessageReplyParams& params,
-                       const IPC::Message& msg) override;
-
-  // Called only by unit tests. This bypasses Graphics3D setup, which doesn't
-  // work in ppapi::proxy::PluginProxyTest.
-  void SetForTest();
-
- private:
-  // Struct to hold a shared memory buffer.
-  struct ShmBuffer {
-    ShmBuffer(base::UnsafeSharedMemoryRegion region, uint32_t shm_id);
-    ~ShmBuffer();
-
-    base::UnsafeSharedMemoryRegion region;
-    base::WritableSharedMemoryMapping mapping;
-    void* addr = nullptr;
-    // Index into shm_buffers_ vector, used as an id. This should map 1:1 to
-    // the index on the host side of the proxy.
-    const uint32_t shm_id;
-  };
-
-  // Struct to hold a shared image received from the decoder.
-  struct ReceivedSharedImage {
-    int32_t decode_id;
-    gpu::Mailbox mailbox;
-    PP_Size size;
-    PP_Rect visible_rect;
-  };
-
-  // Unsolicited reply message handlers.
-  void OnPluginMsgSharedImageReady(const ResourceMessageReplyParams& params,
-                                   int32_t decode_id,
-                                   const gpu::Mailbox& mailbox,
-                                   const PP_Size& size,
-                                   const PP_Rect& visible_rect);
-
-  void OnPluginMsgNotifyError(const ResourceMessageReplyParams& params,
-                              int32_t error);
-
-  // Reply message handlers for operations that are done in the host.
-  void OnPluginMsgInitializeComplete(const ResourceMessageReplyParams& params);
-  void OnPluginMsgDecodeComplete(const ResourceMessageReplyParams& params,
-                                 uint32_t shm_id);
-  void OnPluginMsgFlushComplete(const ResourceMessageReplyParams& params);
-  void OnPluginMsgResetComplete(const ResourceMessageReplyParams& params);
-
-  void RunCallbackWithError(scoped_refptr<TrackedCallback>* callback);
-  void WriteNextSharedImage();
-
-  // The shared memory buffers.
-  std::vector<std::unique_ptr<ShmBuffer>> shm_buffers_;
-
-  // List of available shared memory buffers.
-  using ShmBufferList = std::vector<ShmBuffer*>;
-  ShmBufferList available_shm_buffers_;
-
-  // Queue of received shared images.
-  base::queue<ReceivedSharedImage> received_shared_images_;
-
-  // Pending callbacks.
-  scoped_refptr<TrackedCallback> initialize_callback_;
-  scoped_refptr<TrackedCallback> decode_callback_;
-  scoped_refptr<TrackedCallback> get_picture_callback_;
-  scoped_refptr<TrackedCallback> flush_callback_;
-  scoped_refptr<TrackedCallback> reset_callback_;
-
-  // Number of Decode calls made, mod 2^31, to serve as a uid for each decode.
-  int32_t num_decodes_;
-  // The maximum delay (in Decode calls) before we receive a picture. If we
-  // haven't received a picture from a Decode call after this many successive
-  // calls to Decode, then we will never receive a picture from the call.
-  // Note that this isn't guaranteed by H264 or other codecs. In practice, this
-  // number is less than 16. Make it much larger just to be safe.
-  // NOTE: because we count decodes mod 2^31, this value must be a power of 2.
-  static const int kMaximumPictureDelay = 128;
-  uint32_t decode_ids_[kMaximumPictureDelay];
-
-  uint32_t min_picture_count_;
-
-  // State for pending get_picture_callback_.
-  PP_VideoPicture* get_picture_;
-  PP_VideoPicture_0_1* get_picture_0_1_;
-
-  ScopedPPResource graphics3d_;
-  gpu::gles2::GLES2Implementation* gles2_impl_;
-
-  bool initialized_;
-  bool testing_;
-  int32_t decoder_last_error_;
-
-  // |used_shared_images_| maps texture names to ReceivedSharedImages that are
-  // in use by the plugin.
-  base::flat_map<uint32_t, ReceivedSharedImage> used_shared_images_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_VIDEO_DECODER_RESOURCE_H_
diff --git a/proxy/video_encoder_resource.cc b/proxy/video_encoder_resource.cc
deleted file mode 100644
index 8bc3d00..0000000
--- a/proxy/video_encoder_resource.cc
+++ /dev/null
@@ -1,482 +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/proxy/video_encoder_resource.h"
-
-#include <memory>
-#include <utility>
-
-#include "base/functional/bind.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "base/numerics/safe_conversions.h"
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/video_frame_resource.h"
-#include "ppapi/shared_impl/array_writer.h"
-#include "ppapi/shared_impl/media_stream_buffer.h"
-#include "ppapi/shared_impl/media_stream_buffer_manager.h"
-#include "ppapi/thunk/enter.h"
-
-using ppapi::proxy::SerializedHandle;
-using ppapi::thunk::EnterResourceNoLock;
-using ppapi::thunk::PPB_VideoEncoder_API;
-
-namespace ppapi {
-namespace proxy {
-
-namespace {
-
-std::vector<PP_VideoProfileDescription_0_1> PP_VideoProfileDescriptionTo_0_1(
-    std::vector<PP_VideoProfileDescription> profiles) {
-  std::vector<PP_VideoProfileDescription_0_1> profiles_0_1;
-
-  for (uint32_t i = 0; i < profiles.size(); ++i) {
-    const PP_VideoProfileDescription& profile = profiles[i];
-    PP_VideoProfileDescription_0_1 profile_0_1;
-
-    profile_0_1.profile = profile.profile;
-    profile_0_1.max_resolution = profile.max_resolution;
-    profile_0_1.max_framerate_numerator = profile.max_framerate_numerator;
-    profile_0_1.max_framerate_denominator = profile.max_framerate_denominator;
-    profile_0_1.acceleration = profile.hardware_accelerated == PP_TRUE
-                                   ? PP_HARDWAREACCELERATION_ONLY
-                                   : PP_HARDWAREACCELERATION_NONE;
-
-    profiles_0_1.push_back(profile_0_1);
-  }
-
-  return profiles_0_1;
-}
-
-}  // namespace
-
-VideoEncoderResource::ShmBuffer::ShmBuffer(
-    uint32_t id,
-    base::WritableSharedMemoryMapping mapping)
-    : id(id), mapping(std::move(mapping)) {}
-
-VideoEncoderResource::ShmBuffer::~ShmBuffer() {
-}
-
-VideoEncoderResource::BitstreamBuffer::BitstreamBuffer(uint32_t id,
-                                                       uint32_t size,
-                                                       bool key_frame)
-    : id(id), size(size), key_frame(key_frame) {
-}
-
-VideoEncoderResource::BitstreamBuffer::~BitstreamBuffer() {
-}
-
-VideoEncoderResource::VideoEncoderResource(Connection connection,
-                                           PP_Instance instance)
-    : PluginResource(connection, instance),
-      initialized_(false),
-      closed_(false),
-      // Set |encoder_last_error_| to PP_OK after successful initialization.
-      // This makes error checking a little more concise, since we can check
-      // that the encoder has been initialized and hasn't returned an error by
-      // just testing |encoder_last_error_|.
-      encoder_last_error_(PP_ERROR_FAILED),
-      input_frame_count_(0),
-      input_coded_size_(PP_MakeSize(0, 0)),
-      buffer_manager_(this),
-      get_video_frame_data_(nullptr),
-      get_bitstream_buffer_data_(nullptr) {
-  SendCreate(RENDERER, PpapiHostMsg_VideoEncoder_Create());
-}
-
-VideoEncoderResource::~VideoEncoderResource() {
-  Close();
-}
-
-PPB_VideoEncoder_API* VideoEncoderResource::AsPPB_VideoEncoder_API() {
-  return this;
-}
-
-int32_t VideoEncoderResource::GetSupportedProfiles(
-    const PP_ArrayOutput& output,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (TrackedCallback::IsPending(get_supported_profiles_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  get_supported_profiles_callback_ = callback;
-  Call<PpapiPluginMsg_VideoEncoder_GetSupportedProfilesReply>(
-      RENDERER, PpapiHostMsg_VideoEncoder_GetSupportedProfiles(),
-      base::BindOnce(
-          &VideoEncoderResource::OnPluginMsgGetSupportedProfilesReply, this,
-          output, false));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t VideoEncoderResource::GetSupportedProfiles0_1(
-    const PP_ArrayOutput& output,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (TrackedCallback::IsPending(get_supported_profiles_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  get_supported_profiles_callback_ = callback;
-  Call<PpapiPluginMsg_VideoEncoder_GetSupportedProfilesReply>(
-      RENDERER, PpapiHostMsg_VideoEncoder_GetSupportedProfiles(),
-      base::BindOnce(
-          &VideoEncoderResource::OnPluginMsgGetSupportedProfilesReply, this,
-          output, true));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t VideoEncoderResource::GetFramesRequired() {
-  if (encoder_last_error_)
-    return encoder_last_error_;
-  return input_frame_count_;
-}
-
-int32_t VideoEncoderResource::GetFrameCodedSize(PP_Size* size) {
-  if (encoder_last_error_)
-    return encoder_last_error_;
-  *size = input_coded_size_;
-  return PP_OK;
-}
-
-int32_t VideoEncoderResource::Initialize(
-    PP_VideoFrame_Format input_format,
-    const PP_Size* input_visible_size,
-    PP_VideoProfile output_profile,
-    uint32_t initial_bitrate,
-    PP_HardwareAcceleration acceleration,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (initialized_)
-    return PP_ERROR_FAILED;
-  if (TrackedCallback::IsPending(initialize_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  initialize_callback_ = callback;
-  Call<PpapiPluginMsg_VideoEncoder_InitializeReply>(
-      RENDERER,
-      PpapiHostMsg_VideoEncoder_Initialize(input_format, *input_visible_size,
-                                           output_profile, initial_bitrate,
-                                           acceleration),
-      base::BindOnce(&VideoEncoderResource::OnPluginMsgInitializeReply, this));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t VideoEncoderResource::GetVideoFrame(
-    PP_Resource* video_frame,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (encoder_last_error_)
-    return encoder_last_error_;
-
-  if (TrackedCallback::IsPending(get_video_frame_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  get_video_frame_data_ = video_frame;
-  get_video_frame_callback_ = callback;
-
-  // Lazily ask for a shared memory buffer in which video frames are allocated.
-  if (buffer_manager_.number_of_buffers() == 0) {
-    Call<PpapiPluginMsg_VideoEncoder_GetVideoFramesReply>(
-        RENDERER, PpapiHostMsg_VideoEncoder_GetVideoFrames(),
-        base::BindOnce(&VideoEncoderResource::OnPluginMsgGetVideoFramesReply,
-                       this));
-  } else {
-    TryWriteVideoFrame();
-  }
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t VideoEncoderResource::Encode(
-    PP_Resource video_frame,
-    PP_Bool force_keyframe,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (encoder_last_error_)
-    return encoder_last_error_;
-
-  VideoFrameMap::iterator it = video_frames_.find(video_frame);
-  if (it == video_frames_.end())
-    // TODO(llandwerlin): accept MediaStreamVideoTrack's video frames.
-    return PP_ERROR_BADRESOURCE;
-
-  scoped_refptr<VideoFrameResource> frame_resource = it->second;
-
-  encode_callbacks_.insert(std::make_pair(video_frame, callback));
-
-  Call<PpapiPluginMsg_VideoEncoder_EncodeReply>(
-      RENDERER,
-      PpapiHostMsg_VideoEncoder_Encode(frame_resource->GetBufferIndex(),
-                                       PP_ToBool(force_keyframe)),
-      base::BindOnce(&VideoEncoderResource::OnPluginMsgEncodeReply, this,
-                     video_frame));
-
-  // Invalidate the frame to prevent the plugin from modifying it.
-  it->second->Invalidate();
-  video_frames_.erase(it);
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t VideoEncoderResource::GetBitstreamBuffer(
-    PP_BitstreamBuffer* bitstream_buffer,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (encoder_last_error_)
-    return encoder_last_error_;
-  if (TrackedCallback::IsPending(get_bitstream_buffer_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  get_bitstream_buffer_callback_ = callback;
-  get_bitstream_buffer_data_ = bitstream_buffer;
-
-  if (!available_bitstream_buffers_.empty()) {
-    BitstreamBuffer buffer(available_bitstream_buffers_.front());
-    available_bitstream_buffers_.pop_front();
-    WriteBitstreamBuffer(buffer);
-  }
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void VideoEncoderResource::RecycleBitstreamBuffer(
-    const PP_BitstreamBuffer* bitstream_buffer) {
-  if (encoder_last_error_)
-    return;
-  BitstreamBufferMap::const_iterator iter =
-      bitstream_buffer_map_.find(bitstream_buffer->buffer);
-  if (iter != bitstream_buffer_map_.end()) {
-    Post(RENDERER,
-         PpapiHostMsg_VideoEncoder_RecycleBitstreamBuffer(iter->second));
-  }
-}
-
-void VideoEncoderResource::RequestEncodingParametersChange(uint32_t bitrate,
-                                                           uint32_t framerate) {
-  if (encoder_last_error_)
-    return;
-  Post(RENDERER, PpapiHostMsg_VideoEncoder_RequestEncodingParametersChange(
-                     bitrate, framerate));
-}
-
-void VideoEncoderResource::Close() {
-  if (closed_)
-    return;
-  Post(RENDERER, PpapiHostMsg_VideoEncoder_Close());
-  closed_ = true;
-  if (!encoder_last_error_ || !initialized_)
-    NotifyError(PP_ERROR_ABORTED);
-  ReleaseFrames();
-}
-
-void VideoEncoderResource::OnReplyReceived(
-    const ResourceMessageReplyParams& params,
-    const IPC::Message& msg) {
-  PPAPI_BEGIN_MESSAGE_MAP(VideoEncoderResource, msg)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_VideoEncoder_BitstreamBuffers,
-        OnPluginMsgBitstreamBuffers)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_VideoEncoder_BitstreamBufferReady,
-        OnPluginMsgBitstreamBufferReady)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(PpapiPluginMsg_VideoEncoder_NotifyError,
-                                        OnPluginMsgNotifyError)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(
-        PluginResource::OnReplyReceived(params, msg))
-  PPAPI_END_MESSAGE_MAP()
-}
-
-void VideoEncoderResource::OnPluginMsgGetSupportedProfilesReply(
-    const PP_ArrayOutput& output,
-    bool version0_1,
-    const ResourceMessageReplyParams& params,
-    const std::vector<PP_VideoProfileDescription>& profiles) {
-  int32_t error = params.result();
-  if (error) {
-    NotifyError(error);
-    return;
-  }
-
-  ArrayWriter writer(output);
-  if (!writer.is_valid()) {
-    SafeRunCallback(&get_supported_profiles_callback_, PP_ERROR_BADARGUMENT);
-    return;
-  }
-
-  bool write_result;
-  if (version0_1)
-    write_result =
-        writer.StoreVector(PP_VideoProfileDescriptionTo_0_1(profiles));
-  else
-    write_result = writer.StoreVector(profiles);
-
-  if (!write_result) {
-    SafeRunCallback(&get_supported_profiles_callback_, PP_ERROR_FAILED);
-    return;
-  }
-
-  SafeRunCallback(&get_supported_profiles_callback_,
-                  base::checked_cast<int32_t>(profiles.size()));
-}
-
-void VideoEncoderResource::OnPluginMsgInitializeReply(
-    const ResourceMessageReplyParams& params,
-    uint32_t input_frame_count,
-    const PP_Size& input_coded_size) {
-  DCHECK(!initialized_);
-
-  encoder_last_error_ = params.result();
-  if (!encoder_last_error_)
-    initialized_ = true;
-
-  input_frame_count_ = input_frame_count;
-  input_coded_size_ = input_coded_size;
-
-  SafeRunCallback(&initialize_callback_, encoder_last_error_);
-}
-
-void VideoEncoderResource::OnPluginMsgGetVideoFramesReply(
-    const ResourceMessageReplyParams& params,
-    uint32_t frame_count,
-    uint32_t frame_length,
-    const PP_Size& frame_size) {
-  int32_t error = params.result();
-  if (error) {
-    NotifyError(error);
-    return;
-  }
-
-  base::UnsafeSharedMemoryRegion buffer_region;
-  params.TakeUnsafeSharedMemoryRegionAtIndex(0, &buffer_region);
-
-  if (!buffer_manager_.SetBuffers(frame_count, frame_length,
-                                  std::move(buffer_region), true)) {
-    NotifyError(PP_ERROR_FAILED);
-    return;
-  }
-
-  if (TrackedCallback::IsPending(get_video_frame_callback_))
-    TryWriteVideoFrame();
-}
-
-void VideoEncoderResource::OnPluginMsgEncodeReply(
-    PP_Resource video_frame,
-    const ResourceMessageReplyParams& params,
-    uint32_t frame_id) {
-  // We need to ensure there are still callbacks to be called before
-  // processing this message. We might receive a EncodeReply message
-  // after having sent a Close message to the renderer. In this case,
-  // we don't have any callback left to call.
-  if (encode_callbacks_.empty())
-    return;
-  encoder_last_error_ = params.result();
-
-  EncodeMap::iterator it = encode_callbacks_.find(video_frame);
-  CHECK(encode_callbacks_.end() != it);
-
-  scoped_refptr<TrackedCallback> callback = it->second;
-  encode_callbacks_.erase(it);
-  SafeRunCallback(&callback, encoder_last_error_);
-
-  buffer_manager_.EnqueueBuffer(frame_id);
-  // If the plugin is waiting for a video frame, we can give the one
-  // that just became available again.
-  if (TrackedCallback::IsPending(get_video_frame_callback_))
-    TryWriteVideoFrame();
-}
-
-void VideoEncoderResource::OnPluginMsgBitstreamBuffers(
-    const ResourceMessageReplyParams& params,
-    uint32_t buffer_length) {
-  std::vector<base::UnsafeSharedMemoryRegion> shm_regions;
-  for (size_t i = 0; i < params.handles().size(); ++i) {
-    base::UnsafeSharedMemoryRegion region;
-    params.TakeUnsafeSharedMemoryRegionAtIndex(i, &region);
-    shm_regions.push_back(std::move(region));
-  }
-  if (shm_regions.size() == 0) {
-    NotifyError(PP_ERROR_FAILED);
-    return;
-  }
-
-  for (size_t i = 0; i < shm_regions.size(); ++i) {
-    base::WritableSharedMemoryMapping mapping = shm_regions[i].Map();
-    CHECK(mapping.IsValid());
-    auto buffer = std::make_unique<ShmBuffer>(i, std::move(mapping));
-    bitstream_buffer_map_.insert(
-        std::make_pair(buffer->mapping.memory(), buffer->id));
-    shm_buffers_.push_back(std::move(buffer));
-  }
-}
-
-void VideoEncoderResource::OnPluginMsgBitstreamBufferReady(
-    const ResourceMessageReplyParams& params,
-    uint32_t buffer_id,
-    uint32_t buffer_size,
-    bool key_frame) {
-  available_bitstream_buffers_.push_back(
-      BitstreamBuffer(buffer_id, buffer_size, key_frame));
-
-  if (TrackedCallback::IsPending(get_bitstream_buffer_callback_)) {
-    BitstreamBuffer buffer(available_bitstream_buffers_.front());
-    available_bitstream_buffers_.pop_front();
-    WriteBitstreamBuffer(buffer);
-  }
-}
-
-void VideoEncoderResource::OnPluginMsgNotifyError(
-    const ResourceMessageReplyParams& params,
-    int32_t error) {
-  NotifyError(error);
-}
-
-void VideoEncoderResource::NotifyError(int32_t error) {
-  encoder_last_error_ = error;
-  SafeRunCallback(&get_supported_profiles_callback_, error);
-  SafeRunCallback(&initialize_callback_, error);
-  SafeRunCallback(&get_video_frame_callback_, error);
-  get_video_frame_data_ = nullptr;
-  SafeRunCallback(&get_bitstream_buffer_callback_, error);
-  get_bitstream_buffer_data_ = nullptr;
-  for (EncodeMap::iterator it = encode_callbacks_.begin();
-       it != encode_callbacks_.end(); ++it) {
-    scoped_refptr<TrackedCallback> callback = it->second;
-    SafeRunCallback(&callback, error);
-  }
-  encode_callbacks_.clear();
-}
-
-void VideoEncoderResource::TryWriteVideoFrame() {
-  DCHECK(TrackedCallback::IsPending(get_video_frame_callback_));
-
-  int32_t frame_id = buffer_manager_.DequeueBuffer();
-  if (frame_id < 0)
-    return;
-
-  scoped_refptr<VideoFrameResource> resource = new VideoFrameResource(
-      pp_instance(), frame_id, buffer_manager_.GetBufferPointer(frame_id));
-  video_frames_.insert(
-      VideoFrameMap::value_type(resource->pp_resource(), resource));
-
-  *get_video_frame_data_ = resource->GetReference();
-  get_video_frame_data_ = nullptr;
-  SafeRunCallback(&get_video_frame_callback_, PP_OK);
-}
-
-void VideoEncoderResource::WriteBitstreamBuffer(const BitstreamBuffer& buffer) {
-  DCHECK_LT(buffer.id, shm_buffers_.size());
-
-  get_bitstream_buffer_data_->size = buffer.size;
-  get_bitstream_buffer_data_->buffer =
-      shm_buffers_[buffer.id]->mapping.memory();
-  get_bitstream_buffer_data_->key_frame = PP_FromBool(buffer.key_frame);
-  get_bitstream_buffer_data_ = nullptr;
-  SafeRunCallback(&get_bitstream_buffer_callback_, PP_OK);
-}
-
-void VideoEncoderResource::ReleaseFrames() {
-  for (VideoFrameMap::iterator it = video_frames_.begin();
-       it != video_frames_.end(); ++it) {
-    it->second->Invalidate();
-    it->second = nullptr;
-  }
-  video_frames_.clear();
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/video_encoder_resource.h b/proxy/video_encoder_resource.h
deleted file mode 100644
index 0aa0194..0000000
--- a/proxy/video_encoder_resource.h
+++ /dev/null
@@ -1,165 +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_PROXY_VIDEO_ENCODER_RESOURCE_H_
-#define PPAPI_PROXY_VIDEO_ENCODER_RESOURCE_H_
-
-#include <stdint.h>
-
-#include <memory>
-#include <vector>
-
-#include "base/containers/circular_deque.h"
-#include "base/memory/scoped_refptr.h"
-#include "base/memory/shared_memory_mapping.h"
-#include "ppapi/proxy/connection.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/shared_impl/media_stream_buffer_manager.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_video_encoder_api.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace proxy {
-
-class VideoFrameResource;
-
-class PPAPI_PROXY_EXPORT VideoEncoderResource
-    : public PluginResource,
-      public thunk::PPB_VideoEncoder_API,
-      public ppapi::MediaStreamBufferManager::Delegate {
- public:
-  VideoEncoderResource(Connection connection, PP_Instance instance);
-
-  VideoEncoderResource(const VideoEncoderResource&) = delete;
-  VideoEncoderResource& operator=(const VideoEncoderResource&) = delete;
-
-  ~VideoEncoderResource() override;
-
-  thunk::PPB_VideoEncoder_API* AsPPB_VideoEncoder_API() override;
-
- private:
-  struct ShmBuffer {
-    ShmBuffer(uint32_t id, base::WritableSharedMemoryMapping mapping);
-    ~ShmBuffer();
-
-    // Index of the buffer in the vector. Buffers have the same id in
-    // the plugin and the host.
-    uint32_t id;
-    base::WritableSharedMemoryMapping mapping;
-  };
-
-  struct BitstreamBuffer {
-    BitstreamBuffer(uint32_t id, uint32_t size, bool key_frame);
-    ~BitstreamBuffer();
-
-    // Index of the buffer in the vector. Same as ShmBuffer::id.
-    uint32_t id;
-    uint32_t size;
-    bool key_frame;
-  };
-
-  // PPB_VideoEncoder_API implementation.
-  int32_t GetSupportedProfiles(
-      const PP_ArrayOutput& output,
-      const scoped_refptr<TrackedCallback>& callback) override;
-  int32_t GetSupportedProfiles0_1(
-      const PP_ArrayOutput& output,
-      const scoped_refptr<TrackedCallback>& callback) override;
-  int32_t Initialize(PP_VideoFrame_Format input_format,
-                     const PP_Size* input_visible_size,
-                     PP_VideoProfile output_profile,
-                     uint32_t initial_bitrate,
-                     PP_HardwareAcceleration acceleration,
-                     const scoped_refptr<TrackedCallback>& callback) override;
-  int32_t GetFramesRequired() override;
-  int32_t GetFrameCodedSize(PP_Size* size) override;
-  int32_t GetVideoFrame(
-      PP_Resource* video_frame,
-      const scoped_refptr<TrackedCallback>& callback) override;
-  int32_t Encode(PP_Resource video_frame,
-                 PP_Bool force_keyframe,
-                 const scoped_refptr<TrackedCallback>& callback) override;
-  int32_t GetBitstreamBuffer(
-      PP_BitstreamBuffer* picture,
-      const scoped_refptr<TrackedCallback>& callback) override;
-  void RecycleBitstreamBuffer(const PP_BitstreamBuffer* picture) override;
-  void RequestEncodingParametersChange(uint32_t bitrate,
-                                       uint32_t framerate) override;
-  void Close() override;
-
-  // PluginResource implementation.
-  void OnReplyReceived(const ResourceMessageReplyParams& params,
-                       const IPC::Message& msg) override;
-
-  // Reply message handlers for operations that are done in the host.
-  void OnPluginMsgGetSupportedProfilesReply(
-      const PP_ArrayOutput& output,
-      bool version0_1,
-      const ResourceMessageReplyParams& params,
-      const std::vector<PP_VideoProfileDescription>& profiles);
-  void OnPluginMsgInitializeReply(const ResourceMessageReplyParams& params,
-                                  uint32_t input_frame_count,
-                                  const PP_Size& input_coded_size);
-  void OnPluginMsgGetVideoFramesReply(const ResourceMessageReplyParams& params,
-                                      uint32_t frame_count,
-                                      uint32_t frame_length,
-                                      const PP_Size& frame_size);
-  void OnPluginMsgEncodeReply(PP_Resource video_frame,
-                              const ResourceMessageReplyParams& params,
-                              uint32_t frame_id);
-
-  // Unsolicited reply message handlers.
-  void OnPluginMsgBitstreamBuffers(const ResourceMessageReplyParams& params,
-                                   uint32_t buffer_length);
-  void OnPluginMsgBitstreamBufferReady(const ResourceMessageReplyParams& params,
-                                       uint32_t buffer_id,
-                                       uint32_t buffer_size,
-                                       bool key_frame);
-  void OnPluginMsgNotifyError(const ResourceMessageReplyParams& params,
-                              int32_t error);
-
-  // Internal utility functions.
-  void NotifyError(int32_t error);
-  void TryWriteVideoFrame();
-  void WriteBitstreamBuffer(const BitstreamBuffer& buffer);
-  void ReleaseFrames();
-
-  bool initialized_;
-  bool closed_;
-  int32_t encoder_last_error_;
-
-  int32_t input_frame_count_;
-  PP_Size input_coded_size_;
-
-  MediaStreamBufferManager buffer_manager_;
-
-  typedef std::map<PP_Resource, scoped_refptr<VideoFrameResource> >
-      VideoFrameMap;
-  VideoFrameMap video_frames_;
-
-  std::vector<std::unique_ptr<ShmBuffer>> shm_buffers_;
-
-  base::circular_deque<BitstreamBuffer> available_bitstream_buffers_;
-  using BitstreamBufferMap = std::map<void*, uint32_t>;
-  BitstreamBufferMap bitstream_buffer_map_;
-
-  scoped_refptr<TrackedCallback> get_supported_profiles_callback_;
-  scoped_refptr<TrackedCallback> initialize_callback_;
-  scoped_refptr<TrackedCallback> get_video_frame_callback_;
-  PP_Resource* get_video_frame_data_;
-
-  using EncodeMap = std::map<PP_Resource, scoped_refptr<TrackedCallback>>;
-  EncodeMap encode_callbacks_;
-
-  scoped_refptr<TrackedCallback> get_bitstream_buffer_callback_;
-  PP_BitstreamBuffer* get_bitstream_buffer_data_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_VIDEO_ENCODER_RESOURCE_H_
diff --git a/proxy/video_frame_resource.cc b/proxy/video_frame_resource.cc
deleted file mode 100644
index 833c93b..0000000
--- a/proxy/video_frame_resource.cc
+++ /dev/null
@@ -1,96 +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/proxy/video_frame_resource.h"
-
-#include "base/logging.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-namespace proxy {
-
-VideoFrameResource::VideoFrameResource(PP_Instance instance,
-                                       int32_t index,
-                                       MediaStreamBuffer* buffer)
-    : Resource(OBJECT_IS_PROXY, instance),
-      index_(index),
-      buffer_(buffer) {
-  DCHECK_EQ(buffer_->header.type, MediaStreamBuffer::TYPE_VIDEO);
-}
-
-VideoFrameResource::~VideoFrameResource() {
-  CHECK(!buffer_) << "An unused (or unrecycled) frame is destroyed.";
-}
-
-thunk::PPB_VideoFrame_API* VideoFrameResource::AsPPB_VideoFrame_API() {
-  return this;
-}
-
-PP_TimeDelta VideoFrameResource::GetTimestamp() {
-  if (!buffer_) {
-    VLOG(1) << "Frame is invalid";
-    return 0.0;
-  }
-  return buffer_->video.timestamp;
-}
-
-void VideoFrameResource::SetTimestamp(PP_TimeDelta timestamp) {
-  if (!buffer_) {
-    VLOG(1) << "Frame is invalid";
-    return;
-  }
-  buffer_->video.timestamp = timestamp;
-}
-
-PP_VideoFrame_Format VideoFrameResource::GetFormat() {
-  if (!buffer_) {
-    VLOG(1) << "Frame is invalid";
-    return PP_VIDEOFRAME_FORMAT_UNKNOWN;
-  }
-  return buffer_->video.format;
-}
-
-PP_Bool VideoFrameResource::GetSize(PP_Size* size) {
-  if (!buffer_) {
-    VLOG(1) << "Frame is invalid";
-    return PP_FALSE;
-  }
-  *size = buffer_->video.size;
-  return PP_TRUE;
-}
-
-void* VideoFrameResource::GetDataBuffer() {
-  if (!buffer_) {
-    VLOG(1) << "Frame is invalid";
-    return NULL;
-  }
-  return buffer_->video.data;
-}
-
-uint32_t VideoFrameResource::GetDataBufferSize() {
-  if (!buffer_) {
-    VLOG(1) << "Frame is invalid";
-    return 0;
-  }
-  return buffer_->video.data_size;
-}
-
-MediaStreamBuffer* VideoFrameResource::GetBuffer() {
-  return buffer_;
-}
-
-int32_t VideoFrameResource::GetBufferIndex() {
-  return index_;
-}
-
-void VideoFrameResource::Invalidate() {
-  DCHECK(buffer_);
-  DCHECK_GE(index_, 0);
-  buffer_ = NULL;
-  index_ = -1;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/video_frame_resource.h b/proxy/video_frame_resource.h
deleted file mode 100644
index ff6de96..0000000
--- a/proxy/video_frame_resource.h
+++ /dev/null
@@ -1,54 +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_PROXY_VIDEO_FRAME_RESOURCE_H_
-#define PPAPI_PROXY_VIDEO_FRAME_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "ppapi/proxy/ppapi_proxy_export.h"
-#include "ppapi/shared_impl/media_stream_buffer.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_video_frame_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT VideoFrameResource : public Resource,
-                                              public thunk::PPB_VideoFrame_API {
- public:
-  VideoFrameResource(PP_Instance instance,
-                     int32_t index,
-                     MediaStreamBuffer* buffer);
-
-  VideoFrameResource(const VideoFrameResource&) = delete;
-  VideoFrameResource& operator=(const VideoFrameResource&) = delete;
-
-  ~VideoFrameResource() override;
-
-  // PluginResource overrides:
-  thunk::PPB_VideoFrame_API* AsPPB_VideoFrame_API() override;
-
-  // PPB_VideoFrame_API overrides:
-  PP_TimeDelta GetTimestamp() override;
-  void SetTimestamp(PP_TimeDelta timestamp) override;
-  PP_VideoFrame_Format GetFormat() override;
-  PP_Bool GetSize(PP_Size* size) override;
-  void* GetDataBuffer() override;
-  uint32_t GetDataBufferSize() override;
-  MediaStreamBuffer* GetBuffer() override;
-  int32_t GetBufferIndex() override;
-  void Invalidate() override;
-
-  // Frame index
-  int32_t index_;
-
-  MediaStreamBuffer* buffer_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_VIDEO_FRAME_RESOURCE_H_
diff --git a/proxy/vpn_provider_resource.cc b/proxy/vpn_provider_resource.cc
deleted file mode 100644
index 0dd6c83..0000000
--- a/proxy/vpn_provider_resource.cc
+++ /dev/null
@@ -1,264 +0,0 @@
-// Copyright 2016 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/proxy/vpn_provider_resource.h"
-
-#include <memory>
-
-#include "base/functional/bind.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/dispatch_reply_message.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/array_var.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-namespace ppapi {
-namespace proxy {
-
-VpnProviderResource::VpnProviderResource(Connection connection,
-                                         PP_Instance instance)
-    : PluginResource(connection, instance),
-      bind_callback_(nullptr),
-      send_packet_callback_(nullptr),
-      receive_packet_callback_(nullptr),
-      receive_packet_callback_var_(nullptr),
-      bound_(false) {
-  SendCreate(BROWSER, PpapiHostMsg_VpnProvider_Create());
-}
-
-VpnProviderResource::~VpnProviderResource() {}
-
-thunk::PPB_VpnProvider_API* VpnProviderResource::AsPPB_VpnProvider_API() {
-  return this;
-}
-
-void VpnProviderResource::OnReplyReceived(
-    const ResourceMessageReplyParams& params,
-    const IPC::Message& msg) {
-  PPAPI_BEGIN_MESSAGE_MAP(VpnProviderResource, msg)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(PpapiPluginMsg_VpnProvider_OnUnbind,
-                                        OnPluginMsgOnUnbindReceived)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_VpnProvider_OnPacketReceived,
-        OnPluginMsgOnPacketReceived)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(
-        PluginResource::OnReplyReceived(params, msg))
-  PPAPI_END_MESSAGE_MAP()
-}
-
-int32_t VpnProviderResource::Bind(
-    const PP_Var& configuration_id,
-    const PP_Var& configuration_name,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (TrackedCallback::IsPending(bind_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  StringVar* configuration_id_var = StringVar::FromPPVar(configuration_id);
-  if (!configuration_id_var)
-    return PP_ERROR_BADARGUMENT;
-  StringVar* configuration_name_var = StringVar::FromPPVar(configuration_name);
-  if (!configuration_name_var)
-    return PP_ERROR_BADARGUMENT;
-
-  bind_callback_ = callback;
-
-  Call<PpapiPluginMsg_VpnProvider_BindReply>(
-      BROWSER,
-      PpapiHostMsg_VpnProvider_Bind(configuration_id_var->value(),
-                                    configuration_name_var->value()),
-      base::BindOnce(&VpnProviderResource::OnPluginMsgBindReply, this));
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t VpnProviderResource::SendPacket(
-    const PP_Var& packet,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (!bound_)
-    return PP_ERROR_FAILED;
-  if (TrackedCallback::IsPending(send_packet_callback_))
-    return PP_ERROR_INPROGRESS;
-  if (!ArrayBufferVar::FromPPVar(packet))
-    return PP_ERROR_BADARGUMENT;
-
-  uint32_t id;
-  if (send_packet_buffer_.get() && send_packet_buffer_->GetAvailable(&id)) {
-    // Send packet immediately
-    send_packet_buffer_->SetAvailable(id, false);
-    return DoSendPacket(packet, id);
-  } else {
-    // Packet will be sent later
-    send_packet_callback_ = callback;
-    PpapiGlobals::Get()->GetVarTracker()->AddRefVar(packet);
-    send_packets_.push(packet);
-
-    return PP_OK_COMPLETIONPENDING;
-  }
-}
-
-int32_t VpnProviderResource::DoSendPacket(const PP_Var& packet, uint32_t id) {
-  // Convert packet to std::vector<char>, then send it.
-  scoped_refptr<ArrayBufferVar> packet_arraybuffer =
-      ArrayBufferVar::FromPPVar(packet);
-  if (!packet_arraybuffer.get())
-    return PP_ERROR_BADARGUMENT;
-
-  uint32_t packet_size = packet_arraybuffer->ByteLength();
-  if (packet_size > send_packet_buffer_->max_packet_size())
-    return PP_ERROR_MESSAGE_TOO_BIG;
-
-  char* packet_pointer = static_cast<char*>(packet_arraybuffer->Map());
-  memcpy(send_packet_buffer_->GetBuffer(id), packet_pointer, packet_size);
-  packet_arraybuffer->Unmap();
-
-  Call<PpapiPluginMsg_VpnProvider_SendPacketReply>(
-      BROWSER, PpapiHostMsg_VpnProvider_SendPacket(packet_size, id),
-      base::BindOnce(&VpnProviderResource::OnPluginMsgSendPacketReply, this));
-
-  return PP_OK;
-}
-
-int32_t VpnProviderResource::ReceivePacket(
-    PP_Var* packet,
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (TrackedCallback::IsPending(receive_packet_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  // Return previously received packet.
-  if (!received_packets_.empty()) {
-    receive_packet_callback_var_ = packet;
-    WritePacket();
-    return PP_OK;
-  }
-
-  // Or retain packet var and install callback.
-  receive_packet_callback_var_ = packet;
-  receive_packet_callback_ = callback;
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-void VpnProviderResource::OnPluginMsgOnUnbindReceived(
-    const ResourceMessageReplyParams& params) {
-  bound_ = false;
-
-  // Cleanup in-flight packets.
-  while (!received_packets_.empty()) {
-    received_packets_.pop();
-  }
-  while (!send_packets_.empty()) {
-    PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(send_packets_.front());
-    send_packets_.pop();
-  }
-
-  send_packet_buffer_.reset();
-  recv_packet_buffer_.reset();
-}
-
-void VpnProviderResource::OnPluginMsgOnPacketReceived(
-    const ResourceMessageReplyParams& params,
-    uint32_t packet_size,
-    uint32_t id) {
-  DCHECK_LE(packet_size, recv_packet_buffer_->max_packet_size());
-  if (!bound_) {
-    // Ignore packet and mark shared memory as available
-    Post(BROWSER, PpapiHostMsg_VpnProvider_OnPacketReceivedReply(id));
-    return;
-  }
-
-  // Append received packet to queue.
-  void* packet_pointer = recv_packet_buffer_->GetBuffer(id);
-  scoped_refptr<Var> packet_var(
-      PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferVar(packet_size,
-                                                               packet_pointer));
-  received_packets_.push(packet_var);
-
-  // Mark shared memory as available for next packet
-  Post(BROWSER, PpapiHostMsg_VpnProvider_OnPacketReceivedReply(id));
-
-  if (!TrackedCallback::IsPending(receive_packet_callback_) ||
-      TrackedCallback::IsScheduledToRun(receive_packet_callback_)) {
-    return;
-  }
-
-  scoped_refptr<TrackedCallback> callback;
-  callback.swap(receive_packet_callback_);
-  WritePacket();
-  callback->Run(PP_OK);
-}
-
-void VpnProviderResource::OnPluginMsgBindReply(
-    const ResourceMessageReplyParams& params,
-    uint32_t queue_size,
-    uint32_t max_packet_size,
-    int32_t result) {
-  if (!TrackedCallback::IsPending(bind_callback_))
-    return;
-
-  if (params.result() == PP_OK) {
-    base::UnsafeSharedMemoryRegion send_shm;
-    base::UnsafeSharedMemoryRegion recv_shm;
-    params.TakeUnsafeSharedMemoryRegionAtIndex(0, &send_shm);
-    params.TakeUnsafeSharedMemoryRegionAtIndex(1, &recv_shm);
-    if (!send_shm.IsValid() || !recv_shm.IsValid()) {
-      NOTREACHED();
-    }
-    base::WritableSharedMemoryMapping send_mapping = send_shm.Map();
-    base::WritableSharedMemoryMapping recv_mapping = recv_shm.Map();
-    if (!send_mapping.IsValid() || !recv_mapping.IsValid()) {
-      NOTREACHED();
-    }
-
-    size_t buffer_size = queue_size * max_packet_size;
-    if (send_shm.GetSize() < buffer_size || recv_shm.GetSize() < buffer_size) {
-      NOTREACHED();
-    }
-    send_packet_buffer_ = std::make_unique<ppapi::VpnProviderSharedBuffer>(
-        queue_size, max_packet_size, std::move(send_shm),
-        std::move(send_mapping));
-    recv_packet_buffer_ = std::make_unique<ppapi::VpnProviderSharedBuffer>(
-        queue_size, max_packet_size, std::move(recv_shm),
-        std::move(recv_mapping));
-
-    bound_ = (result == PP_OK);
-  }
-
-  scoped_refptr<TrackedCallback> callback;
-  callback.swap(bind_callback_);
-  callback->Run(params.result() ? params.result() : result);
-}
-
-void VpnProviderResource::OnPluginMsgSendPacketReply(
-    const ResourceMessageReplyParams& params,
-    uint32_t id) {
-  if (!send_packets_.empty() && bound_) {
-    // Process remaining packets
-    DoSendPacket(send_packets_.front(), id);
-    PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(send_packets_.front());
-    send_packets_.pop();
-  } else {
-    send_packet_buffer_->SetAvailable(id, true);
-
-    // Available slots - Run callback to process new packets.
-    if (TrackedCallback::IsPending(send_packet_callback_)) {
-      scoped_refptr<TrackedCallback> callback;
-      callback.swap(send_packet_callback_);
-      callback->Run(PP_OK);
-    }
-  }
-}
-
-void VpnProviderResource::WritePacket() {
-  if (!receive_packet_callback_var_)
-    return;
-
-  *receive_packet_callback_var_ = received_packets_.front()->GetPPVar();
-  received_packets_.pop();
-  receive_packet_callback_var_ = nullptr;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/vpn_provider_resource.h b/proxy/vpn_provider_resource.h
deleted file mode 100644
index 89a1049..0000000
--- a/proxy/vpn_provider_resource.h
+++ /dev/null
@@ -1,95 +0,0 @@
-// Copyright 2016 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_PROXY_VPN_PROVIDER_RESOURCE_H_
-#define PPAPI_PROXY_VPN_PROVIDER_RESOURCE_H_
-
-#include <memory>
-
-#include "base/containers/queue.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/shared_impl/vpn_provider_util.h"
-#include "ppapi/thunk/ppb_vpn_provider_api.h"
-
-namespace ppapi {
-namespace proxy {
-
-class PPAPI_PROXY_EXPORT VpnProviderResource
-    : public PluginResource,
-      public thunk::PPB_VpnProvider_API {
- public:
-  VpnProviderResource(Connection connection, PP_Instance instance);
-
-  VpnProviderResource(const VpnProviderResource&) = delete;
-  VpnProviderResource& operator=(const VpnProviderResource&) = delete;
-
-  virtual ~VpnProviderResource();
-
-  // PluginResource implementation.
-  virtual thunk::PPB_VpnProvider_API* AsPPB_VpnProvider_API() override;
-
-  // PPB_VpnProvider_API implementation.
-  virtual int32_t Bind(const PP_Var& configuration_id,
-                       const PP_Var& configuration_name,
-                       const scoped_refptr<TrackedCallback>& callback) override;
-  virtual int32_t SendPacket(
-      const PP_Var& packet,
-      const scoped_refptr<TrackedCallback>& callback) override;
-  virtual int32_t ReceivePacket(
-      PP_Var* packet,
-      const scoped_refptr<TrackedCallback>& callback) override;
-
- private:
-  // PluginResource overrides.
-  virtual void OnReplyReceived(const ResourceMessageReplyParams& params,
-                               const IPC::Message& msg) override;
-
-  // PPB_VpnProvider IPC Replies
-  void OnPluginMsgBindReply(const ResourceMessageReplyParams& params,
-                            uint32_t queue_size,
-                            uint32_t max_packet_size,
-                            int32_t result);
-  void OnPluginMsgSendPacketReply(const ResourceMessageReplyParams& params,
-                                  uint32_t id);
-
-  // Browser callbacks
-  void OnPluginMsgOnUnbindReceived(const ResourceMessageReplyParams& params);
-  void OnPluginMsgOnPacketReceived(const ResourceMessageReplyParams& params,
-                                   uint32_t packet_size,
-                                   uint32_t id);
-
-  // Picks up a received packet and moves it to user buffer. This method is used
-  // in both ReceivePacket() for fast returning path, and in
-  // OnPluginMsgOnPacketReceived() for delayed callback invocations.
-  void WritePacket();
-
-  // Sends a packet to the browser. This method is used in both SendPacket() for
-  // fast path, and in OnPluginMsgSendPacketReply for processing previously
-  // queued packets.
-  int32_t DoSendPacket(const PP_Var& packet, uint32_t id);
-
-  scoped_refptr<TrackedCallback> bind_callback_;
-  scoped_refptr<TrackedCallback> send_packet_callback_;
-  scoped_refptr<TrackedCallback> receive_packet_callback_;
-
-  // Keeps a pointer to the provided callback variable. Received packet will be
-  // copied to this variable on ready.
-  PP_Var* receive_packet_callback_var_;
-
-  std::unique_ptr<ppapi::VpnProviderSharedBuffer> send_packet_buffer_;
-  std::unique_ptr<ppapi::VpnProviderSharedBuffer> recv_packet_buffer_;
-
-  base::queue<PP_Var> send_packets_;
-  base::queue<scoped_refptr<Var>> received_packets_;
-
-  // Connection bound state
-  bool bound_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_VPN_PROVIDER_RESOURCE_H_
diff --git a/proxy/websocket_resource.cc b/proxy/websocket_resource.cc
deleted file mode 100644
index db3a7fd..0000000
--- a/proxy/websocket_resource.cc
+++ /dev/null
@@ -1,496 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/proxy/websocket_resource.h"
-
-#include <stddef.h>
-
-#include <limits>
-#include <set>
-#include <string>
-#include <vector>
-
-#include "base/functional/bind.h"
-#include "base/numerics/safe_conversions.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/proxy/dispatch_reply_message.h"
-#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-namespace {
-
-const uint32_t kMaxReasonSizeInBytes = 123;
-const size_t kBaseFramingOverhead = 2;
-const size_t kMaskingKeyLength = 4;
-const size_t kMinimumPayloadSizeWithTwoByteExtendedPayloadLength = 126;
-const size_t kMinimumPayloadSizeWithEightByteExtendedPayloadLength = 0x10000;
-
-uint64_t SaturateAdd(uint64_t a, uint64_t b) {
-  if (std::numeric_limits<uint64_t>::max() - a < b)
-    return std::numeric_limits<uint64_t>::max();
-  return a + b;
-}
-
-uint64_t GetFrameSize(uint64_t payload_size) {
-  uint64_t overhead = kBaseFramingOverhead + kMaskingKeyLength;
-  if (payload_size > kMinimumPayloadSizeWithEightByteExtendedPayloadLength)
-    overhead += 8;
-  else if (payload_size > kMinimumPayloadSizeWithTwoByteExtendedPayloadLength)
-    overhead += 2;
-  return SaturateAdd(payload_size, overhead);
-}
-
-bool InValidStateToReceive(PP_WebSocketReadyState state) {
-  return state == PP_WEBSOCKETREADYSTATE_OPEN ||
-         state == PP_WEBSOCKETREADYSTATE_CLOSING;
-}
-
-}  // namespace
-
-
-namespace ppapi {
-namespace proxy {
-
-WebSocketResource::WebSocketResource(Connection connection,
-                                     PP_Instance instance)
-    : PluginResource(connection, instance),
-      state_(PP_WEBSOCKETREADYSTATE_INVALID),
-      error_was_received_(false),
-      receive_callback_var_(nullptr),
-      empty_string_(new StringVar(std::string())),
-      close_code_(0),
-      close_reason_(nullptr),
-      close_was_clean_(PP_FALSE),
-      extensions_(nullptr),
-      protocol_(nullptr),
-      url_(nullptr),
-      buffered_amount_(0),
-      buffered_amount_after_close_(0) {}
-
-WebSocketResource::~WebSocketResource() {
-}
-
-thunk::PPB_WebSocket_API* WebSocketResource::AsPPB_WebSocket_API() {
-  return this;
-}
-
-int32_t WebSocketResource::Connect(
-    const PP_Var& url,
-    const PP_Var protocols[],
-    uint32_t protocol_count,
-    scoped_refptr<TrackedCallback> callback) {
-  if (TrackedCallback::IsPending(connect_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  // Connect() can be called at most once.
-  if (state_ != PP_WEBSOCKETREADYSTATE_INVALID)
-    return PP_ERROR_INPROGRESS;
-  state_ = PP_WEBSOCKETREADYSTATE_CLOSED;
-
-  // Get the URL.
-  url_ = StringVar::FromPPVar(url);
-  if (!url_.get())
-    return PP_ERROR_BADARGUMENT;
-
-  // Get the protocols.
-  std::set<std::string> protocol_set;
-  std::vector<std::string> protocol_strings;
-  protocol_strings.reserve(protocol_count);
-  for (uint32_t i = 0; i < protocol_count; ++i) {
-    scoped_refptr<StringVar> protocol(StringVar::FromPPVar(protocols[i]));
-
-    // Check invalid and empty entries.
-    if (!protocol.get() || !protocol->value().length())
-      return PP_ERROR_BADARGUMENT;
-
-    // Check duplicated protocol entries.
-    if (protocol_set.find(protocol->value()) != protocol_set.end())
-      return PP_ERROR_BADARGUMENT;
-    protocol_set.insert(protocol->value());
-
-    protocol_strings.push_back(protocol->value());
-  }
-
-  // Install callback.
-  connect_callback_ = callback;
-
-  // Create remote host in the renderer, then request to check the URL and
-  // establish the connection.
-  state_ = PP_WEBSOCKETREADYSTATE_CONNECTING;
-  SendCreate(RENDERER, PpapiHostMsg_WebSocket_Create());
-  PpapiHostMsg_WebSocket_Connect msg(url_->value(), protocol_strings);
-  Call<PpapiPluginMsg_WebSocket_ConnectReply>(
-      RENDERER, msg,
-      base::BindOnce(&WebSocketResource::OnPluginMsgConnectReply, this));
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t WebSocketResource::Close(uint16_t code,
-                                 const PP_Var& reason,
-                                 scoped_refptr<TrackedCallback> callback) {
-  if (TrackedCallback::IsPending(close_callback_))
-    return PP_ERROR_INPROGRESS;
-  if (state_ == PP_WEBSOCKETREADYSTATE_INVALID)
-    return PP_ERROR_FAILED;
-
-  // Validate |code| and |reason|.
-  scoped_refptr<StringVar> reason_string_var;
-  std::string reason_string;
-  if (code != PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED) {
-    if (code != PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE &&
-        (code < PP_WEBSOCKETSTATUSCODE_USER_REGISTERED_MIN ||
-        code > PP_WEBSOCKETSTATUSCODE_USER_PRIVATE_MAX))
-      // RFC 6455 limits applications to use reserved connection close code in
-      // section 7.4.2.. The WebSocket API (http://www.w3.org/TR/websockets/)
-      // defines this out of range error as InvalidAccessError in JavaScript.
-      return PP_ERROR_NOACCESS;
-
-    // |reason| must be ignored if it is PP_VARTYPE_UNDEFINED or |code| is
-    // PP_WEBSOCKETSTATUSCODE_NOT_SPECIFIED.
-    if (reason.type != PP_VARTYPE_UNDEFINED) {
-      // Validate |reason|.
-      reason_string_var = StringVar::FromPPVar(reason);
-      if (!reason_string_var.get() ||
-          reason_string_var->value().size() > kMaxReasonSizeInBytes)
-        return PP_ERROR_BADARGUMENT;
-      reason_string = reason_string_var->value();
-    }
-  }
-
-  // Check state.
-  if (state_ == PP_WEBSOCKETREADYSTATE_CLOSING)
-    return PP_ERROR_INPROGRESS;
-  if (state_ == PP_WEBSOCKETREADYSTATE_CLOSED)
-    return PP_OK;
-
-  // Install |callback|.
-  close_callback_ = callback;
-
-  // Abort ongoing connect.
-  if (TrackedCallback::IsPending(connect_callback_)) {
-    state_ = PP_WEBSOCKETREADYSTATE_CLOSING;
-    // Need to do a "Post" to avoid reentering the plugin.
-    connect_callback_->PostAbort();
-    connect_callback_ = nullptr;
-    Post(RENDERER, PpapiHostMsg_WebSocket_Fail(
-        "WebSocket was closed before the connection was established."));
-    return PP_OK_COMPLETIONPENDING;
-  }
-
-  // Abort ongoing receive.
-  if (TrackedCallback::IsPending(receive_callback_)) {
-    receive_callback_var_ = nullptr;
-    // Need to do a "Post" to avoid reentering the plugin.
-    receive_callback_->PostAbort();
-    receive_callback_ = nullptr;
-  }
-
-  // Close connection.
-  state_ = PP_WEBSOCKETREADYSTATE_CLOSING;
-  PpapiHostMsg_WebSocket_Close msg(static_cast<int32_t>(code),
-                                   reason_string);
-  Call<PpapiPluginMsg_WebSocket_CloseReply>(
-      RENDERER, msg,
-      base::BindOnce(&WebSocketResource::OnPluginMsgCloseReply, this));
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t WebSocketResource::ReceiveMessage(
-    PP_Var* message,
-    scoped_refptr<TrackedCallback> callback) {
-  if (TrackedCallback::IsPending(receive_callback_))
-    return PP_ERROR_INPROGRESS;
-
-  // Check state.
-  if (state_ == PP_WEBSOCKETREADYSTATE_INVALID ||
-      state_ == PP_WEBSOCKETREADYSTATE_CONNECTING)
-    return PP_ERROR_BADARGUMENT;
-
-  // Just return received message if any received message is queued.
-  if (!received_messages_.empty()) {
-    receive_callback_var_ = message;
-    return DoReceive();
-  }
-
-  // Check state again. In CLOSED state, no more messages will be received.
-  if (state_ == PP_WEBSOCKETREADYSTATE_CLOSED)
-    return PP_ERROR_BADARGUMENT;
-
-  // Returns PP_ERROR_FAILED after an error is received and received messages
-  // is exhausted.
-  if (error_was_received_)
-    return PP_ERROR_FAILED;
-
-  // Or retain |message| as buffer to store and install |callback|.
-  receive_callback_var_ = message;
-  receive_callback_ = callback;
-
-  return PP_OK_COMPLETIONPENDING;
-}
-
-int32_t WebSocketResource::SendMessage(const PP_Var& message) {
-  // Check state.
-  if (state_ == PP_WEBSOCKETREADYSTATE_INVALID ||
-      state_ == PP_WEBSOCKETREADYSTATE_CONNECTING)
-    return PP_ERROR_BADARGUMENT;
-
-  if (state_ == PP_WEBSOCKETREADYSTATE_CLOSING ||
-      state_ == PP_WEBSOCKETREADYSTATE_CLOSED) {
-    // Handle buffered_amount_after_close_.
-    uint64_t payload_size = 0;
-    if (message.type == PP_VARTYPE_STRING) {
-      scoped_refptr<StringVar> message_string = StringVar::FromPPVar(message);
-      if (message_string.get())
-        payload_size += message_string->value().length();
-    } else if (message.type == PP_VARTYPE_ARRAY_BUFFER) {
-      scoped_refptr<ArrayBufferVar> message_array_buffer =
-          ArrayBufferVar::FromPPVar(message);
-      if (message_array_buffer.get())
-        payload_size += message_array_buffer->ByteLength();
-    } else {
-      // TODO(toyoshim): Support Blob.
-      return PP_ERROR_NOTSUPPORTED;
-    }
-
-    buffered_amount_after_close_ =
-        SaturateAdd(buffered_amount_after_close_, GetFrameSize(payload_size));
-
-    return PP_ERROR_FAILED;
-  }
-
-  // Send the message.
-  if (message.type == PP_VARTYPE_STRING) {
-    // Convert message to std::string, then send it.
-    scoped_refptr<StringVar> message_string = StringVar::FromPPVar(message);
-    if (!message_string.get())
-      return PP_ERROR_BADARGUMENT;
-    Post(RENDERER, PpapiHostMsg_WebSocket_SendText(message_string->value()));
-  } else if (message.type == PP_VARTYPE_ARRAY_BUFFER) {
-    // Convert message to std::vector<uint8_t>, then send it.
-    scoped_refptr<ArrayBufferVar> message_arraybuffer =
-        ArrayBufferVar::FromPPVar(message);
-    if (!message_arraybuffer.get())
-      return PP_ERROR_BADARGUMENT;
-    uint8_t* message_data = static_cast<uint8_t*>(message_arraybuffer->Map());
-    uint32_t message_length = message_arraybuffer->ByteLength();
-    std::vector<uint8_t> message_vector(message_data,
-                                        message_data + message_length);
-    Post(RENDERER, PpapiHostMsg_WebSocket_SendBinary(message_vector));
-  } else {
-    // TODO(toyoshim): Support Blob.
-    return PP_ERROR_NOTSUPPORTED;
-  }
-  return PP_OK;
-}
-
-uint64_t WebSocketResource::GetBufferedAmount() {
-  return SaturateAdd(buffered_amount_, buffered_amount_after_close_);
-}
-
-uint16_t WebSocketResource::GetCloseCode() {
-  return close_code_;
-}
-
-PP_Var WebSocketResource::GetCloseReason() {
-  if (!close_reason_.get())
-    return empty_string_->GetPPVar();
-  return close_reason_->GetPPVar();
-}
-
-PP_Bool WebSocketResource::GetCloseWasClean() {
-  return close_was_clean_;
-}
-
-PP_Var WebSocketResource::GetExtensions() {
-  return StringVar::StringToPPVar(std::string());
-}
-
-PP_Var WebSocketResource::GetProtocol() {
-  if (!protocol_.get())
-    return empty_string_->GetPPVar();
-  return protocol_->GetPPVar();
-}
-
-PP_WebSocketReadyState WebSocketResource::GetReadyState() {
-  return state_;
-}
-
-PP_Var WebSocketResource::GetURL() {
-  if (!url_.get())
-    return empty_string_->GetPPVar();
-  return url_->GetPPVar();
-}
-
-void WebSocketResource::OnReplyReceived(
-    const ResourceMessageReplyParams& params,
-    const IPC::Message& msg) {
-  if (params.sequence()) {
-    PluginResource::OnReplyReceived(params, msg);
-    return;
-  }
-
-  PPAPI_BEGIN_MESSAGE_MAP(WebSocketResource, msg)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_WebSocket_ReceiveTextReply,
-        OnPluginMsgReceiveTextReply)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_WebSocket_ReceiveBinaryReply,
-        OnPluginMsgReceiveBinaryReply)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_0(
-        PpapiPluginMsg_WebSocket_ErrorReply,
-        OnPluginMsgErrorReply)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_WebSocket_BufferedAmountReply,
-        OnPluginMsgBufferedAmountReply)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_WebSocket_StateReply,
-        OnPluginMsgStateReply)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL(
-        PpapiPluginMsg_WebSocket_ClosedReply,
-        OnPluginMsgClosedReply)
-    PPAPI_DISPATCH_PLUGIN_RESOURCE_CALL_UNHANDLED(NOTREACHED())
-  PPAPI_END_MESSAGE_MAP()
-}
-
-void WebSocketResource::OnPluginMsgConnectReply(
-    const ResourceMessageReplyParams& params,
-    const std::string& url,
-    const std::string& protocol) {
-  if (!TrackedCallback::IsPending(connect_callback_) ||
-      TrackedCallback::IsScheduledToRun(connect_callback_)) {
-    return;
-  }
-
-  int32_t result = params.result();
-  if (result == PP_OK) {
-    state_ = PP_WEBSOCKETREADYSTATE_OPEN;
-    protocol_ = new StringVar(protocol);
-    url_ = new StringVar(url);
-  }
-  connect_callback_->Run(params.result());
-}
-
-void WebSocketResource::OnPluginMsgCloseReply(
-    const ResourceMessageReplyParams& params,
-    uint64_t buffered_amount,
-    bool was_clean,
-    uint16_t code,
-    const std::string& reason) {
-  // Set close related properties.
-  state_ = PP_WEBSOCKETREADYSTATE_CLOSED;
-  buffered_amount_ = buffered_amount;
-  close_was_clean_ = PP_FromBool(was_clean);
-  close_code_ = code;
-  close_reason_ = new StringVar(reason);
-
-  if (TrackedCallback::IsPending(receive_callback_)) {
-    receive_callback_var_ = nullptr;
-    if (!TrackedCallback::IsScheduledToRun(receive_callback_))
-      receive_callback_->PostRun(PP_ERROR_FAILED);
-    receive_callback_ = nullptr;
-  }
-
-  if (TrackedCallback::IsPending(close_callback_)) {
-    if (!TrackedCallback::IsScheduledToRun(close_callback_))
-      close_callback_->PostRun(params.result());
-    close_callback_ = nullptr;
-  }
-}
-
-void WebSocketResource::OnPluginMsgReceiveTextReply(
-    const ResourceMessageReplyParams& params,
-    const std::string& message) {
-  // Dispose packets after receiving an error or in invalid state.
-  if (error_was_received_ || !InValidStateToReceive(state_))
-    return;
-
-  // Append received data to queue.
-  received_messages_.push(scoped_refptr<Var>(new StringVar(message)));
-
-  if (!TrackedCallback::IsPending(receive_callback_) ||
-      TrackedCallback::IsScheduledToRun(receive_callback_)) {
-    return;
-  }
-
-  receive_callback_->Run(DoReceive());
-}
-
-void WebSocketResource::OnPluginMsgReceiveBinaryReply(
-    const ResourceMessageReplyParams& params,
-    const std::vector<uint8_t>& message) {
-  // Dispose packets after receiving an error or in invalid state.
-  if (error_was_received_ || !InValidStateToReceive(state_))
-    return;
-
-  // Append received data to queue.
-  scoped_refptr<Var> message_var(
-      PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferVar(
-          base::checked_cast<uint32_t>(message.size()),
-          &message.front()));
-  received_messages_.push(message_var);
-
-  if (!TrackedCallback::IsPending(receive_callback_) ||
-      TrackedCallback::IsScheduledToRun(receive_callback_)) {
-    return;
-  }
-
-  receive_callback_->Run(DoReceive());
-}
-
-void WebSocketResource::OnPluginMsgErrorReply(
-    const ResourceMessageReplyParams& params) {
-  error_was_received_ = true;
-
-  if (!TrackedCallback::IsPending(receive_callback_) ||
-      TrackedCallback::IsScheduledToRun(receive_callback_)) {
-    return;
-  }
-
-  // No more text or binary messages will be received. If there is ongoing
-  // ReceiveMessage(), we must invoke the callback with error code here.
-  receive_callback_var_ = nullptr;
-  receive_callback_->Run(PP_ERROR_FAILED);
-}
-
-void WebSocketResource::OnPluginMsgBufferedAmountReply(
-    const ResourceMessageReplyParams& params,
-    uint64_t buffered_amount) {
-  buffered_amount_ = buffered_amount;
-}
-
-void WebSocketResource::OnPluginMsgStateReply(
-    const ResourceMessageReplyParams& params,
-    int32_t state) {
-  state_ = static_cast<PP_WebSocketReadyState>(state);
-}
-
-void WebSocketResource::OnPluginMsgClosedReply(
-    const ResourceMessageReplyParams& params,
-    uint64_t buffered_amount,
-    bool was_clean,
-    uint16_t code,
-    const std::string& reason) {
-  OnPluginMsgCloseReply(params, buffered_amount, was_clean, code, reason);
-}
-
-int32_t WebSocketResource::DoReceive() {
-  if (!receive_callback_var_)
-    return PP_OK;
-
-  *receive_callback_var_ = received_messages_.front()->GetPPVar();
-  received_messages_.pop();
-  receive_callback_var_ = nullptr;
-  return PP_OK;
-}
-
-}  // namespace proxy
-}  // namespace ppapi
diff --git a/proxy/websocket_resource.h b/proxy/websocket_resource.h
deleted file mode 100644
index 9aef06b..0000000
--- a/proxy/websocket_resource.h
+++ /dev/null
@@ -1,159 +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_PROXY_WEBSOCKET_RESOURCE_H_
-#define PPAPI_PROXY_WEBSOCKET_RESOURCE_H_
-
-#include <stdint.h>
-
-#include "base/containers/queue.h"
-#include "ppapi/c/ppb_websocket.h"
-#include "ppapi/proxy/plugin_resource.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/ppb_websocket_api.h"
-
-namespace ppapi {
-
-class StringVar;
-class Var;
-
-namespace proxy {
-
-// This class contains protocol checks which doesn't affect security when it
-// run with untrusted code.
-class PPAPI_PROXY_EXPORT WebSocketResource : public PluginResource,
-                                             public thunk::PPB_WebSocket_API {
- public:
-  WebSocketResource(Connection connection, PP_Instance instance);
-
-  WebSocketResource(const WebSocketResource&) = delete;
-  WebSocketResource& operator=(const WebSocketResource&) = delete;
-
-  ~WebSocketResource() override;
-
-  // PluginResource implementation.
-  thunk::PPB_WebSocket_API* AsPPB_WebSocket_API() override;
-
-  // PPB_WebSocket_API implementation.
-  int32_t Connect(const PP_Var& url,
-                  const PP_Var protocols[],
-                  uint32_t protocol_count,
-                  scoped_refptr<TrackedCallback> callback) override;
-  int32_t Close(uint16_t code,
-                const PP_Var& reason,
-                scoped_refptr<TrackedCallback> callback) override;
-  int32_t ReceiveMessage(
-      PP_Var* message,
-      scoped_refptr<TrackedCallback> callback) override;
-  int32_t SendMessage(const PP_Var& message) override;
-  uint64_t GetBufferedAmount() override;
-  uint16_t GetCloseCode() override;
-  PP_Var GetCloseReason() override;
-  PP_Bool GetCloseWasClean() override;
-  PP_Var GetExtensions() override;
-  PP_Var GetProtocol() override;
-  PP_WebSocketReadyState GetReadyState() override;
-  PP_Var GetURL() override;
-
- private:
-  // PluginResource override.
-  void OnReplyReceived(const ResourceMessageReplyParams& params,
-                       const IPC::Message& msg) override;
-
-  // IPC message handlers.
-  void OnPluginMsgConnectReply(const ResourceMessageReplyParams& params,
-                               const std::string& url,
-                               const std::string& protocol);
-  void OnPluginMsgCloseReply(const ResourceMessageReplyParams& params,
-                             uint64_t buffered_amount,
-                             bool was_clean,
-                             uint16_t code,
-                             const std::string& reason);
-  void OnPluginMsgReceiveTextReply(const ResourceMessageReplyParams& params,
-                                   const std::string& message);
-  void OnPluginMsgReceiveBinaryReply(const ResourceMessageReplyParams& params,
-                                     const std::vector<uint8_t>& message);
-  void OnPluginMsgErrorReply(const ResourceMessageReplyParams& params);
-  void OnPluginMsgBufferedAmountReply(const ResourceMessageReplyParams& params,
-                                      uint64_t buffered_amount);
-  void OnPluginMsgStateReply(const ResourceMessageReplyParams& params,
-                             int32_t state);
-  void OnPluginMsgClosedReply(const ResourceMessageReplyParams& params,
-                              uint64_t buffered_amount,
-                              bool was_clean,
-                              uint16_t code,
-                              const std::string& reason);
-
-  // Picks up a received message and moves it to user receiving buffer. This
-  // function is used in both ReceiveMessage for fast returning path, and
-  // OnPluginMsgReceiveTextReply and OnPluginMsgReceiveBinaryReply for delayed
-  // callback invocations.
-  int32_t DoReceive();
-
-  // Holds user callbacks to invoke later.
-  scoped_refptr<TrackedCallback> connect_callback_;
-  scoped_refptr<TrackedCallback> close_callback_;
-  scoped_refptr<TrackedCallback> receive_callback_;
-
-  // Represents readyState described in the WebSocket API specification. It can
-  // be read via GetReadyState().
-  PP_WebSocketReadyState state_;
-
-  // Becomes true if any error is detected. Incoming data will be disposed
-  // if this variable is true, then ReceiveMessage() returns PP_ERROR_FAILED
-  // after returning all received data.
-  bool error_was_received_;
-
-  // Keeps a pointer to PP_Var which is provided via ReceiveMessage().
-  // Received data will be copied to this PP_Var on ready.
-  PP_Var* receive_callback_var_;
-
-  // Keeps received data until ReceiveMessage() requests.
-  base::queue<scoped_refptr<Var>> received_messages_;
-
-  // Keeps empty string for functions to return empty string.
-  scoped_refptr<StringVar> empty_string_;
-
-  // Keeps the status code field of closing handshake. It can be read via
-  // GetCloseCode().
-  uint16_t close_code_;
-
-  // Keeps the reason field of closing handshake. It can be read via
-  // GetCloseReason().
-  scoped_refptr<StringVar> close_reason_;
-
-  // Becomes true when closing handshake is performed successfully. It can be
-  // read via GetCloseWasClean().
-  PP_Bool close_was_clean_;
-
-  // Represents extensions described in the WebSocket API specification. It can
-  // be read via GetExtensions().
-  scoped_refptr<StringVar> extensions_;
-
-  // Represents protocol described in the WebSocket API specification. It can be
-  // read via GetProtocol().
-  scoped_refptr<StringVar> protocol_;
-
-  // Represents url described in the WebSocket API specification. It can be
-  // read via GetURL().
-  scoped_refptr<StringVar> url_;
-
-  // Keeps the number of bytes of application data that have been queued using
-  // SendMessage(). WebKit side implementation calculates the actual amount.
-  // This is a cached value which is notified through a WebKit callback.
-  // This value is used to calculate bufferedAmount in the WebSocket API
-  // specification. The calculated value can be read via GetBufferedAmount().
-  uint64_t buffered_amount_;
-
-  // Keeps the number of bytes of application data that have been ignored
-  // because the connection was already closed.
-  // This value is used to calculate bufferedAmount in the WebSocket API
-  // specification. The calculated value can be read via GetBufferedAmount().
-  uint64_t buffered_amount_after_close_;
-};
-
-}  // namespace proxy
-}  // namespace ppapi
-
-#endif  // PPAPI_PROXY_WEBSOCKET_RESOURCE_H_
diff --git a/shared_impl/BUILD.gn b/shared_impl/BUILD.gn
deleted file mode 100644
index f9fc54e..0000000
--- a/shared_impl/BUILD.gn
+++ /dev/null
@@ -1,251 +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("//ppapi/buildflags/buildflags.gni")
-
-assert(enable_ppapi)
-
-# //ppapi/shared_impl and //ppapi/thunk go into the same library.
-config("export_shared_impl_and_thunk") {
-  visibility = [
-    ":*",
-    "//ppapi/thunk:*",
-  ]
-  defines = [
-    "PPAPI_SHARED_IMPLEMENTATION",
-    "PPAPI_THUNK_IMPLEMENTATION",
-  ]
-}
-
-source_set("headers") {
-  visibility = [
-    ":*",
-    "//ppapi/thunk:*",
-  ]
-
-  sources = [
-    "host_resource.h",
-    "ppapi_globals.h",
-    "proxy_lock.h",
-    "resource.h",
-  ]
-
-  configs += [ ":export_shared_impl_and_thunk" ]
-
-  deps = [
-    "//base",
-    "//ppapi/c/",
-  ]
-}
-
-# This contains the things that //ppapi/thunk needs.
-source_set("common") {
-  visibility = [
-    ":*",
-    "//ppapi/thunk:*",
-  ]
-
-  sources = [
-    "array_var.cc",
-    "array_var.h",
-    "callback_tracker.cc",
-    "callback_tracker.h",
-    "dictionary_var.cc",
-    "dictionary_var.h",
-    "file_ref_create_info.cc",
-    "file_ref_create_info.h",
-    "host_resource.cc",
-    "id_assignment.cc",
-    "id_assignment.h",
-    "ppapi_globals.cc",
-    "ppb_audio_config_shared.cc",
-    "ppb_audio_config_shared.h",
-    "ppb_device_ref_shared.cc",
-    "ppb_device_ref_shared.h",
-    "ppb_image_data_shared.cc",
-    "ppb_image_data_shared.h",
-    "ppb_message_loop_shared.cc",
-    "ppb_message_loop_shared.h",
-    "proxy_lock.cc",
-    "resource.cc",
-    "resource_tracker.cc",
-    "resource_tracker.h",
-    "resource_var.cc",
-    "resource_var.h",
-    "scoped_pp_var.cc",
-    "scoped_pp_var.h",
-    "tracked_callback.cc",
-    "tracked_callback.h",
-    "url_response_info_data.cc",
-    "url_response_info_data.h",
-    "var.cc",
-    "var.h",
-    "var_tracker.cc",
-    "var_tracker.h",
-  ]
-
-  if (!is_nacl) {
-    sources += [
-      "ppb_url_util_shared.cc",
-      "ppb_url_util_shared.h",
-      "private/ppb_char_set_shared.cc",
-      "private/ppb_char_set_shared.h",
-    ]
-  }
-
-  configs += [ ":export_shared_impl_and_thunk" ]
-
-  public_deps = [ ":headers" ]
-
-  deps = [
-    "//base",
-    "//base:i18n",
-    "//build:chromeos_buildflags",
-    "//ppapi/c",
-    "//ppapi/thunk:headers",
-    "//third_party/icu:icuuc",
-    "//url",
-  ]
-
-  if (!is_nacl) {
-    deps += [ "//skia" ]
-  }
-}
-
-component("shared_impl") {
-  output_name = "ppapi_shared"
-
-  sources = [
-    "array_writer.cc",
-    "array_writer.h",
-    "file_growth.cc",
-    "file_growth.h",
-    "file_io_state_manager.cc",
-    "file_io_state_manager.h",
-    "file_path.cc",
-    "file_path.h",
-    "file_ref_util.cc",
-    "file_ref_util.h",
-    "file_system_util.cc",
-    "file_system_util.h",
-    "file_type_conversion.cc",
-    "file_type_conversion.h",
-    "media_stream_audio_track_shared.cc",
-    "media_stream_audio_track_shared.h",
-    "media_stream_buffer.h",
-    "media_stream_buffer_manager.cc",
-    "media_stream_buffer_manager.h",
-    "media_stream_video_track_shared.cc",
-    "media_stream_video_track_shared.h",
-    "platform_file.cc",
-    "platform_file.h",
-    "ppapi_nacl_plugin_args.cc",
-    "ppapi_nacl_plugin_args.h",
-    "ppapi_permissions.cc",
-    "ppapi_permissions.h",
-    "ppapi_preferences.cc",
-    "ppapi_preferences.h",
-    "ppapi_switches.cc",
-    "ppapi_switches.h",
-    "ppb_audio_shared.cc",
-    "ppb_audio_shared.h",
-    "ppb_crypto_shared.cc",
-    "ppb_gamepad_shared.cc",
-    "ppb_gamepad_shared.h",
-    "ppb_graphics_3d_shared.cc",
-    "ppb_graphics_3d_shared.h",
-    "ppb_input_event_shared.cc",
-    "ppb_input_event_shared.h",
-    "ppb_instance_shared.cc",
-    "ppb_instance_shared.h",
-    "ppb_memory_shared.cc",
-    "ppb_opengles2_shared.cc",
-    "ppb_opengles2_shared.h",
-    "ppb_tcp_socket_shared.cc",
-    "ppb_tcp_socket_shared.h",
-    "ppb_trace_event_impl.cc",
-    "ppb_trace_event_impl.h",
-    "ppb_var_shared.cc",
-    "ppb_var_shared.h",
-    "ppb_view_shared.cc",
-    "ppb_view_shared.h",
-    "ppp_instance_combined.cc",
-    "ppp_instance_combined.h",
-    "scoped_pp_resource.cc",
-    "scoped_pp_resource.h",
-    "socket_option_data.cc",
-    "socket_option_data.h",
-    "thread_aware_callback.cc",
-    "thread_aware_callback.h",
-    "time_conversion.cc",
-    "time_conversion.h",
-    "url_request_info_data.cc",
-    "url_request_info_data.h",
-    "vpn_provider_util.cc",
-    "vpn_provider_util.h",
-
-    # TODO(viettrungluu): Split these out; it won"t be used in NaCl.
-    "private/net_address_private_impl.cc",
-    "private/net_address_private_impl.h",
-    "private/net_address_private_impl_constants.cc",
-    "private/ppb_x509_certificate_private_shared.cc",
-    "private/ppb_x509_certificate_private_shared.h",
-  ]
-
-  # This condition is catching the build of nacl64.exe, which is built
-  # in the 64-bit toolchain when the overall build is 32-bit.
-  # See also //ppapi/thunk
-  if (is_win && target_cpu == "x86" && current_cpu == "x64") {
-    sources -= [
-      "ppb_audio_shared.cc",
-      "ppb_graphics_3d_shared.cc",
-      "ppb_opengles2_shared.cc",
-      "private/net_address_private_impl.cc",
-    ]
-  }
-
-  configs += [
-    ":export_shared_impl_and_thunk",
-    "//build/config:precompiled_headers",
-  ]
-
-  public_deps = [
-    ":common",
-    "//base",
-    "//ppapi/c",
-    "//ppapi/thunk",
-  ]
-
-  deps = [
-    "//build:chromeos_buildflags",
-    "//device/gamepad/public/cpp:shared_with_blink",
-    "//gpu/command_buffer/client",
-    "//gpu/command_buffer/client:gles2_cmd_helper",
-    "//gpu/command_buffer/client:gles2_implementation",
-    "//gpu/command_buffer/common",
-    "//ipc",
-    "//media:shared_memory_support",
-    "//ui/gfx:gfx_switches",
-  ]
-
-  if (!is_nacl) {
-    sources += [
-      "ppb_video_decoder_shared.cc",
-      "ppb_video_decoder_shared.h",
-      "private/ppb_x509_util_shared.cc",
-      "private/ppb_x509_util_shared.h",
-    ]
-
-    deps += [
-      "//net",
-      "//ui/events:events_base",
-      "//ui/surface",
-    ]
-  }
-
-  if (is_mac) {
-    frameworks = [ "QuartzCore.framework" ]
-  }
-}
diff --git a/shared_impl/DEPS b/shared_impl/DEPS
deleted file mode 100644
index 0cdac28..0000000
--- a/shared_impl/DEPS
+++ /dev/null
@@ -1,15 +0,0 @@
-include_rules = [
-  "+base",
-  "+device/gamepad/public/cpp",
-  "+gpu",
-  "+media/audio",
-  "+media/base",
-  "+skia",
-  "+ui/gfx",
-
-  "-ppapi/cpp",
-  "-ppapi/proxy",
-
-  # For testing purpose.
-  "+ppapi/proxy/ppapi_proxy_test.h",
-]
diff --git a/shared_impl/README.txt b/shared_impl/README.txt
deleted file mode 100644
index 31a62d3..0000000
--- a/shared_impl/README.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-This directory contains implementation code for PPAPI that needs to be shared
-between the backend implementation in the renderer and in the proxy.
diff --git a/shared_impl/api_id.h b/shared_impl/api_id.h
deleted file mode 100644
index 9728db6..0000000
--- a/shared_impl/api_id.h
+++ /dev/null
@@ -1,46 +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_SHARED_IMPL_API_ID_H_
-#define PPAPI_SHARED_IMPL_API_ID_H_
-
-namespace ppapi {
-
-// These numbers must be all small integers. They are used in a lookup table
-// to route messages to the appropriate message handler.
-enum ApiID {
-  // Zero is reserved for control messages.
-  API_ID_NONE = 0,
-  API_ID_PPB_AUDIO = 1,
-  API_ID_PPB_BUFFER,
-  API_ID_PPB_CORE,
-  API_ID_PPB_GRAPHICS_3D,
-  API_ID_PPB_IMAGE_DATA,
-  API_ID_PPB_INSTANCE,
-  API_ID_PPB_INSTANCE_PRIVATE,
-  API_ID_PPB_TESTING,
-  API_ID_PPB_VAR_ARRAY_BUFFER,
-  API_ID_PPB_VAR_DEPRECATED,
-  API_ID_PPB_VIDEO_CAPTURE_DEV,
-  API_ID_PPB_VIDEO_DECODER_DEV,
-  API_ID_PPB_X509_CERTIFICATE_PRIVATE,
-  API_ID_PPP_CLASS,
-  API_ID_PPP_GRAPHICS_3D,
-  API_ID_PPP_INPUT_EVENT,
-  API_ID_PPP_INSTANCE,
-  API_ID_PPP_INSTANCE_PRIVATE,
-  API_ID_PPP_MESSAGING,
-  API_ID_PPP_MOUSE_LOCK,
-  API_ID_PPP_PRINTING,
-  API_ID_PPP_TEXT_INPUT,
-  API_ID_PPP_VIDEO_DECODER_DEV,
-  API_ID_RESOURCE_CREATION,
-
-  // Must be last to indicate the number of interface IDs.
-  API_ID_COUNT
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_API_ID_H_
diff --git a/shared_impl/array_var.cc b/shared_impl/array_var.cc
deleted file mode 100644
index daa5e6b..0000000
--- a/shared_impl/array_var.cc
+++ /dev/null
@@ -1,76 +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.
-
-#include "ppapi/shared_impl/array_var.h"
-
-#include <limits>
-
-#include "base/memory/ref_counted.h"
-#include "base/notreached.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-namespace ppapi {
-
-ArrayVar::ArrayVar() {}
-
-ArrayVar::~ArrayVar() {}
-
-// static
-ArrayVar* ArrayVar::FromPPVar(const PP_Var& var) {
-  if (var.type != PP_VARTYPE_ARRAY)
-    return NULL;
-
-  scoped_refptr<Var> var_object(
-      PpapiGlobals::Get()->GetVarTracker()->GetVar(var));
-  if (!var_object.get())
-    return NULL;
-  return var_object->AsArrayVar();
-}
-
-ArrayVar* ArrayVar::AsArrayVar() { return this; }
-
-PP_VarType ArrayVar::GetType() const { return PP_VARTYPE_ARRAY; }
-
-PP_Var ArrayVar::Get(uint32_t index) const {
-  if (index >= elements_.size())
-    return PP_MakeUndefined();
-
-  const PP_Var& element = elements_[index].get();
-  if (PpapiGlobals::Get()->GetVarTracker()->AddRefVar(element))
-    return element;
-  else
-    return PP_MakeUndefined();
-}
-
-PP_Bool ArrayVar::Set(uint32_t index, const PP_Var& value) {
-  if (index == std::numeric_limits<uint32_t>::max())
-    return PP_FALSE;
-
-  if (index >= elements_.size()) {
-    // Insert ScopedPPVars of type PP_VARTYPE_UNDEFINED to reach the new size
-    // (index + 1).
-    elements_.resize(index + 1);
-  }
-
-  elements_[index] = value;
-  return PP_TRUE;
-}
-
-uint32_t ArrayVar::GetLength() const {
-  if (elements_.size() > std::numeric_limits<uint32_t>::max()) {
-    NOTREACHED();
-  }
-
-  return static_cast<uint32_t>(elements_.size());
-}
-
-PP_Bool ArrayVar::SetLength(uint32_t length) {
-  // If |length| is larger than the current size, ScopedPPVars of type
-  // PP_VARTYPE_UNDEFINED will be inserted to reach the new length.
-  elements_.resize(length);
-  return PP_TRUE;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/array_var.h b/shared_impl/array_var.h
deleted file mode 100644
index 08d783d..0000000
--- a/shared_impl/array_var.h
+++ /dev/null
@@ -1,57 +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.
-
-#ifndef PPAPI_SHARED_IMPL_ARRAY_VAR_H_
-#define PPAPI_SHARED_IMPL_ARRAY_VAR_H_
-
-#include <stdint.h>
-
-#include <vector>
-
-#include "base/compiler_specific.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-#include "ppapi/shared_impl/scoped_pp_var.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT ArrayVar : public Var {
- public:
-  typedef std::vector<ScopedPPVar> ElementVector;
-
-  ArrayVar();
-
-  ArrayVar(const ArrayVar&) = delete;
-  ArrayVar& operator=(const ArrayVar&) = delete;
-
-  // Helper function that converts a PP_Var to an ArrayVar. This will return
-  // NULL if the PP_Var is not of type PP_VARTYPE_ARRAY or the array cannot be
-  // found from the var tracker.
-  static ArrayVar* FromPPVar(const PP_Var& var);
-
-  // Var overrides.
-  ArrayVar* AsArrayVar() override;
-  PP_VarType GetType() const override;
-
-  // The returned PP_Var has had a ref added on behalf of the caller.
-  PP_Var Get(uint32_t index) const;
-  PP_Bool Set(uint32_t index, const PP_Var& value);
-  uint32_t GetLength() const;
-  PP_Bool SetLength(uint32_t length);
-
-  const ElementVector& elements() const { return elements_; }
-
-  ElementVector& elements() { return elements_; }
-
- protected:
-  ~ArrayVar() override;
-
- private:
-  ElementVector elements_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_ARRAY_VAR_H_
diff --git a/shared_impl/array_writer.cc b/shared_impl/array_writer.cc
deleted file mode 100644
index bbed774..0000000
--- a/shared_impl/array_writer.cc
+++ /dev/null
@@ -1,132 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/shared_impl/array_writer.h"
-
-#include <stddef.h>
-
-#include <algorithm>
-
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-namespace ppapi {
-
-ArrayWriter::ArrayWriter() { Reset(); }
-
-ArrayWriter::ArrayWriter(const PP_ArrayOutput& output)
-    : pp_array_output_(output) {}
-
-ArrayWriter::~ArrayWriter() {}
-
-void ArrayWriter::Reset() {
-  pp_array_output_.GetDataBuffer = NULL;
-  pp_array_output_.user_data = NULL;
-}
-
-bool ArrayWriter::StoreResourceVector(
-    const std::vector<scoped_refptr<Resource> >& input) {
-  // Always call the alloc function, even on 0 array size.
-  void* dest =
-      pp_array_output_.GetDataBuffer(pp_array_output_.user_data,
-                                     static_cast<uint32_t>(input.size()),
-                                     sizeof(PP_Resource));
-
-  // Regardless of success, we clear the output to prevent future calls on
-  // this same output object.
-  Reset();
-
-  if (input.empty())
-    return true;  // Allow plugin to return NULL on 0 elements.
-  if (!dest)
-    return false;
-
-  // Convert to PP_Resources.
-  PP_Resource* dest_resources = static_cast<PP_Resource*>(dest);
-  for (size_t i = 0; i < input.size(); i++)
-    dest_resources[i] = input[i]->GetReference();
-  return true;
-}
-
-bool ArrayWriter::StoreResourceVector(const std::vector<PP_Resource>& input) {
-  // Always call the alloc function, even on 0 array size.
-  void* dest =
-      pp_array_output_.GetDataBuffer(pp_array_output_.user_data,
-                                     static_cast<uint32_t>(input.size()),
-                                     sizeof(PP_Resource));
-
-  // Regardless of success, we clear the output to prevent future calls on
-  // this same output object.
-  Reset();
-
-  if (input.empty())
-    return true;  // Allow plugin to return NULL on 0 elements.
-  if (!dest) {
-    // Free the resources.
-    for (size_t i = 0; i < input.size(); i++)
-      PpapiGlobals::Get()->GetResourceTracker()->ReleaseResource(input[i]);
-    return false;
-  }
-
-  std::copy(input.begin(), input.end(), static_cast<PP_Resource*>(dest));
-  return true;
-}
-
-bool ArrayWriter::StoreVarVector(
-    const std::vector<scoped_refptr<Var> >& input) {
-  // Always call the alloc function, even on 0 array size.
-  void* dest =
-      pp_array_output_.GetDataBuffer(pp_array_output_.user_data,
-                                     static_cast<uint32_t>(input.size()),
-                                     sizeof(PP_Var));
-
-  // Regardless of success, we clear the output to prevent future calls on
-  // this same output object.
-  Reset();
-
-  if (input.empty())
-    return true;  // Allow plugin to return NULL on 0 elements.
-  if (!dest)
-    return false;
-
-  // Convert to PP_Vars.
-  PP_Var* dest_vars = static_cast<PP_Var*>(dest);
-  for (size_t i = 0; i < input.size(); i++)
-    dest_vars[i] = input[i]->GetPPVar();
-  return true;
-}
-
-bool ArrayWriter::StoreVarVector(const std::vector<PP_Var>& input) {
-  // Always call the alloc function, even on 0 array size.
-  void* dest =
-      pp_array_output_.GetDataBuffer(pp_array_output_.user_data,
-                                     static_cast<uint32_t>(input.size()),
-                                     sizeof(PP_Var));
-
-  // Regardless of success, we clear the output to prevent future calls on
-  // this same output object.
-  Reset();
-
-  if (input.empty())
-    return true;  // Allow plugin to return NULL on 0 elements.
-  if (!dest) {
-    // Free the vars.
-    for (size_t i = 0; i < input.size(); i++)
-      PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(input[i]);
-    return false;
-  }
-
-  std::copy(input.begin(), input.end(), static_cast<PP_Var*>(dest));
-  return true;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/array_writer.h b/shared_impl/array_writer.h
deleted file mode 100644
index 0a55147..0000000
--- a/shared_impl/array_writer.h
+++ /dev/null
@@ -1,122 +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_SHARED_IMPL_ARRAY_WRITER_H_
-#define PPAPI_SHARED_IMPL_ARRAY_WRITER_H_
-
-#include <stdint.h>
-#include <string.h>
-
-#include <vector>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-class Resource;
-class Var;
-
-// Holds a PP_ArrayWriter and provides helper functions for writing arrays
-// to it. It also handles 0-initialization of the raw C struct and attempts
-// to prevent you from writing the array twice.
-class PPAPI_SHARED_EXPORT ArrayWriter {
- public:
-  ArrayWriter();  // Creates an is_null() object
-  ArrayWriter(const PP_ArrayOutput& output);
-
-  ArrayWriter(const ArrayWriter&) = delete;
-  ArrayWriter& operator=(const ArrayWriter&) = delete;
-
-  ~ArrayWriter();
-
-  bool is_valid() const { return !!pp_array_output_.GetDataBuffer; }
-  bool is_null() const { return !is_valid(); }
-
-  void set_pp_array_output(const PP_ArrayOutput& output) {
-    pp_array_output_ = output;
-  }
-
-  // Sets the array output back to its is_null() state.
-  void Reset();
-
-  // StoreArray() and StoreVector() copy the given array/vector of data to the
-  // plugin output array.
-  //
-  // Returns true on success, false if the plugin reported allocation failure.
-  // In either case, the object will become is_null() immediately after the
-  // call since one output function should only be issued once.
-  //
-  // THIS IS DESIGNED FOR POD ONLY. For the case of resources, for example, we
-  // want to transfer a reference only on success. Likewise, if you have a
-  // structure of PP_Vars or a struct that contains a PP_Resource, we need to
-  // make sure that the right thing happens with the ref on success and failure.
-  template <typename T>
-  bool StoreArray(const T* input, uint32_t count) {
-    // Always call the alloc function, even on 0 array size.
-    void* dest = pp_array_output_.GetDataBuffer(
-        pp_array_output_.user_data, count, sizeof(T));
-
-    // Regardless of success, we clear the output to prevent future calls on
-    // this same output object.
-    Reset();
-
-    if (count == 0)
-      return true;  // Allow plugin to return NULL on 0 elements.
-    if (!dest)
-      return false;
-
-    if (input)
-      memcpy(dest, input, sizeof(T) * count);
-    return true;
-  }
-
-  // Copies the given array/vector of data to the plugin output array.  See
-  // comment of StoreArray() for detail.
-  template <typename T>
-  bool StoreVector(const std::vector<T>& input) {
-    return StoreArray(input.size() ? &input[0] : NULL,
-                      static_cast<uint32_t>(input.size()));
-  }
-
-  // Stores the given vector of resources as PP_Resources to the output vector,
-  // adding one reference to each.
-  //
-  // On failure this returns false, nothing will be copied, and the resource
-  // refcounts will be unchanged. In either case, the object will become
-  // is_null() immediately after the call since one output function should only
-  // be issued once.
-  //
-  // Note: potentially this could be a template in case you have a vector of
-  // FileRef objects, for example. However, this saves code since there's only
-  // one instantiation and is sufficient for now.
-  bool StoreResourceVector(const std::vector<scoped_refptr<Resource> >& input);
-
-  // Like the above version but takes an array of AddRef'ed PP_Resources. On
-  // storage failure, this will release each resource.
-  bool StoreResourceVector(const std::vector<PP_Resource>& input);
-
-  // Stores the given vector of vars as PP_Vars to the output vector,
-  // adding one reference to each.
-  //
-  // On failure this returns false, nothing will be copied, and the var
-  // refcounts will be unchanged. In either case, the object will become
-  // is_null() immediately after the call since one output function should only
-  // be issued once.
-  bool StoreVarVector(const std::vector<scoped_refptr<Var> >& input);
-
-  // Like the above version but takes an array of AddRef'ed PP_Vars. On
-  // storage failure, this will release each var.
-  bool StoreVarVector(const std::vector<PP_Var>& input);
-
- private:
-  PP_ArrayOutput pp_array_output_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_ARRAY_WRITER_H_
diff --git a/shared_impl/callback_tracker.cc b/shared_impl/callback_tracker.cc
deleted file mode 100644
index 6113cb6..0000000
--- a/shared_impl/callback_tracker.cc
+++ /dev/null
@@ -1,94 +0,0 @@
-// Copyright 2010 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/shared_impl/callback_tracker.h"
-
-#include <algorithm>
-
-#include "base/check_op.h"
-#include "base/compiler_specific.h"
-#include "base/functional/bind.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-
-namespace ppapi {
-
-// CallbackTracker -------------------------------------------------------------
-
-CallbackTracker::CallbackTracker() : abort_all_called_(false) {}
-
-void CallbackTracker::AbortAll() {
-  // Iterate over a copy:
-  // 1) because |Abort()| calls |Remove()| (indirectly).
-  // 2) So we can drop the lock before calling in to TrackedCallback.
-  CallbackSetMap pending_callbacks_copy;
-  {
-    base::AutoLock acquire(lock_);
-    pending_callbacks_copy = pending_callbacks_;
-    abort_all_called_ = true;
-  }
-  for (CallbackSetMap::iterator it1 = pending_callbacks_copy.begin();
-       it1 != pending_callbacks_copy.end();
-       ++it1) {
-    for (CallbackSet::iterator it2 = it1->second.begin();
-         it2 != it1->second.end();
-         ++it2) {
-      (*it2)->Abort();
-    }
-  }
-}
-
-void CallbackTracker::PostAbortForResource(PP_Resource resource_id) {
-  // Only TrackedCallbacks with a valid resource should appear in the tracker.
-  DCHECK_NE(resource_id, 0);
-  CallbackSet callbacks_for_resource;
-  {
-    base::AutoLock acquire(lock_);
-    CallbackSetMap::iterator iter = pending_callbacks_.find(resource_id);
-    // The resource may have no callbacks, so it won't be found, and we're done.
-    if (iter == pending_callbacks_.end())
-      return;
-    // Copy the set so we can drop the lock before calling in to
-    // TrackedCallback.
-    callbacks_for_resource = iter->second;
-  }
-  for (const auto& iter : callbacks_for_resource) {
-    iter->PostAbort();
-  }
-}
-
-CallbackTracker::~CallbackTracker() {
-  // All callbacks must be aborted before destruction.
-  CHECK_EQ(0u, pending_callbacks_.size());
-}
-
-void CallbackTracker::Add(
-    const scoped_refptr<TrackedCallback>& tracked_callback) {
-  base::AutoLock acquire(lock_);
-  DCHECK(!abort_all_called_);
-  PP_Resource resource_id = tracked_callback->resource_id();
-  // Only TrackedCallbacks with a valid resource should appear in the tracker.
-  DCHECK_NE(resource_id, 0);
-  DCHECK(pending_callbacks_[resource_id].find(tracked_callback) ==
-         pending_callbacks_[resource_id].end());
-  pending_callbacks_[resource_id].insert(tracked_callback);
-}
-
-void CallbackTracker::Remove(
-    const scoped_refptr<TrackedCallback>& tracked_callback) {
-  base::AutoLock acquire(lock_);
-  CallbackSetMap::iterator map_it =
-      pending_callbacks_.find(tracked_callback->resource_id());
-  CHECK(map_it != pending_callbacks_.end());
-  CallbackSet::iterator it = map_it->second.find(tracked_callback);
-  CHECK(it != map_it->second.end());
-  map_it->second.erase(it);
-
-  // If there are no pending callbacks left for this ID, get rid of the entry.
-  if (map_it->second.empty())
-    pending_callbacks_.erase(map_it);
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/callback_tracker.h b/shared_impl/callback_tracker.h
deleted file mode 100644
index 903a3f8..0000000
--- a/shared_impl/callback_tracker.h
+++ /dev/null
@@ -1,112 +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_SHARED_IMPL_CALLBACK_TRACKER_H_
-#define PPAPI_SHARED_IMPL_CALLBACK_TRACKER_H_
-
-#include <map>
-#include <set>
-
-#include "base/memory/ref_counted.h"
-#include "base/synchronization/lock.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-// Pepper callbacks have the following semantics (unless otherwise specified;
-// in particular, the below apply to all completion callbacks):
-//  - Callbacks are always run on the thread where the plugin called a Pepper
-//    function providing that callback.
-//  - Callbacks are always called from the message loop of the thread. In
-//    particular, calling into Pepper will not result in the plugin being
-//    re-entered via a synchronously-run callback.
-//  - Each callback will be executed (a.k.a. completed) exactly once.
-//  - Each callback may be *aborted*, which means that it will be executed with
-//    result |PP_ERROR_ABORTED| (in the case of completion callbacks). The
-//    ABORT counts as the callback's one completion.
-//  - Before |PPP_ShutdownModule()| is called, every pending callback (for every
-//    instance of that module) will be aborted.
-//  - Callbacks are usually associated to a resource, whose "deletion" provides
-//    a "cancellation" (or abort) mechanism -- see below.
-//  - When a plugin releases its last reference to resource, all callbacks
-//    associated to that resource are aborted. Even if a non-abortive completion
-//    of such a callback had previously been scheduled (i.e., posted), that
-//    callback must now be aborted. The aborts should be scheduled immediately
-//    (upon the last reference being given up) and should not rely on anything
-//    else (e.g., a background task to complete or further action from the
-//    plugin).
-//  - Abortive completion gives no information about the status of the
-//    asynchronous operation: The operation may have not yet begun, may be in
-//    progress, or may be completed (successfully or not). In fact, the
-//    operation may still proceed after the callback has been aborted.
-//  - Any output data buffers provided to Pepper are associated with a resource.
-//    Once that resource is released, no subsequent writes to those buffers
-//    will occur. When operations occur on background threads, writing to the
-//    plugin's data buffers should be delayed to happen on the callback's thread
-//    to ensure that we don't write to the buffers if the callback has been
-//    aborted (see TrackedCallback::set_completion_task()).
-//
-// Thread-safety notes:
-// |CallbackTracker| uses a lock to protect its dictionary of callbacks. This
-// is primarily to allow the safe removal of callbacks from any thread without
-// requiring that the |ProxyLock| is held. Methods that may invoke a callback
-// need to have the |ProxyLock| (and those methods assert that it's acquired).
-// |TrackedCallback| is thread-safe ref-counted, so objects which live on
-// different threads may keep references. Releasing a reference to
-// |TrackedCallback| on a different thread (possibly causing destruction) is
-// also okay.
-//
-// |CallbackTracker| tracks pending Pepper callbacks for a single instance. It
-// also tracks, for each resource ID, which callbacks are pending. Just before
-// a callback is completed, it is removed from the tracker. We use
-// |CallbackTracker| for two things: (1) to ensure that all callbacks are
-// properly aborted before instance shutdown, and (2) to ensure that all
-// callbacks associated with a given resource are aborted when a plugin instance
-// releases its last reference to that resource.
-class PPAPI_SHARED_EXPORT CallbackTracker
-    : public base::RefCountedThreadSafe<CallbackTracker> {
- public:
-  CallbackTracker();
-
-  CallbackTracker(const CallbackTracker&) = delete;
-  CallbackTracker& operator=(const CallbackTracker&) = delete;
-
-  // Abort all callbacks (synchronously).
-  void AbortAll();
-
-  // Abort all callbacks associated to the given resource ID (which must be
-  // valid, i.e., nonzero) by posting a task (or tasks).
-  void PostAbortForResource(PP_Resource resource_id);
-
- private:
-  friend class base::RefCountedThreadSafe<CallbackTracker>;
-  ~CallbackTracker();
-
-  // |TrackedCallback| are expected to automatically add and
-  // remove themselves from their provided |CallbackTracker|.
-  friend class TrackedCallback;
-  void Add(const scoped_refptr<TrackedCallback>& tracked_callback);
-  void Remove(const scoped_refptr<TrackedCallback>& tracked_callback);
-
-  // For each resource ID with a pending callback, store a set with its pending
-  // callbacks. (Resource ID 0 is used for callbacks not associated to a valid
-  // resource.) If a resource ID is re-used for another resource, there may be
-  // aborted callbacks corresponding to the original resource in that set; these
-  // will be removed when they are completed (abortively).
-  typedef std::set<scoped_refptr<TrackedCallback> > CallbackSet;
-  typedef std::map<PP_Resource, CallbackSet> CallbackSetMap;
-  CallbackSetMap pending_callbacks_;
-
-  // Used to ensure we don't add any callbacks after AbortAll.
-  bool abort_all_called_;
-
-  base::Lock lock_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_CALLBACK_TRACKER_H_
diff --git a/shared_impl/dictionary_var.cc b/shared_impl/dictionary_var.cc
deleted file mode 100644
index 86ef56d..0000000
--- a/shared_impl/dictionary_var.cc
+++ /dev/null
@@ -1,104 +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.
-
-#include "ppapi/shared_impl/dictionary_var.h"
-
-#include "base/memory/ref_counted.h"
-#include "base/strings/string_util.h"
-#include "ppapi/shared_impl/array_var.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-namespace ppapi {
-
-DictionaryVar::DictionaryVar() {}
-
-DictionaryVar::~DictionaryVar() {}
-
-// static
-DictionaryVar* DictionaryVar::FromPPVar(const PP_Var& var) {
-  if (var.type != PP_VARTYPE_DICTIONARY)
-    return NULL;
-
-  scoped_refptr<Var> var_object(
-      PpapiGlobals::Get()->GetVarTracker()->GetVar(var));
-  if (!var_object.get())
-    return NULL;
-  return var_object->AsDictionaryVar();
-}
-
-DictionaryVar* DictionaryVar::AsDictionaryVar() { return this; }
-
-PP_VarType DictionaryVar::GetType() const { return PP_VARTYPE_DICTIONARY; }
-
-PP_Var DictionaryVar::Get(const PP_Var& key) const {
-  StringVar* string_var = StringVar::FromPPVar(key);
-  if (!string_var)
-    return PP_MakeUndefined();
-
-  KeyValueMap::const_iterator iter = key_value_map_.find(string_var->value());
-  if (iter != key_value_map_.end()) {
-    if (PpapiGlobals::Get()->GetVarTracker()->AddRefVar(iter->second.get()))
-      return iter->second.get();
-    else
-      return PP_MakeUndefined();
-  } else {
-    return PP_MakeUndefined();
-  }
-}
-
-PP_Bool DictionaryVar::Set(const PP_Var& key, const PP_Var& value) {
-  StringVar* string_var = StringVar::FromPPVar(key);
-  if (!string_var)
-    return PP_FALSE;
-
-  key_value_map_[string_var->value()] = value;
-  return PP_TRUE;
-}
-
-void DictionaryVar::Delete(const PP_Var& key) {
-  StringVar* string_var = StringVar::FromPPVar(key);
-  if (!string_var)
-    return;
-
-  key_value_map_.erase(string_var->value());
-}
-
-PP_Bool DictionaryVar::HasKey(const PP_Var& key) const {
-  StringVar* string_var = StringVar::FromPPVar(key);
-  if (!string_var)
-    return PP_FALSE;
-
-  bool result =
-      key_value_map_.find(string_var->value()) != key_value_map_.end();
-  return PP_FromBool(result);
-}
-
-PP_Var DictionaryVar::GetKeys() const {
-  scoped_refptr<ArrayVar> array_var(new ArrayVar());
-  array_var->elements().reserve(key_value_map_.size());
-
-  for (KeyValueMap::const_iterator iter = key_value_map_.begin();
-       iter != key_value_map_.end();
-       ++iter) {
-    array_var->elements().push_back(ScopedPPVar(
-        ScopedPPVar::PassRef(), StringVar::StringToPPVar(iter->first)));
-  }
-  return array_var->GetPPVar();
-}
-
-bool DictionaryVar::SetWithStringKey(const std::string& utf8_key,
-                                     const PP_Var& value) {
-  if (!base::IsStringUTF8(utf8_key))
-    return false;
-
-  key_value_map_[utf8_key] = value;
-  return true;
-}
-
-void DictionaryVar::DeleteWithStringKey(const std::string& utf8_key) {
-  key_value_map_.erase(utf8_key);
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/dictionary_var.h b/shared_impl/dictionary_var.h
deleted file mode 100644
index 14df7c2..0000000
--- a/shared_impl/dictionary_var.h
+++ /dev/null
@@ -1,61 +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.
-
-#ifndef PPAPI_SHARED_IMPL_DICTIONARY_VAR_H_
-#define PPAPI_SHARED_IMPL_DICTIONARY_VAR_H_
-
-#include <map>
-#include <string>
-
-#include "base/compiler_specific.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-#include "ppapi/shared_impl/scoped_pp_var.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT DictionaryVar : public Var {
- public:
-  typedef std::map<std::string, ScopedPPVar> KeyValueMap;
-
-  DictionaryVar();
-
-  DictionaryVar(const DictionaryVar&) = delete;
-  DictionaryVar& operator=(const DictionaryVar&) = delete;
-
-  // Helper function that converts a PP_Var to a DictionaryVar. This will
-  // return NULL if the PP_Var is not of type PP_VARTYPE_DICTIONARY or the
-  // dictionary cannot be found from the var tracker.
-  static DictionaryVar* FromPPVar(const PP_Var& var);
-
-  // Var overrides.
-  DictionaryVar* AsDictionaryVar() override;
-  PP_VarType GetType() const override;
-
-  // The returned PP_Var has had a ref added on behalf of the caller.
-  PP_Var Get(const PP_Var& key) const;
-  PP_Bool Set(const PP_Var& key, const PP_Var& value);
-  void Delete(const PP_Var& key);
-  PP_Bool HasKey(const PP_Var& key) const;
-  // The returned PP_Var has had a ref added on behalf of the caller.
-  PP_Var GetKeys() const;
-
-  // Returns false and keeps the dictionary unchanged if |key| is not a valid
-  // UTF-8 string.
-  bool SetWithStringKey(const std::string& utf8_key, const PP_Var& value);
-  void DeleteWithStringKey(const std::string& utf8_key);
-
-  const KeyValueMap& key_value_map() const { return key_value_map_; }
-
- protected:
-  ~DictionaryVar() override;
-
- private:
-  KeyValueMap key_value_map_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_DICTIONARY_VAR_H_
diff --git a/shared_impl/dir_contents.h b/shared_impl/dir_contents.h
deleted file mode 100644
index 73474ea..0000000
--- a/shared_impl/dir_contents.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2010 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_SHARED_IMPL_DIR_CONTENTS_H_
-#define PPAPI_SHARED_IMPL_DIR_CONTENTS_H_
-
-#include <vector>
-
-#include "base/files/file_path.h"
-
-namespace ppapi {
-
-struct DirEntry {
-  base::FilePath name;
-  bool is_dir;
-};
-
-typedef std::vector<DirEntry> DirContents;
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_DIR_CONTENTS_H_
diff --git a/shared_impl/file_growth.cc b/shared_impl/file_growth.cc
deleted file mode 100644
index f760788..0000000
--- a/shared_impl/file_growth.cc
+++ /dev/null
@@ -1,41 +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/shared_impl/file_growth.h"
-
-#include "base/check_op.h"
-
-namespace ppapi {
-
-FileGrowth::FileGrowth() : max_written_offset(0), append_mode_write_amount(0) {}
-
-FileGrowth::FileGrowth(int64_t max_written_offset,
-                       int64_t append_mode_write_amount)
-    : max_written_offset(max_written_offset),
-      append_mode_write_amount(append_mode_write_amount) {
-  DCHECK_LE(0, max_written_offset);
-  DCHECK_LE(0, append_mode_write_amount);
-}
-
-FileGrowthMap FileSizeMapToFileGrowthMapForTesting(
-    const FileSizeMap& file_sizes) {
-  FileGrowthMap file_growths;
-  for (FileSizeMap::const_iterator it = file_sizes.begin();
-       it != file_sizes.end();
-       ++it)
-    file_growths[it->first] = FileGrowth(it->second, 0);
-  return file_growths;
-}
-
-FileSizeMap FileGrowthMapToFileSizeMapForTesting(
-    const FileGrowthMap& file_growths) {
-  FileSizeMap file_sizes;
-  for (FileGrowthMap::const_iterator it = file_growths.begin();
-       it != file_growths.end();
-       ++it)
-    file_sizes[it->first] = it->second.max_written_offset;
-  return file_sizes;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/file_growth.h b/shared_impl/file_growth.h
deleted file mode 100644
index 975269f..0000000
--- a/shared_impl/file_growth.h
+++ /dev/null
@@ -1,33 +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_SHARED_IMPL_FILE_GROWTH_H_
-#define PPAPI_SHARED_IMPL_FILE_GROWTH_H_
-
-#include <map>
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-struct PPAPI_SHARED_EXPORT FileGrowth {
-  FileGrowth();
-  FileGrowth(int64_t max_written_offset, int64_t append_mode_write_amount);
-
-  int64_t max_written_offset;
-  int64_t append_mode_write_amount;
-};
-
-typedef std::map<int32_t, FileGrowth> FileGrowthMap;
-typedef std::map<int32_t, int64_t> FileSizeMap;
-
-PPAPI_SHARED_EXPORT FileGrowthMap
-    FileSizeMapToFileGrowthMapForTesting(const FileSizeMap& file_sizes);
-PPAPI_SHARED_EXPORT FileSizeMap
-    FileGrowthMapToFileSizeMapForTesting(const FileGrowthMap& file_growths);
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_FILE_GROWTH_H_
diff --git a/shared_impl/file_io_state_manager.cc b/shared_impl/file_io_state_manager.cc
deleted file mode 100644
index 4783aef..0000000
--- a/shared_impl/file_io_state_manager.cc
+++ /dev/null
@@ -1,49 +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/shared_impl/file_io_state_manager.h"
-
-#include "base/check_op.h"
-#include "ppapi/c/pp_errors.h"
-
-namespace ppapi {
-
-FileIOStateManager::FileIOStateManager()
-    : num_pending_ops_(0), pending_op_(OPERATION_NONE), file_open_(false) {}
-
-FileIOStateManager::~FileIOStateManager() {}
-
-void FileIOStateManager::SetOpenSucceed() { file_open_ = true; }
-
-int32_t FileIOStateManager::CheckOperationState(OperationType new_op,
-                                                bool should_be_open) {
-  if (should_be_open) {
-    if (!file_open_)
-      return PP_ERROR_FAILED;
-  } else {
-    if (file_open_)
-      return PP_ERROR_FAILED;
-  }
-
-  if (pending_op_ != OPERATION_NONE &&
-      (pending_op_ != new_op || pending_op_ == OPERATION_EXCLUSIVE))
-    return PP_ERROR_INPROGRESS;
-
-  return PP_OK;
-}
-
-void FileIOStateManager::SetPendingOperation(OperationType new_op) {
-  DCHECK(pending_op_ == OPERATION_NONE ||
-         (pending_op_ != OPERATION_EXCLUSIVE && pending_op_ == new_op));
-  pending_op_ = new_op;
-  num_pending_ops_++;
-}
-
-void FileIOStateManager::SetOperationFinished() {
-  DCHECK_GT(num_pending_ops_, 0);
-  if (--num_pending_ops_ == 0)
-    pending_op_ = OPERATION_NONE;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/file_io_state_manager.h b/shared_impl/file_io_state_manager.h
deleted file mode 100644
index ef6fda3..0000000
--- a/shared_impl/file_io_state_manager.h
+++ /dev/null
@@ -1,69 +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_SHARED_IMPL_FILE_IO_STATE_MANAGER_H_
-#define PPAPI_SHARED_IMPL_FILE_IO_STATE_MANAGER_H_
-
-#include "base/compiler_specific.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-// FileIOStateManager is a helper class that maintains the state of operations.
-// For example, some operations are mutually exclusive, meaning that an
-// operation could be rejected because of the current pending operation. Also,
-// most of the operations only work when the file has been opened.
-class PPAPI_SHARED_EXPORT FileIOStateManager {
- public:
-  FileIOStateManager();
-
-  FileIOStateManager(const FileIOStateManager&) = delete;
-  FileIOStateManager& operator=(const FileIOStateManager&) = delete;
-
-  ~FileIOStateManager();
-
-  enum OperationType {
-    // There is no pending operation right now.
-    OPERATION_NONE,
-
-    // If there are pending reads, any other kind of async operation is not
-    // allowed.
-    OPERATION_READ,
-
-    // If there are pending writes, any other kind of async operation is not
-    // allowed.
-    OPERATION_WRITE,
-
-    // If there is a pending operation that is neither read nor write, no
-    // further async operation is allowed.
-    OPERATION_EXCLUSIVE
-  };
-
-  OperationType get_pending_operation() const { return pending_op_; }
-
-  void SetOpenSucceed();
-
-  // Called at the beginning of each operation. It is responsible to make sure
-  // that state is correct. For example, some operations are only valid after
-  // the file is opened, or operations might need to run exclusively.
-  //
-  // It returns |PP_OK| on success, or |PP_ERROR_...| for various reasons.
-  int32_t CheckOperationState(OperationType new_op, bool should_be_open);
-
-  // Marks the state of current operations as started or finished.
-  void SetPendingOperation(OperationType op);
-  void SetOperationFinished();
-
- private:
-  int num_pending_ops_;
-  OperationType pending_op_;
-
-  // Set to true when the file has been successfully opened.
-  bool file_open_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_FILE_IO_STATE_MANAGER_H_
diff --git a/shared_impl/file_path.cc b/shared_impl/file_path.cc
deleted file mode 100644
index db74075..0000000
--- a/shared_impl/file_path.cc
+++ /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/shared_impl/file_path.h"
-
-namespace ppapi {
-
-PepperFilePath::PepperFilePath() : domain_(DOMAIN_INVALID), path_() {}
-
-PepperFilePath::PepperFilePath(Domain domain, const base::FilePath& path)
-    : domain_(domain), path_(path) {
-  // TODO(viettrungluu): Should we DCHECK() some things here?
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/file_path.h b/shared_impl/file_path.h
deleted file mode 100644
index a77f4d8..0000000
--- a/shared_impl/file_path.h
+++ /dev/null
@@ -1,41 +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_SHARED_IMPL_FILE_PATH_H_
-#define PPAPI_SHARED_IMPL_FILE_PATH_H_
-
-#include "base/files/file_path.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-// TODO(vtl): Once we put |::FilePath| into the |base| namespace, get rid of the
-// |Pepper| (or |PEPPER_|) prefixes. Right now, it's just too
-// confusing/dangerous!
-
-class PPAPI_SHARED_EXPORT PepperFilePath {
- public:
-  enum Domain {
-    DOMAIN_INVALID = 0,
-    DOMAIN_ABSOLUTE,
-    DOMAIN_MODULE_LOCAL,
-
-    // Used for validity-checking.
-    DOMAIN_MAX_VALID = DOMAIN_MODULE_LOCAL
-  };
-
-  PepperFilePath();
-  PepperFilePath(Domain d, const base::FilePath& p);
-
-  Domain domain() const { return domain_; }
-  const base::FilePath& path() const { return path_; }
-
- private:
-  Domain domain_;
-  base::FilePath path_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_FILE_PATH_H_
diff --git a/shared_impl/file_ref_create_info.cc b/shared_impl/file_ref_create_info.cc
deleted file mode 100644
index 133cf94..0000000
--- a/shared_impl/file_ref_create_info.cc
+++ /dev/null
@@ -1,53 +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.
-
-#include "ppapi/shared_impl/file_ref_create_info.h"
-
-#include <stddef.h>
-
-#include "base/check.h"
-#include "base/strings/utf_string_conversions.h"
-#include "build/build_config.h"
-#include "ppapi/c/pp_file_info.h"
-
-namespace ppapi {
-
-namespace {
-
-std::string GetNameForExternalFilePath(const base::FilePath& in_path) {
-  const base::FilePath::StringType& path = in_path.value();
-  size_t pos = path.rfind(base::FilePath::kSeparators[0]);
-  CHECK(pos != base::FilePath::StringType::npos);
-#if BUILDFLAG(IS_WIN)
-  return base::WideToUTF8(path.substr(pos + 1));
-#elif BUILDFLAG(IS_POSIX)
-  return path.substr(pos + 1);
-#else
-#error "Unsupported platform."
-#endif
-}
-
-}  // namespace
-
-bool FileRefCreateInfo::IsValid() const {
-  return file_system_type != PP_FILESYSTEMTYPE_INVALID;
-}
-
-FileRefCreateInfo MakeExternalFileRefCreateInfo(
-    const base::FilePath& external_path,
-    const std::string& display_name,
-    int browser_pending_host_resource_id,
-    int renderer_pending_host_resource_id) {
-  FileRefCreateInfo info;
-  info.file_system_type = PP_FILESYSTEMTYPE_EXTERNAL;
-  if (!display_name.empty())
-    info.display_name = display_name;
-  else
-    info.display_name = GetNameForExternalFilePath(external_path);
-  info.browser_pending_host_resource_id = browser_pending_host_resource_id;
-  info.renderer_pending_host_resource_id = renderer_pending_host_resource_id;
-  return info;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/file_ref_create_info.h b/shared_impl/file_ref_create_info.h
deleted file mode 100644
index 0ab0c3d..0000000
--- a/shared_impl/file_ref_create_info.h
+++ /dev/null
@@ -1,52 +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.
-
-#ifndef PPAPI_SHARED_IMPL_FILE_REF_CREATE_INFO_H_
-#define PPAPI_SHARED_IMPL_FILE_REF_CREATE_INFO_H_
-
-#include <string>
-
-#include "base/files/file_path.h"
-#include "ppapi/c/pp_file_info.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-// FileRefs are created in a number of places and they include a number of
-// return values. This struct encapsulates everything in one place.
-struct FileRefCreateInfo {
-  FileRefCreateInfo()
-      : file_system_type(PP_FILESYSTEMTYPE_INVALID),
-        browser_pending_host_resource_id(0),
-        renderer_pending_host_resource_id(0),
-        file_system_plugin_resource(0) {}
-
-  PPAPI_SHARED_EXPORT bool IsValid() const;
-
-  PP_FileSystemType file_system_type;
-  std::string internal_path;
-  std::string display_name;
-
-  // Used when a FileRef is created in the Renderer.
-  int browser_pending_host_resource_id;
-  int renderer_pending_host_resource_id;
-
-  // Since FileRef needs to hold a FileSystem reference, we need to pass the
-  // resource in this CreateInfo. This struct doesn't hold any refrence on the
-  // file_system_plugin_resource.
-  PP_Resource file_system_plugin_resource;
-};
-
-// Used in the renderer when sending a FileRefCreateInfo to a plugin for a
-// FileRef on an external filesystem.
-PPAPI_SHARED_EXPORT FileRefCreateInfo
-    MakeExternalFileRefCreateInfo(const base::FilePath& external_path,
-                                  const std::string& display_name,
-                                  int browser_pending_host_resource_id,
-                                  int renderer_pending_host_resource_id);
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_FILE_REF_CREATE_INFO_H_
diff --git a/shared_impl/file_ref_util.cc b/shared_impl/file_ref_util.cc
deleted file mode 100644
index bc6b849..0000000
--- a/shared_impl/file_ref_util.cc
+++ /dev/null
@@ -1,59 +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.
-
-#include "ppapi/shared_impl/file_ref_util.h"
-
-#include <stddef.h>
-
-#include "base/files/file_path.h"
-#include "base/strings/string_util.h"
-#include "base/strings/utf_string_conversions.h"
-#include "build/build_config.h"
-
-namespace ppapi {
-
-std::string GetNameForInternalFilePath(const std::string& path) {
-  if (path == "/")
-    return path;
-  size_t pos = path.rfind('/');
-  CHECK(pos != std::string::npos);
-  return path.substr(pos + 1);
-}
-
-std::string GetNameForExternalFilePath(const base::FilePath& path) {
-  const base::FilePath::StringType& file_path = path.value();
-  size_t pos = file_path.rfind(base::FilePath::kSeparators[0]);
-  CHECK(pos != base::FilePath::StringType::npos);
-#if BUILDFLAG(IS_WIN)
-  return base::WideToUTF8(file_path.substr(pos + 1));
-#elif BUILDFLAG(IS_POSIX)
-  return file_path.substr(pos + 1);
-#else
-#error "Unsupported platform."
-#endif
-}
-
-bool IsValidInternalPath(const std::string& path) {
-  // We check that:
-  //   The path starts with '/'
-  //   The path must contain valid UTF-8 characters.
-  //   It must not FilePath::ReferencesParent().
-  if (path.empty() || !base::IsStringUTF8(path) || path[0] != '/')
-    return false;
-  base::FilePath file_path = base::FilePath::FromUTF8Unsafe(path);
-  if (file_path.ReferencesParent())
-    return false;
-  return true;
-}
-
-bool IsValidExternalPath(const base::FilePath& path) {
-  return !path.empty() && !path.ReferencesParent();
-}
-
-void NormalizeInternalPath(std::string* path) {
-  if (path->size() > 1 && path->back() == '/')
-    path->erase(path->size() - 1, 1);
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/file_ref_util.h b/shared_impl/file_ref_util.h
deleted file mode 100644
index 84f2931..0000000
--- a/shared_impl/file_ref_util.h
+++ /dev/null
@@ -1,35 +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.
-
-#ifndef PPAPI_SHARED_IMPL_FILE_REF_UTIL_H_
-#define PPAPI_SHARED_IMPL_FILE_REF_UTIL_H_
-
-#include <string>
-
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace base {
-class FilePath;
-}
-
-namespace ppapi {
-
-// Routines to generate display names for internal and external file paths.
-PPAPI_SHARED_EXPORT std::string GetNameForInternalFilePath(
-    const std::string& path);
-PPAPI_SHARED_EXPORT std::string GetNameForExternalFilePath(
-    const base::FilePath& path);
-
-// Determines whether an internal file path is valid.
-PPAPI_SHARED_EXPORT bool IsValidInternalPath(const std::string& path);
-
-// Determines whether an external file path is valid.
-PPAPI_SHARED_EXPORT bool IsValidExternalPath(const base::FilePath& path);
-
-// If path ends with a slash, normalize it away unless it's the root path.
-PPAPI_SHARED_EXPORT void NormalizeInternalPath(std::string* path);
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_FILE_REF_UTIL_H_
diff --git a/shared_impl/file_system_util.cc b/shared_impl/file_system_util.cc
deleted file mode 100644
index 752b344..0000000
--- a/shared_impl/file_system_util.cc
+++ /dev/null
@@ -1,35 +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.
-
-#include "ppapi/shared_impl/file_system_util.h"
-
-#include <ostream>
-
-#include "base/notreached.h"
-
-namespace ppapi {
-
-bool FileSystemTypeIsValid(PP_FileSystemType type) {
-  return (type == PP_FILESYSTEMTYPE_LOCALPERSISTENT ||
-          type == PP_FILESYSTEMTYPE_LOCALTEMPORARY ||
-          type == PP_FILESYSTEMTYPE_EXTERNAL ||
-          type == PP_FILESYSTEMTYPE_ISOLATED);
-}
-
-bool FileSystemTypeHasQuota(PP_FileSystemType type) {
-  return (type == PP_FILESYSTEMTYPE_LOCALTEMPORARY ||
-          type == PP_FILESYSTEMTYPE_LOCALPERSISTENT);
-}
-
-std::string IsolatedFileSystemTypeToRootName(
-    PP_IsolatedFileSystemType_Private type) {
-  switch (type) {
-    case PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_CRX:
-      return "crxfs";
-    default:
-      NOTREACHED() << type;
-  }
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/file_system_util.h b/shared_impl/file_system_util.h
deleted file mode 100644
index 1356b79..0000000
--- a/shared_impl/file_system_util.h
+++ /dev/null
@@ -1,25 +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.
-
-#ifndef PPAPI_SHARED_IMPL_FILE_SYSTEM_UTIL_H_
-#define PPAPI_SHARED_IMPL_FILE_SYSTEM_UTIL_H_
-
-#include <string>
-
-#include "ppapi/c/pp_file_info.h"
-#include "ppapi/c/private/ppb_isolated_file_system_private.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-PPAPI_SHARED_EXPORT bool FileSystemTypeIsValid(PP_FileSystemType type);
-
-PPAPI_SHARED_EXPORT bool FileSystemTypeHasQuota(PP_FileSystemType type);
-
-PPAPI_SHARED_EXPORT std::string IsolatedFileSystemTypeToRootName(
-    PP_IsolatedFileSystemType_Private type);
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_FILE_SYSTEM_UTIL_H_
diff --git a/shared_impl/file_type_conversion.cc b/shared_impl/file_type_conversion.cc
deleted file mode 100644
index 8b6cd3b..0000000
--- a/shared_impl/file_type_conversion.cc
+++ /dev/null
@@ -1,102 +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/shared_impl/file_type_conversion.h"
-
-#include "base/check_op.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_file_io.h"
-#include "ppapi/shared_impl/time_conversion.h"
-
-namespace ppapi {
-
-int FileErrorToPepperError(base::File::Error error_code) {
-  switch (error_code) {
-    case base::File::FILE_OK:
-      return PP_OK;
-    case base::File::FILE_ERROR_EXISTS:
-      return PP_ERROR_FILEEXISTS;
-    case base::File::FILE_ERROR_NOT_FOUND:
-      return PP_ERROR_FILENOTFOUND;
-    case base::File::FILE_ERROR_ACCESS_DENIED:
-    case base::File::FILE_ERROR_SECURITY:
-      return PP_ERROR_NOACCESS;
-    case base::File::FILE_ERROR_NO_MEMORY:
-      return PP_ERROR_NOMEMORY;
-    case base::File::FILE_ERROR_NO_SPACE:
-      return PP_ERROR_NOSPACE;
-    case base::File::FILE_ERROR_NOT_A_DIRECTORY:
-      return PP_ERROR_FAILED;
-    case base::File::FILE_ERROR_NOT_A_FILE:
-      return PP_ERROR_NOTAFILE;
-    default:
-      return PP_ERROR_FAILED;
-  }
-}
-
-bool PepperFileOpenFlagsToPlatformFileFlags(int32_t pp_open_flags,
-                                            uint32_t* flags_out) {
-  bool pp_read = !!(pp_open_flags & PP_FILEOPENFLAG_READ);
-  bool pp_write = !!(pp_open_flags & PP_FILEOPENFLAG_WRITE);
-  bool pp_create = !!(pp_open_flags & PP_FILEOPENFLAG_CREATE);
-  bool pp_truncate = !!(pp_open_flags & PP_FILEOPENFLAG_TRUNCATE);
-  bool pp_exclusive = !!(pp_open_flags & PP_FILEOPENFLAG_EXCLUSIVE);
-  bool pp_append = !!(pp_open_flags & PP_FILEOPENFLAG_APPEND);
-
-  // Pepper allows Touch on any open file, so always set this Windows-only flag.
-  uint32_t flags = base::File::FLAG_WRITE_ATTRIBUTES;
-
-  if (pp_read)
-    flags |= base::File::FLAG_READ;
-  if (pp_write) {
-    flags |= base::File::FLAG_WRITE;
-  }
-  if (pp_append) {
-    if (pp_write)
-      return false;
-    flags |= base::File::FLAG_APPEND;
-  }
-
-  if (pp_truncate && !pp_write)
-    return false;
-
-  if (pp_create) {
-    if (pp_exclusive) {
-      flags |= base::File::FLAG_CREATE;
-    } else if (pp_truncate) {
-      flags |= base::File::FLAG_CREATE_ALWAYS;
-    } else {
-      flags |= base::File::FLAG_OPEN_ALWAYS;
-    }
-  } else if (pp_truncate) {
-    flags |= base::File::FLAG_OPEN_TRUNCATED;
-  } else {
-    flags |= base::File::FLAG_OPEN;
-  }
-
-  if (flags_out)
-    *flags_out = flags;
-  return true;
-}
-
-void FileInfoToPepperFileInfo(const base::File::Info& info,
-                              PP_FileSystemType fs_type,
-                              PP_FileInfo* info_out) {
-  DCHECK(info_out);
-  info_out->size = info.size;
-  info_out->creation_time = TimeToPPTime(info.creation_time);
-  info_out->last_access_time = TimeToPPTime(info.last_accessed);
-  info_out->last_modified_time = TimeToPPTime(info.last_modified);
-  info_out->system_type = fs_type;
-  if (info.is_directory) {
-    info_out->type = PP_FILETYPE_DIRECTORY;
-  } else if (info.is_symbolic_link) {
-    DCHECK_EQ(PP_FILESYSTEMTYPE_EXTERNAL, fs_type);
-    info_out->type = PP_FILETYPE_OTHER;
-  } else {
-    info_out->type = PP_FILETYPE_REGULAR;
-  }
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/file_type_conversion.h b/shared_impl/file_type_conversion.h
deleted file mode 100644
index 6f8c5e3..0000000
--- a/shared_impl/file_type_conversion.h
+++ /dev/null
@@ -1,31 +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_SHARED_IMPL_FILE_TYPE_CONVERSION_H_
-#define PPAPI_SHARED_IMPL_FILE_TYPE_CONVERSION_H_
-
-#include "base/files/file.h"
-#include "ppapi/c/pp_file_info.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/ppb_file_system.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-PPAPI_SHARED_EXPORT int FileErrorToPepperError(base::File::Error error_code);
-
-// Converts a PP_FileOpenFlags_Dev flag combination into a corresponding
-// PlatformFileFlags flag combination.
-// Returns |true| if okay.
-PPAPI_SHARED_EXPORT bool PepperFileOpenFlagsToPlatformFileFlags(
-    int32_t pp_open_flags,
-    uint32_t* flags_out);
-
-PPAPI_SHARED_EXPORT void FileInfoToPepperFileInfo(const base::File::Info& info,
-                                                  PP_FileSystemType fs_type,
-                                                  PP_FileInfo* info_out);
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_FILE_TYPE_CONVERSION_H_
diff --git a/shared_impl/host_resource.cc b/shared_impl/host_resource.cc
deleted file mode 100644
index 7a1ac07..0000000
--- a/shared_impl/host_resource.cc
+++ /dev/null
@@ -1,23 +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/shared_impl/host_resource.h"
-
-namespace ppapi {
-
-HostResource::HostResource() : instance_(0), host_resource_(0) {}
-
-// static
-HostResource HostResource::MakeInstanceOnly(PP_Instance instance) {
-  HostResource resource;
-  resource.SetHostResource(instance, 0);
-  return resource;
-}
-
-void HostResource::SetHostResource(PP_Instance instance, PP_Resource resource) {
-  instance_ = instance;
-  host_resource_ = resource;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/host_resource.h b/shared_impl/host_resource.h
deleted file mode 100644
index 81ab06a..0000000
--- a/shared_impl/host_resource.h
+++ /dev/null
@@ -1,79 +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_SHARED_IMPL_HOST_RESOURCE_H_
-#define PPAPI_SHARED_IMPL_HOST_RESOURCE_H_
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-// For "old" style resources, PP_Resource values differ on the host and plugin
-// side. Implementations of those should be careful to use HostResource to
-// prevent confusion. "New" style resources use the same PP_Resource value on
-// the host and plugin sides, and should not use HostResource.
-//
-// Old style resources match these file specs:
-//   Proxy: ppapi/proxy/ppb_*_proxy.*
-//   Host: content/ppapi_plugin/*
-// New style resources match these file specs:
-//   Proxy: ppapi/proxy/*_resource.*
-//   Browser: (content|chrome)/browser/renderer_host/pepper/pepper_*_host.*
-//   Renderer: (content|chrome)/renderer/pepper/pepper_*_host.*
-//
-//
-// Represents a PP_Resource sent over the wire. This just wraps a PP_Resource.
-// The point is to prevent mistakes where the wrong resource value is sent.
-// Resource values are remapped in the plugin so that it can talk to multiple
-// hosts. If all values were PP_Resource, it would be easy to forget to do
-// this transformation.
-//
-// To get the corresponding plugin PP_Resource for a HostResource, use
-// PluginResourceTracker::PluginResourceForHostResource().
-//
-// All HostResources respresent IDs valid in the host.
-class PPAPI_SHARED_EXPORT HostResource {
- public:
-  HostResource();
-
-  bool is_null() const { return !host_resource_; }
-
-  // Some resources are plugin-side only and don't have a corresponding
-  // resource in the host. Yet these resources still need an instance to be
-  // associated with. This function creates a HostResource with the given
-  // instances and a 0 host resource ID for these cases.
-  static HostResource MakeInstanceOnly(PP_Instance instance);
-
-  // Sets and retrieves the internal PP_Resource which is valid for the host
-  // (a.k.a. renderer, as opposed to the plugin) process.
-  //
-  // DO NOT CALL THESE FUNCTIONS IN THE PLUGIN SIDE OF THE PROXY. The values
-  // will be invalid. See the class comment above.
-  void SetHostResource(PP_Instance instance, PP_Resource resource);
-  PP_Resource host_resource() const { return host_resource_; }
-
-  PP_Instance instance() const { return instance_; }
-
-  // This object is used in maps so we need to provide this sorting operator.
-  bool operator<(const HostResource& other) const {
-    if (instance_ != other.instance_)
-      return instance_ < other.instance_;
-    return host_resource_ < other.host_resource_;
-  }
-
-  bool operator!=(const HostResource& other) const {
-    return instance_ != other.instance_ ||
-           host_resource_ != other.host_resource_;
-  }
-
- private:
-  PP_Instance instance_;
-  PP_Resource host_resource_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_HOST_RESOURCE_H_
diff --git a/shared_impl/id_assignment.cc b/shared_impl/id_assignment.cc
deleted file mode 100644
index 75f21fd..0000000
--- a/shared_impl/id_assignment.cc
+++ /dev/null
@@ -1,18 +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/shared_impl/id_assignment.h"
-
-#include <stdint.h>
-
-namespace ppapi {
-
-const unsigned int kPPIdTypeBits = 2;
-
-const int32_t kMaxPPId = INT32_MAX >> kPPIdTypeBits;
-
-static_assert(PP_ID_TYPE_COUNT <= (1 << kPPIdTypeBits),
-              "kPPIdTypeBits is too small for all id types");
-
-}  // namespace ppapi
diff --git a/shared_impl/id_assignment.h b/shared_impl/id_assignment.h
deleted file mode 100644
index 8261a78..0000000
--- a/shared_impl/id_assignment.h
+++ /dev/null
@@ -1,47 +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_SHARED_IMPL_ID_ASSIGNMENT_H_
-#define PPAPI_SHARED_IMPL_ID_ASSIGNMENT_H_
-
-#include <stdint.h>
-
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-enum PPIdType {
-  PP_ID_TYPE_MODULE,
-  PP_ID_TYPE_INSTANCE,
-  PP_ID_TYPE_RESOURCE,
-  PP_ID_TYPE_VAR,
-
-  // Not a real type, must be last.
-  PP_ID_TYPE_COUNT
-};
-
-PPAPI_SHARED_EXPORT extern const unsigned int kPPIdTypeBits;
-
-extern const int32_t kMaxPPId;
-
-// The least significant bits are the type, the rest are the value.
-template <typename T>
-inline T MakeTypedId(T value, PPIdType type) {
-  return (value << kPPIdTypeBits) | static_cast<T>(type);
-}
-
-template <typename T>
-inline bool CheckIdType(T id, PPIdType type) {
-  // Say a resource of 0 is always valid, since that means "no resource."
-  // You shouldn't be passing 0 var, instance, or module IDs around so those
-  // are still invalid.
-  if (type == PP_ID_TYPE_RESOURCE && !id)
-    return true;
-  const T mask = (static_cast<T>(1) << kPPIdTypeBits) - 1;
-  return (id & mask) == type;
-}
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_ID_ASSIGNMENT_H_
diff --git a/shared_impl/media_stream_audio_track_shared.cc b/shared_impl/media_stream_audio_track_shared.cc
deleted file mode 100644
index 2acac26..0000000
--- a/shared_impl/media_stream_audio_track_shared.cc
+++ /dev/null
@@ -1,20 +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/shared_impl/media_stream_audio_track_shared.h"
-
-namespace ppapi {
-
-// static
-bool MediaStreamAudioTrackShared::VerifyAttributes(
-    const Attributes& attributes) {
-  if (attributes.buffers < 0)
-    return false;
-  if (!(attributes.duration == 0 ||
-        (attributes.duration >= 10 && attributes.duration <= 10000)))
-    return false;
-  return true;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/media_stream_audio_track_shared.h b/shared_impl/media_stream_audio_track_shared.h
deleted file mode 100644
index e61228a..0000000
--- a/shared_impl/media_stream_audio_track_shared.h
+++ /dev/null
@@ -1,28 +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_SHARED_IMPL_MEDIA_STREAM_AUDIO_TRACK_SHARED_H_
-#define PPAPI_SHARED_IMPL_MEDIA_STREAM_AUDIO_TRACK_SHARED_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_audio_buffer.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT MediaStreamAudioTrackShared {
- public:
-  struct Attributes {
-    Attributes() : buffers(0), duration(0) {}
-    int32_t buffers;
-    int32_t duration;
-  };
-
-  static bool VerifyAttributes(const Attributes& attributes);
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_MEDIA_STREAM_AUDIO_TRACK_SHARED_H_
diff --git a/shared_impl/media_stream_buffer.h b/shared_impl/media_stream_buffer.h
deleted file mode 100644
index a95a117..0000000
--- a/shared_impl/media_stream_buffer.h
+++ /dev/null
@@ -1,75 +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_SHARED_IMPL_MEDIA_STREAM_BUFFER_H_
-#define PPAPI_SHARED_IMPL_MEDIA_STREAM_BUFFER_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_audio_buffer.h"
-#include "ppapi/c/ppb_video_frame.h"
-
-namespace ppapi {
-
-union MediaStreamBuffer {
-  enum Type {
-    TYPE_UNKNOWN = 0,
-    TYPE_AUDIO = 1,
-    TYPE_VIDEO = 2,
-    TYPE_BITSTREAM = 3
-  };
-
-  struct Header {
-    Type type;
-    uint32_t size;
-  };
-
-  struct Audio {
-    Header header;
-    PP_TimeDelta timestamp;
-    PP_AudioBuffer_SampleRate sample_rate;
-    uint32_t number_of_channels;
-    uint32_t number_of_samples;
-    uint32_t data_size;
-    // Uses 8 bytes to make sure the Audio struct has consistent size between
-    // NaCl code and renderer code.
-    uint8_t data[8];
-  };
-
-  struct Video {
-    Header header;
-    PP_TimeDelta timestamp;
-    PP_VideoFrame_Format format;
-    PP_Size size;
-    uint32_t data_size;
-    // Uses 8 bytes to make sure the Video struct has consistent size between
-    // NaCl code and renderer code.
-    uint8_t data[8];
-  };
-
-  struct Bitstream {
-    Header header;
-    uint32_t data_size;
-    // Uses 8 bytes to make sure the Bitstream struct has consistent size
-    // between NaCl code and renderer code.
-    uint8_t data[8];
-  };
-
-  // Because these structs are written and read in shared memory, we need
-  // the size and alighment to be consistent between NaCl and its host trusted
-  // platform.
-  PP_COMPILE_ASSERT_SIZE_IN_BYTES(Header, 8);
-  PP_COMPILE_ASSERT_SIZE_IN_BYTES(Audio, 40);
-  PP_COMPILE_ASSERT_SIZE_IN_BYTES(Video, 40);
-  PP_COMPILE_ASSERT_SIZE_IN_BYTES(Bitstream, 20);
-
-  Header header;
-  Video video;
-  Audio audio;
-  Bitstream bitstream;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_MEDIA_STREAM_BUFFER_H_
diff --git a/shared_impl/media_stream_buffer_manager.cc b/shared_impl/media_stream_buffer_manager.cc
deleted file mode 100644
index 5374081..0000000
--- a/shared_impl/media_stream_buffer_manager.cc
+++ /dev/null
@@ -1,96 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/shared_impl/media_stream_buffer_manager.h"
-
-#include <stddef.h>
-
-#include <ostream>
-#include <utility>
-
-#include "base/check_op.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/shared_impl/media_stream_buffer.h"
-
-namespace ppapi {
-
-MediaStreamBufferManager::Delegate::~Delegate() {}
-
-void MediaStreamBufferManager::Delegate::OnNewBufferEnqueued() {}
-
-MediaStreamBufferManager::MediaStreamBufferManager(Delegate* delegate)
-    : delegate_(delegate), buffer_size_(0), number_of_buffers_(0) {
-  DCHECK(delegate_);
-}
-
-MediaStreamBufferManager::~MediaStreamBufferManager() {}
-
-bool MediaStreamBufferManager::SetBuffers(int32_t number_of_buffers,
-                                          int32_t buffer_size,
-                                          base::UnsafeSharedMemoryRegion region,
-                                          bool enqueue_all_buffers) {
-  DCHECK(region.IsValid());
-  DCHECK_GT(number_of_buffers, 0);
-  DCHECK_GT(buffer_size,
-            static_cast<int32_t>(sizeof(MediaStreamBuffer::Header)));
-  DCHECK_EQ(buffer_size & 0x3, 0);
-
-  number_of_buffers_ = number_of_buffers;
-  buffer_size_ = buffer_size;
-
-  size_t size = number_of_buffers_ * buffer_size;
-  region_ = std::move(region);
-  mapping_ = region_.MapAt(0, size);
-  if (!mapping_.IsValid())
-    return false;
-
-  buffer_queue_.clear();
-  buffers_.clear();
-  uint8_t* p = mapping_.GetMemoryAsSpan<uint8_t>().data();
-  for (int32_t i = 0; i < number_of_buffers; ++i) {
-    if (enqueue_all_buffers)
-      buffer_queue_.push_back(i);
-    buffers_.push_back(reinterpret_cast<MediaStreamBuffer*>(p));
-    p += buffer_size_;
-  }
-  return true;
-}
-
-int32_t MediaStreamBufferManager::DequeueBuffer() {
-  if (buffer_queue_.empty())
-    return PP_ERROR_FAILED;
-  int32_t buffer = buffer_queue_.front();
-  buffer_queue_.pop_front();
-  return buffer;
-}
-
-std::vector<int32_t> MediaStreamBufferManager::DequeueBuffers() {
-  std::vector<int32_t> buffers(buffer_queue_.begin(), buffer_queue_.end());
-  buffer_queue_.clear();
-  return buffers;
-}
-
-void MediaStreamBufferManager::EnqueueBuffer(int32_t index) {
-  CHECK_GE(index, 0) << "Invalid buffer index";
-  CHECK_LT(index, number_of_buffers_) << "Invalid buffer index";
-  buffer_queue_.push_back(index);
-  delegate_->OnNewBufferEnqueued();
-}
-
-bool MediaStreamBufferManager::HasAvailableBuffer() {
-  return !buffer_queue_.empty();
-}
-
-MediaStreamBuffer* MediaStreamBufferManager::GetBufferPointer(int32_t index) {
-  if (index < 0 || index >= number_of_buffers_)
-    return NULL;
-  return buffers_[index];
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/media_stream_buffer_manager.h b/shared_impl/media_stream_buffer_manager.h
deleted file mode 100644
index 322ede0..0000000
--- a/shared_impl/media_stream_buffer_manager.h
+++ /dev/null
@@ -1,109 +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_SHARED_IMPL_MEDIA_STREAM_BUFFER_MANAGER_H_
-#define PPAPI_SHARED_IMPL_MEDIA_STREAM_BUFFER_MANAGER_H_
-
-#include <stdint.h>
-
-#include <memory>
-#include <vector>
-
-#include "base/compiler_specific.h"
-#include "base/containers/circular_deque.h"
-#include "base/memory/shared_memory_mapping.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-union MediaStreamBuffer;
-
-// This class is used by both read side and write side of a MediaStreamTrack to
-// maintain a queue of buffers for reading or writing.
-//
-// An example:
-//  1. The writer calls the writer's |buffer_manager_.Dequeue()| to get a free
-//     buffer.
-//  2. The writer fills data into the buffer.
-//  3. The writer sends the buffer index to the reader via an IPC message.
-//  4. The reader receives the buffer index and calls the reader's
-//     |buffer_buffer.Enqueue()| to put the buffer into the read's queue.
-//  5. The reader calls reader's |buffer_buffer_.Dequeue()| to get a received
-//     buffer.
-//  6. When the buffer from the step 5 is consumed, the reader sends the buffer
-//     index back to writer via an IPC message.
-//  7. The writer receives the buffer index and puts it back to the writer's
-//     free buffer queue by calling the writer's |buffer_manager_.Enqueue()|.
-//  8. Go back to step 1.
-class PPAPI_SHARED_EXPORT MediaStreamBufferManager {
- public:
-  class PPAPI_SHARED_EXPORT Delegate {
-   public:
-    virtual ~Delegate();
-    // It is called when a new buffer is enqueued.
-    virtual void OnNewBufferEnqueued();
-  };
-
-  // MediaStreamBufferManager doesn't own |delegate|, the caller should keep
-  // it alive during the MediaStreamBufferManager's lifecycle.
-  explicit MediaStreamBufferManager(Delegate* delegate);
-
-  MediaStreamBufferManager(const MediaStreamBufferManager&) = delete;
-  MediaStreamBufferManager& operator=(const MediaStreamBufferManager&) = delete;
-
-  ~MediaStreamBufferManager();
-
-  int32_t number_of_buffers() const { return number_of_buffers_; }
-
-  int32_t buffer_size() const { return buffer_size_; }
-
-  const base::UnsafeSharedMemoryRegion& region() { return region_; }
-  const base::WritableSharedMemoryMapping& mapping() { return mapping_; }
-
-  // Initializes shared memory for buffers transmission.
-  bool SetBuffers(int32_t number_of_buffers,
-                  int32_t buffer_size,
-                  base::UnsafeSharedMemoryRegion region,
-                  bool enqueue_all_buffers);
-
-  // Dequeues a buffer from |buffer_queue_|.
-  int32_t DequeueBuffer();
-
-  // Dequeues all the buffers from |buffer_queue_|.
-  std::vector<int32_t> DequeueBuffers();
-
-  // Puts a buffer into |buffer_queue_|.
-  void EnqueueBuffer(int32_t index);
-
-  // Queries whether a buffer will be returned by DequeueBuffer().
-  bool HasAvailableBuffer();
-
-  // Gets the buffer address for the given buffer index.
-  MediaStreamBuffer* GetBufferPointer(int32_t index);
-
- private:
-  Delegate* delegate_;
-
-  // A queue of buffer indices.
-  base::circular_deque<int32_t> buffer_queue_;
-
-  // A vector of buffer pointers. It is used for index to pointer converting.
-  std::vector<MediaStreamBuffer*> buffers_;
-
-  // The buffer size in bytes.
-  int32_t buffer_size_;
-
-  // The number of buffers in the shared memory.
-  int32_t number_of_buffers_;
-
-  // A memory block shared between renderer process and plugin process, and its
-  // mapping.
-  base::UnsafeSharedMemoryRegion region_;
-  base::WritableSharedMemoryMapping mapping_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_MEDIA_STREAM_BUFFER_MANAGER_H_
diff --git a/shared_impl/media_stream_video_track_shared.cc b/shared_impl/media_stream_video_track_shared.cc
deleted file mode 100644
index 271c34c..0000000
--- a/shared_impl/media_stream_video_track_shared.cc
+++ /dev/null
@@ -1,39 +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/shared_impl/media_stream_video_track_shared.h"
-
-
-namespace {
-
-const int32_t kMaxWidth = 4096;
-const int32_t kMaxHeight = 4096;
-
-}  // namespace
-
-namespace ppapi {
-
-// static
-bool MediaStreamVideoTrackShared::VerifyAttributes(
-    const Attributes& attributes) {
-  if (attributes.buffers < 0)
-    return false;
-  if (attributes.format < PP_VIDEOFRAME_FORMAT_UNKNOWN ||
-      attributes.format > PP_VIDEOFRAME_FORMAT_LAST) {
-    return false;
-  }
-  if (attributes.width < 0 ||
-      attributes.width > kMaxWidth ||
-      attributes.width & 0x3) {
-    return false;
-  }
-  if (attributes.height < 0 ||
-      attributes.height > kMaxHeight ||
-      attributes.height & 0x3) {
-    return false;
-  }
-  return true;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/media_stream_video_track_shared.h b/shared_impl/media_stream_video_track_shared.h
deleted file mode 100644
index 40f9498..0000000
--- a/shared_impl/media_stream_video_track_shared.h
+++ /dev/null
@@ -1,34 +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_SHARED_IMPL_MEDIA_STREAM_VIDEO_TRACK_SHARED_H_
-#define PPAPI_SHARED_IMPL_MEDIA_STREAM_VIDEO_TRACK_SHARED_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_video_frame.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT MediaStreamVideoTrackShared {
- public:
-  struct Attributes {
-    Attributes()
-        : buffers(0),
-          width(0),
-          height(0),
-          format(PP_VIDEOFRAME_FORMAT_UNKNOWN) {}
-    int32_t buffers;
-    int32_t width;
-    int32_t height;
-    PP_VideoFrame_Format format;
-  };
-
-  static bool VerifyAttributes(const Attributes& attributes);
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_MEDIA_STREAM_VIDEO_TRACK_SHARED_H_
diff --git a/shared_impl/platform_file.cc b/shared_impl/platform_file.cc
deleted file mode 100644
index f6eb0cc..0000000
--- a/shared_impl/platform_file.cc
+++ /dev/null
@@ -1,32 +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 "build/build_config.h"
-#include "ppapi/shared_impl/platform_file.h"
-
-namespace ppapi {
-
-// TODO(piman/brettw): Change trusted interface to return a PP_FileHandle,
-// those casts are ugly.
-base::PlatformFile IntToPlatformFile(int32_t handle) {
-#if BUILDFLAG(IS_WIN)
-  return reinterpret_cast<HANDLE>(static_cast<intptr_t>(handle));
-#elif BUILDFLAG(IS_POSIX)
-  return handle;
-#else
-#error Not implemented.
-#endif
-}
-
-int32_t PlatformFileToInt(base::PlatformFile handle) {
-#if BUILDFLAG(IS_WIN)
-  return static_cast<int32_t>(reinterpret_cast<intptr_t>(handle));
-#elif BUILDFLAG(IS_POSIX)
-  return handle;
-#else
-#error Not implemented.
-#endif
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/platform_file.h b/shared_impl/platform_file.h
deleted file mode 100644
index 80f7a50..0000000
--- a/shared_impl/platform_file.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_SHARED_IMPL_PLATFORM_FILE_H_
-#define PPAPI_SHARED_IMPL_PLATFORM_FILE_H_
-
-#include "base/files/file.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-PPAPI_SHARED_EXPORT base::PlatformFile IntToPlatformFile(int32_t handle);
-PPAPI_SHARED_EXPORT int32_t PlatformFileToInt(base::PlatformFile handle);
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PLATFORM_FILE_H_
diff --git a/shared_impl/ppapi_globals.cc b/shared_impl/ppapi_globals.cc
deleted file mode 100644
index 35893e6..0000000
--- a/shared_impl/ppapi_globals.cc
+++ /dev/null
@@ -1,89 +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/shared_impl/ppapi_globals.h"
-
-#include "base/check.h"
-#include "base/run_loop.h"
-#include "base/task/single_thread_task_runner.h"
-
-namespace ppapi {
-
-namespace {
-
-// Thread-local globals for testing. See SetPpapiGlobalsOnThreadForTest for more
-// information.
-constinit thread_local PpapiGlobals* ppapi_globals_for_test = nullptr;
-
-}  // namespace
-
-PpapiGlobals* ppapi_globals = NULL;
-
-PpapiGlobals::PpapiGlobals() {
-  DCHECK(!ppapi_globals);
-  ppapi_globals = this;
-  main_task_runner_ = base::SingleThreadTaskRunner::GetCurrentDefault();
-}
-
-PpapiGlobals::PpapiGlobals(PerThreadForTest) {
-  DCHECK(!ppapi_globals);
-  main_task_runner_ = base::SingleThreadTaskRunner::GetCurrentDefault();
-}
-
-PpapiGlobals::~PpapiGlobals() {
-  DCHECK(ppapi_globals == this || !ppapi_globals);
-  while (!message_loop_quit_closures_.empty()) {
-    QuitMsgLoop();
-  }
-  ppapi_globals = NULL;
-}
-
-// Static Getter for the global singleton.
-PpapiGlobals* PpapiGlobals::Get() {
-  if (ppapi_globals)
-    return ppapi_globals;
-  // In unit tests, the following might be valid (see
-  // SetPpapiGlobalsOnThreadForTest). Normally, this will just return NULL.
-  return GetThreadLocalPointer();
-}
-
-// static
-void PpapiGlobals::SetPpapiGlobalsOnThreadForTest(PpapiGlobals* ptr) {
-  // If we're using a per-thread PpapiGlobals, we should not have a global one.
-  // If we allowed it, it would always over-ride the "test" versions.
-  DCHECK(!ppapi_globals);
-  ppapi_globals_for_test = ptr;
-}
-
-void PpapiGlobals::RunMsgLoop() {
-  base::RunLoop loop{base::RunLoop::Type::kNestableTasksAllowed};
-  message_loop_quit_closures_.push(loop.QuitClosure());
-  loop.Run();
-}
-
-void PpapiGlobals::QuitMsgLoop() {
-  if (!message_loop_quit_closures_.empty()) {
-    std::move(message_loop_quit_closures_.top()).Run();
-    message_loop_quit_closures_.pop();
-  }
-}
-
-base::SingleThreadTaskRunner* PpapiGlobals::GetMainThreadMessageLoop() {
-  return main_task_runner_.get();
-}
-
-void PpapiGlobals::ResetMainThreadMessageLoopForTesting() {
-  main_task_runner_ = base::SingleThreadTaskRunner::GetCurrentDefault();
-}
-
-bool PpapiGlobals::IsHostGlobals() const { return false; }
-
-bool PpapiGlobals::IsPluginGlobals() const { return false; }
-
-// static
-PpapiGlobals* PpapiGlobals::GetThreadLocalPointer() {
-  return ppapi_globals_for_test;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppapi_globals.h b/shared_impl/ppapi_globals.h
deleted file mode 100644
index 21dc8ec..0000000
--- a/shared_impl/ppapi_globals.h
+++ /dev/null
@@ -1,141 +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_SHARED_IMPL_PPAPI_GLOBALS_H_
-#define PPAPI_SHARED_IMPL_PPAPI_GLOBALS_H_
-
-#include <stack>
-#include <string>
-
-#include "base/functional/callback.h"
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_module.h"
-#include "ppapi/c/ppb_console.h"
-#include "ppapi/shared_impl/api_id.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace base {
-class SingleThreadTaskRunner;
-class TaskRunner;
-}
-
-namespace ppapi {
-
-class CallbackTracker;
-class MessageLoopShared;
-class ResourceTracker;
-class VarTracker;
-
-namespace thunk {
-class PPB_Instance_API;
-class ResourceCreationAPI;
-}
-
-// Abstract base class
-class PPAPI_SHARED_EXPORT PpapiGlobals {
- public:
-  // Must be created on the main thread.
-  PpapiGlobals();
-
-  // This constructor is to be used only for making a PpapiGlobal for testing
-  // purposes. This avoids setting the global static ppapi_globals_. For unit
-  // tests that use this feature, the "test" PpapiGlobals should be constructed
-  // using this method. See SetPpapiGlobalsOnThreadForTest for more information.
-  struct PerThreadForTest {};
-  explicit PpapiGlobals(PerThreadForTest);
-
-  PpapiGlobals(const PpapiGlobals&) = delete;
-  PpapiGlobals& operator=(const PpapiGlobals&) = delete;
-
-  virtual ~PpapiGlobals();
-
-  // Getter for the global singleton.
-  static PpapiGlobals* Get();
-
-  // This allows us to set a given PpapiGlobals object as the PpapiGlobals for
-  // a given thread. After setting the PpapiGlobals for a thread, Get() will
-  // return that PpapiGlobals when Get() is called on that thread. Other threads
-  // are unaffected. This allows us to have tests which use >1 PpapiGlobals in
-  // the same process, e.g. for having 1 thread emulate the "host" and 1 thread
-  // emulate the "plugin".
-  //
-  // PpapiGlobals object must have been constructed using the "PerThreadForTest"
-  // parameter.
-  static void SetPpapiGlobalsOnThreadForTest(PpapiGlobals* ptr);
-
-  // Retrieves the corresponding tracker.
-  virtual ResourceTracker* GetResourceTracker() = 0;
-  virtual VarTracker* GetVarTracker() = 0;
-  virtual CallbackTracker* GetCallbackTrackerForInstance(
-      PP_Instance instance) = 0;
-
-  // Logs the given string to the JS console. If "source" is empty, the name of
-  // the current module will be used, if it can be determined.
-  virtual void LogWithSource(PP_Instance instance,
-                             PP_LogLevel level,
-                             const std::string& source,
-                             const std::string& value) = 0;
-
-  // Like LogWithSource but broadcasts the log to all instances of the given
-  // module. The module may be 0 to specify that all consoles possibly
-  // associated with the calling code should be notified. This allows us to
-  // log errors for things like bad resource IDs where we may not have an
-  // associated instance.
-  //
-  // Note that in the plugin process, the module parameter is ignored since
-  // there is only one possible one.
-  virtual void BroadcastLogWithSource(PP_Module module,
-                                      PP_LogLevel level,
-                                      const std::string& source,
-                                      const std::string& value) = 0;
-
-  // Returns the given API object associated with the given instance, or NULL
-  // if the instance is invalid.
-  virtual thunk::PPB_Instance_API* GetInstanceAPI(PP_Instance instance) = 0;
-  virtual thunk::ResourceCreationAPI* GetResourceCreationAPI(
-      PP_Instance instance) = 0;
-
-  // Returns the PP_Module associated with the given PP_Instance, or 0 on
-  // failure.
-  virtual PP_Module GetModuleForInstance(PP_Instance instance) = 0;
-
-  // Returns the base::SingleThreadTaskRunner for the main thread. This is set
-  // in the constructor, so PpapiGlobals must be created on the main thread.
-  base::SingleThreadTaskRunner* GetMainThreadMessageLoop();
-
-  // Manage the MessageLoop
-  void RunMsgLoop();
-  void QuitMsgLoop();
-  // In tests, the PpapiGlobals object persists across tests but the MLP pointer
-  // it hangs on will go stale and the next PPAPI test will crash because of
-  // thread checks. This resets the pointer to be the current MLP object.
-  void ResetMainThreadMessageLoopForTesting();
-
-  // Return the MessageLoopShared of the current thread, if any. This will
-  // always return NULL on the host side, where PPB_MessageLoop is not
-  // supported.
-  virtual MessageLoopShared* GetCurrentMessageLoop() = 0;
-
-  // Returns a task runner for file operations that may block.
-  // TODO(bbudge) Move this to PluginGlobals when we no longer support
-  // in-process plugins.
-  virtual base::TaskRunner* GetFileTaskRunner() = 0;
-
-  virtual bool IsHostGlobals() const;
-  virtual bool IsPluginGlobals() const;
-
- private:
-  // Return the thread-local pointer which is used only for unit testing. It
-  // should always be NULL when running in production. It allows separate
-  // threads to have distinct "globals".
-  static PpapiGlobals* GetThreadLocalPointer();
-
-  scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_;
-  std::stack<base::OnceClosure> message_loop_quit_closures_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPAPI_GLOBALS_H_
diff --git a/shared_impl/ppapi_nacl_plugin_args.cc b/shared_impl/ppapi_nacl_plugin_args.cc
deleted file mode 100644
index 42dea4a..0000000
--- a/shared_impl/ppapi_nacl_plugin_args.cc
+++ /dev/null
@@ -1,16 +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/shared_impl/ppapi_nacl_plugin_args.h"
-
-namespace ppapi {
-
-// We must provide explicit definitions of these functions for builds on
-// Windows.
-PpapiNaClPluginArgs::PpapiNaClPluginArgs()
-    : off_the_record(false), supports_dev_channel(false) {}
-
-PpapiNaClPluginArgs::~PpapiNaClPluginArgs() {}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppapi_nacl_plugin_args.h b/shared_impl/ppapi_nacl_plugin_args.h
deleted file mode 100644
index da6d847..0000000
--- a/shared_impl/ppapi_nacl_plugin_args.h
+++ /dev/null
@@ -1,31 +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_SHARED_IMPL_PPAPI_NACL_PLUGIN_ARGS_H_
-#define PPAPI_SHARED_IMPL_PPAPI_NACL_PLUGIN_ARGS_H_
-
-#include <string>
-#include <vector>
-
-#include "ppapi/shared_impl/ppapi_permissions.h"
-
-namespace ppapi {
-
-struct PPAPI_SHARED_EXPORT PpapiNaClPluginArgs {
- public:
-  PpapiNaClPluginArgs();
-  ~PpapiNaClPluginArgs();
-
-  bool off_the_record;
-  PpapiPermissions permissions;
-  bool supports_dev_channel;
-
-  // Switches from the command-line.
-  std::vector<std::string> switch_names;
-  std::vector<std::string> switch_values;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPAPI_NACL_PLUGIN_ARGS_H_
diff --git a/shared_impl/ppapi_permissions.cc b/shared_impl/ppapi_permissions.cc
deleted file mode 100644
index 3be1e8e..0000000
--- a/shared_impl/ppapi_permissions.cc
+++ /dev/null
@@ -1,52 +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/shared_impl/ppapi_permissions.h"
-
-#include "base/check.h"
-#include "base/command_line.h"
-#include "build/build_config.h"
-#include "ppapi/shared_impl/ppapi_switches.h"
-
-namespace ppapi {
-
-PpapiPermissions::PpapiPermissions() : permissions_(0) {}
-
-PpapiPermissions::PpapiPermissions(uint32_t perms) : permissions_(perms) {}
-
-PpapiPermissions::~PpapiPermissions() {}
-
-// static
-PpapiPermissions PpapiPermissions::AllPermissions() {
-  return PpapiPermissions(PERMISSION_ALL_BITS);
-}
-
-// static
-PpapiPermissions PpapiPermissions::GetForCommandLine(uint32_t base_perms) {
-  uint32_t additional_permissions = 0;
-
-#if !BUILDFLAG(IS_NACL)
-  // Testing permissions. The testing flag implies all permissions since the
-  // test plugin needs to test all interfaces.
-  if (base::CommandLine::ForCurrentProcess()->HasSwitch(
-          switches::kEnablePepperTesting))
-    additional_permissions |= ppapi::PERMISSION_ALL_BITS;
-#endif
-
-  return PpapiPermissions(base_perms | additional_permissions);
-}
-
-bool PpapiPermissions::HasPermission(Permission perm) const {
-  // Check that "perm" is a power of two to make sure the caller didn't set
-  // more than one permission bit. We may want to change how permissions are
-  // represented in the future so don't want callers making assumptions about
-  // bits.
-  uint32_t perm_int = static_cast<uint32_t>(perm);
-  if (!perm_int)
-    return true;  // You always have "no permission".
-  DCHECK((perm_int & (perm_int - 1)) == 0);
-  return !!(permissions_ & perm_int);
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppapi_permissions.h b/shared_impl/ppapi_permissions.h
deleted file mode 100644
index dcb756c..0000000
--- a/shared_impl/ppapi_permissions.h
+++ /dev/null
@@ -1,93 +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_SHARED_IMPL_PPAPI_PERMISSIONS_H_
-#define PPAPI_SHARED_IMPL_PPAPI_PERMISSIONS_H_
-
-#include <stdint.h>
-
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-enum Permission {
-  // Placeholder/uninitialized permission.
-  PERMISSION_NONE = 0,
-
-  // Allows access to dev interfaces. These are experimental interfaces not
-  // tied to any particular release channel.
-  PERMISSION_DEV = 1 << 0,
-
-  // Allows access to Browser-internal interfaces.
-  PERMISSION_PRIVATE = 1 << 1,
-
-  // Allows ability to bypass user-gesture checks for showing things like
-  // file select dialogs.
-  PERMISSION_BYPASS_USER_GESTURE = 1 << 2,
-
-  // Testing-only interfaces.
-  PERMISSION_TESTING = 1 << 3,
-
-  // Flash-related interfaces.
-  PERMISSION_FLASH = 1 << 4,
-
-  // "Dev channel" interfaces. This is different than PERMISSION_DEV above;
-  // these interfaces may only be used on Dev or Canary channel releases of
-  // Chrome.
-  PERMISSION_DEV_CHANNEL = 1 << 5,
-
-  // PDF-related interfaces.
-  PERMISSION_PDF = 1 << 6,
-
-  // Socket APIs. Formerly part of public APIs.
-  PERMISSION_SOCKET = 1 << 7,
-
-  // NOTE: If you add stuff be sure to update PERMISSION_ALL_BITS.
-
-  // Meta permission for for initializing plugins with permissions that have
-  // historically been part of public APIs but are now covered by finer-grained
-  // permissions.
-  PERMISSION_DEFAULT = PERMISSION_SOCKET,
-
-  // Meta permission for initializing plugins registered on the command line
-  // that get all permissions.
-  PERMISSION_ALL_BITS = PERMISSION_DEV | PERMISSION_PRIVATE |
-                        PERMISSION_BYPASS_USER_GESTURE | PERMISSION_TESTING |
-                        PERMISSION_FLASH | PERMISSION_DEV_CHANNEL |
-                        PERMISSION_PDF | PERMISSION_SOCKET,
-};
-
-class PPAPI_SHARED_EXPORT PpapiPermissions {
- public:
-  // Initializes the permissions struct with no permissions.
-  PpapiPermissions();
-
-  // Initializes with the given permissions bits set.
-  explicit PpapiPermissions(uint32_t perms);
-
-  ~PpapiPermissions();
-
-  // Returns a permissions class with all features enabled. This is for testing
-  // and manually registered plugins.
-  static PpapiPermissions AllPermissions();
-
-  // Returns the effective permissions given the "base" permissions granted
-  // to the given plugin and the current command line flags, which may enable
-  // more features.
-  static PpapiPermissions GetForCommandLine(uint32_t base_perms);
-
-  bool HasPermission(Permission perm) const;
-
-  // Returns the internal permission bits. Use for serialization only.
-  uint32_t GetBits() const { return permissions_; }
-
- private:
-  uint32_t permissions_;
-
-  // Note: Copy & assign supported.
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPAPI_PERMISSIONS_H_
diff --git a/shared_impl/ppapi_preferences.cc b/shared_impl/ppapi_preferences.cc
deleted file mode 100644
index 0f2181a..0000000
--- a/shared_impl/ppapi_preferences.cc
+++ /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.
-
-#include "ppapi/shared_impl/ppapi_preferences.h"
-
-namespace ppapi {
-
-Preferences::Preferences()
-    : default_font_size(0),
-      default_fixed_font_size(0),
-      number_of_cpu_cores(0),
-      is_3d_supported(true),
-      is_stage3d_supported(false),
-      is_stage3d_baseline_supported(false),
-      is_accelerated_video_decode_enabled(false) {}
-
-Preferences::~Preferences() {}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppapi_preferences.h b/shared_impl/ppapi_preferences.h
deleted file mode 100644
index 0c42b62..0000000
--- a/shared_impl/ppapi_preferences.h
+++ /dev/null
@@ -1,37 +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_SHARED_IMPL_PPAPI_PREFERENCES_H_
-#define PPAPI_SHARED_IMPL_PPAPI_PREFERENCES_H_
-
-#include <map>
-#include <string>
-
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-struct PPAPI_SHARED_EXPORT Preferences {
- public:
-  typedef std::map<std::string, std::u16string> ScriptFontFamilyMap;
-
-  Preferences();
-  ~Preferences();
-
-  ScriptFontFamilyMap standard_font_family_map;
-  ScriptFontFamilyMap fixed_font_family_map;
-  ScriptFontFamilyMap serif_font_family_map;
-  ScriptFontFamilyMap sans_serif_font_family_map;
-  int default_font_size;
-  int default_fixed_font_size;
-  int number_of_cpu_cores;
-  bool is_3d_supported;
-  bool is_stage3d_supported;
-  bool is_stage3d_baseline_supported;
-  bool is_accelerated_video_decode_enabled;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPAPI_PREFERENCES_H_
diff --git a/shared_impl/ppapi_shared_export.h b/shared_impl/ppapi_shared_export.h
deleted file mode 100644
index e7308a2..0000000
--- a/shared_impl/ppapi_shared_export.h
+++ /dev/null
@@ -1,25 +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_SHARED_IMPL_PPAPI_SHARED_EXPORT_H_
-#define PPAPI_SHARED_IMPL_PPAPI_SHARED_EXPORT_H_
-
-#if defined(COMPONENT_BUILD)
-#if defined(WIN32)
-
-#if defined(PPAPI_SHARED_IMPLEMENTATION)
-#define PPAPI_SHARED_EXPORT __declspec(dllexport)
-#else
-#define PPAPI_SHARED_EXPORT __declspec(dllimport)
-#endif  // defined(PPAPI_SHARED_IMPLEMENTATION)
-
-#else  // defined(WIN32)
-#define PPAPI_SHARED_EXPORT __attribute__((visibility("default")))
-#endif
-
-#else  // defined(COMPONENT_BUILD)
-#define PPAPI_SHARED_EXPORT
-#endif
-
-#endif  // PPAPI_SHARED_IMPL_PPAPI_SHARED_EXPORT_H_
diff --git a/shared_impl/ppapi_switches.cc b/shared_impl/ppapi_switches.cc
deleted file mode 100644
index 6cde525..0000000
--- a/shared_impl/ppapi_switches.cc
+++ /dev/null
@@ -1,12 +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/shared_impl/ppapi_switches.h"
-
-namespace switches {
-
-// Enables the testing interface for PPAPI.
-const char kEnablePepperTesting[] = "enable-pepper-testing";
-
-}  // namespace switches
diff --git a/shared_impl/ppapi_switches.h b/shared_impl/ppapi_switches.h
deleted file mode 100644
index 7f95012..0000000
--- a/shared_impl/ppapi_switches.h
+++ /dev/null
@@ -1,16 +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_SHARED_IMPL_PPAPI_SWITCHES_H_
-#define PPAPI_SHARED_IMPL_PPAPI_SWITCHES_H_
-
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace switches {
-
-PPAPI_SHARED_EXPORT extern const char kEnablePepperTesting[];
-
-}  // namespace switches
-
-#endif  // PPAPI_SHARED_IMPL_PPAPI_SWITCHES_H_
diff --git a/shared_impl/ppb_audio_config_shared.cc b/shared_impl/ppb_audio_config_shared.cc
deleted file mode 100644
index 278b3e1..0000000
--- a/shared_impl/ppb_audio_config_shared.cc
+++ /dev/null
@@ -1,181 +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/shared_impl/ppb_audio_config_shared.h"
-
-#include <algorithm>
-
-#include "build/build_config.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-
-namespace ppapi {
-
-// Rounds up requested_size to the nearest multiple of minimum_size.
-static uint32_t CalculateMultipleOfSampleFrameCount(uint32_t minimum_size,
-                                                    uint32_t requested_size) {
-  const uint32_t multiple = (requested_size + minimum_size - 1) / minimum_size;
-  return std::min(minimum_size * multiple,
-                  static_cast<uint32_t>(PP_AUDIOMAXSAMPLEFRAMECOUNT));
-}
-
-PPB_AudioConfig_Shared::PPB_AudioConfig_Shared(ResourceObjectType type,
-                                               PP_Instance instance)
-    : Resource(type, instance),
-      sample_rate_(PP_AUDIOSAMPLERATE_NONE),
-      sample_frame_count_(0) {}
-
-PPB_AudioConfig_Shared::~PPB_AudioConfig_Shared() {}
-
-PP_Resource PPB_AudioConfig_Shared::Create(ResourceObjectType type,
-                                           PP_Instance instance,
-                                           PP_AudioSampleRate sample_rate,
-                                           uint32_t sample_frame_count) {
-  scoped_refptr<PPB_AudioConfig_Shared> object(
-      new PPB_AudioConfig_Shared(type, instance));
-  if (!object->Init(sample_rate, sample_frame_count))
-    return 0;
-  return object->GetReference();
-}
-
-// static
-uint32_t PPB_AudioConfig_Shared::RecommendSampleFrameCount_1_0(
-    PP_AudioSampleRate sample_rate,
-    uint32_t requested_sample_frame_count) {
-  // Version 1.0: Don't actually query to get a value from the
-  // hardware; instead return the input for in-range values.
-  if (requested_sample_frame_count < PP_AUDIOMINSAMPLEFRAMECOUNT)
-    return PP_AUDIOMINSAMPLEFRAMECOUNT;
-  if (requested_sample_frame_count > PP_AUDIOMAXSAMPLEFRAMECOUNT)
-    return PP_AUDIOMAXSAMPLEFRAMECOUNT;
-  return requested_sample_frame_count;
-}
-
-// static
-uint32_t PPB_AudioConfig_Shared::RecommendSampleFrameCount_1_1(
-    PP_Instance instance,
-    PP_AudioSampleRate sample_rate,
-    uint32_t sample_frame_count) {
-  // Version 1.1: Query the back-end hardware for sample rate and buffer size,
-  // and recommend a best fit based on request.
-  thunk::EnterInstanceNoLock enter(instance);
-  if (enter.failed())
-    return 0;
-
-  // Get the hardware config.
-  PP_AudioSampleRate hardware_sample_rate = static_cast<PP_AudioSampleRate>(
-      enter.functions()->GetAudioHardwareOutputSampleRate(instance));
-  uint32_t hardware_sample_frame_count =
-      enter.functions()->GetAudioHardwareOutputBufferSize(instance);
-  if (sample_frame_count < PP_AUDIOMINSAMPLEFRAMECOUNT)
-    sample_frame_count = PP_AUDIOMINSAMPLEFRAMECOUNT;
-
-  // If hardware information isn't available we're connected to a fake audio
-  // output stream on the browser side, so we can use whatever sample count the
-  // client wants.
-  if (!hardware_sample_frame_count || !hardware_sample_rate)
-    return sample_frame_count;
-
-  // Note: All the values below were determined through experimentation to
-  // minimize jitter and back-to-back callbacks from the browser.  Please take
-  // care when modifying these values as they impact a large number of users.
-  // TODO(dalecurtis): Land jitter test and add documentation for updating this.
-
-  // Should track the value reported by XP and ALSA backends.
-  const uint32_t kHighLatencySampleFrameCount = 2048;
-#if BUILDFLAG(IS_CHROMEOS) && defined(ARCH_CPU_ARM_FAMILY)
-  // TODO(ihf): Remove this once ARM Chromebooks support low latency audio. For
-  // now we classify them as high latency. See crbug.com/289770. Note that
-  // Adobe Flash is affected but not HTML5, WebRTC and WebAudio (they are using
-  // real time threads).
-  const bool kHighLatencyDevice = true;
-#else
-  const bool kHighLatencyDevice = false;
-#endif
-
-  // If client is using same sample rate as audio hardware, then recommend a
-  // multiple of the audio hardware's sample frame count.
-  if (!kHighLatencyDevice && hardware_sample_rate == sample_rate) {
-    return CalculateMultipleOfSampleFrameCount(hardware_sample_frame_count,
-                                               sample_frame_count);
-  }
-
-  // If the hardware requires a high latency buffer or we're at a low sample
-  // rate w/ a buffer that's larger than 10ms, choose the nearest multiple of
-  // the high latency sample frame count.  An example of too low and too large
-  // is 16kHz and a sample frame count greater than 160 frames.
-  if (kHighLatencyDevice ||
-      hardware_sample_frame_count >= kHighLatencySampleFrameCount ||
-      (hardware_sample_rate < 44100 &&
-       hardware_sample_frame_count > hardware_sample_rate / 100u)) {
-    return CalculateMultipleOfSampleFrameCount(
-        sample_frame_count,
-        std::max(kHighLatencySampleFrameCount, hardware_sample_frame_count));
-  }
-
-  // All low latency clients should be able to handle a 512 frame buffer with
-  // resampling from 44.1kHz and 48kHz to higher sample rates.
-  // TODO(dalecurtis): We may need to investigate making the callback thread
-  // high priority to handle buffers at the absolute minimum w/o glitching.
-  const uint32_t kLowLatencySampleFrameCount = 512;
-
-  // Special case for 48kHz -> 44.1kHz and buffer sizes greater than 10ms.  In
-  // testing most buffer sizes > 10ms led to glitching, so we choose a size we
-  // know won't cause jitter.
-  int min_sample_frame_count = kLowLatencySampleFrameCount;
-  if (hardware_sample_rate == 44100 && sample_rate == 48000 &&
-      hardware_sample_frame_count > hardware_sample_rate / 100u) {
-    min_sample_frame_count =
-        std::max(2 * kLowLatencySampleFrameCount, hardware_sample_frame_count);
-  }
-
-  return CalculateMultipleOfSampleFrameCount(min_sample_frame_count,
-                                             sample_frame_count);
-}
-
-// static
-PP_AudioSampleRate PPB_AudioConfig_Shared::RecommendSampleRate(
-    PP_Instance instance) {
-  thunk::EnterInstanceNoLock enter(instance);
-  if (enter.failed())
-    return PP_AUDIOSAMPLERATE_NONE;
-  PP_AudioSampleRate hardware_sample_rate = static_cast<PP_AudioSampleRate>(
-      enter.functions()->GetAudioHardwareOutputSampleRate(instance));
-  return hardware_sample_rate;
-}
-
-thunk::PPB_AudioConfig_API* PPB_AudioConfig_Shared::AsPPB_AudioConfig_API() {
-  return this;
-}
-
-PP_AudioSampleRate PPB_AudioConfig_Shared::GetSampleRate() {
-  return sample_rate_;
-}
-
-uint32_t PPB_AudioConfig_Shared::GetSampleFrameCount() {
-  return sample_frame_count_;
-}
-
-bool PPB_AudioConfig_Shared::Init(PP_AudioSampleRate sample_rate,
-                                  uint32_t sample_frame_count) {
-  // TODO(brettw): Currently we don't actually check what the hardware
-  // supports, so just allow sample rates of the "guaranteed working" ones.
-  // TODO(dalecurtis): If sample rates are added RecommendSampleFrameCount_1_1()
-  // must be updated to account for the new rates.
-  if (sample_rate != PP_AUDIOSAMPLERATE_44100 &&
-      sample_rate != PP_AUDIOSAMPLERATE_48000)
-    return false;
-
-  // TODO(brettw): Currently we don't actually query to get a value from the
-  // hardware, so just validate the range.
-  if (sample_frame_count > PP_AUDIOMAXSAMPLEFRAMECOUNT ||
-      sample_frame_count < PP_AUDIOMINSAMPLEFRAMECOUNT)
-    return false;
-
-  sample_rate_ = sample_rate;
-  sample_frame_count_ = sample_frame_count;
-  return true;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_audio_config_shared.h b/shared_impl/ppb_audio_config_shared.h
deleted file mode 100644
index 85ca94f..0000000
--- a/shared_impl/ppb_audio_config_shared.h
+++ /dev/null
@@ -1,67 +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_SHARED_IMPL_PPB_AUDIO_CONFIG_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_AUDIO_CONFIG_SHARED_H_
-
-#include <stdint.h>
-
-#include "base/compiler_specific.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_audio_config_api.h"
-
-namespace ppapi {
-
-const int kBitsPerAudioInputSample = 16;
-const int kAudioInputChannels = 1;
-
-// TODO(dalecurtis, yzshen): PPAPI shouldn't hard code these values for all
-// clients.
-const int kBitsPerAudioOutputSample = 16;
-const int kAudioOutputChannels = 2;
-
-class PPAPI_SHARED_EXPORT PPB_AudioConfig_Shared
-    : public Resource,
-      public thunk::PPB_AudioConfig_API {
- public:
-  PPB_AudioConfig_Shared(const PPB_AudioConfig_Shared&) = delete;
-  PPB_AudioConfig_Shared& operator=(const PPB_AudioConfig_Shared&) = delete;
-
-  ~PPB_AudioConfig_Shared() override;
-
-  static PP_Resource Create(ResourceObjectType type,
-                            PP_Instance instance,
-                            PP_AudioSampleRate sample_rate,
-                            uint32_t sample_frame_count);
-  static uint32_t RecommendSampleFrameCount_1_0(
-      PP_AudioSampleRate sample_rate,
-      uint32_t request_sample_frame_count);
-  static uint32_t RecommendSampleFrameCount_1_1(
-      PP_Instance instance,
-      PP_AudioSampleRate sample_rate,
-      uint32_t request_sample_frame_count);
-  static PP_AudioSampleRate RecommendSampleRate(PP_Instance);
-
-  // Resource overrides.
-  thunk::PPB_AudioConfig_API* AsPPB_AudioConfig_API() override;
-
-  // PPB_AudioConfig_API implementation.
-  PP_AudioSampleRate GetSampleRate() override;
-  uint32_t GetSampleFrameCount() override;
-
- private:
-  // You must call Init before using this object.
-  PPB_AudioConfig_Shared(ResourceObjectType type, PP_Instance instance);
-
-  // Returns false if the arguments are invalid, the object should not be
-  // used in this case.
-  bool Init(PP_AudioSampleRate sample_rate, uint32_t sample_frame_count);
-
-  PP_AudioSampleRate sample_rate_;
-  uint32_t sample_frame_count_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_AUDIO_CONFIG_SHARED_H_
diff --git a/shared_impl/ppb_audio_shared.cc b/shared_impl/ppb_audio_shared.cc
deleted file mode 100644
index 629cba7..0000000
--- a/shared_impl/ppb_audio_shared.cc
+++ /dev/null
@@ -1,256 +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/shared_impl/ppb_audio_shared.h"
-
-#include <memory>
-#include <utility>
-
-#include "base/functional/bind.h"
-#include "base/logging.h"
-#include "base/trace_event/trace_event.h"
-#include "media/base/audio_parameters.h"
-#include "media/base/audio_sample_types.h"
-#include "ppapi/nacl_irt/public/irt_ppapi.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/ppb_audio_config_shared.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-
-namespace ppapi {
-
-namespace {
-bool g_nacl_mode = false;
-// Because this is static, the function pointers will be NULL initially.
-PP_ThreadFunctions g_thread_functions;
-}
-
-AudioCallbackCombined::AudioCallbackCombined()
-    : callback_1_0_(NULL), callback_(NULL) {}
-
-AudioCallbackCombined::AudioCallbackCombined(
-    PPB_Audio_Callback_1_0 callback_1_0)
-    : callback_1_0_(callback_1_0), callback_(NULL) {}
-
-AudioCallbackCombined::AudioCallbackCombined(PPB_Audio_Callback callback)
-    : callback_1_0_(NULL), callback_(callback) {}
-
-AudioCallbackCombined::~AudioCallbackCombined() {}
-
-bool AudioCallbackCombined::IsValid() const {
-  return callback_1_0_ || callback_;
-}
-
-void AudioCallbackCombined::Run(void* sample_buffer,
-                                uint32_t buffer_size_in_bytes,
-                                PP_TimeDelta latency,
-                                void* user_data) const {
-  if (callback_) {
-    callback_(sample_buffer, buffer_size_in_bytes, latency, user_data);
-  } else if (callback_1_0_) {
-    callback_1_0_(sample_buffer, buffer_size_in_bytes, user_data);
-  } else {
-    NOTREACHED();
-  }
-}
-
-PPB_Audio_Shared::PPB_Audio_Shared()
-    : playing_(false),
-      shared_memory_size_(0),
-      nacl_thread_id_(0),
-      nacl_thread_active_(false),
-      user_data_(NULL),
-      client_buffer_size_bytes_(0),
-      bytes_per_second_(0),
-      buffer_index_(0) {
-}
-
-PPB_Audio_Shared::~PPB_Audio_Shared() {
-  // Shut down the socket to escape any hanging |Receive|s.
-  if (socket_.get())
-    socket_->Shutdown();
-  StopThread();
-}
-
-void PPB_Audio_Shared::SetCallback(const AudioCallbackCombined& callback,
-                                   void* user_data) {
-  callback_ = callback;
-  user_data_ = user_data;
-}
-
-void PPB_Audio_Shared::SetStartPlaybackState() {
-  DCHECK(!playing_);
-  DCHECK(!audio_thread_.get());
-  DCHECK(!nacl_thread_active_);
-  // If the socket doesn't exist, that means that the plugin has started before
-  // the browser has had a chance to create all the shared memory info and
-  // notify us. This is a common case. In this case, we just set the playing_
-  // flag and the playback will automatically start when that data is available
-  // in SetStreamInfo.
-  playing_ = true;
-  StartThread();
-}
-
-void PPB_Audio_Shared::SetStopPlaybackState() {
-  DCHECK(playing_);
-  StopThread();
-  playing_ = false;
-}
-
-void PPB_Audio_Shared::SetStreamInfo(
-    PP_Instance instance,
-    base::UnsafeSharedMemoryRegion shared_memory_region,
-    base::SyncSocket::ScopedHandle socket_handle,
-    PP_AudioSampleRate sample_rate,
-    int sample_frame_count) {
-  socket_ =
-      std::make_unique<base::CancelableSyncSocket>(std::move(socket_handle));
-  shared_memory_size_ = media::ComputeAudioOutputBufferSize(
-      kAudioOutputChannels, sample_frame_count);
-  DCHECK_GE(shared_memory_region.GetSize(), shared_memory_size_);
-  bytes_per_second_ =
-      kAudioOutputChannels * (kBitsPerAudioOutputSample / 8) * sample_rate;
-  buffer_index_ = 0;
-
-  shared_memory_ = shared_memory_region.MapAt(0, shared_memory_size_);
-  if (!shared_memory_.IsValid()) {
-    PpapiGlobals::Get()->LogWithSource(
-        instance,
-        PP_LOGLEVEL_WARNING,
-        std::string(),
-        "Failed to map shared memory for PPB_Audio_Shared.");
-  } else {
-    media::AudioOutputBuffer* buffer =
-        reinterpret_cast<media::AudioOutputBuffer*>(shared_memory_.memory());
-    audio_bus_ = media::AudioBus::WrapMemory(kAudioOutputChannels,
-                                             sample_frame_count, buffer->audio);
-    // Setup integer audio buffer for user audio data.
-    client_buffer_size_bytes_ = audio_bus_->frames() * audio_bus_->channels() *
-                                kBitsPerAudioOutputSample / 8;
-    client_buffer_.reset(new uint8_t[client_buffer_size_bytes_]);
-  }
-
-  StartThread();
-}
-
-void PPB_Audio_Shared::StartThread() {
-  // Don't start the thread unless all our state is set up correctly.
-  if (!playing_ || !callback_.IsValid() || !socket_.get() ||
-      !shared_memory_.memory() || !audio_bus_.get() || !client_buffer_.get() ||
-      bytes_per_second_ == 0)
-    return;
-  // Clear contents of shm buffer before starting audio thread. This will
-  // prevent a burst of static if for some reason the audio thread doesn't
-  // start up quickly enough.
-  memset(shared_memory_.memory(), 0, shared_memory_size_);
-  memset(client_buffer_.get(), 0, client_buffer_size_bytes_);
-
-  if (g_nacl_mode) {
-    // Use NaCl's special API for IRT code that creates threads that call back
-    // into user code.
-    if (!IsThreadFunctionReady())
-      return;
-
-    DCHECK(!nacl_thread_active_);
-    int result =
-        g_thread_functions.thread_create(&nacl_thread_id_, CallRun, this);
-    DCHECK_EQ(0, result);
-    nacl_thread_active_ = true;
-  } else {
-    DCHECK(!audio_thread_.get());
-    audio_thread_ = std::make_unique<base::DelegateSimpleThread>(
-        this, "plugin_audio_thread");
-    audio_thread_->Start();
-  }
-}
-
-void PPB_Audio_Shared::StopThread() {
-  // In general, the audio thread should not do Pepper calls, but it might
-  // anyway (for example, our Audio test does CallOnMainThread). If it did a
-  // pepper call which acquires the lock (most of them do), and we try to shut
-  // down the thread and Join it while holding the lock, we would deadlock. So
-  // we give up the lock here so that the thread at least _can_ make Pepper
-  // calls without causing deadlock.
-  // IMPORTANT: This instance's thread state should be reset to uninitialized
-  // before we release the proxy lock, so any calls from the plugin while we're
-  // unlocked can't access the joined thread.
-  if (g_nacl_mode) {
-    if (nacl_thread_active_) {
-      nacl_thread_active_ = false;
-      int result =
-          CallWhileUnlocked(g_thread_functions.thread_join, nacl_thread_id_);
-      DCHECK_EQ(0, result);
-    }
-  } else {
-    if (audio_thread_.get()) {
-      auto local_audio_thread(std::move(audio_thread_));
-      CallWhileUnlocked(
-          base::BindOnce(&base::DelegateSimpleThread::Join,
-                         base::Unretained(local_audio_thread.get())));
-    }
-  }
-}
-
-// static
-bool PPB_Audio_Shared::IsThreadFunctionReady() {
-  if (!g_nacl_mode)
-    return true;
-
-  return (g_thread_functions.thread_create != NULL &&
-          g_thread_functions.thread_join != NULL);
-}
-
-// static
-void PPB_Audio_Shared::SetNaClMode() {
-  g_nacl_mode = true;
-}
-
-// static
-void PPB_Audio_Shared::SetThreadFunctions(
-    const struct PP_ThreadFunctions* functions) {
-  DCHECK(g_nacl_mode);
-  g_thread_functions = *functions;
-}
-
-// static
-void PPB_Audio_Shared::CallRun(void* self) {
-  PPB_Audio_Shared* audio = static_cast<PPB_Audio_Shared*>(self);
-  audio->Run();
-}
-
-void PPB_Audio_Shared::Run() {
-  int control_signal = 0;
-  while (sizeof(control_signal) ==
-         socket_->Receive(base::byte_span_from_ref(control_signal))) {
-    // |buffer_index_| must track the number of Receive() calls.  See the Send()
-    // call below for why this is important.
-    ++buffer_index_;
-    if (control_signal < 0)
-      break;
-
-    {
-      TRACE_EVENT0("audio", "PPB_Audio_Shared::FireRenderCallback");
-      media::AudioOutputBuffer* buffer =
-          reinterpret_cast<media::AudioOutputBuffer*>(shared_memory_.memory());
-      base::TimeDelta delay = base::Microseconds(buffer->params.delay_us);
-
-      callback_.Run(client_buffer_.get(), client_buffer_size_bytes_,
-                    delay.InSecondsF(), user_data_);
-    }
-
-    // Deinterleave the audio data into the shared memory as floats.
-    static_assert(kBitsPerAudioOutputSample == 16,
-                  "FromInterleaved expects 2 bytes.");
-    audio_bus_->FromInterleaved<media::SignedInt16SampleTypeTraits>(
-        reinterpret_cast<int16_t*>(client_buffer_.get()), audio_bus_->frames());
-
-    // Let the other end know which buffer we just filled.  The buffer index is
-    // used to ensure the other end is getting the buffer it expects.  For more
-    // details on how this works see AudioSyncReader::WaitUntilDataIsReady().
-    size_t bytes_sent = socket_->Send(base::byte_span_from_ref(buffer_index_));
-    if (bytes_sent != sizeof(buffer_index_))
-      break;
-  }
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_audio_shared.h b/shared_impl/ppb_audio_shared.h
deleted file mode 100644
index ba58c6f..0000000
--- a/shared_impl/ppb_audio_shared.h
+++ /dev/null
@@ -1,156 +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_SHARED_IMPL_PPB_AUDIO_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_AUDIO_SHARED_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <memory>
-
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "base/sync_socket.h"
-#include "base/threading/simple_thread.h"
-#include "media/base/audio_bus.h"
-#include "ppapi/c/ppb_audio.h"
-#include "ppapi/c/ppb_audio_config.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_audio_api.h"
-
-struct PP_ThreadFunctions;
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT AudioCallbackCombined {
- public:
-  AudioCallbackCombined();
-  explicit AudioCallbackCombined(PPB_Audio_Callback_1_0 callback_1_0);
-  explicit AudioCallbackCombined(PPB_Audio_Callback callback);
-
-  ~AudioCallbackCombined();
-
-  bool IsValid() const;
-
-  void Run(void* sample_buffer,
-           uint32_t buffer_size_in_bytes,
-           PP_TimeDelta latency,
-           void* user_data) const;
-
- private:
-  PPB_Audio_Callback_1_0 callback_1_0_;
-  PPB_Audio_Callback callback_;
-};
-
-// Implements the logic to map shared memory and run the audio thread signaled
-// from the sync socket. Both the proxy and the renderer implementation use
-// this code.
-class PPAPI_SHARED_EXPORT PPB_Audio_Shared
-    : public thunk::PPB_Audio_API,
-      public base::DelegateSimpleThread::Delegate {
- public:
-  PPB_Audio_Shared();
-
-  PPB_Audio_Shared(const PPB_Audio_Shared&) = delete;
-  PPB_Audio_Shared& operator=(const PPB_Audio_Shared&) = delete;
-
-  virtual ~PPB_Audio_Shared();
-
-  bool playing() const { return playing_; }
-
-  // Sets the callback information that the background thread will use. This
-  // is optional. Without a callback, the thread will not be run. This
-  // non-callback mode is used in the renderer with the proxy, since the proxy
-  // handles the callback entirely within the plugin process.
-  void SetCallback(const AudioCallbackCombined& callback, void* user_data);
-
-  // Configures the current state to be playing or not. The caller is
-  // responsible for ensuring the new state is the opposite of the current one.
-  //
-  // This is the implementation for PPB_Audio.Start/StopPlayback, except that
-  // it does not actually notify the audio system to stop playback, it just
-  // configures our object to stop generating callbacks. The actual stop
-  // playback request will be done in the derived classes and will be different
-  // from the proxy and the renderer.
-  void SetStartPlaybackState();
-  void SetStopPlaybackState();
-
-  // Sets the shared memory and socket handles. This will automatically start
-  // playback if we're currently set to play.
-  void SetStreamInfo(PP_Instance instance,
-                     base::UnsafeSharedMemoryRegion shared_memory_region,
-                     base::SyncSocket::ScopedHandle socket_handle,
-                     PP_AudioSampleRate sample_rate,
-                     int sample_frame_count);
-
-  // Returns whether a thread can be created on the client context.
-  // In trusted plugin, this should always return true, as it uses Chrome's
-  // thread library. In NaCl plugin, this returns whether SetThreadFunctions
-  // was invoked properly.
-  static bool IsThreadFunctionReady();
-
-  // Configures this class to run in a NaCl plugin.
-  // If called, SetThreadFunctions() must be called before calling
-  // SetStartPlaybackState() on any instance of this class.
-  static void SetNaClMode();
-
-  // NaCl has a special API for IRT code to create threads that can call back
-  // into user code.
-  static void SetThreadFunctions(const struct PP_ThreadFunctions* functions);
-
- private:
-  // Starts execution of the audio thread.
-  void StartThread();
-
-  // Stop execution of the audio thread.
-  void StopThread();
-
-  // DelegateSimpleThread::Delegate implementation. Run on the audio thread.
-  virtual void Run();
-
-  // True if playing the stream.
-  bool playing_;
-
-  // Socket used to notify us when audio is ready to accept new samples. This
-  // pointer is created in StreamCreated().
-  std::unique_ptr<base::CancelableSyncSocket> socket_;
-
-  // Sample buffer in shared memory. This pointer is created in
-  // StreamCreated(). The memory is only mapped when the audio thread is
-  // created.
-  base::WritableSharedMemoryMapping shared_memory_;
-
-  // The size of the sample buffer in bytes.
-  size_t shared_memory_size_;
-
-  // When the callback is set, this thread is spawned for calling it.
-  std::unique_ptr<base::DelegateSimpleThread> audio_thread_;
-  uintptr_t nacl_thread_id_;
-  bool nacl_thread_active_;
-
-  static void CallRun(void* self);
-
-  // Callback to call when audio is ready to accept new samples.
-  AudioCallbackCombined callback_;
-
-  // User data pointer passed verbatim to the callback function.
-  void* user_data_;
-
-  // AudioBus for shuttling data across the shared memory.
-  std::unique_ptr<media::AudioBus> audio_bus_;
-
-  // Internal buffer for client's integer audio data.
-  int client_buffer_size_bytes_;
-  std::unique_ptr<uint8_t[]> client_buffer_;
-
-  // The size (in bytes) of one second of audio data. Used to calculate latency.
-  size_t bytes_per_second_;
-
-  // Buffer index used to coordinate with the browser side audio receiver.
-  uint32_t buffer_index_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_AUDIO_SHARED_H_
diff --git a/shared_impl/ppb_crypto_shared.cc b/shared_impl/ppb_crypto_shared.cc
deleted file mode 100644
index 524bce3..0000000
--- a/shared_impl/ppb_crypto_shared.cc
+++ /dev/null
@@ -1,39 +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 "base/rand_util.h"
-#include "ppapi/c/dev/ppb_crypto_dev.h"
-#include "ppapi/thunk/thunk.h"
-
-// The crypto interface doesn't have a normal C -> C++ thunk since it doesn't
-// actually have any proxy wrapping or associated objects; it's just a call
-// into base. So we implement the entire interface here, using the thunk
-// namespace so it magically gets hooked up in the proper places.
-
-namespace ppapi {
-
-namespace {
-
-// TODO(tsepez): this should be delcared UNSAFE_BUFFER_USAGE.
-void GetRandomBytes(char* buffer, uint32_t num_bytes) {
-  base::RandBytes(base::as_writable_bytes(
-      // SAFETY: The caller is required to give a valid pointer and size pair.
-      UNSAFE_BUFFERS(base::span(buffer, num_bytes))));
-}
-
-const PPB_Crypto_Dev crypto_interface = {&GetRandomBytes};
-
-}  // namespace
-
-namespace thunk {
-
-PPAPI_THUNK_EXPORT const PPB_Crypto_Dev_0_1* GetPPB_Crypto_Dev_0_1_Thunk() {
-  return &crypto_interface;
-}
-
-}  // namespace thunk
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_device_ref_shared.cc b/shared_impl/ppb_device_ref_shared.cc
deleted file mode 100644
index 27b9d55..0000000
--- a/shared_impl/ppb_device_ref_shared.cc
+++ /dev/null
@@ -1,35 +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/shared_impl/ppb_device_ref_shared.h"
-
-#include "ppapi/shared_impl/host_resource.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/shared_impl/var.h"
-
-using ppapi::thunk::PPB_DeviceRef_API;
-
-namespace ppapi {
-
-DeviceRefData::DeviceRefData() : type(PP_DEVICETYPE_DEV_INVALID) {}
-
-PPB_DeviceRef_Shared::PPB_DeviceRef_Shared(ResourceObjectType type,
-                                           PP_Instance instance,
-                                           const DeviceRefData& data)
-    : Resource(type, instance), data_(data) {}
-
-PPB_DeviceRef_API* PPB_DeviceRef_Shared::AsPPB_DeviceRef_API() { return this; }
-
-const DeviceRefData& PPB_DeviceRef_Shared::GetDeviceRefData() const {
-  return data_;
-}
-
-PP_DeviceType_Dev PPB_DeviceRef_Shared::GetType() { return data_.type; }
-
-PP_Var PPB_DeviceRef_Shared::GetName() {
-  return StringVar::StringToPPVar(data_.name);
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_device_ref_shared.h b/shared_impl/ppb_device_ref_shared.h
deleted file mode 100644
index a6b7832..0000000
--- a/shared_impl/ppb_device_ref_shared.h
+++ /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.
-
-#ifndef PPAPI_SHARED_IMPL_PPB_DEVICE_REF_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_DEVICE_REF_SHARED_H_
-
-#include <string>
-
-#include "base/compiler_specific.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_device_ref_api.h"
-
-namespace ppapi {
-
-// IF YOU ADD STUFF TO THIS CLASS
-// ==============================
-// Be sure to add it to the STRUCT_TRAITS at the top of ppapi_messages.h.
-struct PPAPI_SHARED_EXPORT DeviceRefData {
-  DeviceRefData();
-
-  bool operator==(const DeviceRefData& other) const {
-    return type == other.type && name == other.name && id == other.id;
-  }
-
-  PP_DeviceType_Dev type;
-  std::string name;
-  std::string id;
-};
-
-class PPAPI_SHARED_EXPORT PPB_DeviceRef_Shared
-    : public Resource,
-      public thunk::PPB_DeviceRef_API {
- public:
-  PPB_DeviceRef_Shared() = delete;
-
-  PPB_DeviceRef_Shared(ResourceObjectType type,
-                       PP_Instance instance,
-                       const DeviceRefData& data);
-
-  PPB_DeviceRef_Shared(const PPB_DeviceRef_Shared&) = delete;
-  PPB_DeviceRef_Shared& operator=(const PPB_DeviceRef_Shared&) = delete;
-
-  // Resource overrides.
-  PPB_DeviceRef_API* AsPPB_DeviceRef_API() override;
-
-  // PPB_DeviceRef_API implementation.
-  const DeviceRefData& GetDeviceRefData() const override;
-  PP_DeviceType_Dev GetType() override;
-  PP_Var GetName() override;
-
- private:
-  DeviceRefData data_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_DEVICE_REF_SHARED_H_
diff --git a/shared_impl/ppb_gamepad_shared.cc b/shared_impl/ppb_gamepad_shared.cc
deleted file mode 100644
index cb9f8f2..0000000
--- a/shared_impl/ppb_gamepad_shared.cc
+++ /dev/null
@@ -1,40 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/shared_impl/ppb_gamepad_shared.h"
-
-#include <cstring>
-
-#include "device/gamepad/public/cpp/gamepads.h"
-
-namespace ppapi {
-
-void ConvertDeviceGamepadData(const device::Gamepads& device_data,
-                              PP_GamepadsSampleData* output_data) {
-  output_data->length = device::Gamepads::kItemsLengthCap;
-  for (unsigned i = 0; i < device::Gamepads::kItemsLengthCap; ++i) {
-    PP_GamepadSampleData& output_pad = output_data->items[i];
-    const device::Gamepad& device_pad = device_data.items[i];
-    output_pad.connected = device_pad.connected ? PP_TRUE : PP_FALSE;
-    if (device_pad.connected) {
-      static_assert(sizeof(output_pad.id) == sizeof(device_pad.id),
-                    "id size does not match");
-      std::memcpy(output_pad.id, device_pad.id, sizeof(output_pad.id));
-      output_pad.timestamp = static_cast<double>(device_pad.timestamp);
-      output_pad.axes_length = device_pad.axes_length;
-      for (unsigned j = 0; j < device_pad.axes_length; ++j)
-        output_pad.axes[j] = static_cast<float>(device_pad.axes[j]);
-      output_pad.buttons_length = device_pad.buttons_length;
-      for (unsigned j = 0; j < device_pad.buttons_length; ++j)
-        output_pad.buttons[j] = static_cast<float>(device_pad.buttons[j].value);
-    }
-  }
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_gamepad_shared.h b/shared_impl/ppb_gamepad_shared.h
deleted file mode 100644
index 1085bcc..0000000
--- a/shared_impl/ppb_gamepad_shared.h
+++ /dev/null
@@ -1,25 +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_SHARED_IMPL_PPB_GAMEPAD_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_GAMEPAD_SHARED_H_
-
-#include "ppapi/c/ppb_gamepad.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace device {
-class Gamepads;
-}  // namespace device
-
-namespace ppapi {
-
-// TODO(brettw) when we remove the non-IPC-based gamepad implementation, this
-// code should all move into the GamepadResource.
-PPAPI_SHARED_EXPORT void ConvertDeviceGamepadData(
-    const device::Gamepads& device_data,
-    PP_GamepadsSampleData* output_data);
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_GAMEPAD_SHARED_H_
diff --git a/shared_impl/ppb_graphics_3d_shared.cc b/shared_impl/ppb_graphics_3d_shared.cc
deleted file mode 100644
index bb566b6..0000000
--- a/shared_impl/ppb_graphics_3d_shared.cc
+++ /dev/null
@@ -1,161 +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/shared_impl/ppb_graphics_3d_shared.h"
-
-#include "base/logging.h"
-#include "gpu/GLES2/gl2extchromium.h"
-#include "gpu/command_buffer/client/gles2_cmd_helper.h"
-#include "gpu/command_buffer/client/gles2_implementation.h"
-#include "gpu/command_buffer/client/shared_memory_limits.h"
-#include "gpu/command_buffer/client/transfer_buffer.h"
-#include "gpu/command_buffer/common/sync_token.h"
-#include "ppapi/c/pp_errors.h"
-
-namespace ppapi {
-
-PPB_Graphics3D_Shared::PPB_Graphics3D_Shared(PP_Instance instance)
-    : Resource(OBJECT_IS_IMPL, instance) {}
-
-PPB_Graphics3D_Shared::PPB_Graphics3D_Shared(const HostResource& host_resource,
-                                             const gfx::Size& size)
-    : Resource(OBJECT_IS_PROXY, host_resource), size_(size) {}
-
-PPB_Graphics3D_Shared::~PPB_Graphics3D_Shared() {
-  // Make sure that GLES2 implementation has already been destroyed.
-  DCHECK(!gles2_helper_.get());
-  DCHECK(!transfer_buffer_.get());
-  DCHECK(!gles2_impl_.get());
-}
-
-thunk::PPB_Graphics3D_API* PPB_Graphics3D_Shared::AsPPB_Graphics3D_API() {
-  return this;
-}
-
-int32_t PPB_Graphics3D_Shared::GetAttribs(int32_t attrib_list[]) {
-  // TODO(alokp): Implement me.
-  return PP_ERROR_FAILED;
-}
-
-int32_t PPB_Graphics3D_Shared::SetAttribs(const int32_t attrib_list[]) {
-  // TODO(alokp): Implement me.
-  return PP_ERROR_FAILED;
-}
-
-int32_t PPB_Graphics3D_Shared::GetError() {
-  // TODO(alokp): Implement me.
-  return PP_ERROR_FAILED;
-}
-
-int32_t PPB_Graphics3D_Shared::ResizeBuffers(int32_t width, int32_t height) {
-  if ((width < 0) || (height < 0))
-    return PP_ERROR_BADARGUMENT;
-
-  size_ = gfx::Size(width, height);
-
-  DoResize(size_);
-
-  // TODO(alokp): Check if resize succeeded and return appropriate error code.
-  return PP_OK;
-}
-
-int32_t PPB_Graphics3D_Shared::SwapBuffers(
-    scoped_refptr<TrackedCallback> callback) {
-  return SwapBuffersWithSyncToken(callback, gpu::SyncToken(), size_);
-}
-
-int32_t PPB_Graphics3D_Shared::SwapBuffersWithSyncToken(
-    scoped_refptr<TrackedCallback> callback,
-    const gpu::SyncToken& sync_token,
-    const gfx::Size& size) {
-  if (HasPendingSwap()) {
-    Log(PP_LOGLEVEL_ERROR,
-        "PPB_Graphics3D.SwapBuffers: Plugin attempted swap "
-        "with previous swap still pending.");
-    // Already a pending SwapBuffers that hasn't returned yet.
-    return PP_ERROR_INPROGRESS;
-  }
-
-  swap_callback_ = callback;
-  return DoSwapBuffers(sync_token, size);
-}
-
-int32_t PPB_Graphics3D_Shared::GetAttribMaxValue(int32_t attribute,
-                                                 int32_t* value) {
-  // TODO(alokp): Implement me.
-  return PP_ERROR_FAILED;
-}
-
-void* PPB_Graphics3D_Shared::MapTexSubImage2DCHROMIUM(GLenum target,
-                                                      GLint level,
-                                                      GLint xoffset,
-                                                      GLint yoffset,
-                                                      GLsizei width,
-                                                      GLsizei height,
-                                                      GLenum format,
-                                                      GLenum type,
-                                                      GLenum access) {
-  return gles2_impl_->MapTexSubImage2DCHROMIUM(
-      target, level, xoffset, yoffset, width, height, format, type, access);
-}
-
-void PPB_Graphics3D_Shared::UnmapTexSubImage2DCHROMIUM(const void* mem) {
-  gles2_impl_->UnmapTexSubImage2DCHROMIUM(mem);
-}
-
-gpu::gles2::GLES2Interface* PPB_Graphics3D_Shared::gles2_interface() {
-  return gles2_impl_.get();
-}
-
-void PPB_Graphics3D_Shared::SwapBuffersACK(int32_t pp_error) {
-  DCHECK(HasPendingSwap());
-  swap_callback_->Run(pp_error);
-}
-
-bool PPB_Graphics3D_Shared::HasPendingSwap() const {
-  return TrackedCallback::IsPending(swap_callback_);
-}
-
-bool PPB_Graphics3D_Shared::CreateGLES2Impl(
-    gpu::gles2::GLES2Implementation* share_gles2) {
-  gpu::SharedMemoryLimits limits;
-  gpu::CommandBuffer* command_buffer = GetCommandBuffer();
-  DCHECK(command_buffer);
-
-  // Create the GLES2 helper, which writes the command buffer protocol.
-  gles2_helper_ = std::make_unique<gpu::gles2::GLES2CmdHelper>(command_buffer);
-  if (gles2_helper_->Initialize(limits.command_buffer_size) !=
-      gpu::ContextResult::kSuccess)
-    return false;
-
-  // Create a transfer buffer used to copy resources between the renderer
-  // process and the GPU process.
-  transfer_buffer_ = std::make_unique<gpu::TransferBuffer>(gles2_helper_.get());
-
-  const bool bind_creates_resources = true;
-  const bool lose_context_when_out_of_memory = false;
-  const bool support_client_side_arrays = true;
-
-  // Create the object exposing the OpenGL API.
-  gles2_impl_ = std::make_unique<gpu::gles2::GLES2Implementation>(
-      gles2_helper_.get(), share_gles2 ? share_gles2->share_group() : nullptr,
-      transfer_buffer_.get(), bind_creates_resources,
-      lose_context_when_out_of_memory, support_client_side_arrays,
-      GetGpuControl());
-
-  if (gles2_impl_->Initialize(limits) != gpu::ContextResult::kSuccess)
-    return false;
-
-  gles2_impl_->TraceBeginCHROMIUM("gpu_toplevel", "PPAPIContext");
-
-  return true;
-}
-
-void PPB_Graphics3D_Shared::DestroyGLES2Impl() {
-  gles2_impl_.reset();
-  transfer_buffer_.reset();
-  gles2_helper_.reset();
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_graphics_3d_shared.h b/shared_impl/ppb_graphics_3d_shared.h
deleted file mode 100644
index 278ff68..0000000
--- a/shared_impl/ppb_graphics_3d_shared.h
+++ /dev/null
@@ -1,113 +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_SHARED_IMPL_PPB_GRAPHICS_3D_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_GRAPHICS_3D_SHARED_H_
-
-#include <stdint.h>
-
-#include <memory>
-
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/ppb_graphics_3d_api.h"
-#include "ui/gfx/geometry/size.h"
-
-namespace gpu {
-class CommandBuffer;
-class GpuControl;
-class TransferBuffer;
-namespace gles2 {
-class GLES2CmdHelper;
-class GLES2Implementation;
-class GLES2Interface;
-}  // namespace gles2
-}  // namespace gpu.
-
-namespace ppapi {
-
-struct Graphics3DContextAttribs {
-  gfx::Size offscreen_framebuffer_size;
-  // -1 if invalid or unspecified.
-  int32_t alpha_size = -1;
-  int32_t depth_size = -1;
-  int32_t stencil_size = -1;
-  int32_t samples = -1;
-  int32_t sample_buffers = -1;
-  bool buffer_preserved = true;
-  bool single_buffer = false;
-};
-
-class PPAPI_SHARED_EXPORT PPB_Graphics3D_Shared
-    : public Resource,
-      public thunk::PPB_Graphics3D_API {
- public:
-  PPB_Graphics3D_Shared(const PPB_Graphics3D_Shared&) = delete;
-  PPB_Graphics3D_Shared& operator=(const PPB_Graphics3D_Shared&) = delete;
-
-  // Resource overrides.
-  thunk::PPB_Graphics3D_API* AsPPB_Graphics3D_API() override;
-
-  // PPB_Graphics3D_API implementation.
-  int32_t GetAttribs(int32_t attrib_list[]) override;
-  int32_t SetAttribs(const int32_t attrib_list[]) override;
-  int32_t GetError() override;
-  int32_t ResizeBuffers(int32_t width, int32_t height) override;
-  int32_t SwapBuffers(scoped_refptr<TrackedCallback> callback) override;
-  int32_t SwapBuffersWithSyncToken(scoped_refptr<TrackedCallback> callback,
-                                   const gpu::SyncToken& sync_token,
-                                   const gfx::Size& size) override;
-  int32_t GetAttribMaxValue(int32_t attribute, int32_t* value) override;
-
-  void* MapTexSubImage2DCHROMIUM(GLenum target,
-                                 GLint level,
-                                 GLint xoffset,
-                                 GLint yoffset,
-                                 GLsizei width,
-                                 GLsizei height,
-                                 GLenum format,
-                                 GLenum type,
-                                 GLenum access) override;
-  void UnmapTexSubImage2DCHROMIUM(const void* mem) override;
-
-  gpu::gles2::GLES2Implementation* gles2_impl() { return gles2_impl_.get(); }
-  gpu::gles2::GLES2Interface* gles2_interface();
-
-  // Sends swap-buffers notification to the plugin.
-  void SwapBuffersACK(int32_t pp_error);
-
- protected:
-  explicit PPB_Graphics3D_Shared(PP_Instance instance);
-  PPB_Graphics3D_Shared(const HostResource& host_resource,
-                        const gfx::Size& size);
-  ~PPB_Graphics3D_Shared() override;
-
-  virtual gpu::CommandBuffer* GetCommandBuffer() = 0;
-  virtual gpu::GpuControl* GetGpuControl() = 0;
-  virtual int32_t DoSwapBuffers(const gpu::SyncToken& sync_token,
-                                const gfx::Size& size) = 0;
-  virtual void DoResize(gfx::Size size) = 0;
-
-  bool HasPendingSwap() const;
-  bool CreateGLES2Impl(gpu::gles2::GLES2Implementation* share_gles2);
-  void DestroyGLES2Impl();
-
- private:
-  std::unique_ptr<gpu::gles2::GLES2CmdHelper> gles2_helper_;
-  std::unique_ptr<gpu::TransferBuffer> transfer_buffer_;
-  std::unique_ptr<gpu::gles2::GLES2Implementation> gles2_impl_;
-
-  // A local cache of the size of the viewport. This is only valid in plugin
-  // resources.
-  gfx::Size size_;
-
-  // Callback that needs to be executed when swap-buffers is completed.
-  scoped_refptr<TrackedCallback> swap_callback_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_GRAPHICS_3D_SHARED_H_
diff --git a/shared_impl/ppb_image_data_shared.cc b/shared_impl/ppb_image_data_shared.cc
deleted file mode 100644
index ab5e100..0000000
--- a/shared_impl/ppb_image_data_shared.cc
+++ /dev/null
@@ -1,48 +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/shared_impl/ppb_image_data_shared.h"
-
-#include "base/notimplemented.h"
-#include "build/build_config.h"
-
-#if !BUILDFLAG(IS_NACL)
-#include "third_party/skia/include/core/SkTypes.h"  //nogncheck
-#endif
-
-namespace ppapi {
-
-// static
-PP_ImageDataFormat PPB_ImageData_Shared::GetNativeImageDataFormat() {
-#if BUILDFLAG(IS_NACL)
-  // In NaCl, just default to something. If we're wrong, it will be converted
-  // later.
-  // TODO(dmichael): Really proxy this.
-  return PP_IMAGEDATAFORMAT_BGRA_PREMUL;
-#else
-  if (SK_B32_SHIFT == 0)
-    return PP_IMAGEDATAFORMAT_BGRA_PREMUL;
-  else if (SK_R32_SHIFT == 0)
-    return PP_IMAGEDATAFORMAT_RGBA_PREMUL;
-  else
-    return PP_IMAGEDATAFORMAT_BGRA_PREMUL;  // Default to something on failure
-#endif
-}
-
-// static
-PP_Bool PPB_ImageData_Shared::IsImageDataFormatSupported(
-    PP_ImageDataFormat format) {
-  return PP_FromBool(format == PP_IMAGEDATAFORMAT_BGRA_PREMUL ||
-                     format == PP_IMAGEDATAFORMAT_RGBA_PREMUL);
-}
-
-// static
-PP_Bool PPB_ImageData_Shared::IsImageDataDescValid(
-    const PP_ImageDataDesc& desc) {
-  return PP_FromBool(IsImageDataFormatSupported(desc.format) &&
-                     desc.size.width > 0 && desc.size.height > 0 &&
-                     desc.stride > 0);
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_image_data_shared.h b/shared_impl/ppb_image_data_shared.h
deleted file mode 100644
index b61edb5..0000000
--- a/shared_impl/ppb_image_data_shared.h
+++ /dev/null
@@ -1,44 +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_SHARED_IMPL_PPB_IMAGE_DATA_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_IMAGE_DATA_SHARED_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/ppb_image_data.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-// Contains the implementation of some simple image data functions that are
-// shared between the proxy and Chrome's implementation. Since these functions
-// are just lists of what we support, it's much easier to just have the same
-// code run in the plugin process than to proxy it.
-//
-// It's possible the implementation will get more complex. In this case, it's
-// probably best to have some kind of "configuration" message that the renderer
-// sends to the plugin process on startup that contains all of these kind of
-// settings.
-class PPAPI_SHARED_EXPORT PPB_ImageData_Shared {
- public:
-  enum ImageDataType {
-    // An ImageData backed by a PlatformCanvas. You must create this type if
-    // you intend the ImageData to be usable in platform-specific APIs (like
-    // font rendering or rendering widgets like scrollbars). This type is not
-    // available in untrusted (NaCl) plugins.
-    PLATFORM,
-    // An ImageData that doesn't need access to the platform-specific canvas.
-    // This is backed by a simple shared memory buffer. This is the only type
-    // of ImageData that can be used by untrusted (NaCl) plugins.
-    SIMPLE
-  };
-
-  static PP_ImageDataFormat GetNativeImageDataFormat();
-  static PP_Bool IsImageDataFormatSupported(PP_ImageDataFormat format);
-  static PP_Bool IsImageDataDescValid(const PP_ImageDataDesc& desc);
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_IMAGE_DATA_SHARED_H_
diff --git a/shared_impl/ppb_input_event_shared.cc b/shared_impl/ppb_input_event_shared.cc
deleted file mode 100644
index 1c1db78..0000000
--- a/shared_impl/ppb_input_event_shared.cc
+++ /dev/null
@@ -1,369 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/shared_impl/ppb_input_event_shared.h"
-
-#include <stddef.h>
-
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/var.h"
-
-using ppapi::thunk::PPB_InputEvent_API;
-
-namespace ppapi {
-
-InputEventData::InputEventData()
-    : is_filtered(false),
-      event_type(PP_INPUTEVENT_TYPE_UNDEFINED),
-      event_time_stamp(0.0),
-      event_modifiers(0),
-      mouse_button(PP_INPUTEVENT_MOUSEBUTTON_NONE),
-      mouse_position(PP_MakePoint(0, 0)),
-      mouse_click_count(0),
-      mouse_movement(PP_MakePoint(0, 0)),
-      wheel_delta(PP_MakeFloatPoint(0.0f, 0.0f)),
-      wheel_ticks(PP_MakeFloatPoint(0.0f, 0.0f)),
-      wheel_scroll_by_page(false),
-      key_code(0),
-      code(),
-      character_text(),
-      composition_target_segment(-1),
-      composition_selection_start(0),
-      composition_selection_end(0),
-      touches(),
-      changed_touches(),
-      target_touches() {}
-
-InputEventData::~InputEventData() {}
-
-PPB_InputEvent_Shared::PPB_InputEvent_Shared(ResourceObjectType type,
-                                             PP_Instance instance,
-                                             const InputEventData& data)
-    : Resource(type, instance), data_(data) {}
-
-PPB_InputEvent_API* PPB_InputEvent_Shared::AsPPB_InputEvent_API() {
-  return this;
-}
-
-const InputEventData& PPB_InputEvent_Shared::GetInputEventData() const {
-  return data_;
-}
-
-PP_InputEvent_Type PPB_InputEvent_Shared::GetType() { return data_.event_type; }
-
-PP_TimeTicks PPB_InputEvent_Shared::GetTimeStamp() {
-  return data_.event_time_stamp;
-}
-
-uint32_t PPB_InputEvent_Shared::GetModifiers() { return data_.event_modifiers; }
-
-PP_InputEvent_MouseButton PPB_InputEvent_Shared::GetMouseButton() {
-  return data_.mouse_button;
-}
-
-PP_Point PPB_InputEvent_Shared::GetMousePosition() {
-  return data_.mouse_position;
-}
-
-int32_t PPB_InputEvent_Shared::GetMouseClickCount() {
-  return data_.mouse_click_count;
-}
-
-PP_Point PPB_InputEvent_Shared::GetMouseMovement() {
-  return data_.mouse_movement;
-}
-
-PP_FloatPoint PPB_InputEvent_Shared::GetWheelDelta() {
-  return data_.wheel_delta;
-}
-
-PP_FloatPoint PPB_InputEvent_Shared::GetWheelTicks() {
-  return data_.wheel_ticks;
-}
-
-PP_Bool PPB_InputEvent_Shared::GetWheelScrollByPage() {
-  return PP_FromBool(data_.wheel_scroll_by_page);
-}
-
-uint32_t PPB_InputEvent_Shared::GetKeyCode() { return data_.key_code; }
-
-PP_Var PPB_InputEvent_Shared::GetCharacterText() {
-  return StringVar::StringToPPVar(data_.character_text);
-}
-
-PP_Var PPB_InputEvent_Shared::GetCode() {
-  return StringVar::StringToPPVar(data_.code);
-}
-
-uint32_t PPB_InputEvent_Shared::GetIMESegmentNumber() {
-  if (data_.composition_segment_offsets.empty())
-    return 0;
-  return static_cast<uint32_t>(data_.composition_segment_offsets.size() - 1);
-}
-
-uint32_t PPB_InputEvent_Shared::GetIMESegmentOffset(uint32_t index) {
-  if (index >= data_.composition_segment_offsets.size())
-    return 0;
-  return data_.composition_segment_offsets[index];
-}
-
-int32_t PPB_InputEvent_Shared::GetIMETargetSegment() {
-  return data_.composition_target_segment;
-}
-
-void PPB_InputEvent_Shared::GetIMESelection(uint32_t* start, uint32_t* end) {
-  if (start)
-    *start = data_.composition_selection_start;
-  if (end)
-    *end = data_.composition_selection_end;
-}
-
-void PPB_InputEvent_Shared::AddTouchPoint(PP_TouchListType list,
-                                          const PP_TouchPoint& point) {
-  TouchPointWithTilt point_with_tilt{point, {0, 0}};
-  switch (list) {
-    case PP_TOUCHLIST_TYPE_TOUCHES:
-      data_.touches.push_back(point_with_tilt);
-      break;
-    case PP_TOUCHLIST_TYPE_CHANGEDTOUCHES:
-      data_.changed_touches.push_back(point_with_tilt);
-      break;
-    case PP_TOUCHLIST_TYPE_TARGETTOUCHES:
-      data_.target_touches.push_back(point_with_tilt);
-      break;
-    default:
-      break;
-  }
-}
-
-uint32_t PPB_InputEvent_Shared::GetTouchCount(PP_TouchListType list) {
-  switch (list) {
-    case PP_TOUCHLIST_TYPE_TOUCHES:
-      return static_cast<uint32_t>(data_.touches.size());
-    case PP_TOUCHLIST_TYPE_CHANGEDTOUCHES:
-      return static_cast<uint32_t>(data_.changed_touches.size());
-    case PP_TOUCHLIST_TYPE_TARGETTOUCHES:
-      return static_cast<uint32_t>(data_.target_touches.size());
-  }
-
-  return 0;
-}
-
-std::vector<TouchPointWithTilt>* PPB_InputEvent_Shared::GetTouchListByType(
-    PP_TouchListType list) {
-  switch (list) {
-    case PP_TOUCHLIST_TYPE_TOUCHES:
-      return &data_.touches;
-    case PP_TOUCHLIST_TYPE_CHANGEDTOUCHES:
-      return &data_.changed_touches;
-    case PP_TOUCHLIST_TYPE_TARGETTOUCHES:
-      return &data_.target_touches;
-  }
-  return nullptr;
-}
-
-TouchPointWithTilt* PPB_InputEvent_Shared::GetTouchByTypeAndId(
-    PP_TouchListType list,
-    uint32_t id) {
-  std::vector<TouchPointWithTilt>* points = GetTouchListByType(list);
-  if (!points)
-    return nullptr;
-
-  for (size_t i = 0; i < points->size(); i++) {
-    if (points->at(i).touch.id == id)
-      return &points->at(i);
-  }
-
-  return nullptr;
-}
-
-PP_TouchPoint PPB_InputEvent_Shared::GetTouchByIndex(PP_TouchListType list,
-                                                     uint32_t index) {
-  std::vector<TouchPointWithTilt>* points = GetTouchListByType(list);
-
-  if (!points || index >= points->size()) {
-    return PP_MakeTouchPoint();
-  }
-  return points->at(index).touch;
-}
-
-PP_TouchPoint PPB_InputEvent_Shared::GetTouchById(PP_TouchListType list,
-                                                  uint32_t id) {
-  TouchPointWithTilt* point = GetTouchByTypeAndId(list, id);
-  if (!point)
-    return PP_MakeTouchPoint();
-
-  return point->touch;
-}
-
-PP_FloatPoint PPB_InputEvent_Shared::GetTouchTiltByIndex(PP_TouchListType list,
-                                                         uint32_t index) {
-  std::vector<TouchPointWithTilt>* points = GetTouchListByType(list);
-
-  if (!points || index >= points->size())
-    return PP_MakeFloatPoint(0, 0);
-
-  return points->at(index).tilt;
-}
-
-PP_FloatPoint PPB_InputEvent_Shared::GetTouchTiltById(PP_TouchListType list,
-                                                      uint32_t id) {
-  TouchPointWithTilt* point = GetTouchByTypeAndId(list, id);
-  if (!point)
-    return PP_MakeFloatPoint(0, 0);
-
-  return point->tilt;
-}
-
-// static
-PP_Resource PPB_InputEvent_Shared::CreateIMEInputEvent(
-    ResourceObjectType type,
-    PP_Instance instance,
-    PP_InputEvent_Type event_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) {
-  if (event_type != PP_INPUTEVENT_TYPE_IME_COMPOSITION_START &&
-      event_type != PP_INPUTEVENT_TYPE_IME_COMPOSITION_UPDATE &&
-      event_type != PP_INPUTEVENT_TYPE_IME_COMPOSITION_END &&
-      event_type != PP_INPUTEVENT_TYPE_IME_TEXT)
-    return 0;
-
-  InputEventData data;
-  data.event_type = event_type;
-  data.event_time_stamp = time_stamp;
-  if (text.type == PP_VARTYPE_STRING) {
-    StringVar* text_str = StringVar::FromPPVar(text);
-    if (!text_str)
-      return 0;
-    data.character_text = text_str->value();
-  }
-  data.composition_target_segment = target_segment;
-  if (segment_number != 0) {
-    data.composition_segment_offsets.assign(
-        &segment_offsets[0], &segment_offsets[segment_number + 1]);
-  }
-  data.composition_selection_start = selection_start;
-  data.composition_selection_end = selection_end;
-
-  return (new PPB_InputEvent_Shared(type, instance, data))->GetReference();
-}
-
-// static
-PP_Resource PPB_InputEvent_Shared::CreateKeyboardInputEvent(
-    ResourceObjectType type,
-    PP_Instance instance,
-    PP_InputEvent_Type event_type,
-    PP_TimeTicks time_stamp,
-    uint32_t modifiers,
-    uint32_t key_code,
-    struct PP_Var character_text,
-    struct PP_Var code) {
-  if (event_type != PP_INPUTEVENT_TYPE_RAWKEYDOWN &&
-      event_type != PP_INPUTEVENT_TYPE_KEYDOWN &&
-      event_type != PP_INPUTEVENT_TYPE_KEYUP &&
-      event_type != PP_INPUTEVENT_TYPE_CHAR)
-    return 0;
-
-  InputEventData data;
-  data.event_type = event_type;
-  data.event_time_stamp = time_stamp;
-  data.event_modifiers = modifiers;
-  data.key_code = key_code;
-  if (character_text.type == PP_VARTYPE_STRING) {
-    StringVar* text_str = StringVar::FromPPVar(character_text);
-    if (!text_str)
-      return 0;
-    data.character_text = text_str->value();
-  }
-  if (code.type == PP_VARTYPE_STRING) {
-    StringVar* code_str = StringVar::FromPPVar(code);
-    if (!code_str)
-      return 0;
-    data.code = code_str->value();
-  }
-
-  return (new PPB_InputEvent_Shared(type, instance, data))->GetReference();
-}
-
-// static
-PP_Resource PPB_InputEvent_Shared::CreateMouseInputEvent(
-    ResourceObjectType type,
-    PP_Instance instance,
-    PP_InputEvent_Type event_type,
-    PP_TimeTicks time_stamp,
-    uint32_t modifiers,
-    PP_InputEvent_MouseButton mouse_button,
-    const PP_Point* mouse_position,
-    int32_t click_count,
-    const PP_Point* mouse_movement) {
-  if (event_type != PP_INPUTEVENT_TYPE_MOUSEDOWN &&
-      event_type != PP_INPUTEVENT_TYPE_MOUSEUP &&
-      event_type != PP_INPUTEVENT_TYPE_MOUSEMOVE &&
-      event_type != PP_INPUTEVENT_TYPE_MOUSEENTER &&
-      event_type != PP_INPUTEVENT_TYPE_MOUSELEAVE)
-    return 0;
-
-  InputEventData data;
-  data.event_type = event_type;
-  data.event_time_stamp = time_stamp;
-  data.event_modifiers = modifiers;
-  data.mouse_button = mouse_button;
-  data.mouse_position = *mouse_position;
-  data.mouse_click_count = click_count;
-  data.mouse_movement = *mouse_movement;
-
-  return (new PPB_InputEvent_Shared(type, instance, data))->GetReference();
-}
-
-// static
-PP_Resource PPB_InputEvent_Shared::CreateWheelInputEvent(
-    ResourceObjectType type,
-    PP_Instance instance,
-    PP_TimeTicks time_stamp,
-    uint32_t modifiers,
-    const PP_FloatPoint* wheel_delta,
-    const PP_FloatPoint* wheel_ticks,
-    PP_Bool scroll_by_page) {
-  InputEventData data;
-  data.event_type = PP_INPUTEVENT_TYPE_WHEEL;
-  data.event_time_stamp = time_stamp;
-  data.event_modifiers = modifiers;
-  data.wheel_delta = *wheel_delta;
-  data.wheel_ticks = *wheel_ticks;
-  data.wheel_scroll_by_page = PP_ToBool(scroll_by_page);
-
-  return (new PPB_InputEvent_Shared(type, instance, data))->GetReference();
-}
-
-// static
-PP_Resource PPB_InputEvent_Shared::CreateTouchInputEvent(
-    ResourceObjectType type,
-    PP_Instance instance,
-    PP_InputEvent_Type event_type,
-    PP_TimeTicks time_stamp,
-    uint32_t modifiers) {
-  if (event_type != PP_INPUTEVENT_TYPE_TOUCHSTART &&
-      event_type != PP_INPUTEVENT_TYPE_TOUCHMOVE &&
-      event_type != PP_INPUTEVENT_TYPE_TOUCHEND &&
-      event_type != PP_INPUTEVENT_TYPE_TOUCHCANCEL)
-    return 0;
-
-  InputEventData data;
-  data.event_type = event_type;
-  data.event_time_stamp = time_stamp;
-  data.event_modifiers = modifiers;
-  return (new PPB_InputEvent_Shared(type, instance, data))->GetReference();
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_input_event_shared.h b/shared_impl/ppb_input_event_shared.h
deleted file mode 100644
index 17816ee..0000000
--- a/shared_impl/ppb_input_event_shared.h
+++ /dev/null
@@ -1,166 +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_SHARED_IMPL_PPB_INPUT_EVENT_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_INPUT_EVENT_SHARED_H_
-
-#include <stdint.h>
-
-#include <string>
-#include <vector>
-
-#include "base/compiler_specific.h"
-#include "ppapi/c/ppb_input_event.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_input_event_api.h"
-
-namespace ppapi {
-
-struct TouchPointWithTilt {
-  PP_TouchPoint touch;
-  PP_FloatPoint tilt;
-};
-
-// IF YOU ADD STUFF TO THIS CLASS
-// ==============================
-// Be sure to add it to the STRUCT_TRAITS at the top of ppapi_messages.h
-struct PPAPI_SHARED_EXPORT InputEventData {
-  InputEventData();
-  ~InputEventData();
-
-  // Internal-only value. Set to true when this input event is filtered, that
-  // is, should be delivered synchronously. This is used by the proxy.
-  bool is_filtered;
-
-  PP_InputEvent_Type event_type;
-  PP_TimeTicks event_time_stamp;
-  uint32_t event_modifiers;
-
-  PP_InputEvent_MouseButton mouse_button;
-  PP_Point mouse_position;
-  int32_t mouse_click_count;
-  PP_Point mouse_movement;
-
-  PP_FloatPoint wheel_delta;
-  PP_FloatPoint wheel_ticks;
-  bool wheel_scroll_by_page;
-
-  uint32_t key_code;
-
-  // The key event's |code| attribute as defined in:
-  // http://www.w3.org/TR/uievents/
-  std::string code;
-
-  std::string character_text;
-
-  std::vector<uint32_t> composition_segment_offsets;
-  int32_t composition_target_segment;
-  uint32_t composition_selection_start;
-  uint32_t composition_selection_end;
-
-  std::vector<TouchPointWithTilt> touches;
-  std::vector<TouchPointWithTilt> changed_touches;
-  std::vector<TouchPointWithTilt> target_touches;
-};
-
-// This simple class implements the PPB_InputEvent_API in terms of the
-// shared InputEventData structure
-class PPAPI_SHARED_EXPORT PPB_InputEvent_Shared
-    : public Resource,
-      public thunk::PPB_InputEvent_API {
- public:
-  PPB_InputEvent_Shared() = delete;
-
-  PPB_InputEvent_Shared(ResourceObjectType type,
-                        PP_Instance instance,
-                        const InputEventData& data);
-
-  PPB_InputEvent_Shared(const PPB_InputEvent_Shared&) = delete;
-  PPB_InputEvent_Shared& operator=(const PPB_InputEvent_Shared&) = delete;
-
-  // Resource overrides.
-  PPB_InputEvent_API* AsPPB_InputEvent_API() override;
-
-  // PPB_InputEvent_API implementation.
-  const InputEventData& GetInputEventData() const override;
-  PP_InputEvent_Type GetType() override;
-  PP_TimeTicks GetTimeStamp() override;
-  uint32_t GetModifiers() override;
-  PP_InputEvent_MouseButton GetMouseButton() override;
-  PP_Point GetMousePosition() override;
-  int32_t GetMouseClickCount() override;
-  PP_Point GetMouseMovement() override;
-  PP_FloatPoint GetWheelDelta() override;
-  PP_FloatPoint GetWheelTicks() override;
-  PP_Bool GetWheelScrollByPage() override;
-  uint32_t GetKeyCode() override;
-  PP_Var GetCharacterText() override;
-  PP_Var GetCode() override;
-  uint32_t GetIMESegmentNumber() override;
-  uint32_t GetIMESegmentOffset(uint32_t index) override;
-  int32_t GetIMETargetSegment() override;
-  void GetIMESelection(uint32_t* start, uint32_t* end) override;
-  void AddTouchPoint(PP_TouchListType list,
-                     const PP_TouchPoint& point) override;
-  uint32_t GetTouchCount(PP_TouchListType list) override;
-  PP_TouchPoint GetTouchByIndex(PP_TouchListType list, uint32_t index) override;
-  PP_TouchPoint GetTouchById(PP_TouchListType list, uint32_t id) override;
-  PP_FloatPoint GetTouchTiltByIndex(PP_TouchListType list,
-                                    uint32_t index) override;
-  PP_FloatPoint GetTouchTiltById(PP_TouchListType list, uint32_t id) override;
-
-  // Implementations for event creation.
-  static PP_Resource CreateIMEInputEvent(ResourceObjectType type,
-                                         PP_Instance instance,
-                                         PP_InputEvent_Type event_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);
-  static PP_Resource CreateKeyboardInputEvent(ResourceObjectType type,
-                                              PP_Instance instance,
-                                              PP_InputEvent_Type event_type,
-                                              PP_TimeTicks time_stamp,
-                                              uint32_t modifiers,
-                                              uint32_t key_code,
-                                              struct PP_Var character_text,
-                                              struct PP_Var code);
-  static PP_Resource CreateMouseInputEvent(
-      ResourceObjectType type,
-      PP_Instance instance,
-      PP_InputEvent_Type event_type,
-      PP_TimeTicks time_stamp,
-      uint32_t modifiers,
-      PP_InputEvent_MouseButton mouse_button,
-      const PP_Point* mouse_position,
-      int32_t click_count,
-      const PP_Point* mouse_movement);
-  static PP_Resource CreateWheelInputEvent(ResourceObjectType type,
-                                           PP_Instance instance,
-                                           PP_TimeTicks time_stamp,
-                                           uint32_t modifiers,
-                                           const PP_FloatPoint* wheel_delta,
-                                           const PP_FloatPoint* wheel_ticks,
-                                           PP_Bool scroll_by_page);
-  static PP_Resource CreateTouchInputEvent(ResourceObjectType type,
-                                           PP_Instance instance,
-                                           PP_InputEvent_Type event_type,
-                                           PP_TimeTicks time_stamp,
-                                           uint32_t modifiers);
-
- private:
-  // Helper function to get the touch list by the type.
-  std::vector<TouchPointWithTilt>* GetTouchListByType(PP_TouchListType type);
-  // Helper function to get touchpoint by the list type and touchpoint id.
-  TouchPointWithTilt* GetTouchByTypeAndId(PP_TouchListType type, uint32_t id);
-
-  InputEventData data_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_INPUT_EVENT_SHARED_H_
diff --git a/shared_impl/ppb_instance_shared.cc b/shared_impl/ppb_instance_shared.cc
deleted file mode 100644
index f0d470e..0000000
--- a/shared_impl/ppb_instance_shared.cc
+++ /dev/null
@@ -1,101 +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/shared_impl/ppb_instance_shared.h"
-
-#include <string>
-
-#include "base/threading/platform_thread.h"
-#include "base/trace_event/trace_event.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_input_event.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/ppb_image_data_shared.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_image_data_api.h"
-
-namespace ppapi {
-
-// static
-const int PPB_Instance_Shared::kExtraCharsForTextInput = 100;
-
-PPB_Instance_Shared::~PPB_Instance_Shared() {}
-
-void PPB_Instance_Shared::Log(PP_Instance instance,
-                              PP_LogLevel level,
-                              PP_Var value) {
-  LogWithSource(instance, level, PP_MakeUndefined(), value);
-}
-
-void PPB_Instance_Shared::LogWithSource(PP_Instance instance,
-                                        PP_LogLevel level,
-                                        PP_Var source,
-                                        PP_Var value) {
-  // The source defaults to empty if it's not a string. The PpapiGlobals
-  // implementation will convert the empty string to the module name if
-  // possible.
-  std::string source_str;
-  if (source.type == PP_VARTYPE_STRING)
-    source_str = Var::PPVarToLogString(source);
-  std::string value_str = Var::PPVarToLogString(value);
-  PpapiGlobals::Get()->LogWithSource(instance, level, source_str, value_str);
-}
-
-int32_t PPB_Instance_Shared::ValidateRequestInputEvents(
-    bool is_filtering,
-    uint32_t event_classes) {
-  // See if any bits are set we don't know about.
-  if (event_classes & ~static_cast<uint32_t>(PP_INPUTEVENT_CLASS_MOUSE |
-                                             PP_INPUTEVENT_CLASS_KEYBOARD |
-                                             PP_INPUTEVENT_CLASS_WHEEL |
-                                             PP_INPUTEVENT_CLASS_TOUCH |
-                                             PP_INPUTEVENT_CLASS_IME))
-    return PP_ERROR_NOTSUPPORTED;
-
-  // Everything else is valid.
-  return PP_OK;
-}
-
-bool PPB_Instance_Shared::ValidateSetCursorParams(PP_MouseCursor_Type type,
-                                                  PP_Resource image,
-                                                  const PP_Point* hot_spot) {
-  if (static_cast<int>(type) < static_cast<int>(PP_MOUSECURSOR_TYPE_CUSTOM) ||
-      static_cast<int>(type) > static_cast<int>(PP_MOUSECURSOR_TYPE_GRABBING))
-    return false;  // Cursor type out of range.
-  if (type != PP_MOUSECURSOR_TYPE_CUSTOM) {
-    // The image must not be specified if the type isn't custom. However, we
-    // don't require that the hot spot be null since the C++ wrappers and proxy
-    // pass the point by reference and it will normally be specified.
-    return image == 0;
-  }
-
-  if (!hot_spot)
-    return false;  // Hot spot must be specified for custom cursor.
-
-  thunk::EnterResourceNoLock<thunk::PPB_ImageData_API> enter(image, true);
-  if (enter.failed())
-    return false;  // Invalid image resource.
-
-  // Validate the image size. A giant cursor can arbitrarily overwrite parts
-  // of the screen resulting in potential spoofing attacks. So we force the
-  // cursor to be a reasonably-sized image.
-  PP_ImageDataDesc desc;
-  if (!PP_ToBool(enter.object()->Describe(&desc)))
-    return false;
-  if (desc.size.width > 32 || desc.size.height > 32)
-    return false;
-
-  // Validate image format.
-  if (desc.format != PPB_ImageData_Shared::GetNativeImageDataFormat())
-    return false;
-
-  // Validate the hot spot location.
-  if (hot_spot->x < 0 || hot_spot->x >= desc.size.width || hot_spot->y < 0 ||
-      hot_spot->y >= desc.size.height)
-    return false;
-  return true;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_instance_shared.h b/shared_impl/ppb_instance_shared.h
deleted file mode 100644
index f291f0a..0000000
--- a/shared_impl/ppb_instance_shared.h
+++ /dev/null
@@ -1,42 +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_SHARED_IMPL_PPB_INSTANCE_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_INSTANCE_SHARED_H_
-
-#include "base/compiler_specific.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT PPB_Instance_Shared : public thunk::PPB_Instance_API {
- public:
-  ~PPB_Instance_Shared() override;
-
-  // Implementation of some shared PPB_Instance_FunctionAPI functions.
-  void Log(PP_Instance instance, PP_LogLevel log_level, PP_Var value) override;
-  void LogWithSource(PP_Instance instance,
-                     PP_LogLevel log_level,
-                     PP_Var source,
-                     PP_Var value) override;
-
-  // Error checks the given resquest to Request[Filtering]InputEvents. Returns
-  // PP_OK if the given classes are all valid, PP_ERROR_NOTSUPPORTED if not.
-  int32_t ValidateRequestInputEvents(bool is_filtering, uint32_t event_classes);
-
-  bool ValidateSetCursorParams(PP_MouseCursor_Type type,
-                               PP_Resource image,
-                               const PP_Point* hot_spot);
-
-  // The length of text to request as a surrounding context of selection.
-  // For now, the value is copied from the one with render_view_impl.cc.
-  // TODO(kinaba) implement a way to dynamically sync the requirement.
-  static const int kExtraCharsForTextInput;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_INSTANCE_SHARED_H_
diff --git a/shared_impl/ppb_memory_shared.cc b/shared_impl/ppb_memory_shared.cc
deleted file mode 100644
index 996b82b..0000000
--- a/shared_impl/ppb_memory_shared.cc
+++ /dev/null
@@ -1,37 +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 <stdlib.h>
-
-#include "ppapi/c/dev/ppb_memory_dev.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-// The memory interface doesn't have a normal C -> C++ thunk since it doesn't
-// actually have any proxy wrapping or associated objects; it's just a call
-// into base. So we implement the entire interface here, using the thunk
-// namespace so it magically gets hooked up in the proper places.
-
-namespace ppapi {
-
-namespace {
-
-void* MemAlloc(uint32_t num_bytes) { return malloc(num_bytes); }
-
-void MemFree(void* ptr) { free(ptr); }
-
-const PPB_Memory_Dev ppb_memory = {&MemAlloc, &MemFree};
-
-}  // namespace
-
-namespace thunk {
-
-// static
-PPAPI_SHARED_EXPORT const PPB_Memory_Dev_0_1* GetPPB_Memory_Dev_0_1_Thunk() {
-  return &ppb_memory;
-}
-
-}  // namespace thunk
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_message_loop_shared.cc b/shared_impl/ppb_message_loop_shared.cc
deleted file mode 100644
index 28c38fc..0000000
--- a/shared_impl/ppb_message_loop_shared.cc
+++ /dev/null
@@ -1,17 +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/shared_impl/ppb_message_loop_shared.h"
-
-namespace ppapi {
-
-MessageLoopShared::MessageLoopShared(PP_Instance instance)
-    : Resource(OBJECT_IS_PROXY, instance) {}
-
-MessageLoopShared::MessageLoopShared(ForMainThread)
-    : Resource(Resource::Untracked()) {}
-
-MessageLoopShared::~MessageLoopShared() {}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_message_loop_shared.h b/shared_impl/ppb_message_loop_shared.h
deleted file mode 100644
index 49afc1a..0000000
--- a/shared_impl/ppb_message_loop_shared.h
+++ /dev/null
@@ -1,63 +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_SHARED_IMPL_PPB_MESSAGE_LOOP_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_MESSAGE_LOOP_SHARED_H_
-
-#include <stdint.h>
-
-#include "base/functional/callback_forward.h"
-#include "base/location.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_message_loop_api.h"
-
-namespace base {
-class Location;
-class SingleThreadTaskRunner;
-}
-
-namespace ppapi {
-
-// MessageLoopShared doesn't really do anything interesting. It exists so that
-// shared code (in particular, TrackedCallback) can keep a pointer to a
-// MessageLoop resource. In the host side, there is not a concrete class that
-// implements this. So pointers to MessageLoopShared can only really be valid
-// on the plugin side.
-class PPAPI_SHARED_EXPORT MessageLoopShared
-    : public Resource,
-      public thunk::PPB_MessageLoop_API {
- public:
-  explicit MessageLoopShared(PP_Instance instance);
-  // Construct the one MessageLoopShared for the main thread. This must be
-  // invoked on the main thread.
-  struct ForMainThread {};
-  explicit MessageLoopShared(ForMainThread);
-
-  MessageLoopShared(const MessageLoopShared&) = delete;
-  MessageLoopShared& operator=(const MessageLoopShared&) = delete;
-
-  virtual ~MessageLoopShared();
-
-  // Handles posting to the message loop if there is one, or the pending queue
-  // if there isn't.
-  // NOTE: The given closure will be run *WITHOUT* acquiring the Proxy lock.
-  //       This only makes sense for user code and completely thread-safe
-  //       proxy operations (e.g., MessageLoop::QuitClosure).
-  virtual void PostClosure(const base::Location& from_here,
-                           base::OnceClosure closure,
-                           int64_t delay_ms) = 0;
-
-  virtual base::SingleThreadTaskRunner* GetTaskRunner() = 0;
-
-  // Returns whether this MessageLoop is currently handling a blocking message
-  // from JavaScript. This is used to make it illegal to use blocking callbacks
-  // while the thread is handling a blocking message.
-  virtual bool CurrentlyHandlingBlockingMessage() = 0;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_MESSAGE_LOOP_SHARED_H_
diff --git a/shared_impl/ppb_opengles2_shared.cc b/shared_impl/ppb_opengles2_shared.cc
deleted file mode 100644
index 9e1d363..0000000
--- a/shared_impl/ppb_opengles2_shared.cc
+++ /dev/null
@@ -1,1793 +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.
-
-// This file is auto-generated from
-// gpu/command_buffer/build_gles2_cmd_buffer.py
-// It's formatted by clang-format using chromium coding style:
-//    clang-format -i -style=chromium filename
-// DO NOT EDIT!
-
-#include "ppapi/shared_impl/ppb_opengles2_shared.h"
-
-#include "base/logging.h"
-#include "gpu/command_buffer/client/gles2_implementation.h"
-#include "ppapi/shared_impl/ppb_graphics_3d_shared.h"
-#include "ppapi/thunk/enter.h"
-
-namespace ppapi {
-
-namespace {
-
-typedef thunk::EnterResource<thunk::PPB_Graphics3D_API> Enter3D;
-
-gpu::gles2::GLES2Implementation* ToGles2Impl(Enter3D* enter) {
-  DCHECK(enter);
-  DCHECK(enter->succeeded());
-  return static_cast<PPB_Graphics3D_Shared*>(enter->object())->gles2_impl();
-}
-
-void ActiveTexture(PP_Resource context_id, GLenum texture) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->ActiveTexture(texture);
-  }
-}
-
-void AttachShader(PP_Resource context_id, GLuint program, GLuint shader) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->AttachShader(program, shader);
-  }
-}
-
-void BindAttribLocation(PP_Resource context_id,
-                        GLuint program,
-                        GLuint index,
-                        const char* name) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BindAttribLocation(program, index, name);
-  }
-}
-
-void BindBuffer(PP_Resource context_id, GLenum target, GLuint buffer) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BindBuffer(target, buffer);
-  }
-}
-
-void BindFramebuffer(PP_Resource context_id,
-                     GLenum target,
-                     GLuint framebuffer) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BindFramebuffer(target, framebuffer);
-  }
-}
-
-void BindRenderbuffer(PP_Resource context_id,
-                      GLenum target,
-                      GLuint renderbuffer) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BindRenderbuffer(target, renderbuffer);
-  }
-}
-
-void BindTexture(PP_Resource context_id, GLenum target, GLuint texture) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BindTexture(target, texture);
-  }
-}
-
-void BlendColor(PP_Resource context_id,
-                GLclampf red,
-                GLclampf green,
-                GLclampf blue,
-                GLclampf alpha) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BlendColor(red, green, blue, alpha);
-  }
-}
-
-void BlendEquation(PP_Resource context_id, GLenum mode) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BlendEquation(mode);
-  }
-}
-
-void BlendEquationSeparate(PP_Resource context_id,
-                           GLenum modeRGB,
-                           GLenum modeAlpha) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BlendEquationSeparate(modeRGB, modeAlpha);
-  }
-}
-
-void BlendFunc(PP_Resource context_id, GLenum sfactor, GLenum dfactor) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BlendFunc(sfactor, dfactor);
-  }
-}
-
-void BlendFuncSeparate(PP_Resource context_id,
-                       GLenum srcRGB,
-                       GLenum dstRGB,
-                       GLenum srcAlpha,
-                       GLenum dstAlpha) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
-  }
-}
-
-void BufferData(PP_Resource context_id,
-                GLenum target,
-                GLsizeiptr size,
-                const void* data,
-                GLenum usage) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BufferData(target, size, data, usage);
-  }
-}
-
-void BufferSubData(PP_Resource context_id,
-                   GLenum target,
-                   GLintptr offset,
-                   GLsizeiptr size,
-                   const void* data) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BufferSubData(target, offset, size, data);
-  }
-}
-
-GLenum CheckFramebufferStatus(PP_Resource context_id, GLenum target) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->CheckFramebufferStatus(target);
-  } else {
-    return 0;
-  }
-}
-
-void Clear(PP_Resource context_id, GLbitfield mask) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Clear(mask);
-  }
-}
-
-void ClearColor(PP_Resource context_id,
-                GLclampf red,
-                GLclampf green,
-                GLclampf blue,
-                GLclampf alpha) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->ClearColor(red, green, blue, alpha);
-  }
-}
-
-void ClearDepthf(PP_Resource context_id, GLclampf depth) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->ClearDepthf(depth);
-  }
-}
-
-void ClearStencil(PP_Resource context_id, GLint s) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->ClearStencil(s);
-  }
-}
-
-void ColorMask(PP_Resource context_id,
-               GLboolean red,
-               GLboolean green,
-               GLboolean blue,
-               GLboolean alpha) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->ColorMask(red, green, blue, alpha);
-  }
-}
-
-void CompileShader(PP_Resource context_id, GLuint shader) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->CompileShader(shader);
-  }
-}
-
-void CompressedTexImage2D(PP_Resource context_id,
-                          GLenum target,
-                          GLint level,
-                          GLenum internalformat,
-                          GLsizei width,
-                          GLsizei height,
-                          GLint border,
-                          GLsizei imageSize,
-                          const void* data) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->CompressedTexImage2D(
-        target, level, internalformat, width, height, border, imageSize, data);
-  }
-}
-
-void CompressedTexSubImage2D(PP_Resource context_id,
-                             GLenum target,
-                             GLint level,
-                             GLint xoffset,
-                             GLint yoffset,
-                             GLsizei width,
-                             GLsizei height,
-                             GLenum format,
-                             GLsizei imageSize,
-                             const void* data) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->CompressedTexSubImage2D(target, level, xoffset,
-                                                 yoffset, width, height, format,
-                                                 imageSize, data);
-  }
-}
-
-void CopyTexImage2D(PP_Resource context_id,
-                    GLenum target,
-                    GLint level,
-                    GLenum internalformat,
-                    GLint x,
-                    GLint y,
-                    GLsizei width,
-                    GLsizei height,
-                    GLint border) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->CopyTexImage2D(target, level, internalformat, x, y,
-                                        width, height, border);
-  }
-}
-
-void CopyTexSubImage2D(PP_Resource context_id,
-                       GLenum target,
-                       GLint level,
-                       GLint xoffset,
-                       GLint yoffset,
-                       GLint x,
-                       GLint y,
-                       GLsizei width,
-                       GLsizei height) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->CopyTexSubImage2D(target, level, xoffset, yoffset, x,
-                                           y, width, height);
-  }
-}
-
-GLuint CreateProgram(PP_Resource context_id) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->CreateProgram();
-  } else {
-    return 0;
-  }
-}
-
-GLuint CreateShader(PP_Resource context_id, GLenum type) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->CreateShader(type);
-  } else {
-    return 0;
-  }
-}
-
-void CullFace(PP_Resource context_id, GLenum mode) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->CullFace(mode);
-  }
-}
-
-void DeleteBuffers(PP_Resource context_id, GLsizei n, const GLuint* buffers) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DeleteBuffers(n, buffers);
-  }
-}
-
-void DeleteFramebuffers(PP_Resource context_id,
-                        GLsizei n,
-                        const GLuint* framebuffers) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DeleteFramebuffers(n, framebuffers);
-  }
-}
-
-void DeleteProgram(PP_Resource context_id, GLuint program) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DeleteProgram(program);
-  }
-}
-
-void DeleteRenderbuffers(PP_Resource context_id,
-                         GLsizei n,
-                         const GLuint* renderbuffers) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DeleteRenderbuffers(n, renderbuffers);
-  }
-}
-
-void DeleteShader(PP_Resource context_id, GLuint shader) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DeleteShader(shader);
-  }
-}
-
-void DeleteTextures(PP_Resource context_id, GLsizei n, const GLuint* textures) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DeleteTextures(n, textures);
-  }
-}
-
-void DepthFunc(PP_Resource context_id, GLenum func) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DepthFunc(func);
-  }
-}
-
-void DepthMask(PP_Resource context_id, GLboolean flag) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DepthMask(flag);
-  }
-}
-
-void DepthRangef(PP_Resource context_id, GLclampf zNear, GLclampf zFar) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DepthRangef(zNear, zFar);
-  }
-}
-
-void DetachShader(PP_Resource context_id, GLuint program, GLuint shader) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DetachShader(program, shader);
-  }
-}
-
-void Disable(PP_Resource context_id, GLenum cap) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Disable(cap);
-  }
-}
-
-void DisableVertexAttribArray(PP_Resource context_id, GLuint index) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DisableVertexAttribArray(index);
-  }
-}
-
-void DrawArrays(PP_Resource context_id,
-                GLenum mode,
-                GLint first,
-                GLsizei count) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DrawArrays(mode, first, count);
-  }
-}
-
-void DrawElements(PP_Resource context_id,
-                  GLenum mode,
-                  GLsizei count,
-                  GLenum type,
-                  const void* indices) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DrawElements(mode, count, type, indices);
-  }
-}
-
-void Enable(PP_Resource context_id, GLenum cap) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Enable(cap);
-  }
-}
-
-void EnableVertexAttribArray(PP_Resource context_id, GLuint index) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->EnableVertexAttribArray(index);
-  }
-}
-
-void Finish(PP_Resource context_id) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Finish();
-  }
-}
-
-void Flush(PP_Resource context_id) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Flush();
-  }
-}
-
-void FramebufferRenderbuffer(PP_Resource context_id,
-                             GLenum target,
-                             GLenum attachment,
-                             GLenum renderbuffertarget,
-                             GLuint renderbuffer) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->FramebufferRenderbuffer(
-        target, attachment, renderbuffertarget, renderbuffer);
-  }
-}
-
-void FramebufferTexture2D(PP_Resource context_id,
-                          GLenum target,
-                          GLenum attachment,
-                          GLenum textarget,
-                          GLuint texture,
-                          GLint level) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->FramebufferTexture2D(target, attachment, textarget,
-                                              texture, level);
-  }
-}
-
-void FrontFace(PP_Resource context_id, GLenum mode) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->FrontFace(mode);
-  }
-}
-
-void GenBuffers(PP_Resource context_id, GLsizei n, GLuint* buffers) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GenBuffers(n, buffers);
-  }
-}
-
-void GenerateMipmap(PP_Resource context_id, GLenum target) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GenerateMipmap(target);
-  }
-}
-
-void GenFramebuffers(PP_Resource context_id, GLsizei n, GLuint* framebuffers) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GenFramebuffers(n, framebuffers);
-  }
-}
-
-void GenRenderbuffers(PP_Resource context_id,
-                      GLsizei n,
-                      GLuint* renderbuffers) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GenRenderbuffers(n, renderbuffers);
-  }
-}
-
-void GenTextures(PP_Resource context_id, GLsizei n, GLuint* textures) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GenTextures(n, textures);
-  }
-}
-
-void GetActiveAttrib(PP_Resource context_id,
-                     GLuint program,
-                     GLuint index,
-                     GLsizei bufsize,
-                     GLsizei* length,
-                     GLint* size,
-                     GLenum* type,
-                     char* name) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetActiveAttrib(program, index, bufsize, length, size,
-                                         type, name);
-  }
-}
-
-void GetActiveUniform(PP_Resource context_id,
-                      GLuint program,
-                      GLuint index,
-                      GLsizei bufsize,
-                      GLsizei* length,
-                      GLint* size,
-                      GLenum* type,
-                      char* name) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetActiveUniform(program, index, bufsize, length, size,
-                                          type, name);
-  }
-}
-
-void GetAttachedShaders(PP_Resource context_id,
-                        GLuint program,
-                        GLsizei maxcount,
-                        GLsizei* count,
-                        GLuint* shaders) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetAttachedShaders(program, maxcount, count, shaders);
-  }
-}
-
-GLint GetAttribLocation(PP_Resource context_id,
-                        GLuint program,
-                        const char* name) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->GetAttribLocation(program, name);
-  } else {
-    return -1;
-  }
-}
-
-void GetBooleanv(PP_Resource context_id, GLenum pname, GLboolean* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetBooleanv(pname, params);
-  }
-}
-
-void GetBufferParameteriv(PP_Resource context_id,
-                          GLenum target,
-                          GLenum pname,
-                          GLint* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetBufferParameteriv(target, pname, params);
-  }
-}
-
-GLenum GetError(PP_Resource context_id) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->GetError();
-  } else {
-    return 0;
-  }
-}
-
-void GetFloatv(PP_Resource context_id, GLenum pname, GLfloat* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetFloatv(pname, params);
-  }
-}
-
-void GetFramebufferAttachmentParameteriv(PP_Resource context_id,
-                                         GLenum target,
-                                         GLenum attachment,
-                                         GLenum pname,
-                                         GLint* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetFramebufferAttachmentParameteriv(target, attachment,
-                                                             pname, params);
-  }
-}
-
-void GetIntegerv(PP_Resource context_id, GLenum pname, GLint* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetIntegerv(pname, params);
-  }
-}
-
-void GetProgramiv(PP_Resource context_id,
-                  GLuint program,
-                  GLenum pname,
-                  GLint* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetProgramiv(program, pname, params);
-  }
-}
-
-void GetProgramInfoLog(PP_Resource context_id,
-                       GLuint program,
-                       GLsizei bufsize,
-                       GLsizei* length,
-                       char* infolog) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetProgramInfoLog(program, bufsize, length, infolog);
-  }
-}
-
-void GetRenderbufferParameteriv(PP_Resource context_id,
-                                GLenum target,
-                                GLenum pname,
-                                GLint* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetRenderbufferParameteriv(target, pname, params);
-  }
-}
-
-void GetShaderiv(PP_Resource context_id,
-                 GLuint shader,
-                 GLenum pname,
-                 GLint* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetShaderiv(shader, pname, params);
-  }
-}
-
-void GetShaderInfoLog(PP_Resource context_id,
-                      GLuint shader,
-                      GLsizei bufsize,
-                      GLsizei* length,
-                      char* infolog) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetShaderInfoLog(shader, bufsize, length, infolog);
-  }
-}
-
-void GetShaderPrecisionFormat(PP_Resource context_id,
-                              GLenum shadertype,
-                              GLenum precisiontype,
-                              GLint* range,
-                              GLint* precision) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetShaderPrecisionFormat(shadertype, precisiontype,
-                                                  range, precision);
-  }
-}
-
-void GetShaderSource(PP_Resource context_id,
-                     GLuint shader,
-                     GLsizei bufsize,
-                     GLsizei* length,
-                     char* source) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetShaderSource(shader, bufsize, length, source);
-  }
-}
-
-const GLubyte* GetString(PP_Resource context_id, GLenum name) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->GetString(name);
-  } else {
-    return nullptr;
-  }
-}
-
-void GetTexParameterfv(PP_Resource context_id,
-                       GLenum target,
-                       GLenum pname,
-                       GLfloat* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetTexParameterfv(target, pname, params);
-  }
-}
-
-void GetTexParameteriv(PP_Resource context_id,
-                       GLenum target,
-                       GLenum pname,
-                       GLint* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetTexParameteriv(target, pname, params);
-  }
-}
-
-void GetUniformfv(PP_Resource context_id,
-                  GLuint program,
-                  GLint location,
-                  GLfloat* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetUniformfv(program, location, params);
-  }
-}
-
-void GetUniformiv(PP_Resource context_id,
-                  GLuint program,
-                  GLint location,
-                  GLint* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetUniformiv(program, location, params);
-  }
-}
-
-GLint GetUniformLocation(PP_Resource context_id,
-                         GLuint program,
-                         const char* name) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->GetUniformLocation(program, name);
-  } else {
-    return -1;
-  }
-}
-
-void GetVertexAttribfv(PP_Resource context_id,
-                       GLuint index,
-                       GLenum pname,
-                       GLfloat* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetVertexAttribfv(index, pname, params);
-  }
-}
-
-void GetVertexAttribiv(PP_Resource context_id,
-                       GLuint index,
-                       GLenum pname,
-                       GLint* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetVertexAttribiv(index, pname, params);
-  }
-}
-
-void GetVertexAttribPointerv(PP_Resource context_id,
-                             GLuint index,
-                             GLenum pname,
-                             void** pointer) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetVertexAttribPointerv(index, pname, pointer);
-  }
-}
-
-void Hint(PP_Resource context_id, GLenum target, GLenum mode) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Hint(target, mode);
-  }
-}
-
-GLboolean IsBuffer(PP_Resource context_id, GLuint buffer) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->IsBuffer(buffer);
-  } else {
-    return GL_FALSE;
-  }
-}
-
-GLboolean IsEnabled(PP_Resource context_id, GLenum cap) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->IsEnabled(cap);
-  } else {
-    return GL_FALSE;
-  }
-}
-
-GLboolean IsFramebuffer(PP_Resource context_id, GLuint framebuffer) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->IsFramebuffer(framebuffer);
-  } else {
-    return GL_FALSE;
-  }
-}
-
-GLboolean IsProgram(PP_Resource context_id, GLuint program) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->IsProgram(program);
-  } else {
-    return GL_FALSE;
-  }
-}
-
-GLboolean IsRenderbuffer(PP_Resource context_id, GLuint renderbuffer) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->IsRenderbuffer(renderbuffer);
-  } else {
-    return GL_FALSE;
-  }
-}
-
-GLboolean IsShader(PP_Resource context_id, GLuint shader) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->IsShader(shader);
-  } else {
-    return GL_FALSE;
-  }
-}
-
-GLboolean IsTexture(PP_Resource context_id, GLuint texture) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->IsTexture(texture);
-  } else {
-    return GL_FALSE;
-  }
-}
-
-void LineWidth(PP_Resource context_id, GLfloat width) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->LineWidth(width);
-  }
-}
-
-void LinkProgram(PP_Resource context_id, GLuint program) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->LinkProgram(program);
-  }
-}
-
-void PixelStorei(PP_Resource context_id, GLenum pname, GLint param) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->PixelStorei(pname, param);
-  }
-}
-
-void PolygonOffset(PP_Resource context_id, GLfloat factor, GLfloat units) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->PolygonOffset(factor, units);
-  }
-}
-
-void ReadPixels(PP_Resource context_id,
-                GLint x,
-                GLint y,
-                GLsizei width,
-                GLsizei height,
-                GLenum format,
-                GLenum type,
-                void* pixels) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->ReadPixels(x, y, width, height, format, type, pixels);
-  }
-}
-
-void ReleaseShaderCompiler(PP_Resource context_id) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->ReleaseShaderCompiler();
-  }
-}
-
-void RenderbufferStorage(PP_Resource context_id,
-                         GLenum target,
-                         GLenum internalformat,
-                         GLsizei width,
-                         GLsizei height) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->RenderbufferStorage(target, internalformat, width,
-                                             height);
-  }
-}
-
-void SampleCoverage(PP_Resource context_id, GLclampf value, GLboolean invert) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->SampleCoverage(value, invert);
-  }
-}
-
-void Scissor(PP_Resource context_id,
-             GLint x,
-             GLint y,
-             GLsizei width,
-             GLsizei height) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Scissor(x, y, width, height);
-  }
-}
-
-void ShaderBinary(PP_Resource context_id,
-                  GLsizei n,
-                  const GLuint* shaders,
-                  GLenum binaryformat,
-                  const void* binary,
-                  GLsizei length) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->ShaderBinary(n, shaders, binaryformat, binary, length);
-  }
-}
-
-void ShaderSource(PP_Resource context_id,
-                  GLuint shader,
-                  GLsizei count,
-                  const char** str,
-                  const GLint* length) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->ShaderSource(shader, count, str, length);
-  }
-}
-
-void StencilFunc(PP_Resource context_id, GLenum func, GLint ref, GLuint mask) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->StencilFunc(func, ref, mask);
-  }
-}
-
-void StencilFuncSeparate(PP_Resource context_id,
-                         GLenum face,
-                         GLenum func,
-                         GLint ref,
-                         GLuint mask) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->StencilFuncSeparate(face, func, ref, mask);
-  }
-}
-
-void StencilMask(PP_Resource context_id, GLuint mask) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->StencilMask(mask);
-  }
-}
-
-void StencilMaskSeparate(PP_Resource context_id, GLenum face, GLuint mask) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->StencilMaskSeparate(face, mask);
-  }
-}
-
-void StencilOp(PP_Resource context_id,
-               GLenum fail,
-               GLenum zfail,
-               GLenum zpass) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->StencilOp(fail, zfail, zpass);
-  }
-}
-
-void StencilOpSeparate(PP_Resource context_id,
-                       GLenum face,
-                       GLenum fail,
-                       GLenum zfail,
-                       GLenum zpass) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->StencilOpSeparate(face, fail, zfail, zpass);
-  }
-}
-
-void TexImage2D(PP_Resource context_id,
-                GLenum target,
-                GLint level,
-                GLint internalformat,
-                GLsizei width,
-                GLsizei height,
-                GLint border,
-                GLenum format,
-                GLenum type,
-                const void* pixels) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->TexImage2D(target, level, internalformat, width,
-                                    height, border, format, type, pixels);
-  }
-}
-
-void TexParameterf(PP_Resource context_id,
-                   GLenum target,
-                   GLenum pname,
-                   GLfloat param) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->TexParameterf(target, pname, param);
-  }
-}
-
-void TexParameterfv(PP_Resource context_id,
-                    GLenum target,
-                    GLenum pname,
-                    const GLfloat* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->TexParameterfv(target, pname, params);
-  }
-}
-
-void TexParameteri(PP_Resource context_id,
-                   GLenum target,
-                   GLenum pname,
-                   GLint param) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->TexParameteri(target, pname, param);
-  }
-}
-
-void TexParameteriv(PP_Resource context_id,
-                    GLenum target,
-                    GLenum pname,
-                    const GLint* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->TexParameteriv(target, pname, params);
-  }
-}
-
-void TexSubImage2D(PP_Resource context_id,
-                   GLenum target,
-                   GLint level,
-                   GLint xoffset,
-                   GLint yoffset,
-                   GLsizei width,
-                   GLsizei height,
-                   GLenum format,
-                   GLenum type,
-                   const void* pixels) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->TexSubImage2D(target, level, xoffset, yoffset, width,
-                                       height, format, type, pixels);
-  }
-}
-
-void Uniform1f(PP_Resource context_id, GLint location, GLfloat x) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform1f(location, x);
-  }
-}
-
-void Uniform1fv(PP_Resource context_id,
-                GLint location,
-                GLsizei count,
-                const GLfloat* v) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform1fv(location, count, v);
-  }
-}
-
-void Uniform1i(PP_Resource context_id, GLint location, GLint x) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform1i(location, x);
-  }
-}
-
-void Uniform1iv(PP_Resource context_id,
-                GLint location,
-                GLsizei count,
-                const GLint* v) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform1iv(location, count, v);
-  }
-}
-
-void Uniform2f(PP_Resource context_id, GLint location, GLfloat x, GLfloat y) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform2f(location, x, y);
-  }
-}
-
-void Uniform2fv(PP_Resource context_id,
-                GLint location,
-                GLsizei count,
-                const GLfloat* v) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform2fv(location, count, v);
-  }
-}
-
-void Uniform2i(PP_Resource context_id, GLint location, GLint x, GLint y) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform2i(location, x, y);
-  }
-}
-
-void Uniform2iv(PP_Resource context_id,
-                GLint location,
-                GLsizei count,
-                const GLint* v) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform2iv(location, count, v);
-  }
-}
-
-void Uniform3f(PP_Resource context_id,
-               GLint location,
-               GLfloat x,
-               GLfloat y,
-               GLfloat z) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform3f(location, x, y, z);
-  }
-}
-
-void Uniform3fv(PP_Resource context_id,
-                GLint location,
-                GLsizei count,
-                const GLfloat* v) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform3fv(location, count, v);
-  }
-}
-
-void Uniform3i(PP_Resource context_id,
-               GLint location,
-               GLint x,
-               GLint y,
-               GLint z) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform3i(location, x, y, z);
-  }
-}
-
-void Uniform3iv(PP_Resource context_id,
-                GLint location,
-                GLsizei count,
-                const GLint* v) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform3iv(location, count, v);
-  }
-}
-
-void Uniform4f(PP_Resource context_id,
-               GLint location,
-               GLfloat x,
-               GLfloat y,
-               GLfloat z,
-               GLfloat w) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform4f(location, x, y, z, w);
-  }
-}
-
-void Uniform4fv(PP_Resource context_id,
-                GLint location,
-                GLsizei count,
-                const GLfloat* v) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform4fv(location, count, v);
-  }
-}
-
-void Uniform4i(PP_Resource context_id,
-               GLint location,
-               GLint x,
-               GLint y,
-               GLint z,
-               GLint w) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform4i(location, x, y, z, w);
-  }
-}
-
-void Uniform4iv(PP_Resource context_id,
-                GLint location,
-                GLsizei count,
-                const GLint* v) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Uniform4iv(location, count, v);
-  }
-}
-
-void UniformMatrix2fv(PP_Resource context_id,
-                      GLint location,
-                      GLsizei count,
-                      GLboolean transpose,
-                      const GLfloat* value) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->UniformMatrix2fv(location, count, transpose, value);
-  }
-}
-
-void UniformMatrix3fv(PP_Resource context_id,
-                      GLint location,
-                      GLsizei count,
-                      GLboolean transpose,
-                      const GLfloat* value) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->UniformMatrix3fv(location, count, transpose, value);
-  }
-}
-
-void UniformMatrix4fv(PP_Resource context_id,
-                      GLint location,
-                      GLsizei count,
-                      GLboolean transpose,
-                      const GLfloat* value) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->UniformMatrix4fv(location, count, transpose, value);
-  }
-}
-
-void UseProgram(PP_Resource context_id, GLuint program) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->UseProgram(program);
-  }
-}
-
-void ValidateProgram(PP_Resource context_id, GLuint program) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->ValidateProgram(program);
-  }
-}
-
-void VertexAttrib1f(PP_Resource context_id, GLuint indx, GLfloat x) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->VertexAttrib1f(indx, x);
-  }
-}
-
-void VertexAttrib1fv(PP_Resource context_id,
-                     GLuint indx,
-                     const GLfloat* values) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->VertexAttrib1fv(indx, values);
-  }
-}
-
-void VertexAttrib2f(PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->VertexAttrib2f(indx, x, y);
-  }
-}
-
-void VertexAttrib2fv(PP_Resource context_id,
-                     GLuint indx,
-                     const GLfloat* values) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->VertexAttrib2fv(indx, values);
-  }
-}
-
-void VertexAttrib3f(PP_Resource context_id,
-                    GLuint indx,
-                    GLfloat x,
-                    GLfloat y,
-                    GLfloat z) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->VertexAttrib3f(indx, x, y, z);
-  }
-}
-
-void VertexAttrib3fv(PP_Resource context_id,
-                     GLuint indx,
-                     const GLfloat* values) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->VertexAttrib3fv(indx, values);
-  }
-}
-
-void VertexAttrib4f(PP_Resource context_id,
-                    GLuint indx,
-                    GLfloat x,
-                    GLfloat y,
-                    GLfloat z,
-                    GLfloat w) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->VertexAttrib4f(indx, x, y, z, w);
-  }
-}
-
-void VertexAttrib4fv(PP_Resource context_id,
-                     GLuint indx,
-                     const GLfloat* values) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->VertexAttrib4fv(indx, values);
-  }
-}
-
-void VertexAttribPointer(PP_Resource context_id,
-                         GLuint indx,
-                         GLint size,
-                         GLenum type,
-                         GLboolean normalized,
-                         GLsizei stride,
-                         const void* ptr) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->VertexAttribPointer(indx, size, type, normalized,
-                                             stride, ptr);
-  }
-}
-
-void Viewport(PP_Resource context_id,
-              GLint x,
-              GLint y,
-              GLsizei width,
-              GLsizei height) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->Viewport(x, y, width, height);
-  }
-}
-
-void BlitFramebufferEXT(PP_Resource context_id,
-                        GLint srcX0,
-                        GLint srcY0,
-                        GLint srcX1,
-                        GLint srcY1,
-                        GLint dstX0,
-                        GLint dstY0,
-                        GLint dstX1,
-                        GLint dstY1,
-                        GLbitfield mask,
-                        GLenum filter) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BlitFramebufferCHROMIUM(
-        srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
-  }
-}
-
-void RenderbufferStorageMultisampleEXT(PP_Resource context_id,
-                                       GLenum target,
-                                       GLsizei samples,
-                                       GLenum internalformat,
-                                       GLsizei width,
-                                       GLsizei height) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->RenderbufferStorageMultisampleCHROMIUM(
-        target, samples, internalformat, width, height);
-  }
-}
-
-void GenQueriesEXT(PP_Resource context_id, GLsizei n, GLuint* queries) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GenQueriesEXT(n, queries);
-  }
-}
-
-void DeleteQueriesEXT(PP_Resource context_id,
-                      GLsizei n,
-                      const GLuint* queries) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DeleteQueriesEXT(n, queries);
-  }
-}
-
-GLboolean IsQueryEXT(PP_Resource context_id, GLuint id) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->IsQueryEXT(id);
-  } else {
-    return GL_FALSE;
-  }
-}
-
-void BeginQueryEXT(PP_Resource context_id, GLenum target, GLuint id) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BeginQueryEXT(target, id);
-  }
-}
-
-void EndQueryEXT(PP_Resource context_id, GLenum target) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->EndQueryEXT(target);
-  }
-}
-
-void GetQueryivEXT(PP_Resource context_id,
-                   GLenum target,
-                   GLenum pname,
-                   GLint* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetQueryivEXT(target, pname, params);
-  }
-}
-
-void GetQueryObjectuivEXT(PP_Resource context_id,
-                          GLuint id,
-                          GLenum pname,
-                          GLuint* params) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GetQueryObjectuivEXT(id, pname, params);
-  }
-}
-
-void GenVertexArraysOES(PP_Resource context_id, GLsizei n, GLuint* arrays) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->GenVertexArraysOES(n, arrays);
-  }
-}
-
-void DeleteVertexArraysOES(PP_Resource context_id,
-                           GLsizei n,
-                           const GLuint* arrays) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DeleteVertexArraysOES(n, arrays);
-  }
-}
-
-GLboolean IsVertexArrayOES(PP_Resource context_id, GLuint array) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->IsVertexArrayOES(array);
-  } else {
-    return GL_FALSE;
-  }
-}
-
-void BindVertexArrayOES(PP_Resource context_id, GLuint array) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->BindVertexArrayOES(array);
-  }
-}
-
-GLboolean EnableFeatureCHROMIUM(PP_Resource context_id, const char* feature) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->EnableFeatureCHROMIUM(feature);
-  } else {
-    return GL_FALSE;
-  }
-}
-
-void* MapBufferSubDataCHROMIUM(PP_Resource context_id,
-                               GLuint target,
-                               GLintptr offset,
-                               GLsizeiptr size,
-                               GLenum access) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->MapBufferSubDataCHROMIUM(target, offset, size,
-                                                         access);
-  } else {
-    return nullptr;
-  }
-}
-
-void UnmapBufferSubDataCHROMIUM(PP_Resource context_id, const void* mem) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->UnmapBufferSubDataCHROMIUM(mem);
-  }
-}
-
-void* MapTexSubImage2DCHROMIUM(PP_Resource context_id,
-                               GLenum target,
-                               GLint level,
-                               GLint xoffset,
-                               GLint yoffset,
-                               GLsizei width,
-                               GLsizei height,
-                               GLenum format,
-                               GLenum type,
-                               GLenum access) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    return ToGles2Impl(&enter)->MapTexSubImage2DCHROMIUM(
-        target, level, xoffset, yoffset, width, height, format, type, access);
-  } else {
-    return nullptr;
-  }
-}
-
-void UnmapTexSubImage2DCHROMIUM(PP_Resource context_id, const void* mem) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->UnmapTexSubImage2DCHROMIUM(mem);
-  }
-}
-
-void DrawArraysInstancedANGLE(PP_Resource context_id,
-                              GLenum mode,
-                              GLint first,
-                              GLsizei count,
-                              GLsizei primcount) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DrawArraysInstancedANGLE(mode, first, count,
-                                                  primcount);
-  }
-}
-
-void DrawElementsInstancedANGLE(PP_Resource context_id,
-                                GLenum mode,
-                                GLsizei count,
-                                GLenum type,
-                                const void* indices,
-                                GLsizei primcount) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DrawElementsInstancedANGLE(mode, count, type, indices,
-                                                    primcount);
-  }
-}
-
-void VertexAttribDivisorANGLE(PP_Resource context_id,
-                              GLuint index,
-                              GLuint divisor) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->VertexAttribDivisorANGLE(index, divisor);
-  }
-}
-
-void DrawBuffersEXT(PP_Resource context_id, GLsizei count, const GLenum* bufs) {
-  Enter3D enter(context_id, true);
-  if (enter.succeeded()) {
-    ToGles2Impl(&enter)->DrawBuffersEXT(count, bufs);
-  }
-}
-
-}  // namespace
-const PPB_OpenGLES2* PPB_OpenGLES2_Shared::GetInterface() {
-  static const struct PPB_OpenGLES2 ppb_opengles2 = {
-      &ActiveTexture,
-      &AttachShader,
-      &BindAttribLocation,
-      &BindBuffer,
-      &BindFramebuffer,
-      &BindRenderbuffer,
-      &BindTexture,
-      &BlendColor,
-      &BlendEquation,
-      &BlendEquationSeparate,
-      &BlendFunc,
-      &BlendFuncSeparate,
-      &BufferData,
-      &BufferSubData,
-      &CheckFramebufferStatus,
-      &Clear,
-      &ClearColor,
-      &ClearDepthf,
-      &ClearStencil,
-      &ColorMask,
-      &CompileShader,
-      &CompressedTexImage2D,
-      &CompressedTexSubImage2D,
-      &CopyTexImage2D,
-      &CopyTexSubImage2D,
-      &CreateProgram,
-      &CreateShader,
-      &CullFace,
-      &DeleteBuffers,
-      &DeleteFramebuffers,
-      &DeleteProgram,
-      &DeleteRenderbuffers,
-      &DeleteShader,
-      &DeleteTextures,
-      &DepthFunc,
-      &DepthMask,
-      &DepthRangef,
-      &DetachShader,
-      &Disable,
-      &DisableVertexAttribArray,
-      &DrawArrays,
-      &DrawElements,
-      &Enable,
-      &EnableVertexAttribArray,
-      &Finish,
-      &Flush,
-      &FramebufferRenderbuffer,
-      &FramebufferTexture2D,
-      &FrontFace,
-      &GenBuffers,
-      &GenerateMipmap,
-      &GenFramebuffers,
-      &GenRenderbuffers,
-      &GenTextures,
-      &GetActiveAttrib,
-      &GetActiveUniform,
-      &GetAttachedShaders,
-      &GetAttribLocation,
-      &GetBooleanv,
-      &GetBufferParameteriv,
-      &GetError,
-      &GetFloatv,
-      &GetFramebufferAttachmentParameteriv,
-      &GetIntegerv,
-      &GetProgramiv,
-      &GetProgramInfoLog,
-      &GetRenderbufferParameteriv,
-      &GetShaderiv,
-      &GetShaderInfoLog,
-      &GetShaderPrecisionFormat,
-      &GetShaderSource,
-      &GetString,
-      &GetTexParameterfv,
-      &GetTexParameteriv,
-      &GetUniformfv,
-      &GetUniformiv,
-      &GetUniformLocation,
-      &GetVertexAttribfv,
-      &GetVertexAttribiv,
-      &GetVertexAttribPointerv,
-      &Hint,
-      &IsBuffer,
-      &IsEnabled,
-      &IsFramebuffer,
-      &IsProgram,
-      &IsRenderbuffer,
-      &IsShader,
-      &IsTexture,
-      &LineWidth,
-      &LinkProgram,
-      &PixelStorei,
-      &PolygonOffset,
-      &ReadPixels,
-      &ReleaseShaderCompiler,
-      &RenderbufferStorage,
-      &SampleCoverage,
-      &Scissor,
-      &ShaderBinary,
-      &ShaderSource,
-      &StencilFunc,
-      &StencilFuncSeparate,
-      &StencilMask,
-      &StencilMaskSeparate,
-      &StencilOp,
-      &StencilOpSeparate,
-      &TexImage2D,
-      &TexParameterf,
-      &TexParameterfv,
-      &TexParameteri,
-      &TexParameteriv,
-      &TexSubImage2D,
-      &Uniform1f,
-      &Uniform1fv,
-      &Uniform1i,
-      &Uniform1iv,
-      &Uniform2f,
-      &Uniform2fv,
-      &Uniform2i,
-      &Uniform2iv,
-      &Uniform3f,
-      &Uniform3fv,
-      &Uniform3i,
-      &Uniform3iv,
-      &Uniform4f,
-      &Uniform4fv,
-      &Uniform4i,
-      &Uniform4iv,
-      &UniformMatrix2fv,
-      &UniformMatrix3fv,
-      &UniformMatrix4fv,
-      &UseProgram,
-      &ValidateProgram,
-      &VertexAttrib1f,
-      &VertexAttrib1fv,
-      &VertexAttrib2f,
-      &VertexAttrib2fv,
-      &VertexAttrib3f,
-      &VertexAttrib3fv,
-      &VertexAttrib4f,
-      &VertexAttrib4fv,
-      &VertexAttribPointer,
-      &Viewport};
-  return &ppb_opengles2;
-}
-const PPB_OpenGLES2InstancedArrays*
-PPB_OpenGLES2_Shared::GetInstancedArraysInterface() {
-  static const struct PPB_OpenGLES2InstancedArrays ppb_opengles2 = {
-      &DrawArraysInstancedANGLE, &DrawElementsInstancedANGLE,
-      &VertexAttribDivisorANGLE};
-  return &ppb_opengles2;
-}
-const PPB_OpenGLES2FramebufferBlit*
-PPB_OpenGLES2_Shared::GetFramebufferBlitInterface() {
-  static const struct PPB_OpenGLES2FramebufferBlit ppb_opengles2 = {
-      &BlitFramebufferEXT};
-  return &ppb_opengles2;
-}
-const PPB_OpenGLES2FramebufferMultisample*
-PPB_OpenGLES2_Shared::GetFramebufferMultisampleInterface() {
-  static const struct PPB_OpenGLES2FramebufferMultisample ppb_opengles2 = {
-      &RenderbufferStorageMultisampleEXT};
-  return &ppb_opengles2;
-}
-const PPB_OpenGLES2ChromiumEnableFeature*
-PPB_OpenGLES2_Shared::GetChromiumEnableFeatureInterface() {
-  static const struct PPB_OpenGLES2ChromiumEnableFeature ppb_opengles2 = {
-      &EnableFeatureCHROMIUM};
-  return &ppb_opengles2;
-}
-const PPB_OpenGLES2ChromiumMapSub*
-PPB_OpenGLES2_Shared::GetChromiumMapSubInterface() {
-  static const struct PPB_OpenGLES2ChromiumMapSub ppb_opengles2 = {
-      &MapBufferSubDataCHROMIUM, &UnmapBufferSubDataCHROMIUM,
-      &MapTexSubImage2DCHROMIUM, &UnmapTexSubImage2DCHROMIUM};
-  return &ppb_opengles2;
-}
-const PPB_OpenGLES2Query* PPB_OpenGLES2_Shared::GetQueryInterface() {
-  static const struct PPB_OpenGLES2Query ppb_opengles2 = {
-      &GenQueriesEXT, &DeleteQueriesEXT, &IsQueryEXT,          &BeginQueryEXT,
-      &EndQueryEXT,   &GetQueryivEXT,    &GetQueryObjectuivEXT};
-  return &ppb_opengles2;
-}
-const PPB_OpenGLES2VertexArrayObject*
-PPB_OpenGLES2_Shared::GetVertexArrayObjectInterface() {
-  static const struct PPB_OpenGLES2VertexArrayObject ppb_opengles2 = {
-      &GenVertexArraysOES, &DeleteVertexArraysOES, &IsVertexArrayOES,
-      &BindVertexArrayOES};
-  return &ppb_opengles2;
-}
-const PPB_OpenGLES2DrawBuffers_Dev*
-PPB_OpenGLES2_Shared::GetDrawBuffersInterface() {
-  static const struct PPB_OpenGLES2DrawBuffers_Dev ppb_opengles2 = {
-      &DrawBuffersEXT};
-  return &ppb_opengles2;
-}
-}  // namespace ppapi
diff --git a/shared_impl/ppb_opengles2_shared.h b/shared_impl/ppb_opengles2_shared.h
deleted file mode 100644
index fed69f8..0000000
--- a/shared_impl/ppb_opengles2_shared.h
+++ /dev/null
@@ -1,31 +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_SHARED_IMPL_PPB_OPENGLES2_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_OPENGLES2_SHARED_H_
-
-#include "ppapi/c/ppb_opengles2.h"
-#include "ppapi/c/dev/ppb_opengles2ext_dev.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT PPB_OpenGLES2_Shared {
- public:
-  static const PPB_OpenGLES2* GetInterface();
-  static const PPB_OpenGLES2InstancedArrays* GetInstancedArraysInterface();
-  static const PPB_OpenGLES2FramebufferBlit* GetFramebufferBlitInterface();
-  static const PPB_OpenGLES2FramebufferMultisample*
-      GetFramebufferMultisampleInterface();
-  static const PPB_OpenGLES2ChromiumEnableFeature*
-      GetChromiumEnableFeatureInterface();
-  static const PPB_OpenGLES2ChromiumMapSub* GetChromiumMapSubInterface();
-  static const PPB_OpenGLES2Query* GetQueryInterface();
-  static const PPB_OpenGLES2VertexArrayObject* GetVertexArrayObjectInterface();
-  static const PPB_OpenGLES2DrawBuffers_Dev* GetDrawBuffersInterface();
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_OPENGLES2_SHARED_H_
diff --git a/shared_impl/ppb_tcp_socket_shared.cc b/shared_impl/ppb_tcp_socket_shared.cc
deleted file mode 100644
index b1357ba..0000000
--- a/shared_impl/ppb_tcp_socket_shared.cc
+++ /dev/null
@@ -1,86 +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.
-
-#include "ppapi/shared_impl/ppb_tcp_socket_shared.h"
-
-#include "base/check.h"
-#include "base/notreached.h"
-
-namespace ppapi {
-
-TCPSocketState::TCPSocketState(StateType state)
-    : state_(state), pending_transition_(NONE) {
-  DCHECK(state_ == INITIAL || state_ == CONNECTED);
-}
-
-TCPSocketState::~TCPSocketState() {}
-
-void TCPSocketState::SetPendingTransition(TransitionType pending_transition) {
-  DCHECK(IsValidTransition(pending_transition));
-  pending_transition_ = pending_transition;
-}
-
-void TCPSocketState::CompletePendingTransition(bool success) {
-  switch (pending_transition_) {
-    case NONE:
-      NOTREACHED();
-    case BIND:
-      if (success)
-        state_ = BOUND;
-      break;
-    case CONNECT:
-      state_ = success ? CONNECTED : CLOSED;
-      break;
-    case SSL_CONNECT:
-      state_ = success ? SSL_CONNECTED : CLOSED;
-      break;
-    case LISTEN:
-      state_ = success ? LISTENING : CLOSED;
-      break;
-    case CLOSE:
-      state_ = CLOSED;
-      break;
-  }
-  pending_transition_ = NONE;
-}
-
-void TCPSocketState::DoTransition(TransitionType transition, bool success) {
-  SetPendingTransition(transition);
-  CompletePendingTransition(success);
-}
-
-bool TCPSocketState::IsValidTransition(TransitionType transition) const {
-  if (pending_transition_ != NONE && transition != CLOSE)
-    return false;
-
-  switch (transition) {
-    case NONE:
-      return false;
-    case BIND:
-      return state_ == INITIAL;
-    case CONNECT:
-      return state_ == INITIAL || state_ == BOUND;
-    case SSL_CONNECT:
-      return state_ == CONNECTED;
-    case LISTEN:
-      return state_ == BOUND;
-    case CLOSE:
-      return true;
-  }
-  NOTREACHED();
-}
-
-bool TCPSocketState::IsPending(TransitionType transition) const {
-  return pending_transition_ == transition;
-}
-
-bool TCPSocketState::IsConnected() const {
-  return state_ == CONNECTED || state_ == SSL_CONNECTED;
-}
-
-bool TCPSocketState::IsBound() const {
-  return state_ != INITIAL && state_ != CLOSED;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_tcp_socket_shared.h b/shared_impl/ppb_tcp_socket_shared.h
deleted file mode 100644
index ecfdf4c..0000000
--- a/shared_impl/ppb_tcp_socket_shared.h
+++ /dev/null
@@ -1,67 +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.
-
-#ifndef PPAPI_SHARED_IMPL_PPB_TCP_SOCKET_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_TCP_SOCKET_SHARED_H_
-
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT TCPSocketState {
- public:
-  enum StateType {
-    // The socket hasn't been bound or connected.
-    INITIAL,
-    // The socket has been bound.
-    BOUND,
-    // A connection has been established.
-    CONNECTED,
-    // An SSL connection has been established.
-    SSL_CONNECTED,
-    // The socket is listening.
-    LISTENING,
-    // The socket has been closed.
-    CLOSED
-  };
-
-  // Transitions that will change the socket state. Please note that
-  // read/write/accept are not included because they don't change the socket
-  // state.
-  enum TransitionType { NONE, BIND, CONNECT, SSL_CONNECT, LISTEN, CLOSE };
-
-  explicit TCPSocketState(StateType state);
-  ~TCPSocketState();
-
-  StateType state() const { return state_; }
-
-  void SetPendingTransition(TransitionType pending_transition);
-  void CompletePendingTransition(bool success);
-
-  void DoTransition(TransitionType transition, bool success);
-
-  bool IsValidTransition(TransitionType transition) const;
-  bool IsPending(TransitionType transition) const;
-
-  bool IsConnected() const;
-  bool IsBound() const;
-
- private:
-  StateType state_;
-  TransitionType pending_transition_;
-};
-
-// TCP socket API versions.
-enum TCPSocketVersion {
-  // PPB_TCPSocket_Private.
-  TCP_SOCKET_VERSION_PRIVATE,
-  // PPB_TCPSocket v1.0.
-  TCP_SOCKET_VERSION_1_0,
-  // PPB_TCPSocket v1.1 or above.
-  TCP_SOCKET_VERSION_1_1_OR_ABOVE
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_TCP_SOCKET_SHARED_H_
diff --git a/shared_impl/ppb_trace_event_impl.cc b/shared_impl/ppb_trace_event_impl.cc
deleted file mode 100644
index efd2c95..0000000
--- a/shared_impl/ppb_trace_event_impl.cc
+++ /dev/null
@@ -1,117 +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/shared_impl/ppb_trace_event_impl.h"
-
-#include "base/threading/platform_thread.h"
-#include "base/trace_event/trace_event.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-
-// PPB_Trace_Event_Dev is a shared implementation because Trace Events can be
-// sent from either the plugin process or renderer process depending on whether
-// the plugin is in- or out-of-process.  Also, for NaCl plugins these functions
-// will be executed from untrusted code and handled appropriately by tracing
-// functionality in the IRT.
-
-// static
-void* TraceEventImpl::GetCategoryEnabled(const char* category_name) {
-  // This casting is here because all mem_t return types in Pepper are void* and
-  // non-const.  All mem_t parameters are const void* so there is no way to
-  // return a pointer type to the caller without some const_cast.  The pointer
-  // type the tracing system works with is normally unsigned char*.
-  return const_cast<void*>(static_cast<const void*>(
-      base::trace_event::TraceLog::GetInstance()->GetCategoryGroupEnabled(
-          category_name)));
-}
-
-// static
-void TraceEventImpl::AddTraceEvent(int8_t phase,
-                                   const void* category_enabled,
-                                   const char* name,
-                                   uint64_t id,
-                                   uint32_t num_args,
-                                   const char* arg_names[],
-                                   const uint8_t arg_types[],
-                                   const uint64_t arg_values[],
-                                   uint8_t flags) {
-
-  static_assert(sizeof(unsigned long long) == sizeof(uint64_t),
-                "unexpected data type sizes");
-  // NOTE: The |arg_values| cast is required to avoid a compiler warning,
-  // since uint64_t and unsigned long long are not the same type, even
-  // though they have the same size, on all platforms we care about.
-  base::trace_event::TraceArguments args(
-      num_args, arg_names, arg_types,
-      reinterpret_cast<const unsigned long long*>(arg_values));
-  trace_event_internal::AddTraceEvent(
-      phase, static_cast<const unsigned char*>(category_enabled), name,
-      trace_event_internal::kGlobalScope, id, &args, flags);
-}
-
-// static
-void TraceEventImpl::AddTraceEventWithThreadIdAndTimestamp(
-    int8_t phase,
-    const void* category_enabled,
-    const char* name,
-    uint64_t id,
-    int32_t thread_id,
-    int64_t timestamp,
-    uint32_t num_args,
-    const char* arg_names[],
-    const uint8_t arg_types[],
-    const uint64_t arg_values[],
-    uint8_t flags) {
-  // See above comment about the cast to |const unsigned long long*|.
-  base::trace_event::TraceArguments args(
-      num_args, arg_names, arg_types,
-      reinterpret_cast<const unsigned long long*>(arg_values));
-  trace_event_internal::AddTraceEventWithThreadIdAndTimestamp(
-      phase, static_cast<const unsigned char*>(category_enabled), name,
-      trace_event_internal::kGlobalScope, id, trace_event_internal::kNoId,
-      base::PlatformThreadId(thread_id),
-      base::TimeTicks::FromInternalValue(timestamp), &args, flags);
-}
-
-// static
-int64_t TraceEventImpl::Now() {
-  return base::TimeTicks::Now().ToInternalValue();
-}
-
-// static
-void TraceEventImpl::SetThreadName(const char* thread_name) {
-  base::PlatformThread::SetName(thread_name);
-}
-
-namespace {
-
-const PPB_Trace_Event_Dev_0_1 g_ppb_trace_event_thunk_0_1 = {
-    &TraceEventImpl::GetCategoryEnabled, &TraceEventImpl::AddTraceEvent,
-    &TraceEventImpl::SetThreadName, };
-
-const PPB_Trace_Event_Dev_0_2 g_ppb_trace_event_thunk_0_2 = {
-    &TraceEventImpl::GetCategoryEnabled,
-    &TraceEventImpl::AddTraceEvent,
-    &TraceEventImpl::AddTraceEventWithThreadIdAndTimestamp,
-    &TraceEventImpl::Now,
-    &TraceEventImpl::SetThreadName, };
-
-}  // namespace ppapi
-
-}  // namespace
-
-namespace ppapi {
-namespace thunk {
-
-const PPB_Trace_Event_Dev_0_1* GetPPB_Trace_Event_Dev_0_1_Thunk() {
-  return &g_ppb_trace_event_thunk_0_1;
-}
-
-const PPB_Trace_Event_Dev_0_2* GetPPB_Trace_Event_Dev_0_2_Thunk() {
-  return &g_ppb_trace_event_thunk_0_2;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/shared_impl/ppb_trace_event_impl.h b/shared_impl/ppb_trace_event_impl.h
deleted file mode 100644
index 8e683ee..0000000
--- a/shared_impl/ppb_trace_event_impl.h
+++ /dev/null
@@ -1,50 +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_SHARED_IMPL_PPB_TRACE_EVENT_IMPL_H_
-#define PPAPI_SHARED_IMPL_PPB_TRACE_EVENT_IMPL_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/dev/ppb_trace_event_dev.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-// Contains the implementation of the PPB_Trace_Event_Dev functions. Since these
-// functions are to be run from whatever plugin process/thread in which they
-// originated, the implementation lives in shared_impl.
-//
-class PPAPI_SHARED_EXPORT TraceEventImpl {
- public:
-  static void* GetCategoryEnabled(const char* category_name);
-  static void AddTraceEvent(int8_t phase,
-                            const void* category_enabled,
-                            const char* name,
-                            uint64_t id,
-                            uint32_t num_args,
-                            const char* arg_names[],
-                            const uint8_t arg_types[],
-                            const uint64_t arg_values[],
-                            uint8_t flags);
-  static void AddTraceEventWithThreadIdAndTimestamp(
-      int8_t phase,
-      const void* category_enabled,
-      const char* name,
-      uint64_t id,
-      int32_t thread_id,
-      int64_t timestamp,
-      uint32_t num_args,
-      const char* arg_names[],
-      const uint8_t arg_types[],
-      const uint64_t arg_values[],
-      uint8_t flags);
-  static int64_t Now();
-  static void SetThreadName(const char* thread_name);
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_TRACE_EVENT_IMPL_H_
diff --git a/shared_impl/ppb_url_util_shared.cc b/shared_impl/ppb_url_util_shared.cc
deleted file mode 100644
index 94ddc23..0000000
--- a/shared_impl/ppb_url_util_shared.cc
+++ /dev/null
@@ -1,116 +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/shared_impl/ppb_url_util_shared.h"
-
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/shared_impl/var_tracker.h"
-#include "url/gurl.h"
-
-namespace ppapi {
-
-namespace {
-
-void ConvertComponent(const url::Component& input,
-                      PP_URLComponent_Dev* output) {
-  output->begin = input.begin;
-  output->len = input.len;
-}
-
-// Converts components from a GoogleUrl parsed to a PPAPI parsed structure.
-// Output can be NULL to specify "do nothing." This rule is followed by all
-// the url util functions, so we implement it once here.
-//
-// Output can be NULL to specify "do nothing." This rule is followed by all the
-// url util functions, so we implement it once here.
-void ConvertComponents(const url::Parsed& input, PP_URLComponents_Dev* output) {
-  if (!output)
-    return;
-
-  ConvertComponent(input.scheme, &output->scheme);
-  ConvertComponent(input.username, &output->username);
-  ConvertComponent(input.password, &output->password);
-  ConvertComponent(input.host, &output->host);
-  ConvertComponent(input.port, &output->port);
-  ConvertComponent(input.path, &output->path);
-  ConvertComponent(input.query, &output->query);
-  ConvertComponent(input.ref, &output->ref);
-}
-
-}  // namespace
-
-// static
-PP_Var PPB_URLUtil_Shared::Canonicalize(PP_Var url,
-                                        PP_URLComponents_Dev* components) {
-  ProxyAutoLock lock;
-  StringVar* url_string = StringVar::FromPPVar(url);
-  if (!url_string)
-    return PP_MakeNull();
-  return GenerateURLReturn(GURL(url_string->value()), components);
-}
-
-// static
-PP_Var PPB_URLUtil_Shared::ResolveRelativeToURL(
-    PP_Var base_url,
-    PP_Var relative,
-    PP_URLComponents_Dev* components) {
-  ProxyAutoLock lock;
-  StringVar* base_url_string = StringVar::FromPPVar(base_url);
-  StringVar* relative_string = StringVar::FromPPVar(relative);
-  if (!base_url_string || !relative_string)
-    return PP_MakeNull();
-
-  GURL base_gurl(base_url_string->value());
-  if (!base_gurl.is_valid())
-    return PP_MakeNull();
-  return GenerateURLReturn(base_gurl.Resolve(relative_string->value()),
-                           components);
-}
-
-// static
-PP_Bool PPB_URLUtil_Shared::IsSameSecurityOrigin(PP_Var url_a, PP_Var url_b) {
-  ProxyAutoLock lock;
-  StringVar* url_a_string = StringVar::FromPPVar(url_a);
-  StringVar* url_b_string = StringVar::FromPPVar(url_b);
-  if (!url_a_string || !url_b_string)
-    return PP_FALSE;
-
-  GURL gurl_a(url_a_string->value());
-  GURL gurl_b(url_b_string->value());
-  if (!gurl_a.is_valid() || !gurl_b.is_valid())
-    return PP_FALSE;
-
-  return gurl_a.DeprecatedGetOriginAsURL() == gurl_b.DeprecatedGetOriginAsURL()
-             ? PP_TRUE
-             : PP_FALSE;
-}
-
-// Used for returning the given GURL from a PPAPI function, with an optional
-// out param indicating the components.
-PP_Var PPB_URLUtil_Shared::GenerateURLReturn(const GURL& url,
-                                             PP_URLComponents_Dev* components) {
-  if (!url.is_valid())
-    return PP_MakeNull();
-  ConvertComponents(url.parsed_for_possibly_invalid_spec(), components);
-  return StringVar::StringToPPVar(url.possibly_invalid_spec());
-}
-
-PP_Var PPB_URLUtil_Shared::ConvertComponentsAndReturnURL(
-    const PP_Var& url,
-    PP_URLComponents_Dev* components) {
-  if (!components)
-    return url;  // Common case - plugin doesn't care about parsing.
-
-  StringVar* url_string = StringVar::FromPPVar(url);
-  if (!url_string)
-    return url;
-
-  PP_Var result = Canonicalize(url, components);
-  PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(url);
-  return result;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_url_util_shared.h b/shared_impl/ppb_url_util_shared.h
deleted file mode 100644
index 79121dc..0000000
--- a/shared_impl/ppb_url_util_shared.h
+++ /dev/null
@@ -1,47 +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_SHARED_IMPL_PPB_URL_UTIL_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_URL_UTIL_SHARED_H_
-
-#include "ppapi/c/dev/ppb_url_util_dev.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-#include "url/third_party/mozilla/url_parse.h"
-
-class GURL;
-
-namespace ppapi {
-
-// Contains the implementation of PPB_URLUtil that is shared between the proxy
-// and the renderer.
-class PPAPI_SHARED_EXPORT PPB_URLUtil_Shared {
- public:
-  // PPB_URLUtil shared functions.
-  static PP_Var Canonicalize(PP_Var url, PP_URLComponents_Dev* components);
-  static PP_Var ResolveRelativeToURL(PP_Var base_url,
-                                     PP_Var relative,
-                                     PP_URLComponents_Dev* components);
-  static PP_Bool IsSameSecurityOrigin(PP_Var url_a, PP_Var url_b);
-
-  // Used for returning the given GURL from a PPAPI function, with an optional
-  // out param indicating the components.
-  static PP_Var GenerateURLReturn(const GURL& url,
-                                  PP_URLComponents_Dev* components);
-
-  // Helper function that optionally take a components structure and fills it
-  // out with the parsed version of the given URL. If the components pointer is
-  // NULL, this function will do nothing.
-  //
-  // It's annoying to serialze the large PP_URLComponents structure across IPC
-  // and the data isn't often requested by plugins. This function is used on
-  // the plugin side to fill in the components for those cases where it's
-  // actually needed.
-  static PP_Var ConvertComponentsAndReturnURL(const PP_Var& url,
-                                              PP_URLComponents_Dev* components);
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_URL_UTIL_SHARED_H_
diff --git a/shared_impl/ppb_var_shared.cc b/shared_impl/ppb_var_shared.cc
deleted file mode 100644
index 4d38c06..0000000
--- a/shared_impl/ppb_var_shared.cc
+++ /dev/null
@@ -1,138 +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/shared_impl/ppb_var_shared.h"
-
-#include <limits>
-
-#include "ppapi/c/ppb_var.h"
-#include "ppapi/c/ppb_var_array_buffer.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/shared_impl/resource_var.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-using ppapi::PpapiGlobals;
-using ppapi::StringVar;
-
-namespace ppapi {
-namespace {
-
-// PPB_Var methods -------------------------------------------------------------
-
-void AddRefVar(PP_Var var) {
-  ProxyAutoLock lock;
-  PpapiGlobals::Get()->GetVarTracker()->AddRefVar(var);
-}
-
-void ReleaseVar(PP_Var var) {
-  ProxyAutoLock lock;
-  PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(var);
-}
-
-PP_Var VarFromUtf8(const char* data, uint32_t len) {
-  ProxyAutoLock lock;
-  return StringVar::StringToPPVar(data, len);
-}
-
-PP_Var VarFromUtf8_1_0(PP_Module /*module*/, const char* data, uint32_t len) {
-  return VarFromUtf8(data, len);
-}
-
-const char* VarToUtf8(PP_Var var, uint32_t* len) {
-  ProxyAutoLock lock;
-  StringVar* str = StringVar::FromPPVar(var);
-  if (str) {
-    *len = static_cast<uint32_t>(str->value().size());
-    return str->value().c_str();
-  }
-  *len = 0;
-  return NULL;
-}
-
-PP_Resource VarToResource(PP_Var var) {
-  ProxyAutoLock lock;
-  ResourceVar* resource = ResourceVar::FromPPVar(var);
-  if (!resource)
-    return 0;
-  PP_Resource pp_resource = resource->GetPPResource();
-  PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(pp_resource);
-  return pp_resource;
-}
-
-PP_Var VarFromResource(PP_Resource resource) {
-  ProxyAutoLock lock;
-  return PpapiGlobals::Get()->GetVarTracker()->MakeResourcePPVar(resource);
-}
-
-const PPB_Var var_interface = {&AddRefVar, &ReleaseVar,    &VarFromUtf8,
-                               &VarToUtf8, &VarToResource, &VarFromResource};
-
-const PPB_Var_1_1 var_interface1_1 = {&AddRefVar,   &ReleaseVar,
-                                      &VarFromUtf8, &VarToUtf8};
-
-const PPB_Var_1_0 var_interface1_0 = {&AddRefVar,       &ReleaseVar,
-                                      &VarFromUtf8_1_0, &VarToUtf8};
-
-// PPB_VarArrayBuffer methods --------------------------------------------------
-
-PP_Var CreateArrayBufferVar(uint32_t size_in_bytes) {
-  ProxyAutoLock lock;
-  return PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(
-      size_in_bytes);
-}
-
-PP_Bool ByteLength(PP_Var array, uint32_t* byte_length) {
-  ProxyAutoLock lock;
-  ArrayBufferVar* buffer = ArrayBufferVar::FromPPVar(array);
-  if (!buffer)
-    return PP_FALSE;
-  *byte_length = buffer->ByteLength();
-  return PP_TRUE;
-}
-
-void* Map(PP_Var array) {
-  ProxyAutoLock lock;
-  ArrayBufferVar* buffer = ArrayBufferVar::FromPPVar(array);
-  if (!buffer)
-    return NULL;
-  return buffer->Map();
-}
-
-void Unmap(PP_Var array) {
-  ProxyAutoLock lock;
-  ArrayBufferVar* buffer = ArrayBufferVar::FromPPVar(array);
-  if (buffer)
-    buffer->Unmap();
-}
-
-const PPB_VarArrayBuffer_1_0 var_arraybuffer_interface = {
-    &CreateArrayBufferVar, &ByteLength, &Map, &Unmap};
-
-}  // namespace
-
-// static
-const PPB_Var_1_2* PPB_Var_Shared::GetVarInterface1_2() {
-  return &var_interface;
-}
-
-// static
-const PPB_Var_1_1* PPB_Var_Shared::GetVarInterface1_1() {
-  return &var_interface1_1;
-}
-
-// static
-const PPB_Var_1_0* PPB_Var_Shared::GetVarInterface1_0() {
-  return &var_interface1_0;
-}
-
-// static
-const PPB_VarArrayBuffer_1_0* PPB_Var_Shared::GetVarArrayBufferInterface1_0() {
-  return &var_arraybuffer_interface;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_var_shared.h b/shared_impl/ppb_var_shared.h
deleted file mode 100644
index ef68724..0000000
--- a/shared_impl/ppb_var_shared.h
+++ /dev/null
@@ -1,26 +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_SHARED_IMPL_PPB_VAR_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_VAR_SHARED_H_
-
-#include "ppapi/c/pp_module.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/ppb_var.h"
-#include "ppapi/c/ppb_var_array_buffer.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT PPB_Var_Shared {
- public:
-  static const PPB_Var_1_2* GetVarInterface1_2();
-  static const PPB_Var_1_1* GetVarInterface1_1();
-  static const PPB_Var_1_0* GetVarInterface1_0();
-  static const PPB_VarArrayBuffer_1_0* GetVarArrayBufferInterface1_0();
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_VAR_SHARED_H_
diff --git a/shared_impl/ppb_video_decoder_shared.cc b/shared_impl/ppb_video_decoder_shared.cc
deleted file mode 100644
index 1bc4898..0000000
--- a/shared_impl/ppb_video_decoder_shared.cc
+++ /dev/null
@@ -1,109 +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/shared_impl/ppb_video_decoder_shared.h"
-
-#include "base/check.h"
-#include "gpu/command_buffer/client/gles2_implementation.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/shared_impl/ppb_graphics_3d_shared.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/thunk/enter.h"
-
-namespace ppapi {
-
-PPB_VideoDecoder_Shared::PPB_VideoDecoder_Shared(PP_Instance instance)
-    : Resource(OBJECT_IS_IMPL, instance),
-      graphics_context_(0),
-      gles2_impl_(NULL) {}
-
-PPB_VideoDecoder_Shared::PPB_VideoDecoder_Shared(
-    const HostResource& host_resource)
-    : Resource(OBJECT_IS_PROXY, host_resource),
-      graphics_context_(0),
-      gles2_impl_(NULL) {}
-
-PPB_VideoDecoder_Shared::~PPB_VideoDecoder_Shared() {
-  // Destroy() must be called before the object is destroyed.
-  DCHECK(graphics_context_ == 0);
-}
-
-thunk::PPB_VideoDecoder_Dev_API*
-PPB_VideoDecoder_Shared::AsPPB_VideoDecoder_Dev_API() {
-  return this;
-}
-
-void PPB_VideoDecoder_Shared::InitCommon(
-    PP_Resource graphics_context,
-    gpu::gles2::GLES2Implementation* gles2_impl) {
-  DCHECK(graphics_context);
-  DCHECK(!gles2_impl_ && !graphics_context_);
-  gles2_impl_ = gles2_impl;
-  PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(graphics_context);
-  graphics_context_ = graphics_context;
-}
-
-void PPB_VideoDecoder_Shared::Destroy() {
-  if (graphics_context_) {
-    PpapiGlobals::Get()->GetResourceTracker()->ReleaseResource(
-        graphics_context_);
-    graphics_context_ = 0;
-  }
-  gles2_impl_ = NULL;
-}
-
-bool PPB_VideoDecoder_Shared::SetFlushCallback(
-    scoped_refptr<TrackedCallback> callback) {
-  if (TrackedCallback::IsPending(flush_callback_))
-    return false;
-  flush_callback_ = callback;
-  return true;
-}
-
-bool PPB_VideoDecoder_Shared::SetResetCallback(
-    scoped_refptr<TrackedCallback> callback) {
-  if (TrackedCallback::IsPending(reset_callback_))
-    return false;
-  reset_callback_ = callback;
-  return true;
-}
-
-bool PPB_VideoDecoder_Shared::SetBitstreamBufferCallback(
-    int32_t bitstream_buffer_id,
-    scoped_refptr<TrackedCallback> callback) {
-  return bitstream_buffer_callbacks_.insert(std::make_pair(bitstream_buffer_id,
-                                                           callback)).second;
-}
-
-void PPB_VideoDecoder_Shared::RunFlushCallback(int32_t result) {
-  flush_callback_->Run(result);
-}
-
-void PPB_VideoDecoder_Shared::RunResetCallback(int32_t result) {
-  reset_callback_->Run(result);
-}
-
-void PPB_VideoDecoder_Shared::RunBitstreamBufferCallback(
-    int32_t bitstream_buffer_id,
-    int32_t result) {
-  CallbackById::iterator it =
-      bitstream_buffer_callbacks_.find(bitstream_buffer_id);
-  CHECK(it != bitstream_buffer_callbacks_.end());
-  scoped_refptr<TrackedCallback> cc = it->second;
-  bitstream_buffer_callbacks_.erase(it);
-  cc->Run(PP_OK);
-}
-
-void PPB_VideoDecoder_Shared::FlushCommandBuffer() {
-  // Ensure that graphics_context is still live before using gles2_impl_.
-  // Our "plugin reference" is not enough to keep graphics_context alive if
-  // DidDeleteInstance() has been called.
-  if (PpapiGlobals::Get()->GetResourceTracker()->GetResource(
-          graphics_context_)) {
-    if (gles2_impl_)
-      gles2_impl_->Flush();
-  }
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_video_decoder_shared.h b/shared_impl/ppb_video_decoder_shared.h
deleted file mode 100644
index 49c1d64..0000000
--- a/shared_impl/ppb_video_decoder_shared.h
+++ /dev/null
@@ -1,85 +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_SHARED_IMPL_PPB_VIDEO_DECODER_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_VIDEO_DECODER_SHARED_H_
-
-#include <stdint.h>
-
-#include <map>
-
-#include "base/compiler_specific.h"
-#include "ppapi/c/dev/ppb_video_decoder_dev.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/ppb_video_decoder_dev_api.h"
-
-namespace gpu {
-namespace gles2 {
-class GLES2Implementation;
-}  // namespace gles2
-}  // namespace gpu
-
-namespace ppapi {
-
-// Implements the logic to set and run callbacks for various video decoder
-// events. Both the proxy and the renderer implementation share this code.
-class PPAPI_SHARED_EXPORT PPB_VideoDecoder_Shared
-    : public Resource,
-      public thunk::PPB_VideoDecoder_Dev_API {
- public:
-  explicit PPB_VideoDecoder_Shared(PP_Instance instance);
-  explicit PPB_VideoDecoder_Shared(const HostResource& host_resource);
-
-  PPB_VideoDecoder_Shared(const PPB_VideoDecoder_Shared&) = delete;
-  PPB_VideoDecoder_Shared& operator=(const PPB_VideoDecoder_Shared&) = delete;
-
-  ~PPB_VideoDecoder_Shared() override;
-
-  // Resource overrides.
-  thunk::PPB_VideoDecoder_Dev_API* AsPPB_VideoDecoder_Dev_API() override;
-
-  // PPB_VideoDecoder_Dev_API implementation.
-  void Destroy() override;
-
- protected:
-  bool SetFlushCallback(scoped_refptr<TrackedCallback> callback);
-  bool SetResetCallback(scoped_refptr<TrackedCallback> callback);
-  bool SetBitstreamBufferCallback(int32_t bitstream_buffer_id,
-                                  scoped_refptr<TrackedCallback> callback);
-
-  void RunFlushCallback(int32_t result);
-  void RunResetCallback(int32_t result);
-  void RunBitstreamBufferCallback(int32_t bitstream_buffer_id, int32_t result);
-
-  // Tell command buffer to process all commands it has received so far.
-  void FlushCommandBuffer();
-
-  // Initialize the underlying decoder.
-  void InitCommon(PP_Resource graphics_context,
-                  gpu::gles2::GLES2Implementation* gles2_impl);
-
- private:
-  // Key: bitstream_buffer_id, value: callback to run when bitstream decode is
-  // done.
-  typedef std::map<int32_t, scoped_refptr<TrackedCallback>> CallbackById;
-
-  scoped_refptr<TrackedCallback> flush_callback_;
-  scoped_refptr<TrackedCallback> reset_callback_;
-  CallbackById bitstream_buffer_callbacks_;
-
-  // The resource ID of the underlying Graphics3D object being used.  Used only
-  // for reference counting to keep it alive for the lifetime of |*this|.
-  PP_Resource graphics_context_;
-
-  // Reference to the GLES2Implementation owned by |graphics_context_|.
-  // Graphics3D is guaranteed to be alive for the lifetime of this class.
-  // In the out-of-process case, Graphics3D's gles2_impl() exists in the plugin
-  // process only, so gles2_impl_ is NULL in that case.
-  gpu::gles2::GLES2Implementation* gles2_impl_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_VIDEO_DECODER_SHARED_H_
diff --git a/shared_impl/ppb_view_shared.cc b/shared_impl/ppb_view_shared.cc
deleted file mode 100644
index de654e5..0000000
--- a/shared_impl/ppb_view_shared.cc
+++ /dev/null
@@ -1,93 +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/shared_impl/ppb_view_shared.h"
-
-#include <string.h>
-
-namespace {
-
-bool IsRectNonempty(const PP_Rect& rect) {
-  return rect.size.width > 0 && rect.size.height > 0;
-}
-
-}  // namespace
-
-namespace ppapi {
-
-ViewData::ViewData() {
-  // Assume POD.
-  memset(this, 0, sizeof(ViewData));
-
-  device_scale = 1.0f;
-  css_scale = 1.0f;
-}
-
-ViewData::~ViewData() {}
-
-bool ViewData::Equals(const ViewData& other) const {
-  return rect.point.x == other.rect.point.x &&
-         rect.point.y == other.rect.point.y &&
-         rect.size.width == other.rect.size.width &&
-         rect.size.height == other.rect.size.height &&
-         is_fullscreen == other.is_fullscreen &&
-         is_page_visible == other.is_page_visible &&
-         clip_rect.point.x == other.clip_rect.point.x &&
-         clip_rect.point.y == other.clip_rect.point.y &&
-         clip_rect.size.width == other.clip_rect.size.width &&
-         clip_rect.size.height == other.clip_rect.size.height &&
-         device_scale == other.device_scale && css_scale == other.css_scale &&
-         scroll_offset.x == other.scroll_offset.x &&
-         scroll_offset.y == other.scroll_offset.y;
-}
-
-PPB_View_Shared::PPB_View_Shared(ResourceObjectType type,
-                                 PP_Instance instance,
-                                 const ViewData& data)
-    : Resource(type, instance), data_(data) {}
-
-PPB_View_Shared::~PPB_View_Shared() {}
-
-thunk::PPB_View_API* PPB_View_Shared::AsPPB_View_API() { return this; }
-
-const ViewData& PPB_View_Shared::GetData() const { return data_; }
-
-PP_Bool PPB_View_Shared::GetRect(PP_Rect* viewport) const {
-  if (!viewport)
-    return PP_FALSE;
-  *viewport = data_.rect;
-  return PP_TRUE;
-}
-
-PP_Bool PPB_View_Shared::IsFullscreen() const {
-  return PP_FromBool(data_.is_fullscreen);
-}
-
-PP_Bool PPB_View_Shared::IsVisible() const {
-  return PP_FromBool(data_.is_page_visible && IsRectNonempty(data_.clip_rect));
-}
-
-PP_Bool PPB_View_Shared::IsPageVisible() const {
-  return PP_FromBool(data_.is_page_visible);
-}
-
-PP_Bool PPB_View_Shared::GetClipRect(PP_Rect* clip) const {
-  if (!clip)
-    return PP_FALSE;
-  *clip = data_.clip_rect;
-  return PP_TRUE;
-}
-
-float PPB_View_Shared::GetDeviceScale() const { return data_.device_scale; }
-
-float PPB_View_Shared::GetCSSScale() const { return data_.css_scale; }
-
-PP_Bool PPB_View_Shared::GetScrollOffset(PP_Point* scroll_offset) const {
-  if (!scroll_offset)
-    return PP_FALSE;
-  *scroll_offset = data_.scroll_offset;
-  return PP_TRUE;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppb_view_shared.h b/shared_impl/ppb_view_shared.h
deleted file mode 100644
index 5c1940f..0000000
--- a/shared_impl/ppb_view_shared.h
+++ /dev/null
@@ -1,65 +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_SHARED_IMPL_PPB_VIEW_SHARED_H_
-#define PPAPI_SHARED_IMPL_PPB_VIEW_SHARED_H_
-
-#include "base/compiler_specific.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_view_api.h"
-
-namespace ppapi {
-
-// If you add to this struct, be sure to update the serialization in
-// ppapi_messages.h.
-struct PPAPI_SHARED_EXPORT ViewData {
-  ViewData();
-  ~ViewData();
-
-  bool Equals(const ViewData& other) const;
-
-  PP_Rect rect;
-  bool is_fullscreen;
-  bool is_page_visible;
-  PP_Rect clip_rect;
-  float device_scale;
-  float css_scale;
-  PP_Point scroll_offset;
-};
-
-class PPAPI_SHARED_EXPORT PPB_View_Shared : public Resource,
-                                            public thunk::PPB_View_API {
- public:
-  PPB_View_Shared(ResourceObjectType type,
-                  PP_Instance instance,
-                  const ViewData& data);
-
-  PPB_View_Shared(const PPB_View_Shared&) = delete;
-  PPB_View_Shared& operator=(const PPB_View_Shared&) = delete;
-
-  ~PPB_View_Shared() override;
-
-  // Resource overrides.
-  thunk::PPB_View_API* AsPPB_View_API() override;
-
-  // PPB_View_API implementation.
-  const ViewData& GetData() const override;
-  PP_Bool GetRect(PP_Rect* viewport) const override;
-  PP_Bool IsFullscreen() const override;
-  PP_Bool IsVisible() const override;
-  PP_Bool IsPageVisible() const override;
-  PP_Bool GetClipRect(PP_Rect* clip) const override;
-  float GetDeviceScale() const override;
-  float GetCSSScale() const override;
-  PP_Bool GetScrollOffset(PP_Point* scroll_offset) const override;
-
- private:
-  ViewData data_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPB_VIEW_SHARED_H_
diff --git a/shared_impl/ppp_instance_combined.cc b/shared_impl/ppp_instance_combined.cc
deleted file mode 100644
index b2be69a..0000000
--- a/shared_impl/ppp_instance_combined.cc
+++ /dev/null
@@ -1,79 +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/shared_impl/ppp_instance_combined.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-
-namespace ppapi {
-
-// static
-PPP_Instance_Combined* PPP_Instance_Combined::Create(
-    base::RepeatingCallback<const void*(const char*)> get_interface_func) {
-  // Try 1.1.
-  const void* ppp_instance = get_interface_func.Run(PPP_INSTANCE_INTERFACE_1_1);
-  if (ppp_instance) {
-    const PPP_Instance_1_1* ppp_instance_1_1 =
-        static_cast<const PPP_Instance_1_1*>(ppp_instance);
-    return new PPP_Instance_Combined(*ppp_instance_1_1);
-  }
-  // Failing that, try 1.0.
-  ppp_instance = get_interface_func.Run(PPP_INSTANCE_INTERFACE_1_0);
-  if (ppp_instance) {
-    const PPP_Instance_1_0* ppp_instance_1_0 =
-        static_cast<const PPP_Instance_1_0*>(ppp_instance);
-    return new PPP_Instance_Combined(*ppp_instance_1_0);
-  }
-  // No supported PPP_Instance version found.
-  return NULL;
-}
-
-PPP_Instance_Combined::PPP_Instance_Combined(
-    const PPP_Instance_1_0& instance_if)
-    : did_change_view_1_0_(instance_if.DidChangeView) {
-  instance_1_1_.DidCreate = instance_if.DidCreate;
-  instance_1_1_.DidDestroy = instance_if.DidDestroy;
-  instance_1_1_.DidChangeView = NULL;
-  instance_1_1_.DidChangeFocus = instance_if.DidChangeFocus;
-  instance_1_1_.HandleDocumentLoad = instance_if.HandleDocumentLoad;
-}
-
-PPP_Instance_Combined::PPP_Instance_Combined(
-    const PPP_Instance_1_1& instance_if)
-    : instance_1_1_(instance_if), did_change_view_1_0_(NULL) {}
-
-PP_Bool PPP_Instance_Combined::DidCreate(PP_Instance instance,
-                                         uint32_t argc,
-                                         const char* argn[],
-                                         const char* argv[]) {
-  return CallWhileUnlocked(instance_1_1_.DidCreate, instance, argc, argn, argv);
-}
-
-void PPP_Instance_Combined::DidDestroy(PP_Instance instance) {
-  return CallWhileUnlocked(instance_1_1_.DidDestroy, instance);
-}
-
-void PPP_Instance_Combined::DidChangeView(PP_Instance instance,
-                                          PP_Resource view_changed_resource,
-                                          const struct PP_Rect* position,
-                                          const struct PP_Rect* clip) {
-  if (instance_1_1_.DidChangeView) {
-    CallWhileUnlocked(
-        instance_1_1_.DidChangeView, instance, view_changed_resource);
-  } else {
-    CallWhileUnlocked(did_change_view_1_0_, instance, position, clip);
-  }
-}
-
-void PPP_Instance_Combined::DidChangeFocus(PP_Instance instance,
-                                           PP_Bool has_focus) {
-  CallWhileUnlocked(instance_1_1_.DidChangeFocus, instance, has_focus);
-}
-
-PP_Bool PPP_Instance_Combined::HandleDocumentLoad(PP_Instance instance,
-                                                  PP_Resource url_loader) {
-  return CallWhileUnlocked(
-      instance_1_1_.HandleDocumentLoad, instance, url_loader);
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/ppp_instance_combined.h b/shared_impl/ppp_instance_combined.h
deleted file mode 100644
index bc381af..0000000
--- a/shared_impl/ppp_instance_combined.h
+++ /dev/null
@@ -1,64 +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_SHARED_IMPL_PPP_INSTANCE_COMBINED_H_
-#define PPAPI_SHARED_IMPL_PPP_INSTANCE_COMBINED_H_
-
-#include <stdint.h>
-
-#include "base/functional/callback.h"
-#include "ppapi/c/ppp_instance.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-// This exposes the 1.1 interface and forwards it to the 1.0 interface is
-// necessary.
-struct PPAPI_SHARED_EXPORT PPP_Instance_Combined {
- public:
-  // Create a PPP_Instance_Combined. Uses the given |get_interface_func| to
-  // query the plugin and find the most recent version of the PPP_Instance
-  // interface. If the plugin doesn't support any PPP_Instance interface,
-  // returns NULL.
-  static PPP_Instance_Combined* Create(
-      base::RepeatingCallback<const void*(const char*)> get_plugin_if);
-
-  PPP_Instance_Combined(const PPP_Instance_Combined&) = delete;
-  PPP_Instance_Combined& operator=(const PPP_Instance_Combined&) = delete;
-
-  PP_Bool DidCreate(PP_Instance instance,
-                    uint32_t argc,
-                    const char* argn[],
-                    const char* argv[]);
-  void DidDestroy(PP_Instance instance);
-
-  // This version of DidChangeView encapsulates all arguments for both 1.0
-  // and 1.1 versions of this function. Conversion from 1.1 -> 1.0 is easy,
-  // but this class doesn't have the necessary context (resource interfaces)
-  // to do the conversion, so the caller must do it.
-  void DidChangeView(PP_Instance instance,
-                     PP_Resource view_changed_resource,
-                     const struct PP_Rect* position,
-                     const struct PP_Rect* clip);
-
-  void DidChangeFocus(PP_Instance instance, PP_Bool has_focus);
-  PP_Bool HandleDocumentLoad(PP_Instance instance, PP_Resource url_loader);
-
- private:
-  explicit PPP_Instance_Combined(const PPP_Instance_1_0& instance_if);
-  explicit PPP_Instance_Combined(const PPP_Instance_1_1& instance_if);
-
-  // For version 1.0, DidChangeView will be NULL, and DidChangeView_1_0 will
-  // be set below.
-  PPP_Instance_1_1 instance_1_1_;
-
-  // Non-NULL when Instance 1.0 is used.
-  void (*did_change_view_1_0_)(PP_Instance instance,
-                               const struct PP_Rect* position,
-                               const struct PP_Rect* clip);
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PPP_INSTANCE_COMBINED_H_
diff --git a/shared_impl/private/DEPS b/shared_impl/private/DEPS
deleted file mode 100644
index 9af98f9..0000000
--- a/shared_impl/private/DEPS
+++ /dev/null
@@ -1,4 +0,0 @@
-include_rules = [
-  "+net/base",
-  "+net/cert",
-]
diff --git a/shared_impl/private/net_address_private_impl.cc b/shared_impl/private/net_address_private_impl.cc
deleted file mode 100644
index 0b61661..0000000
--- a/shared_impl/private/net_address_private_impl.cc
+++ /dev/null
@@ -1,586 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/shared_impl/private/net_address_private_impl.h"
-
-#include <stddef.h>
-#include <string.h>
-
-#include <algorithm>
-#include <string>
-
-#include "base/check.h"
-#include "base/compiler_specific.h"
-#include "base/containers/span.h"
-#include "base/strings/stringprintf.h"
-#include "build/build_config.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/thunk/thunk.h"
-
-#if BUILDFLAG(IS_WIN)
-#include <windows.h>
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#elif BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL)
-#include <arpa/inet.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#endif
-
-// The net address interface doesn't have a normal C -> C++ thunk since it
-// doesn't actually have any proxy wrapping or associated objects; it's just a
-// call into base. So we implement the entire interface here, using the thunk
-// namespace so it magically gets hooked up in the proper places.
-
-namespace ppapi {
-
-namespace {
-
-// Define our own net-host-net conversion, rather than reuse the one in
-// base/sys_byteorder.h, to simplify the NaCl port. NaCl has no byte swap
-// primitives.
-uint16_t ConvertFromNetEndian16(uint16_t x) {
-#if defined(ARCH_CPU_LITTLE_ENDIAN)
-  return (x << 8) | (x >> 8);
-#else
-  return x;
-#endif
-}
-
-uint16_t ConvertToNetEndian16(uint16_t x) {
-#if defined(ARCH_CPU_LITTLE_ENDIAN)
-  return (x << 8) | (x >> 8);
-#else
-  return x;
-#endif
-}
-
-static const size_t kIPv4AddressSize = 4;
-static const size_t kIPv6AddressSize = 16;
-
-// This structure is a platform-independent representation of a network address.
-// It is a private format that we embed in PP_NetAddress_Private and is NOT part
-// of the stable Pepper API.
-struct NetAddress {
-  bool is_valid;
-  bool is_ipv6;  // if true, IPv6, otherwise IPv4.
-  uint16_t port;  // host order, not network order.
-  int32_t flow_info;  // 0 for IPv4
-  int32_t scope_id;   // 0 for IPv4
-  // IPv4 addresses are 4 bytes. IPv6 are 16 bytes. Addresses are stored in net
-  // order (big-endian), which only affects IPv6 addresses, which consist of 8
-  // 16-bit components. These will be byte-swapped on small-endian hosts.
-  uint8_t address[kIPv6AddressSize];
-};
-
-// Make sure that sizeof(NetAddress) is the same for all compilers. This ensures
-// that the alignment is the same on both sides of the NaCl proxy, which is
-// important because we serialize and deserialize PP_NetAddress_Private by
-// simply copying the raw bytes.
-static_assert(sizeof(NetAddress) == 28,
-              "NetAddress different for compiler");
-
-// Make sure the storage in |PP_NetAddress_Private| is big enough. (Do it here
-// since the data is opaque elsewhere.)
-static_assert(sizeof(reinterpret_cast<PP_NetAddress_Private*>(0)->data) >=
-              sizeof(NetAddress),
-              "PP_NetAddress_Private data too small");
-
-base::span<const uint8_t> GetAddressBytes(const NetAddress* net_addr) {
-  size_t address_size = net_addr->is_ipv6 ? kIPv6AddressSize : kIPv4AddressSize;
-  return base::span(net_addr->address).first(address_size);
-}
-
-// Convert to embedded struct if it has been initialized.
-NetAddress* ToNetAddress(PP_NetAddress_Private* addr) {
-  if (!addr || addr->size != sizeof(NetAddress))
-    return nullptr;
-  return reinterpret_cast<NetAddress*>(addr->data);
-}
-
-const NetAddress* ToNetAddress(const PP_NetAddress_Private* addr) {
-  return ToNetAddress(const_cast<PP_NetAddress_Private*>(addr));
-}
-
-// Initializes the NetAddress struct embedded in a PP_NetAddress_Private struct.
-// Zeroes the memory, so net_addr->is_valid == false.
-NetAddress* InitNetAddress(PP_NetAddress_Private* addr) {
-  addr->size = sizeof(NetAddress);
-  NetAddress* net_addr = ToNetAddress(addr);
-  DCHECK(net_addr);
-  memset(net_addr, 0, sizeof(NetAddress));
-  return net_addr;
-}
-
-bool IsValid(const NetAddress* net_addr) {
-  return net_addr && net_addr->is_valid;
-}
-
-PP_NetAddressFamily_Private GetFamily(const PP_NetAddress_Private* addr) {
-  const NetAddress* net_addr = ToNetAddress(addr);
-  if (!IsValid(net_addr))
-    return PP_NETADDRESSFAMILY_PRIVATE_UNSPECIFIED;
-  return net_addr->is_ipv6 ?
-         PP_NETADDRESSFAMILY_PRIVATE_IPV6 : PP_NETADDRESSFAMILY_PRIVATE_IPV4;
-}
-
-uint16_t GetPort(const PP_NetAddress_Private* addr) {
-  const NetAddress* net_addr = ToNetAddress(addr);
-  if (!IsValid(net_addr))
-    return 0;
-  return net_addr->port;
-}
-
-// TODO(tsepez): should be declared UNSAFE_BUFFER_USAGE.
-PP_Bool GetAddress(const PP_NetAddress_Private* addr,
-                   void* address,
-                   uint16_t address_size) {
-  const NetAddress* net_addr = ToNetAddress(addr);
-  if (!IsValid(net_addr))
-    return PP_FALSE;
-  // SAFETY: The caller of this PPAPI interface is required to pass a valid,
-  // writable span in `address` and `address_size`.
-  auto dest =
-      UNSAFE_BUFFERS(base::span(static_cast<uint8_t*>(address), address_size));
-  base::span<const uint8_t> src = GetAddressBytes(net_addr);
-  // address_size must be big enough.
-  if (src.size() > dest.size()) {
-    return PP_FALSE;
-  }
-  dest.copy_prefix_from(src);
-  return PP_TRUE;
-}
-
-uint32_t GetScopeID(const PP_NetAddress_Private* addr) {
-  const NetAddress* net_addr = ToNetAddress(addr);
-  if (!IsValid(net_addr))
-    return 0;
-  return net_addr->scope_id;
-}
-
-PP_Bool AreHostsEqual(const PP_NetAddress_Private* addr1,
-                      const PP_NetAddress_Private* addr2) {
-  const NetAddress* net_addr1 = ToNetAddress(addr1);
-  const NetAddress* net_addr2 = ToNetAddress(addr2);
-  if (!IsValid(net_addr1) || !IsValid(net_addr2))
-    return PP_FALSE;
-
-  if ((net_addr1->is_ipv6 != net_addr2->is_ipv6) ||
-      (net_addr1->flow_info != net_addr2->flow_info) ||
-      (net_addr1->scope_id != net_addr2->scope_id) ||
-      !std::ranges::equal(GetAddressBytes(net_addr1),
-                          GetAddressBytes(net_addr2))) {
-    return PP_FALSE;
-  }
-
-  return PP_TRUE;
-}
-
-PP_Bool AreEqual(const PP_NetAddress_Private* addr1,
-                 const PP_NetAddress_Private* addr2) {
-  // |AreHostsEqual()| will also validate the addresses and return false if
-  // either is invalid.
-  if (!AreHostsEqual(addr1, addr2))
-    return PP_FALSE;
-
-  // AreHostsEqual has validated these net addresses.
-  const NetAddress* net_addr1 = ToNetAddress(addr1);
-  const NetAddress* net_addr2 = ToNetAddress(addr2);
-  return PP_FromBool(net_addr1->port == net_addr2->port);
-}
-
-std::string ConvertIPv4AddressToString(const NetAddress* net_addr,
-                                       bool include_port) {
-  std::string description = base::StringPrintf(
-      "%u.%u.%u.%u",
-      net_addr->address[0], net_addr->address[1],
-      net_addr->address[2], net_addr->address[3]);
-  if (include_port)
-    base::StringAppendF(&description, ":%u", net_addr->port);
-  return description;
-}
-
-// Format an IPv6 address for human consumption, basically according to RFC
-// 5952.
-//  - If the scope is nonzero, it is appended to the address as "%<scope>" (this
-//    is not in RFC 5952, but consistent with |getnameinfo()| on Linux and
-//    Windows).
-//  - If |include_port| is true, the address (possibly including the scope) is
-//    enclosed in square brackets and ":<port>" is appended, i.e., the overall
-//    format is "[<address>]:<port>".
-//  - If the address is an IPv4 address embedded IPv6 (per RFC 4291), then the
-//    mixed format is used, e.g., "::ffff:192.168.1.2". This is optional per RFC
-//    5952, but consistent with |getnameinfo()|.
-std::string ConvertIPv6AddressToString(const NetAddress* net_addr,
-                                       bool include_port) {
-  std::string description(include_port ? "[" : "");
-
-  const uint16_t* address16 =
-      reinterpret_cast<const uint16_t*>(net_addr->address);
-  // IPv4 address embedded in IPv6.
-  if (address16[0] == 0 && address16[1] == 0 &&
-      address16[2] == 0 && address16[3] == 0 &&
-      address16[4] == 0 &&
-      (address16[5] == 0 || address16[5] == 0xffff)) {
-    base::StringAppendF(&description, "::%s%u.%u.%u.%u",
-                        address16[5] == 0 ? "" : "ffff:", net_addr->address[12],
-                        net_addr->address[13], net_addr->address[14],
-                        net_addr->address[15]);
-
-    // "Real" IPv6 addresses.
-  } else {
-    // Find the first longest run of 0s (of length > 1), to collapse to "::".
-    int longest_start = 0;
-    int longest_length = 0;
-    int curr_start = 0;
-    int curr_length = 0;
-    for (int i = 0; i < 8; i++) {
-      if (address16[i] != 0) {
-        curr_length = 0;
-      } else {
-        if (!curr_length)
-          curr_start = i;
-        curr_length++;
-        if (curr_length > longest_length) {
-          longest_start = curr_start;
-          longest_length = curr_length;
-        }
-      }
-    }
-
-    bool need_sep = false;  // Whether the next item needs a ':' to separate.
-    for (int i = 0; i < 8;) {
-      if (longest_length > 1 && i == longest_start) {
-        description.append("::");
-        need_sep = false;
-        i += longest_length;
-      } else {
-        uint16_t v = ConvertFromNetEndian16(address16[i]);
-        base::StringAppendF(&description, "%s%x", need_sep ? ":" : "", v);
-        need_sep = true;
-        i++;
-      }
-    }
-  }
-
-  // Nonzero scopes, e.g., 123, are indicated by appending, e.g., "%123".
-  if (net_addr->scope_id != 0)
-    base::StringAppendF(&description, "%%%u", net_addr->scope_id);
-
-  if (include_port)
-    base::StringAppendF(&description, "]:%u", net_addr->port);
-
-  return description;
-}
-
-PP_Var Describe(PP_Module /*module*/,
-                const struct PP_NetAddress_Private* addr,
-                PP_Bool include_port) {
-  std::string str = NetAddressPrivateImpl::DescribeNetAddress(
-      *addr, PP_ToBool(include_port));
-  if (str.empty())
-    return PP_MakeUndefined();
-  // We must acquire the lock while accessing the VarTracker, which is part of
-  // the critical section of the proxy which may be accessed by other threads.
-  ProxyAutoLock lock;
-  return StringVar::StringToPPVar(str);
-}
-
-PP_Bool ReplacePort(const struct PP_NetAddress_Private* src_addr,
-                    uint16_t port,
-                    struct PP_NetAddress_Private* dest_addr) {
-  const NetAddress* src_net_addr = ToNetAddress(src_addr);
-  if (!IsValid(src_net_addr) || !dest_addr)
-    return PP_FALSE;
-  dest_addr->size = sizeof(NetAddress);  // make sure 'size' is valid.
-  NetAddress* dest_net_addr = ToNetAddress(dest_addr);
-  *dest_net_addr = *src_net_addr;
-  dest_net_addr->port = port;
-  return PP_TRUE;
-}
-
-void GetAnyAddress(PP_Bool is_ipv6, PP_NetAddress_Private* addr) {
-  if (addr) {
-    NetAddress* net_addr = InitNetAddress(addr);
-    net_addr->is_valid = true;
-    net_addr->is_ipv6 = (is_ipv6 == PP_TRUE);
-  }
-}
-
-void CreateFromIPv4Address(const uint8_t ip[4],
-                           uint16_t port,
-                           struct PP_NetAddress_Private* addr) {
-  if (addr) {
-    NetAddress* net_addr = InitNetAddress(addr);
-    net_addr->is_valid = true;
-    net_addr->is_ipv6 = false;
-    net_addr->port = port;
-    memcpy(net_addr->address, ip, kIPv4AddressSize);
-  }
-}
-
-void CreateFromIPv6Address(const uint8_t ip[16],
-                           uint32_t scope_id,
-                           uint16_t port,
-                           struct PP_NetAddress_Private* addr) {
-  if (addr) {
-    NetAddress* net_addr = InitNetAddress(addr);
-    net_addr->is_valid = true;
-    net_addr->is_ipv6 = true;
-    net_addr->port = port;
-    net_addr->scope_id = scope_id;
-    memcpy(net_addr->address, ip, kIPv6AddressSize);
-  }
-}
-
-const PPB_NetAddress_Private_0_1 net_address_private_interface_0_1 = {
-  &AreEqual,
-  &AreHostsEqual,
-  &Describe,
-  &ReplacePort,
-  &GetAnyAddress
-};
-
-const PPB_NetAddress_Private_1_0 net_address_private_interface_1_0 = {
-  &AreEqual,
-  &AreHostsEqual,
-  &Describe,
-  &ReplacePort,
-  &GetAnyAddress,
-  &GetFamily,
-  &GetPort,
-  &GetAddress
-};
-
-const PPB_NetAddress_Private_1_1 net_address_private_interface_1_1 = {
-  &AreEqual,
-  &AreHostsEqual,
-  &Describe,
-  &ReplacePort,
-  &GetAnyAddress,
-  &GetFamily,
-  &GetPort,
-  &GetAddress,
-  &GetScopeID,
-  &CreateFromIPv4Address,
-  &CreateFromIPv6Address
-};
-
-}  // namespace
-
-namespace thunk {
-
-PPAPI_THUNK_EXPORT const PPB_NetAddress_Private_0_1*
-GetPPB_NetAddress_Private_0_1_Thunk() {
-  return &net_address_private_interface_0_1;
-}
-
-PPAPI_THUNK_EXPORT const PPB_NetAddress_Private_1_0*
-GetPPB_NetAddress_Private_1_0_Thunk() {
-  return &net_address_private_interface_1_0;
-}
-
-PPAPI_THUNK_EXPORT const PPB_NetAddress_Private_1_1*
-GetPPB_NetAddress_Private_1_1_Thunk() {
-  return &net_address_private_interface_1_1;
-}
-
-}  // namespace thunk
-
-// For the NaCl target, all we need are the API functions and the thunk.
-#if !BUILDFLAG(IS_NACL)
-
-// static
-bool NetAddressPrivateImpl::ValidateNetAddress(
-    const PP_NetAddress_Private& addr) {
-  return IsValid(ToNetAddress(&addr));
-}
-
-// static
-bool NetAddressPrivateImpl::SockaddrToNetAddress(
-    const sockaddr* sa,
-    uint32_t sa_length,
-    PP_NetAddress_Private* addr) {
-  if (!sa || sa_length == 0 || !addr)
-    return false;
-
-  // Our platform neutral format stores ports in host order, not net order,
-  // so convert them here.
-  NetAddress* net_addr = InitNetAddress(addr);
-  switch (sa->sa_family) {
-    case AF_INET: {
-      const struct sockaddr_in* addr4 =
-          reinterpret_cast<const struct sockaddr_in*>(sa);
-      net_addr->is_valid = true;
-      net_addr->is_ipv6 = false;
-      net_addr->port = ConvertFromNetEndian16(addr4->sin_port);
-      memcpy(net_addr->address, &addr4->sin_addr.s_addr, kIPv4AddressSize);
-      break;
-    }
-    case AF_INET6: {
-      const struct sockaddr_in6* addr6 =
-          reinterpret_cast<const struct sockaddr_in6*>(sa);
-      net_addr->is_valid = true;
-      net_addr->is_ipv6 = true;
-      net_addr->port = ConvertFromNetEndian16(addr6->sin6_port);
-      net_addr->flow_info = addr6->sin6_flowinfo;
-      net_addr->scope_id = addr6->sin6_scope_id;
-      memcpy(net_addr->address, addr6->sin6_addr.s6_addr, kIPv6AddressSize);
-      break;
-    }
-    default:
-      // InitNetAddress sets net_addr->is_valid to false.
-      return false;
-  }
-  return true;}
-
-// static
-bool NetAddressPrivateImpl::IPEndPointToNetAddress(
-    const net::IPAddressBytes& address,
-    uint16_t port,
-    PP_NetAddress_Private* addr) {
-  if (!addr)
-    return false;
-
-  NetAddress* net_addr = InitNetAddress(addr);
-  switch (address.size()) {
-    case kIPv4AddressSize: {
-      net_addr->is_valid = true;
-      net_addr->is_ipv6 = false;
-      net_addr->port = port;
-      std::copy(address.begin(), address.end(), net_addr->address);
-      break;
-    }
-    case kIPv6AddressSize: {
-      net_addr->is_valid = true;
-      net_addr->is_ipv6 = true;
-      net_addr->port = port;
-      std::copy(address.begin(), address.end(), net_addr->address);
-      break;
-    }
-    default:
-      // InitNetAddress sets net_addr->is_valid to false.
-      return false;
-  }
-
-  return true;
-}
-
-// static
-bool NetAddressPrivateImpl::NetAddressToIPEndPoint(
-    const PP_NetAddress_Private& addr,
-    net::IPAddressBytes* address,
-    uint16_t* port) {
-  if (!address || !port)
-    return false;
-
-  const NetAddress* net_addr = ToNetAddress(&addr);
-  if (!IsValid(net_addr))
-    return false;
-
-  *port = net_addr->port;
-  address->Assign(GetAddressBytes(net_addr));
-  return true;
-}
-#endif  // !BUILDFLAG(IS_NACL)
-
-// static
-std::string NetAddressPrivateImpl::DescribeNetAddress(
-    const PP_NetAddress_Private& addr,
-    bool include_port) {
-  const NetAddress* net_addr = ToNetAddress(&addr);
-  if (!IsValid(net_addr))
-    return std::string();
-
-  // On Windows, |NetAddressToString()| doesn't work in the sandbox. On Mac,
-  // the output isn't consistent with RFC 5952, at least on Mac OS 10.6:
-  // |getnameinfo()| collapses length-one runs of zeros (and also doesn't
-  // display the scope).
-  if (net_addr->is_ipv6)
-    return ConvertIPv6AddressToString(net_addr, include_port);
-  return ConvertIPv4AddressToString(net_addr, include_port);
-}
-
-// static
-void NetAddressPrivateImpl::GetAnyAddress(PP_Bool is_ipv6,
-    PP_NetAddress_Private* addr) {
-  ppapi::GetAnyAddress(is_ipv6, addr);
-}
-
-// static
-void NetAddressPrivateImpl::CreateNetAddressPrivateFromIPv4Address(
-    const PP_NetAddress_IPv4& ipv4_addr,
-    PP_NetAddress_Private* addr) {
-  CreateFromIPv4Address(ipv4_addr.addr, ConvertFromNetEndian16(ipv4_addr.port),
-                        addr);
-}
-
-// static
-void NetAddressPrivateImpl::CreateNetAddressPrivateFromIPv6Address(
-    const PP_NetAddress_IPv6& ipv6_addr,
-    PP_NetAddress_Private* addr) {
-  CreateFromIPv6Address(ipv6_addr.addr, 0,
-                        ConvertFromNetEndian16(ipv6_addr.port), addr);
-}
-
-// static
-PP_NetAddress_Family NetAddressPrivateImpl::GetFamilyFromNetAddressPrivate(
-    const PP_NetAddress_Private& addr) {
-  const NetAddress* net_addr = ToNetAddress(&addr);
-  if (!IsValid(net_addr))
-    return PP_NETADDRESS_FAMILY_UNSPECIFIED;
-  return net_addr->is_ipv6 ? PP_NETADDRESS_FAMILY_IPV6 :
-                             PP_NETADDRESS_FAMILY_IPV4;
-}
-
-// static
-bool NetAddressPrivateImpl::DescribeNetAddressPrivateAsIPv4Address(
-   const PP_NetAddress_Private& addr,
-   PP_NetAddress_IPv4* ipv4_addr) {
-  if (!ipv4_addr)
-    return false;
-
-  const NetAddress* net_addr = ToNetAddress(&addr);
-  if (!IsValid(net_addr) || net_addr->is_ipv6)
-    return false;
-
-  ipv4_addr->port = ConvertToNetEndian16(net_addr->port);
-
-  static_assert(sizeof(ipv4_addr->addr) == kIPv4AddressSize,
-                "mismatched IPv4 address size");
-  memcpy(ipv4_addr->addr, net_addr->address, kIPv4AddressSize);
-
-  return true;
-}
-
-// static
-bool NetAddressPrivateImpl::DescribeNetAddressPrivateAsIPv6Address(
-    const PP_NetAddress_Private& addr,
-    PP_NetAddress_IPv6* ipv6_addr) {
-  if (!ipv6_addr)
-    return false;
-
-  const NetAddress* net_addr = ToNetAddress(&addr);
-  if (!IsValid(net_addr) || !net_addr->is_ipv6)
-    return false;
-
-  ipv6_addr->port = ConvertToNetEndian16(net_addr->port);
-
-  static_assert(sizeof(ipv6_addr->addr) == kIPv6AddressSize,
-                "mismatched IPv6 address size");
-  memcpy(ipv6_addr->addr, net_addr->address, kIPv6AddressSize);
-
-  return true;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/private/net_address_private_impl.h b/shared_impl/private/net_address_private_impl.h
deleted file mode 100644
index 8ee80de..0000000
--- a/shared_impl/private/net_address_private_impl.h
+++ /dev/null
@@ -1,76 +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_SHARED_IMPL_PRIVATE_NET_ADDRESS_PRIVATE_IMPL_H_
-#define PPAPI_SHARED_IMPL_PRIVATE_NET_ADDRESS_PRIVATE_IMPL_H_
-
-#include <stdint.h>
-#include <string>
-
-#include "build/build_config.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/ppb_net_address.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-#if !BUILDFLAG(IS_NACL)
-#include "net/base/ip_address.h"  //nogncheck
-#endif
-
-struct PP_NetAddress_Private;
-struct sockaddr;
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT NetAddressPrivateImpl {
- public:
-  NetAddressPrivateImpl() = delete;
-  NetAddressPrivateImpl(const NetAddressPrivateImpl&) = delete;
-  NetAddressPrivateImpl& operator=(const NetAddressPrivateImpl&) = delete;
-
-#if !BUILDFLAG(IS_NACL)
-  static bool ValidateNetAddress(const PP_NetAddress_Private& addr);
-
-  static bool SockaddrToNetAddress(const sockaddr* sa,
-                                   uint32_t sa_length,
-                                   PP_NetAddress_Private* net_addr);
-
-  static bool IPEndPointToNetAddress(const net::IPAddressBytes& address,
-                                     uint16_t port,
-                                     PP_NetAddress_Private* net_addr);
-
-  static bool NetAddressToIPEndPoint(const PP_NetAddress_Private& net_addr,
-                                     net::IPAddressBytes* address,
-                                     uint16_t* port);
-#endif
-
-  static std::string DescribeNetAddress(const PP_NetAddress_Private& addr,
-                                        bool include_port);
-
-  static void GetAnyAddress(PP_Bool is_ipv6, PP_NetAddress_Private* addr);
-
-  // Conversion methods to make PPB_NetAddress resource work with
-  // PP_NetAddress_Private.
-  // TODO(yzshen): Remove them once PPB_NetAddress resource doesn't use
-  // PP_NetAddress_Private as storage type.
-  static void CreateNetAddressPrivateFromIPv4Address(
-      const PP_NetAddress_IPv4& ipv4_addr,
-      PP_NetAddress_Private* addr);
-  static void CreateNetAddressPrivateFromIPv6Address(
-      const PP_NetAddress_IPv6& ipv6_addr,
-      PP_NetAddress_Private* addr);
-  static PP_NetAddress_Family GetFamilyFromNetAddressPrivate(
-      const PP_NetAddress_Private& addr);
-  static bool DescribeNetAddressPrivateAsIPv4Address(
-      const PP_NetAddress_Private& addr,
-      PP_NetAddress_IPv4* ipv4_addr);
-  static bool DescribeNetAddressPrivateAsIPv6Address(
-      const PP_NetAddress_Private& addr,
-      PP_NetAddress_IPv6* ipv6_addr);
-
-  static const PP_NetAddress_Private kInvalidNetAddress;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PRIVATE_NET_ADDRESS_PRIVATE_IMPL_H_
diff --git a/shared_impl/private/net_address_private_impl_constants.cc b/shared_impl/private/net_address_private_impl_constants.cc
deleted file mode 100644
index c9f009f..0000000
--- a/shared_impl/private/net_address_private_impl_constants.cc
+++ /dev/null
@@ -1,17 +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/shared_impl/private/net_address_private_impl.h"
-
-#include "build/build_config.h"
-#include "ppapi/c/private/ppb_net_address_private.h"
-
-namespace ppapi {
-
-#if !BUILDFLAG(IS_NACL)
-// static
-const PP_NetAddress_Private NetAddressPrivateImpl::kInvalidNetAddress = { 0 };
-#endif  // !BUILDFLAG(IS_NACL)
-
-}  // namespace ppapi
diff --git a/shared_impl/private/ppb_char_set_shared.cc b/shared_impl/private/ppb_char_set_shared.cc
deleted file mode 100644
index 8236212..0000000
--- a/shared_impl/private/ppb_char_set_shared.cc
+++ /dev/null
@@ -1,246 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/shared_impl/private/ppb_char_set_shared.h"
-
-#include <string.h>
-
-#include <algorithm>
-
-#include "base/i18n/icu_string_conversions.h"
-#include "ppapi/c/dev/ppb_memory_dev.h"
-#include "ppapi/thunk/thunk.h"
-#include "third_party/icu/source/common/unicode/ucnv.h"
-#include "third_party/icu/source/common/unicode/ucnv_cb.h"
-#include "third_party/icu/source/common/unicode/ucnv_err.h"
-#include "third_party/icu/source/common/unicode/ustring.h"
-
-namespace ppapi {
-
-namespace {
-
-PP_CharSet_Trusted_ConversionError DeprecatedToConversionError(
-    PP_CharSet_ConversionError on_error) {
-  switch (on_error) {
-    case PP_CHARSET_CONVERSIONERROR_SKIP:
-      return PP_CHARSET_TRUSTED_CONVERSIONERROR_SKIP;
-    case PP_CHARSET_CONVERSIONERROR_SUBSTITUTE:
-      return PP_CHARSET_TRUSTED_CONVERSIONERROR_SUBSTITUTE;
-    case PP_CHARSET_CONVERSIONERROR_FAIL:
-    default:
-      return PP_CHARSET_TRUSTED_CONVERSIONERROR_FAIL;
-  }
-}
-
-// Converts the given PP error handling behavior to the version in base,
-// placing the result in |*result| and returning true on success. Returns false
-// if the enum is invalid.
-bool PPToBaseConversionError(PP_CharSet_Trusted_ConversionError on_error,
-                             base::OnStringConversionError::Type* result) {
-  switch (on_error) {
-    case PP_CHARSET_TRUSTED_CONVERSIONERROR_FAIL:
-      *result = base::OnStringConversionError::FAIL;
-      return true;
-    case PP_CHARSET_TRUSTED_CONVERSIONERROR_SKIP:
-      *result = base::OnStringConversionError::SKIP;
-      return true;
-    case PP_CHARSET_TRUSTED_CONVERSIONERROR_SUBSTITUTE:
-      *result = base::OnStringConversionError::SUBSTITUTE;
-      return true;
-    default:
-      return false;
-  }
-}
-
-}  // namespace
-
-// static
-// The "substitution" behavior of this function does not match the
-// implementation in base, so we partially duplicate the code from
-// icu_string_conversions.cc with the correct error handling setup required
-// by the PPAPI interface.
-char* PPB_CharSet_Shared::UTF16ToCharSetDeprecated(
-    const uint16_t* utf16,
-    uint32_t utf16_len,
-    const char* output_char_set,
-    PP_CharSet_ConversionError deprecated_on_error,
-    uint32_t* output_length) {
-  *output_length = 0;
-  PP_CharSet_Trusted_ConversionError on_error = DeprecatedToConversionError(
-      deprecated_on_error);
-
-  // Compute required length.
-  uint32_t required_length = 0;
-  UTF16ToCharSet(utf16, utf16_len, output_char_set, on_error, NULL,
-                 &required_length);
-
-  // Our output is null terminated, so need one more byte.
-  char* ret_buf = static_cast<char*>(
-      thunk::GetPPB_Memory_Dev_0_1_Thunk()->MemAlloc(required_length + 1));
-
-  // Do the conversion into the buffer.
-  PP_Bool result = UTF16ToCharSet(utf16, utf16_len, output_char_set, on_error,
-                                  ret_buf, &required_length);
-  if (result == PP_FALSE) {
-    thunk::GetPPB_Memory_Dev_0_1_Thunk()->MemFree(ret_buf);
-    return NULL;
-  }
-  ret_buf[required_length] = 0;  // Null terminate.
-  *output_length = required_length;
-  return ret_buf;
-}
-
-// static
-PP_Bool PPB_CharSet_Shared::UTF16ToCharSet(
-    const uint16_t utf16[],
-    uint32_t utf16_len,
-    const char* output_char_set,
-    PP_CharSet_Trusted_ConversionError on_error,
-    char* output_buffer,
-    uint32_t* output_length) {
-  if (!utf16 || !output_char_set || !output_length) {
-    *output_length = 0;
-    return PP_FALSE;
-  }
-
-  UErrorCode status = U_ZERO_ERROR;
-  UConverter* converter = ucnv_open(output_char_set, &status);
-  if (!U_SUCCESS(status)) {
-    *output_length = 0;
-    return PP_FALSE;
-  }
-
-  // Setup our error handler.
-  switch (on_error) {
-    case PP_CHARSET_TRUSTED_CONVERSIONERROR_FAIL:
-      ucnv_setFromUCallBack(converter, UCNV_FROM_U_CALLBACK_STOP, 0,
-                            NULL, NULL, &status);
-      break;
-    case PP_CHARSET_TRUSTED_CONVERSIONERROR_SKIP:
-      ucnv_setFromUCallBack(converter, UCNV_FROM_U_CALLBACK_SKIP, 0,
-                            NULL, NULL, &status);
-      break;
-    case PP_CHARSET_TRUSTED_CONVERSIONERROR_SUBSTITUTE: {
-      // ICU sets the substitution char for some character sets (like latin1)
-      // to be the ASCII "substitution character" (26). We want to use '?'
-      // instead for backwards-compat with Windows behavior.
-      char subst_chars[32];
-      int8_t subst_chars_len = 32;
-      ucnv_getSubstChars(converter, subst_chars, &subst_chars_len, &status);
-      if (subst_chars_len == 1 && subst_chars[0] == 26) {
-        // Override to the question mark character if possible. When using
-        // setSubstString, the input is a Unicode character. The function will
-        // try to convert it to the destination character set and fail if that
-        // can not be converted to the destination character set.
-        //
-        // We just ignore any failure. If the dest char set has no
-        // representation for '?', then we'll just stick to the ICU default
-        // substitution character.
-        UErrorCode subst_status = U_ZERO_ERROR;
-        UChar question_mark = '?';
-        ucnv_setSubstString(converter, &question_mark, 1, &subst_status);
-      }
-
-      ucnv_setFromUCallBack(converter, UCNV_FROM_U_CALLBACK_SUBSTITUTE, 0,
-                            NULL, NULL, &status);
-      break;
-    }
-    default:
-      *output_length = 0;
-      ucnv_close(converter);
-      return PP_FALSE;
-  }
-
-  // ucnv_fromUChars returns required size not including terminating null.
-  *output_length = static_cast<uint32_t>(ucnv_fromUChars(
-      converter, output_buffer, output_buffer ? *output_length : 0,
-      reinterpret_cast<const UChar*>(utf16), utf16_len, &status));
-
-  ucnv_close(converter);
-  if (status == U_BUFFER_OVERFLOW_ERROR) {
-    // Don't treat this as a fatal error since we need to return the string
-    // size.
-    return PP_TRUE;
-  } else if (!U_SUCCESS(status)) {
-    *output_length = 0;
-    return PP_FALSE;
-  }
-  return PP_TRUE;
-}
-
-// static
-uint16_t* PPB_CharSet_Shared::CharSetToUTF16Deprecated(
-    const char* input,
-    uint32_t input_len,
-    const char* input_char_set,
-    PP_CharSet_ConversionError deprecated_on_error,
-    uint32_t* output_length) {
-  *output_length = 0;
-  PP_CharSet_Trusted_ConversionError on_error = DeprecatedToConversionError(
-      deprecated_on_error);
-
-  // Compute required length.
-  uint32_t required_length = 0;
-  CharSetToUTF16(input, input_len, input_char_set, on_error, NULL,
-                 &required_length);
-
-  // Our output is null terminated, so need one more byte.
-  uint16_t* ret_buf = static_cast<uint16_t*>(
-      thunk::GetPPB_Memory_Dev_0_1_Thunk()->MemAlloc(
-          (required_length + 1) * sizeof(uint16_t)));
-
-  // Do the conversion into the buffer.
-  PP_Bool result = CharSetToUTF16(input, input_len, input_char_set, on_error,
-                                  ret_buf, &required_length);
-  if (result == PP_FALSE) {
-    thunk::GetPPB_Memory_Dev_0_1_Thunk()->MemFree(ret_buf);
-    return NULL;
-  }
-  ret_buf[required_length] = 0;  // Null terminate.
-  *output_length = required_length;
-  return ret_buf;
-}
-
-PP_Bool PPB_CharSet_Shared::CharSetToUTF16(
-    const char* input,
-    uint32_t input_len,
-    const char* input_char_set,
-    PP_CharSet_Trusted_ConversionError on_error,
-    uint16_t* output_buffer,
-    uint32_t* output_utf16_length) {
-  if (!input || !input_char_set || !output_utf16_length) {
-    *output_utf16_length = 0;
-    return PP_FALSE;
-  }
-
-  base::OnStringConversionError::Type base_on_error;
-  if (!PPToBaseConversionError(on_error, &base_on_error)) {
-    *output_utf16_length = 0;
-    return PP_FALSE;  // Invalid enum value.
-  }
-
-  // We can convert this call to the implementation in base to avoid code
-  // duplication, although this does introduce an extra copy of the data.
-  std::u16string output;
-  if (!base::CodepageToUTF16(std::string(input, input_len), input_char_set,
-                             base_on_error, &output)) {
-    *output_utf16_length = 0;
-    return PP_FALSE;
-  }
-
-  if (output_buffer) {
-    memcpy(output_buffer, output.c_str(),
-           std::min(*output_utf16_length, static_cast<uint32_t>(output.size()))
-           * sizeof(uint16_t));
-  }
-  *output_utf16_length = static_cast<uint32_t>(output.size());
-  return PP_TRUE;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/private/ppb_char_set_shared.h b/shared_impl/private/ppb_char_set_shared.h
deleted file mode 100644
index 3fb9a41..0000000
--- a/shared_impl/private/ppb_char_set_shared.h
+++ /dev/null
@@ -1,47 +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_SHARED_IMPL_PRIVATE_PPB_CHAR_SET_SHARED_H_
-#define PPAPI_SHARED_IMPL_PRIVATE_PPB_CHAR_SET_SHARED_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/dev/ppb_char_set_dev.h"
-#include "ppapi/c/trusted/ppb_char_set_trusted.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-// Contains the implementation of character set conversion that is shared
-// between the proxy and the renderer.
-class PPAPI_SHARED_EXPORT PPB_CharSet_Shared {
- public:
-  static char* UTF16ToCharSetDeprecated(const uint16_t* utf16,
-                                        uint32_t utf16_len,
-                                        const char* output_char_set,
-                                        PP_CharSet_ConversionError on_error,
-                                        uint32_t* output_length);
-  static PP_Bool UTF16ToCharSet(const uint16_t utf16[],
-                                uint32_t utf16_len,
-                                const char* output_char_set,
-                                PP_CharSet_Trusted_ConversionError on_error,
-                                char* output_buffer,
-                                uint32_t* output_length);
-
-  static uint16_t* CharSetToUTF16Deprecated(const char* input,
-                                            uint32_t input_len,
-                                            const char* input_char_set,
-                                            PP_CharSet_ConversionError on_error,
-                                            uint32_t* output_length);
-  static PP_Bool CharSetToUTF16(const char* input,
-                                uint32_t input_len,
-                                const char* input_char_set,
-                                PP_CharSet_Trusted_ConversionError on_error,
-                                uint16_t* output_buffer,
-                                uint32_t* output_utf16_length);
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PRIVATE_PPB_CHAR_SET_SHARED_H_
diff --git a/shared_impl/private/ppb_x509_certificate_private_shared.cc b/shared_impl/private/ppb_x509_certificate_private_shared.cc
deleted file mode 100644
index fc0f22c..0000000
--- a/shared_impl/private/ppb_x509_certificate_private_shared.cc
+++ /dev/null
@@ -1,140 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h"
-
-#include <utility>
-
-#include "base/notreached.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-namespace ppapi {
-
-PPB_X509Certificate_Fields::PPB_X509Certificate_Fields() = default;
-
-PPB_X509Certificate_Fields::PPB_X509Certificate_Fields(
-    const PPB_X509Certificate_Fields& fields)
-    : values_(fields.values_.Clone()) {}
-
-void PPB_X509Certificate_Fields::SetField(
-    PP_X509Certificate_Private_Field field,
-    base::Value value) {
-  uint32_t index = static_cast<uint32_t>(field);
-  // Pad the list with null values if necessary.
-  while (index >= values_.size())
-    values_.Append(base::Value());
-  values_[index] = std::move(value);
-}
-
-PP_Var PPB_X509Certificate_Fields::GetFieldAsPPVar(
-    PP_X509Certificate_Private_Field field) const {
-  uint32_t index = static_cast<uint32_t>(field);
-  if (index >= values_.size()) {
-    // Our list received might be smaller than the number of fields, so just
-    // return null if the index is OOB.
-    return PP_MakeNull();
-  }
-
-  const base::Value& value = values_[index];
-  switch (value.type()) {
-    case base::Value::Type::NONE:
-      return PP_MakeNull();
-    case base::Value::Type::BOOLEAN: {
-      return PP_MakeBool(PP_FromBool(value.GetBool()));
-    }
-    case base::Value::Type::INTEGER: {
-      return PP_MakeInt32(value.GetInt());
-    }
-    case base::Value::Type::DOUBLE: {
-      return PP_MakeDouble(value.GetDouble());
-    }
-    case base::Value::Type::STRING: {
-      return StringVar::StringToPPVar(value.GetString());
-    }
-    case base::Value::Type::BINARY: {
-      uint32_t size = static_cast<uint32_t>(value.GetBlob().size());
-      const uint8_t* buffer = value.GetBlob().data();
-      PP_Var array_buffer =
-          PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(size,
-                                                                     buffer);
-      return array_buffer;
-    }
-    case base::Value::Type::DICT:
-    case base::Value::Type::LIST:
-      // Not handled.
-      break;
-  }
-
-  // Should not reach here.
-  NOTREACHED();
-}
-
-//------------------------------------------------------------------------------
-
-PPB_X509Certificate_Private_Shared::PPB_X509Certificate_Private_Shared(
-    ResourceObjectType type,
-    PP_Instance instance)
-    : Resource(type, instance) {}
-
-PPB_X509Certificate_Private_Shared::PPB_X509Certificate_Private_Shared(
-    ResourceObjectType type,
-    PP_Instance instance,
-    const PPB_X509Certificate_Fields& fields)
-    : Resource(type, instance),
-      fields_(new PPB_X509Certificate_Fields(fields)) {
-}
-
-PPB_X509Certificate_Private_Shared::~PPB_X509Certificate_Private_Shared() {
-}
-
-thunk::PPB_X509Certificate_Private_API*
-PPB_X509Certificate_Private_Shared::AsPPB_X509Certificate_Private_API() {
-  return this;
-}
-
-PP_Bool PPB_X509Certificate_Private_Shared::Initialize(const char* bytes,
-                                                       uint32_t length) {
-  // The certificate should be immutable once initialized.
-  if (fields_.get())
-    return PP_FALSE;
-
-  if (!bytes || length == 0)
-    return PP_FALSE;
-
-  std::vector<char> der(bytes, bytes + length);
-  std::unique_ptr<PPB_X509Certificate_Fields> fields(
-      new PPB_X509Certificate_Fields());
-  bool success = ParseDER(der, fields.get());
-  if (success) {
-    fields_.swap(fields);
-    return PP_TRUE;
-  }
-  return PP_FALSE;
-}
-
-PP_Var PPB_X509Certificate_Private_Shared::GetField(
-    PP_X509Certificate_Private_Field field) {
-  if (!fields_.get())
-    return PP_MakeUndefined();
-
-  return fields_->GetFieldAsPPVar(field);
-}
-
-bool PPB_X509Certificate_Private_Shared::ParseDER(
-    const std::vector<char>& der,
-    PPB_X509Certificate_Fields* result) {
-  // A concrete PPB_X509Certificate_Private_Shared should only ever be
-  // constructed by passing in PPB_X509Certificate_Fields, in which case it is
-  // already initialized.
-  NOTREACHED();
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/private/ppb_x509_certificate_private_shared.h b/shared_impl/private/ppb_x509_certificate_private_shared.h
deleted file mode 100644
index 40cd2b8..0000000
--- a/shared_impl/private/ppb_x509_certificate_private_shared.h
+++ /dev/null
@@ -1,79 +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_SHARED_IMPL_PRIVATE_PPB_X509_CERTIFICATE_PRIVATE_SHARED_H_
-#define PPAPI_SHARED_IMPL_PRIVATE_PPB_X509_CERTIFICATE_PRIVATE_SHARED_H_
-
-#include <stdint.h>
-
-#include <memory>
-#include <vector>
-
-#include "base/values.h"
-#include "ppapi/c/private/ppb_x509_certificate_private.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/thunk/ppb_x509_certificate_private_api.h"
-
-namespace IPC {
-template <class T>
-struct ParamTraits;
-}
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT PPB_X509Certificate_Fields {
- public:
-  PPB_X509Certificate_Fields();
-  PPB_X509Certificate_Fields(const PPB_X509Certificate_Fields& fields);
-
-  // Takes ownership of |value|.
-  void SetField(PP_X509Certificate_Private_Field field, base::Value value);
-  PP_Var GetFieldAsPPVar(PP_X509Certificate_Private_Field field) const;
-
- private:
-  // Friend so ParamTraits can serialize us.
-  friend struct IPC::ParamTraits<ppapi::PPB_X509Certificate_Fields>;
-
-  base::Value::List values_;
-};
-
-//------------------------------------------------------------------------------
-
-class PPAPI_SHARED_EXPORT PPB_X509Certificate_Private_Shared
-    : public thunk::PPB_X509Certificate_Private_API,
-      public Resource {
- public:
-  PPB_X509Certificate_Private_Shared(ResourceObjectType type,
-                                     PP_Instance instance);
-  // Used by tcp_socket_shared_impl to construct a certificate resource from a
-  // server certificate.
-  PPB_X509Certificate_Private_Shared(ResourceObjectType type,
-                                     PP_Instance instance,
-                                     const PPB_X509Certificate_Fields& fields);
-
-  PPB_X509Certificate_Private_Shared(
-      const PPB_X509Certificate_Private_Shared&) = delete;
-  PPB_X509Certificate_Private_Shared& operator=(
-      const PPB_X509Certificate_Private_Shared&) = delete;
-
-  ~PPB_X509Certificate_Private_Shared() override;
-
-  // Resource overrides.
-  PPB_X509Certificate_Private_API* AsPPB_X509Certificate_Private_API() override;
-
-  // PPB_X509Certificate_Private_API implementation.
-  PP_Bool Initialize(const char* bytes, uint32_t length) override;
-  PP_Var GetField(PP_X509Certificate_Private_Field field) override;
-
- protected:
-  virtual bool ParseDER(const std::vector<char>& der,
-                        PPB_X509Certificate_Fields* result);
-
- private:
-  std::unique_ptr<PPB_X509Certificate_Fields> fields_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PRIVATE_PPB_X509_CERTIFICATE_PRIVATE_SHARED_H_
diff --git a/shared_impl/private/ppb_x509_util_shared.cc b/shared_impl/private/ppb_x509_util_shared.cc
deleted file mode 100644
index b98888b..0000000
--- a/shared_impl/private/ppb_x509_util_shared.cc
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/shared_impl/private/ppb_x509_util_shared.h"
-
-#include <string_view>
-
-#include "base/strings/string_util.h"
-#include "base/values.h"
-#include "net/cert/x509_certificate.h"
-#include "net/cert/x509_util.h"
-
-namespace ppapi {
-
-bool PPB_X509Util_Shared::GetCertificateFields(
-    const net::X509Certificate& cert,
-    ppapi::PPB_X509Certificate_Fields* fields) {
-  const net::CertPrincipal& issuer = cert.issuer();
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_ISSUER_COMMON_NAME,
-                   base::Value(issuer.common_name));
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_ISSUER_LOCALITY_NAME,
-                   base::Value(issuer.locality_name));
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_ISSUER_STATE_OR_PROVINCE_NAME,
-                   base::Value(issuer.state_or_province_name));
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_ISSUER_COUNTRY_NAME,
-                   base::Value(issuer.country_name));
-  fields->SetField(
-      PP_X509CERTIFICATE_PRIVATE_ISSUER_ORGANIZATION_NAME,
-      base::Value(base::JoinString(issuer.organization_names, "\n")));
-  fields->SetField(
-      PP_X509CERTIFICATE_PRIVATE_ISSUER_ORGANIZATION_UNIT_NAME,
-      base::Value(base::JoinString(issuer.organization_unit_names, "\n")));
-
-  const net::CertPrincipal& subject = cert.subject();
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_SUBJECT_COMMON_NAME,
-                   base::Value(subject.common_name));
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_SUBJECT_LOCALITY_NAME,
-                   base::Value(subject.locality_name));
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_SUBJECT_STATE_OR_PROVINCE_NAME,
-                   base::Value(subject.state_or_province_name));
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_SUBJECT_COUNTRY_NAME,
-                   base::Value(subject.country_name));
-  fields->SetField(
-      PP_X509CERTIFICATE_PRIVATE_SUBJECT_ORGANIZATION_NAME,
-      base::Value(base::JoinString(subject.organization_names, "\n")));
-  fields->SetField(
-      PP_X509CERTIFICATE_PRIVATE_SUBJECT_ORGANIZATION_UNIT_NAME,
-      base::Value(base::JoinString(subject.organization_unit_names, "\n")));
-
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_SERIAL_NUMBER,
-                   base::Value(base::as_byte_span(cert.serial_number())));
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_VALIDITY_NOT_BEFORE,
-                   base::Value(cert.valid_start().InSecondsFSinceUnixEpoch()));
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_VALIDITY_NOT_AFTER,
-                   base::Value(cert.valid_expiry().InSecondsFSinceUnixEpoch()));
-  std::string_view cert_der =
-      net::x509_util::CryptoBufferAsStringPiece(cert.cert_buffer());
-  fields->SetField(PP_X509CERTIFICATE_PRIVATE_RAW,
-                   base::Value(base::as_byte_span(cert_der)));
-  return true;
-}
-
-bool PPB_X509Util_Shared::GetCertificateFields(
-    const char* der,
-    size_t length,
-    ppapi::PPB_X509Certificate_Fields* fields) {
-  scoped_refptr<net::X509Certificate> cert =
-      net::X509Certificate::CreateFromBytes(
-          base::as_bytes(base::span(der, length)));
-  if (!cert)
-    return false;
-  return GetCertificateFields(*cert, fields);
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/private/ppb_x509_util_shared.h b/shared_impl/private/ppb_x509_util_shared.h
deleted file mode 100644
index 984ce6f..0000000
--- a/shared_impl/private/ppb_x509_util_shared.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 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_SHARED_IMPL_PRIVATE_PPB_X509_UTIL_SHARED_H_
-#define PPAPI_SHARED_IMPL_PRIVATE_PPB_X509_UTIL_SHARED_H_
-
-#include "ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h"
-
-namespace net {
-class X509Certificate;
-}
-
-namespace ppapi {
-
-// Contains X509 parsing utilities that are shared between the proxy and the
-// browser.
-class PPAPI_SHARED_EXPORT PPB_X509Util_Shared {
- public:
-  // Extracts the certificate field data from a net::X509Certificate into
-  // PPB_X509Certificate_Fields.
-  static bool GetCertificateFields(const net::X509Certificate& cert,
-                                   ppapi::PPB_X509Certificate_Fields* fields);
-
-  // Extracts the certificate field data from the DER representation of a
-  // certificate into PPB_X509Certificate_Fields.
-  static bool GetCertificateFields(const char* der,
-                                   size_t length,
-                                   ppapi::PPB_X509Certificate_Fields* fields);
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PRIVATE_PPB_X509_UTIL_SHARED_H_
diff --git a/shared_impl/proxy_lock.cc b/shared_impl/proxy_lock.cc
deleted file mode 100644
index 469a0e0..0000000
--- a/shared_impl/proxy_lock.cc
+++ /dev/null
@@ -1,87 +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/shared_impl/proxy_lock.h"
-
-#include "base/lazy_instance.h"
-#include "base/synchronization/lock.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-
-namespace ppapi {
-
-base::LazyInstance<base::Lock>::Leaky g_proxy_lock = LAZY_INSTANCE_INITIALIZER;
-
-bool g_disable_locking = false;
-constinit thread_local bool disable_locking_for_thread = false;
-
-// Simple single-thread deadlock detector for the proxy lock.
-// |true| when the current thread has the lock.
-constinit thread_local bool proxy_locked_on_thread = false;
-
-// static
-base::Lock* ProxyLock::Get() {
-  if (g_disable_locking || disable_locking_for_thread) {
-    return nullptr;
-  }
-  return &g_proxy_lock.Get();
-}
-
-// Functions below should only access the lock via Get to ensure that they don't
-// try to use the lock on the host side of the proxy, where locking is
-// unnecessary and wrong (because we haven't coded the host side to account for
-// locking).
-
-// static
-void ProxyLock::Acquire() NO_THREAD_SAFETY_ANALYSIS {
-  // NO_THREAD_SAFETY_ANALYSIS: Runtime dependent locking.
-  base::Lock* lock = Get();
-  if (lock) {
-    // This thread does not already hold the lock.
-    CHECK(!proxy_locked_on_thread);
-
-    lock->Acquire();
-    proxy_locked_on_thread = true;
-  }
-}
-
-// static
-void ProxyLock::Release() NO_THREAD_SAFETY_ANALYSIS {
-  // NO_THREAD_SAFETY_ANALYSIS: Runtime dependent locking.
-  base::Lock* lock = Get();
-  if (lock) {
-    // This thread currently holds the lock.
-    CHECK(proxy_locked_on_thread);
-
-    proxy_locked_on_thread = false;
-    lock->Release();
-  }
-}
-
-// static
-void ProxyLock::AssertAcquired() {
-  base::Lock* lock = Get();
-  if (lock) {
-    // This thread currently holds the lock.
-    CHECK(proxy_locked_on_thread);
-
-    lock->AssertAcquired();
-  }
-}
-
-// static
-void ProxyLock::DisableLocking() {
-  // Note, we don't DCHECK that this flag isn't already set, because multiple
-  // unit tests may run in succession and all set it.
-  g_disable_locking = true;
-}
-
-ProxyLock::LockingDisablerForTest::LockingDisablerForTest()
-    : resetter_(&disable_locking_for_thread, true) {}
-
-void CallWhileUnlocked(base::OnceClosure closure) {
-  ProxyAutoUnlock lock;
-  std::move(closure).Run();
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/proxy_lock.h b/shared_impl/proxy_lock.h
deleted file mode 100644
index 10381a7..0000000
--- a/shared_impl/proxy_lock.h
+++ /dev/null
@@ -1,446 +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_SHARED_IMPL_PROXY_LOCK_H_
-#define PPAPI_SHARED_IMPL_PROXY_LOCK_H_
-
-#include <memory>
-#include <utility>
-
-#include "base/auto_reset.h"
-#include "base/functional/bind.h"
-#include "base/functional/callback.h"
-#include "base/threading/thread_checker.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace base {
-class Lock;
-}
-
-namespace content {
-class HostGlobals;
-}
-
-namespace ppapi {
-
-// This is the one lock to rule them all for the ppapi proxy. All PPB interface
-// functions that need to be synchronized should lock this lock on entry. This
-// is normally accomplished by using an appropriate Enter RAII object at the
-// beginning of each thunk function.
-//
-// TODO(dmichael): If this turns out to be too slow and contentious, we'll want
-// to use multiple locks. E.g., one for the var tracker, one for the resource
-// tracker, etc.
-class PPAPI_SHARED_EXPORT ProxyLock {
- public:
-  ProxyLock() = delete;
-  ProxyLock(const ProxyLock&) = delete;
-  ProxyLock& operator=(const ProxyLock&) = delete;
-
-  // Return the global ProxyLock. Normally, you should not access this
-  // directly but instead use ProxyAutoLock or ProxyAutoUnlock. But sometimes
-  // you need access to the ProxyLock, for example to create a condition
-  // variable.
-  static base::Lock* Get();
-
-  // Acquire the proxy lock. If it is currently held by another thread, block
-  // until it is available. If the lock has not been set using the 'Set' method,
-  // this operation does nothing. That is the normal case for the host side;
-  // see PluginResourceTracker for where the lock gets set for the out-of-
-  // process plugin case.
-  static void Acquire();
-  // Relinquish the proxy lock. If the lock has not been set, this does nothing.
-  static void Release();
-
-  // Assert that the lock is owned by the current thread (in the plugin
-  // process). Does nothing when running in-process (or in the host process).
-  static void AssertAcquired();
-  static void AssertAcquiredDebugOnly() {
-#ifndef NDEBUG
-    AssertAcquired();
-#endif
-  }
-
-  // We have some unit tests where one thread pretends to be the host and one
-  // pretends to be the plugin. This allows the lock to do nothing on only one
-  // thread to support these tests. See TwoWayTest for more information.
-  class PPAPI_SHARED_EXPORT LockingDisablerForTest {
-   public:
-    LockingDisablerForTest();
-    ~LockingDisablerForTest() = default;
-
-   private:
-    const base::AutoReset<bool> resetter_;
-  };
-
- private:
-  friend class content::HostGlobals;
-  // On the host side, we do not lock. This must be called at most once at
-  // startup, before other threads that may access the ProxyLock have had a
-  // chance to run.
-  static void DisableLocking();
-};
-
-// A simple RAII class for locking the PPAPI proxy lock on entry and releasing
-// on exit. This is for simple interfaces that don't use the 'thunk' system,
-// such as PPB_Var and PPB_Core.
-class ProxyAutoLock {
- public:
-  ProxyAutoLock() { ProxyLock::Acquire(); }
-
-  ProxyAutoLock(const ProxyAutoLock&) = delete;
-  ProxyAutoLock& operator=(const ProxyAutoLock&) = delete;
-
-  ~ProxyAutoLock() { ProxyLock::Release(); }
-};
-
-// The inverse of the above; unlock on construction, lock on destruction. This
-// is useful for calling out to the plugin, when we need to unlock but ensure
-// that we re-acquire the lock when the plugin is returns or raises an
-// exception.
-class ProxyAutoUnlock {
- public:
-  ProxyAutoUnlock() { ProxyLock::Release(); }
-
-  ProxyAutoUnlock(const ProxyAutoUnlock&) = delete;
-  ProxyAutoUnlock& operator=(const ProxyAutoUnlock&) = delete;
-
-  ~ProxyAutoUnlock() { ProxyLock::Acquire(); }
-};
-
-// A set of function template overloads for invoking a function pointer while
-// the ProxyLock is unlocked. This assumes that the luck is held.
-// CallWhileUnlocked unlocks the ProxyLock just before invoking the given
-// function. The lock is immediately re-acquired when the invoked function
-// function returns. CallWhileUnlocked returns whatever the given function
-// returned.
-//
-// Example usage:
-//   *result = CallWhileUnlocked(ppp_input_event_impl_->HandleInputEvent,
-//                               instance,
-//                               resource->pp_resource());
-template <class ReturnType>
-ReturnType CallWhileUnlocked(ReturnType (*function)()) {
-  ProxyAutoUnlock unlock;
-  return function();
-}
-// Note we use 2 types for the params, even though for the most part we expect
-// A1 to match P1. We let the compiler determine if P1 can convert safely to
-// A1. This allows callers to avoid having to do things like
-// const_cast to add const.
-template <class ReturnType, class A1, class P1>
-ReturnType CallWhileUnlocked(ReturnType (*function)(A1), const P1& p1) {
-  ProxyAutoUnlock unlock;
-  return function(p1);
-}
-template <class ReturnType, class A1, class A2, class P1, class P2>
-ReturnType CallWhileUnlocked(ReturnType (*function)(A1, A2),
-                             const P1& p1,
-                             const P2& p2) {
-  ProxyAutoUnlock unlock;
-  return function(p1, p2);
-}
-template <class ReturnType, class A1, class A2, class A3, class P1, class P2,
-          class P3>
-ReturnType CallWhileUnlocked(ReturnType (*function)(A1, A2, A3),
-                             const P1& p1,
-                             const P2& p2,
-                             const P3& p3) {
-  ProxyAutoUnlock unlock;
-  return function(p1, p2, p3);
-}
-template <class ReturnType, class A1, class A2, class A3, class A4, class P1,
-          class P2, class P3, class P4>
-ReturnType CallWhileUnlocked(ReturnType (*function)(A1, A2, A3, A4),
-                             const P1& p1,
-                             const P2& p2,
-                             const P3& p3,
-                             const P4& p4) {
-  ProxyAutoUnlock unlock;
-  return function(p1, p2, p3, p4);
-}
-template <class ReturnType, class A1, class A2, class A3, class A4, class A5,
-          class P1, class P2, class P3, class P4, class P5>
-ReturnType CallWhileUnlocked(ReturnType (*function)(A1, A2, A3, A4, A5),
-                             const P1& p1,
-                             const P2& p2,
-                             const P3& p3,
-                             const P4& p4,
-                             const P5& p5) {
-  ProxyAutoUnlock unlock;
-  return function(p1, p2, p3, p4, p5);
-}
-void PPAPI_SHARED_EXPORT CallWhileUnlocked(base::OnceClosure closure);
-
-namespace internal {
-
-template <typename RunType>
-class RunWhileLockedHelper;
-
-// A helper class to ensure that a callback is always run and destroyed while
-// the ProxyLock is held. A callback that is bound with ref-counted Var or
-// Resource parameters may invoke methods on the VarTracker or the
-// ResourceTracker in its destructor, and these require the ProxyLock.
-template <>
-class RunWhileLockedHelper<void()> {
- public:
-  typedef base::OnceCallback<void()> CallbackType;
-  explicit RunWhileLockedHelper(CallbackType callback)
-      : callback_(std::move(callback)) {
-    // CallWhileLocked and destruction might happen on a different thread from
-    // creation.
-    thread_checker_.DetachFromThread();
-  }
-  static void CallWhileLocked(std::unique_ptr<RunWhileLockedHelper> ptr) {
-    // Bind thread_checker_ to this thread so we can check in the destructor.
-    // *If* the callback gets invoked, it's important that RunWhileLockedHelper
-    // is destroyed on the same thread (see the comments in the destructor).
-    DCHECK(ptr->thread_checker_.CalledOnValidThread());
-    ProxyAutoLock lock;
-
-    // Relax the cross-thread access restriction to non-thread-safe RefCount.
-    // |lock| above protects the access to Resource instances.
-    base::ScopedAllowCrossThreadRefCountAccess
-        allow_cross_thread_ref_count_access;
-
-    {
-      // Use a scope and local Callback to ensure that the callback is cleared
-      // before the lock is released, even in the unlikely event that Run()
-      // throws an exception.
-      CallbackType temp_callback = std::move(ptr->callback_);
-      std::move(temp_callback).Run();
-    }
-  }
-
-  RunWhileLockedHelper(const RunWhileLockedHelper&) = delete;
-  RunWhileLockedHelper& operator=(const RunWhileLockedHelper&) = delete;
-
-  ~RunWhileLockedHelper() {
-    // Check that the Callback is destroyed on the same thread as where
-    // CallWhileLocked happened if CallWhileLocked happened. If we weren't
-    // invoked, thread_checked_ isn't bound to a thread.
-    DCHECK(thread_checker_.CalledOnValidThread());
-    // Here we read callback_ without the lock. This is why the callback must be
-    // destroyed on the same thread where it runs. Note that callback_ will be
-    // NULL if it has already been run via CallWhileLocked. In this case,
-    // there's no need to acquire the lock, because we don't touch any shared
-    // data.
-    if (callback_) {
-      // If the callback was *not* run, we're in a case where the task queue
-      // we got pushed to has been destroyed (e.g., the thread is shut down and
-      // its MessageLoop destroyed before all tasks have run.)
-      //
-      // We still need to have the lock when we destroy the callback:
-      // - Because Resource and Var inherit RefCounted (not
-      //   ThreadSafeRefCounted).
-      // - Because if the callback owns the last ref to a Resource, it will
-      //   call the ResourceTracker and also the Resource's destructor, which
-      //   both require the ProxyLock.
-      ProxyAutoLock lock;
-
-      // Relax the cross-thread access restriction to non-thread-safe RefCount.
-      // |lock| above protects the access to Resource instances.
-      base::ScopedAllowCrossThreadRefCountAccess
-          allow_cross_thread_ref_count_access;
-
-      callback_.Reset();
-    }
-  }
-
- private:
-  CallbackType callback_;
-
-  // Used to ensure that the Callback is run and deleted on the same thread.
-  base::ThreadChecker thread_checker_;
-};
-
-template <typename P1>
-class RunWhileLockedHelper<void(P1)> {
- public:
-  typedef base::OnceCallback<void(P1)> CallbackType;
-  explicit RunWhileLockedHelper(CallbackType callback)
-      : callback_(std::move(callback)) {
-    thread_checker_.DetachFromThread();
-  }
-  static void CallWhileLocked(std::unique_ptr<RunWhileLockedHelper> ptr,
-                              P1 p1) {
-    DCHECK(ptr->thread_checker_.CalledOnValidThread());
-    ProxyAutoLock lock;
-    // Relax the cross-thread access restriction to non-thread-safe RefCount.
-    // |lock| above protects the access to Resource instances.
-    base::ScopedAllowCrossThreadRefCountAccess
-        allow_cross_thread_ref_count_access;
-    {
-      CallbackType temp_callback = std::move(ptr->callback_);
-      std::move(temp_callback).Run(p1);
-    }
-  }
-
-  RunWhileLockedHelper(const RunWhileLockedHelper&) = delete;
-  RunWhileLockedHelper& operator=(const RunWhileLockedHelper&) = delete;
-
-  ~RunWhileLockedHelper() {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    if (callback_) {
-      ProxyAutoLock lock;
-      // Relax the cross-thread access restriction to non-thread-safe RefCount.
-      // |lock| above protects the access to Resource instances.
-      base::ScopedAllowCrossThreadRefCountAccess
-          allow_cross_thread_ref_count_access;
-      callback_.Reset();
-    }
-  }
-
- private:
-  CallbackType callback_;
-  base::ThreadChecker thread_checker_;
-};
-
-template <typename P1, typename P2>
-class RunWhileLockedHelper<void(P1, P2)> {
- public:
-  typedef base::OnceCallback<void(P1, P2)> CallbackType;
-  explicit RunWhileLockedHelper(CallbackType callback)
-      : callback_(std::move(callback)) {
-    thread_checker_.DetachFromThread();
-  }
-  static void CallWhileLocked(std::unique_ptr<RunWhileLockedHelper> ptr,
-                              P1 p1,
-                              P2 p2) {
-    DCHECK(ptr->thread_checker_.CalledOnValidThread());
-    ProxyAutoLock lock;
-    // Relax the cross-thread access restriction to non-thread-safe RefCount.
-    // |lock| above protects the access to Resource instances.
-    base::ScopedAllowCrossThreadRefCountAccess
-        allow_cross_thread_ref_count_access;
-    {
-      CallbackType temp_callback = std::move(ptr->callback_);
-      std::move(temp_callback).Run(p1, p2);
-    }
-  }
-
-  RunWhileLockedHelper(const RunWhileLockedHelper&) = delete;
-  RunWhileLockedHelper& operator=(const RunWhileLockedHelper&) = delete;
-
-  ~RunWhileLockedHelper() {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    if (callback_) {
-      ProxyAutoLock lock;
-      // Relax the cross-thread access restriction to non-thread-safe RefCount.
-      // |lock| above protects the access to Resource instances.
-      base::ScopedAllowCrossThreadRefCountAccess
-          allow_cross_thread_ref_count_access;
-      callback_.Reset();
-    }
-  }
-
- private:
-  CallbackType callback_;
-  base::ThreadChecker thread_checker_;
-};
-
-template <typename P1, typename P2, typename P3>
-class RunWhileLockedHelper<void(P1, P2, P3)> {
- public:
-  typedef base::OnceCallback<void(P1, P2, P3)> CallbackType;
-  explicit RunWhileLockedHelper(CallbackType callback)
-      : callback_(std::move(callback)) {
-    thread_checker_.DetachFromThread();
-  }
-  static void CallWhileLocked(std::unique_ptr<RunWhileLockedHelper> ptr,
-                              P1 p1,
-                              P2 p2,
-                              P3 p3) {
-    DCHECK(ptr->thread_checker_.CalledOnValidThread());
-    ProxyAutoLock lock;
-    // Relax the cross-thread access restriction to non-thread-safe RefCount.
-    // |lock| above protects the access to Resource instances.
-    base::ScopedAllowCrossThreadRefCountAccess
-        allow_cross_thread_ref_count_access;
-    {
-      CallbackType temp_callback = std::move(ptr->callback_);
-      std::move(temp_callback).Run(p1, p2, p3);
-    }
-  }
-
-  RunWhileLockedHelper(const RunWhileLockedHelper&) = delete;
-  RunWhileLockedHelper& operator=(const RunWhileLockedHelper&) = delete;
-
-  ~RunWhileLockedHelper() {
-    DCHECK(thread_checker_.CalledOnValidThread());
-    if (callback_) {
-      ProxyAutoLock lock;
-      // Relax the cross-thread access restriction to non-thread-safe RefCount.
-      // |lock| above protects the access to Resource instances.
-      base::ScopedAllowCrossThreadRefCountAccess
-          allow_cross_thread_ref_count_access;
-      callback_.Reset();
-    }
-  }
-
- private:
-  CallbackType callback_;
-  base::ThreadChecker thread_checker_;
-};
-
-}  // namespace internal
-
-// RunWhileLocked wraps the given Callback in a new Callback that, when invoked:
-//  1) Locks the ProxyLock.
-//  2) Runs the original Callback (forwarding arguments, if any).
-//  3) Clears the original Callback (while the lock is held).
-//  4) Unlocks the ProxyLock.
-// Note that it's important that the callback is cleared in step (3), in case
-// clearing the Callback causes a destructor (e.g., for a Resource) to run,
-// which should hold the ProxyLock to avoid data races.
-//
-// This is for cases where you want to run a task or store a Callback, but you
-// want to ensure that the ProxyLock is acquired for the duration of the task
-// that the Callback runs.
-// EXAMPLE USAGE:
-// GetMainThreadMessageLoop()->PostDelayedTask(
-//     FROM_HERE,
-//     RunWhileLocked(
-//         base::BindOnce(&CallbackWrapper, std::move(callback), result)),
-//     delay_in_ms);
-//
-// In normal usage like the above, this all should "just work". However, if you
-// do something unusual, you may get a runtime crash due to deadlock. Here are
-// the ways that the returned Callback must be used to avoid a deadlock:
-// (1) copied to another Callback. After that, the original callback can be
-// destroyed with or without the proxy lock acquired, while the newly assigned
-// callback has to conform to these same restrictions. Or
-// (2) run without proxy lock acquired (e.g., being posted to a MessageLoop
-// and run there). The callback must be destroyed on the same thread where it
-// was run (but can be destroyed with or without the proxy lock acquired). Or
-// (3) destroyed without the proxy lock acquired.
-template <class FunctionType>
-inline base::OnceCallback<FunctionType> RunWhileLocked(
-    base::OnceCallback<FunctionType> callback) {
-  // NOTE: the reason we use "scoped_ptr" here instead of letting the callback
-  // own it via base::Owned is kind of subtle. Imagine for the moment that we
-  // call RunWhileLocked without the ProxyLock:
-  // {
-  //   base::OnceCallback<void ()> local_callback = base::BinOnced(&Foo);
-  //   some_task_runner.PostTask(FROM_HERE,
-  //                             RunWhileLocked(std::move(local_callback)));
-  // }
-  // In this case, since we don't have a lock synchronizing us, it's possible
-  // for the callback to run on the other thread before we return and destroy
-  // |local_callback|. The important thing here is that even though the other
-  // thread gets a copy of the callback, the internal "BindState" of the
-  // callback is refcounted and shared between all copies of the callback. So
-  // in that case, if we used base::Owned, we might delete RunWhileLockedHelper
-  // on this thread, which will violate the RunWhileLockedHelper's assumption
-  // that it is destroyed on the same thread where it is run.
-  std::unique_ptr<internal::RunWhileLockedHelper<FunctionType>> helper(
-      new internal::RunWhileLockedHelper<FunctionType>(std::move(callback)));
-  return base::BindOnce(
-      &internal::RunWhileLockedHelper<FunctionType>::CallWhileLocked,
-      std::move(helper));
-}
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_PROXY_LOCK_H_
diff --git a/shared_impl/resource.cc b/shared_impl/resource.cc
deleted file mode 100644
index a964276..0000000
--- a/shared_impl/resource.cc
+++ /dev/null
@@ -1,90 +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/shared_impl/resource.h"
-
-#include "base/check.h"
-#include "base/notreached.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-
-namespace ppapi {
-
-Resource::Resource(ResourceObjectType type, PP_Instance instance)
-    : host_resource_(HostResource::MakeInstanceOnly(instance)) {
-  // The instance should be valid (nonzero).
-  DCHECK(instance);
-
-  pp_resource_ = PpapiGlobals::Get()->GetResourceTracker()->AddResource(this);
-  if (type == OBJECT_IS_IMPL) {
-    // For the in-process case, the host resource and resource are the same.
-    //
-    // Note that we need to have set the instance above (in the initializer
-    // list) since AddResource needs our instance() getter to work, and that
-    // goes through the host resource. When we get the "real" resource ID,
-    // we re-set the host_resource.
-    host_resource_.SetHostResource(instance, pp_resource_);
-  }
-}
-
-Resource::Resource(ResourceObjectType type, const HostResource& host_resource)
-    : host_resource_(host_resource) {
-  pp_resource_ = PpapiGlobals::Get()->GetResourceTracker()->AddResource(this);
-  if (type == OBJECT_IS_IMPL) {
-    // When using this constructor for the implementation, the resource ID
-    // should not have been passed in.
-    DCHECK(host_resource_.host_resource() == 0);
-
-    // See previous constructor.
-    host_resource_.SetHostResource(host_resource.instance(), pp_resource_);
-  }
-}
-
-Resource::Resource(Untracked) {
-  pp_resource_ = PpapiGlobals::Get()->GetResourceTracker()->AddResource(this);
-}
-
-Resource::~Resource() { RemoveFromResourceTracker(); }
-
-PP_Resource Resource::GetReference() {
-  PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(pp_resource());
-  return pp_resource();
-}
-
-void Resource::NotifyLastPluginRefWasDeleted() {
-  // Notify subclasses.
-  LastPluginRefWasDeleted();
-}
-
-void Resource::NotifyInstanceWasDeleted() {
-  // Hold a reference, because InstanceWasDeleted() may cause us to be
-  // destroyed.
-  scoped_refptr<Resource> keep_alive(this);
-
-  // Notify subclasses.
-  InstanceWasDeleted();
-
-  host_resource_ = HostResource();
-}
-
-void Resource::OnReplyReceived(const proxy::ResourceMessageReplyParams& params,
-                               const IPC::Message& msg) {
-  NOTREACHED();
-}
-
-void Resource::Log(PP_LogLevel level, const std::string& message) {
-  PpapiGlobals::Get()->LogWithSource(
-      pp_instance(), level, std::string(), message);
-}
-
-void Resource::RemoveFromResourceTracker() {
-  PpapiGlobals::Get()->GetResourceTracker()->RemoveResource(this);
-}
-
-#define DEFINE_TYPE_GETTER(RESOURCE) \
-  thunk::RESOURCE* Resource::As##RESOURCE() { return NULL; }
-FOR_ALL_PPAPI_RESOURCE_APIS(DEFINE_TYPE_GETTER)
-#undef DEFINE_TYPE_GETTER
-
-}  // namespace ppapi
diff --git a/shared_impl/resource.h b/shared_impl/resource.h
deleted file mode 100644
index d9b7429..0000000
--- a/shared_impl/resource.h
+++ /dev/null
@@ -1,245 +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_SHARED_IMPL_RESOURCE_H_
-#define PPAPI_SHARED_IMPL_RESOURCE_H_
-
-#include <stddef.h>  // For NULL.
-
-#include <string>
-
-#include "base/memory/ref_counted.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/ppb_console.h"
-#include "ppapi/shared_impl/host_resource.h"
-
-// All resource types should be added here. This implements our hand-rolled
-// RTTI system since we don't compile with "real" RTTI.
-#define FOR_ALL_PPAPI_RESOURCE_APIS(F)  \
-  F(PPB_Audio_API)                      \
-  F(PPB_AudioBuffer_API)                \
-  F(PPB_AudioConfig_API)                \
-  F(PPB_AudioInput_API)                 \
-  F(PPB_AudioOutput_API)                \
-  F(PPB_AudioTrusted_API)               \
-  F(PPB_BrowserFont_Singleton_API)      \
-  F(PPB_BrowserFont_Trusted_API)        \
-  F(PPB_Buffer_API)                     \
-  F(PPB_CameraCapabilities_API)         \
-  F(PPB_CameraDevice_API)               \
-  F(PPB_DeviceRef_API)                  \
-  F(PPB_Ext_CrxFileSystem_Private_API)  \
-  F(PPB_FileChooser_API)                \
-  F(PPB_FileIO_API)                     \
-  F(PPB_FileRef_API)                    \
-  F(PPB_FileSystem_API)                 \
-  F(PPB_Gamepad_API)                    \
-  F(PPB_Graphics2D_API)                 \
-  F(PPB_Graphics3D_API)                 \
-  F(PPB_HostResolver_API)               \
-  F(PPB_HostResolver_Private_API)       \
-  F(PPB_ImageData_API)                  \
-  F(PPB_InputEvent_API)                 \
-  F(PPB_IsolatedFileSystem_Private_API) \
-  F(PPB_MediaStreamAudioTrack_API)      \
-  F(PPB_MediaStreamVideoTrack_API)      \
-  F(PPB_MessageLoop_API)                \
-  F(PPB_NetAddress_API)                 \
-  F(PPB_NetworkList_API)                \
-  F(PPB_NetworkMonitor_API)             \
-  F(PPB_NetworkProxy_API)               \
-  F(PPB_Printing_API)                   \
-  F(PPB_Scrollbar_API)                  \
-  F(PPB_TCPServerSocket_Private_API)    \
-  F(PPB_TCPSocket_API)                  \
-  F(PPB_TCPSocket_Private_API)          \
-  F(PPB_UDPSocket_API)                  \
-  F(PPB_UDPSocket_Private_API)          \
-  F(PPB_UMA_Singleton_API)              \
-  F(PPB_URLLoader_API)                  \
-  F(PPB_URLRequestInfo_API)             \
-  F(PPB_URLResponseInfo_API)            \
-  F(PPB_VideoCapture_API)               \
-  F(PPB_VideoDecoder_API)               \
-  F(PPB_VideoDecoder_Dev_API)           \
-  F(PPB_VideoEncoder_API)               \
-  F(PPB_VideoFrame_API)                 \
-  F(PPB_VideoLayer_API)                 \
-  F(PPB_View_API)                       \
-  F(PPB_VpnProvider_API)                \
-  F(PPB_WebSocket_API)                  \
-  F(PPB_Widget_API)                     \
-  F(PPB_X509Certificate_Private_API)
-
-namespace IPC {
-class Message;
-}
-
-namespace ppapi {
-
-// Normally we shouldn't reply on proxy here, but this is to support
-// OnReplyReceived. See that comment.
-namespace proxy {
-class ResourceMessageReplyParams;
-}
-
-// Forward declare all the resource APIs.
-namespace thunk {
-#define DECLARE_RESOURCE_CLASS(RESOURCE) class RESOURCE;
-FOR_ALL_PPAPI_RESOURCE_APIS(DECLARE_RESOURCE_CLASS)
-#undef DECLARE_RESOURCE_CLASS
-}  // namespace thunk
-
-// Resources have slightly different registration behaviors when the're an
-// in-process ("impl") resource in the host (renderer) process, or when they're
-// a proxied resource in the plugin process. This enum differentiates those
-// cases.
-enum ResourceObjectType { OBJECT_IS_IMPL, OBJECT_IS_PROXY };
-
-class PPAPI_SHARED_EXPORT Resource
-    : public base::RefCountedThreadSafe<Resource> {
- public:
-  Resource() = delete;
-
-  // Constructor for impl and non-proxied, instance-only objects.
-  //
-  // For constructing "impl" (non-proxied) objects, this just takes the
-  // associated instance, and generates a new resource ID. The host resource
-  // will be the same as the newly-generated resource ID. For all objects in
-  // the renderer (host) process, you'll use this constructor and call it with
-  // OBJECT_IS_IMPL.
-  //
-  // For proxied objects, this will create an "instance-only" object which
-  // lives only in the plugin and doesn't have a corresponding object in the
-  // host. If you have a host resource ID, use the constructor below which
-  // takes that HostResource value.
-  Resource(ResourceObjectType type, PP_Instance instance);
-
-  // For constructing given a host resource.
-  //
-  // For OBJECT_IS_PROXY objects, this takes the resource generated in the host
-  // side, stores it, and allocates a "local" resource ID for use in the
-  // current process.
-  //
-  // For OBJECT_IS_IMPL, the host resource ID must be 0, since there should be
-  // no host resource generated (impl objects should generate their own). The
-  // reason for supporting this constructor at all for the IMPL case is that
-  // some shared objects use a host resource for both modes to keep things the
-  // same.
-  Resource(ResourceObjectType type, const HostResource& host_resource);
-
-  // Constructor for untracked objects. These have no associated instance. Use
-  // this with care, as the object is likely to persist for the lifetime of the
-  // plugin module. This is appropriate in some rare cases, like the
-  // PPB_MessageLoop resource for the main thread.
-  struct Untracked {};
-  explicit Resource(Untracked);
-
-  Resource(const Resource&) = delete;
-  Resource& operator=(const Resource&) = delete;
-
-  virtual ~Resource();
-
-  PP_Instance pp_instance() const { return host_resource_.instance(); }
-
-  // Returns the resource ID for this object in the current process without
-  // adjusting the refcount. See also GetReference().
-  PP_Resource pp_resource() const { return pp_resource_; }
-
-  // Returns the host resource which identifies the resource in the host side
-  // of the process in the case of proxied objects. For in-process objects,
-  // this just identifies the in-process resource ID & instance.
-  const HostResource& host_resource() { return host_resource_; }
-
-  // Adds a ref on behalf of the plugin and returns the resource ID. This is
-  // normally used when returning a resource to the plugin, where it's
-  // expecting the returned resource to have ownership of a ref passed.
-  // See also pp_resource() to avoid the AddRef.
-  PP_Resource GetReference();
-
-  // Called by the resource tracker when the last reference from the plugin
-  // was released. For a few types of resources, the resource could still
-  // stay alive if there are other references held by the PPAPI implementation
-  // (possibly for callbacks and things).
-  //
-  // Note that subclasses except PluginResource should override
-  // LastPluginRefWasDeleted() to be notified.
-  virtual void NotifyLastPluginRefWasDeleted();
-
-  // Called by the resource tracker when the instance is going away but the
-  // object is still alive (this is not the common case, since it requires
-  // something in the implementation to be keeping a ref that keeps the
-  // resource alive.
-  //
-  // You will want to override this if your resource does some kind of
-  // background processing (like maybe network loads) on behalf of the plugin
-  // and you want to stop that when the plugin is deleted.
-  //
-  // Note that subclasses except PluginResource should override
-  // InstanceWasDeleted() to be notified.
-  virtual void NotifyInstanceWasDeleted();
-
-// Dynamic casting for this object. Returns the pointer to the given type if
-// it's supported. Derived classes override the functions they support to
-// return the interface.
-#define DEFINE_TYPE_GETTER(RESOURCE) virtual thunk::RESOURCE* As##RESOURCE();
-  FOR_ALL_PPAPI_RESOURCE_APIS(DEFINE_TYPE_GETTER)
-#undef DEFINE_TYPE_GETTER
-
-  // Template-based dynamic casting. See specializations below. This is
-  // unimplemented for the default case. This way, for anything that's not a
-  // resource (or if a developer forgets to add the resource to the list in
-  // this file), the result is a linker error.
-  template <typename T>
-  T* GetAs();
-
-  // Called when a PpapiPluginMsg_ResourceReply reply is received for a
-  // previous CallRenderer. The message is the nested reply message, which may
-  // be an empty message (depending on what the host sends).
-  //
-  // The default implementation will assert (if you send a request, you should
-  // override this function).
-  //
-  // (This function would make more conceptual sense on PluginResource but we
-  // need to call this function from general code that doesn't know how to
-  // distinguish the classes.)
-  virtual void OnReplyReceived(const proxy::ResourceMessageReplyParams& params,
-                               const IPC::Message& msg);
-
- protected:
-  // Logs a message to the console from this resource.
-  void Log(PP_LogLevel level, const std::string& message);
-
-  // Removes the resource from the ResourceTracker's tables. This normally
-  // happens as part of Resource destruction, but if a subclass destructor
-  // has a risk of re-entering destruction via the ResourceTracker, it can
-  // call this explicitly to get rid of the table entry before continuing
-  // with the destruction. If the resource is not in the ResourceTracker's
-  // tables, silently does nothing. See http://crbug.com/159429.
-  void RemoveFromResourceTracker();
-
-  // Notifications for subclasses.
-  virtual void LastPluginRefWasDeleted() {}
-  virtual void InstanceWasDeleted() {}
-
- private:
-  // See the getters above.
-  PP_Resource pp_resource_;
-  HostResource host_resource_;
-};
-
-// Template-based dynamic casting. These specializations forward to the
-// AsXXX virtual functions to return whether the given type is supported.
-#define DEFINE_RESOURCE_CAST(RESOURCE)        \
-  template <>                                 \
-  inline thunk::RESOURCE* Resource::GetAs() { \
-    return As##RESOURCE();                    \
-  }
-FOR_ALL_PPAPI_RESOURCE_APIS(DEFINE_RESOURCE_CAST)
-#undef DEFINE_RESOURCE_CAST
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_RESOURCE_H_
diff --git a/shared_impl/resource_tracker.cc b/shared_impl/resource_tracker.cc
deleted file mode 100644
index 2f32c36..0000000
--- a/shared_impl/resource_tracker.cc
+++ /dev/null
@@ -1,265 +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/shared_impl/resource_tracker.h"
-
-#include <memory>
-
-#include "base/compiler_specific.h"
-#include "base/functional/bind.h"
-#include "base/logging.h"
-#include "base/memory/ptr_util.h"
-#include "ppapi/shared_impl/callback_tracker.h"
-#include "ppapi/shared_impl/id_assignment.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource.h"
-
-namespace ppapi {
-
-ResourceTracker::ResourceTracker(ThreadMode thread_mode)
-    : last_resource_value_(0) {
-  if (thread_mode == SINGLE_THREADED)
-    thread_checker_ = std::make_unique<base::ThreadChecker>();
-}
-
-ResourceTracker::~ResourceTracker() {}
-
-void ResourceTracker::CheckThreadingPreconditions() const {
-  DCHECK(!thread_checker_ || thread_checker_->CalledOnValidThread());
-#ifndef NDEBUG
-  ProxyLock::AssertAcquired();
-#endif
-}
-
-Resource* ResourceTracker::GetResource(PP_Resource res) const {
-  CheckThreadingPreconditions();
-  ResourceMap::const_iterator i = live_resources_.find(res);
-  if (i == live_resources_.end())
-    return NULL;
-  return i->second.first;
-}
-
-void ResourceTracker::AddRefResource(PP_Resource res) {
-  CheckThreadingPreconditions();
-  DLOG_IF(ERROR, !CheckIdType(res, PP_ID_TYPE_RESOURCE))
-      << res << " is not a PP_Resource.";
-
-  DCHECK(CanOperateOnResource(res));
-
-  ResourceMap::iterator i = live_resources_.find(res);
-  if (i == live_resources_.end())
-    return;
-
-  // Prevent overflow of refcount.
-  if (i->second.second ==
-      std::numeric_limits<ResourceAndRefCount::second_type>::max())
-    return;
-
-  // When we go from 0 to 1 plugin ref count, keep an additional "real" ref
-  // on its behalf.
-  if (i->second.second == 0)
-    i->second.first->AddRef();
-
-  i->second.second++;
-  return;
-}
-
-void ResourceTracker::ReleaseResource(PP_Resource res) {
-  CheckThreadingPreconditions();
-  DLOG_IF(ERROR, !CheckIdType(res, PP_ID_TYPE_RESOURCE))
-      << res << " is not a PP_Resource.";
-
-  DCHECK(CanOperateOnResource(res));
-
-  ResourceMap::iterator i = live_resources_.find(res);
-  if (i == live_resources_.end())
-    return;
-
-  // Prevent underflow of refcount.
-  if (i->second.second == 0)
-    return;
-
-  i->second.second--;
-  if (i->second.second == 0) {
-    LastPluginRefWasDeleted(i->second.first);
-
-    // When we go from 1 to 0 plugin ref count, free the additional "real" ref
-    // on its behalf. THIS WILL MOST LIKELY RELEASE THE OBJECT AND REMOVE IT
-    // FROM OUR LIST.
-    i->second.first->Release();
-  }
-}
-
-void ResourceTracker::DidCreateInstance(PP_Instance instance) {
-  CheckThreadingPreconditions();
-  // Due to the infrastructure of some tests, the instance is registered
-  // twice in a few cases. It would be nice not to do that and assert here
-  // instead.
-  if (instance_map_.find(instance) != instance_map_.end())
-    return;
-  instance_map_[instance] = base::WrapUnique(new InstanceData);
-}
-
-void ResourceTracker::DidDeleteInstance(PP_Instance instance) {
-  CheckThreadingPreconditions();
-  InstanceMap::iterator found_instance = instance_map_.find(instance);
-
-  // Due to the infrastructure of some tests, the instance is unregistered
-  // twice in a few cases. It would be nice not to do that and assert here
-  // instead.
-  if (found_instance == instance_map_.end())
-    return;
-
-  InstanceData& data = *found_instance->second;
-
-  // Force release all plugin references to resources associated with the
-  // deleted instance. Make a copy since as we iterate through them, each one
-  // will remove itself from the tracking info individually.
-  ResourceSet to_delete = data.resources;
-  ResourceSet::iterator cur = to_delete.begin();
-  while (cur != to_delete.end()) {
-    // Note that it's remotely possible for the object to already be deleted
-    // from the live resources. One case is if a resource object is holding
-    // the last ref to another. When we release the first one, it will release
-    // the second one. So the second one will be gone when we eventually get
-    // to it.
-    ResourceMap::iterator found_resource = live_resources_.find(*cur);
-    if (found_resource != live_resources_.end()) {
-      Resource* resource = found_resource->second.first;
-      if (found_resource->second.second > 0) {
-        LastPluginRefWasDeleted(resource);
-        found_resource->second.second = 0;
-
-        // This will most likely delete the resource object and remove it
-        // from the live_resources_ list.
-        resource->Release();
-      }
-    }
-
-    cur++;
-  }
-
-  // In general the above pass will delete all the resources and there won't
-  // be any left in the map. However, if parts of the implementation are still
-  // holding on to internal refs, we need to tell them that the instance is
-  // gone.
-  to_delete = data.resources;
-  cur = to_delete.begin();
-  while (cur != to_delete.end()) {
-    ResourceMap::iterator found_resource = live_resources_.find(*cur);
-    if (found_resource != live_resources_.end())
-      found_resource->second.first->NotifyInstanceWasDeleted();
-    cur++;
-  }
-
-  instance_map_.erase(instance);
-}
-
-int ResourceTracker::GetLiveObjectsForInstance(PP_Instance instance) const {
-  CheckThreadingPreconditions();
-  InstanceMap::const_iterator found = instance_map_.find(instance);
-  if (found == instance_map_.end())
-    return 0;
-  return static_cast<int>(found->second->resources.size());
-}
-
-void ResourceTracker::UseOddResourceValueInDebugMode() {
-#if !defined(NDEBUG)
-  DCHECK_EQ(0, last_resource_value_);
-
-  ++last_resource_value_;
-#endif
-}
-
-PP_Resource ResourceTracker::AddResource(Resource* object) {
-  CheckThreadingPreconditions();
-  // If the plugin manages to create too many resources, don't do crazy stuff.
-  if (last_resource_value_ >= kMaxPPId)
-    return 0;
-
-  // Allocate an ID. Note there's a rare error condition below that means we
-  // could end up not using |new_id|, but that's harmless.
-  PP_Resource new_id = MakeTypedId(GetNextResourceValue(), PP_ID_TYPE_RESOURCE);
-
-  // Some objects have a 0 instance, meaning they aren't associated with any
-  // instance, so they won't be in |instance_map_|. This is (as of this writing)
-  // only true of the PPB_MessageLoop resource for the main thread.
-  if (object->pp_instance()) {
-    InstanceMap::iterator found = instance_map_.find(object->pp_instance());
-    if (found == instance_map_.end()) {
-      // If you hit this, it's likely somebody forgot to call DidCreateInstance,
-      // the resource was created with an invalid PP_Instance, or the renderer
-      // side tried to create a resource for a plugin that crashed/exited. This
-      // could happen for OOP plugins where due to reentrancies in context of
-      // outgoing sync calls the renderer can send events after a plugin has
-      // exited.
-      VLOG(1) << "Failed to find plugin instance in instance map";
-      return 0;
-    }
-    found->second->resources.insert(new_id);
-  }
-
-  live_resources_[new_id] = ResourceAndRefCount(object, 0);
-  return new_id;
-}
-
-void ResourceTracker::RemoveResource(Resource* object) {
-  CheckThreadingPreconditions();
-  PP_Resource pp_resource = object->pp_resource();
-  InstanceMap::iterator found = instance_map_.find(object->pp_instance());
-  if (found != instance_map_.end())
-    found->second->resources.erase(pp_resource);
-  live_resources_.erase(pp_resource);
-}
-
-void ResourceTracker::LastPluginRefWasDeleted(Resource* object) {
-  // Bug http://crbug.com/134611 indicates that sometimes the resource tracker
-  // is null here. This should never be the case since if we have a resource in
-  // the tracker, it should always have a valid instance associated with it
-  // (except for the resource for the main thread's message loop, which has
-  // instance set to 0).
-  // As a result, we do some CHECKs here to see what types of problems the
-  // instance might have before dispatching.
-  //
-  // TODO(brettw) remove these checks when this bug is no longer relevant.
-  // Note, we do an imperfect check here; this might be a loop that's not the
-  // main one.
-  const bool is_message_loop = (object->AsPPB_MessageLoop_API() != NULL);
-  CHECK(object->pp_instance() || is_message_loop);
-  CallbackTracker* callback_tracker =
-      PpapiGlobals::Get()->GetCallbackTrackerForInstance(object->pp_instance());
-  CHECK(callback_tracker || is_message_loop);
-  if (callback_tracker)
-    callback_tracker->PostAbortForResource(object->pp_resource());
-  object->NotifyLastPluginRefWasDeleted();
-}
-
-int32_t ResourceTracker::GetNextResourceValue() {
-#if defined(NDEBUG)
-  return ++last_resource_value_;
-#else
-  // In debug mode, the least significant bit indicates which side (renderer
-  // or plugin process) created the resource. Increment by 2 so it's always the
-  // same.
-  last_resource_value_ += 2;
-  return last_resource_value_;
-#endif
-}
-
-bool ResourceTracker::CanOperateOnResource(PP_Resource res) {
-#if defined(NDEBUG)
-  return true;
-#else
-  // The invalid PP_Resource value could appear at both sides.
-  if (res == 0)
-    return true;
-
-  // Skipping the type bits, the least significant bit of |res| should be the
-  // same as that of |last_resource_value_|.
-  return ((res >> kPPIdTypeBits) & 1) == (last_resource_value_ & 1);
-#endif
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/resource_tracker.h b/shared_impl/resource_tracker.h
deleted file mode 100644
index 097563a..0000000
--- a/shared_impl/resource_tracker.h
+++ /dev/null
@@ -1,142 +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_SHARED_IMPL_RESOURCE_TRACKER_H_
-#define PPAPI_SHARED_IMPL_RESOURCE_TRACKER_H_
-
-#include <stdint.h>
-
-#include <memory>
-#include <set>
-#include <unordered_map>
-
-#include "base/memory/weak_ptr.h"
-#include "base/threading/thread_checker.h"
-#include "base/threading/thread_checker_impl.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-class Resource;
-
-class PPAPI_SHARED_EXPORT ResourceTracker {
- public:
-  // A SINGLE_THREADED ResourceTracker will use a thread-checker to make sure
-  // it's always invoked on the same thread on which it was constructed. A
-  // THREAD_SAFE ResourceTracker will check that the ProxyLock is held. See
-  // CheckThreadingPreconditions() for more details.
-  enum ThreadMode { SINGLE_THREADED, THREAD_SAFE };
-  explicit ResourceTracker(ThreadMode thread_mode);
-
-  ResourceTracker(const ResourceTracker&) = delete;
-  ResourceTracker& operator=(const ResourceTracker&) = delete;
-
-  virtual ~ResourceTracker();
-
-  // The returned pointer will be NULL if there is no resource. The reference
-  // count of the resource is unaffected.
-  Resource* GetResource(PP_Resource res) const;
-
-  // Takes a reference on the given resource.
-  // Do not call this method on on the host side for resources backed by a
-  // ResourceHost.
-  void AddRefResource(PP_Resource res);
-
-  // Releases a reference on the given resource.
-  // Do not call this method on on the host side for resources backed by a
-  // ResourceHost.
-  void ReleaseResource(PP_Resource res);
-
-  // Notifies the tracker that a new instance has been created. This must be
-  // called before creating any resources associated with the instance.
-  void DidCreateInstance(PP_Instance instance);
-
-  // Called when an instance is being deleted. All plugin refs for the
-  // associated resources will be force freed, and the resources (if they still
-  // exist) will be disassociated from the instance.
-  void DidDeleteInstance(PP_Instance instance);
-
-  // Returns the number of resources associated with the given instance.
-  // Returns 0 if the instance isn't known.
-  int GetLiveObjectsForInstance(PP_Instance instance) const;
-
- protected:
-  // This calls AddResource and RemoveResource.
-  friend class Resource;
-
-  // On the host-side, make sure we are called on the right thread. On the
-  // plugin side, make sure we have the proxy lock.
-  void CheckThreadingPreconditions() const;
-
-  // This method is called by PluginResourceTracker's constructor so that in
-  // debug mode PP_Resources from the plugin process always have odd values
-  // (ignoring the type bits), while PP_Resources from the renderer process have
-  // even values.
-  // This allows us to check that resource refs aren't added or released on the
-  // wrong side.
-  void UseOddResourceValueInDebugMode();
-
-  // Adds the given resource to the tracker, associating it with the instance
-  // stored in the resource object. The new resource ID is returned, and the
-  // resource will have 0 plugin refcount. This is called by the resource
-  // constructor.
-  //
-  // Returns 0 if the resource could not be added.
-  virtual PP_Resource AddResource(Resource* object);
-
-  // The opposite of AddResource, this removes the tracking information for
-  // the given resource. It's called from the resource destructor.
-  virtual void RemoveResource(Resource* object);
-
- private:
-  // Calls NotifyLastPluginRefWasDeleted on the given resource object and
-  // cancels pending callbacks for the resource.
-  void LastPluginRefWasDeleted(Resource* object);
-
-  int32_t GetNextResourceValue();
-
-  // In debug mode, checks whether |res| comes from the same resource tracker.
-  bool CanOperateOnResource(PP_Resource res);
-
-  typedef std::set<PP_Resource> ResourceSet;
-
-  struct InstanceData {
-    // Lists all resources associated with the given instance as non-owning
-    // pointers. This allows us to notify those resources that the instance is
-    // going away (otherwise, they may crash if they outlive the instance).
-    ResourceSet resources;
-  };
-  typedef std::unordered_map<PP_Instance, std::unique_ptr<InstanceData>>
-      InstanceMap;
-
-  InstanceMap instance_map_;
-
-  // For each PP_Resource, keep the object pointer and a plugin use count.
-  // This use count is different then Resource object's RefCount, and is
-  // manipulated using this AddRefResource/UnrefResource. When the plugin use
-  // count is positive, we keep an extra ref on the Resource on
-  // behalf of the plugin. When it drops to 0, we free that ref, keeping
-  // the resource in the list.
-  //
-  // A resource will be in this list as long as the object is alive.
-  typedef std::pair<Resource*, int> ResourceAndRefCount;
-  typedef std::unordered_map<PP_Resource, ResourceAndRefCount> ResourceMap;
-  ResourceMap live_resources_;
-
-  int32_t last_resource_value_;
-
-  // On the host side, we want to check that we are only called on the main
-  // thread. This is to protect us from accidentally using the tracker from
-  // other threads (especially the IO thread). On the plugin side, the tracker
-  // is protected by the proxy lock and is thread-safe, so this will be NULL.
-  std::unique_ptr<base::ThreadChecker> thread_checker_;
-
-  base::WeakPtrFactory<ResourceTracker> weak_ptr_factory_{this};
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_RESOURCE_TRACKER_H_
diff --git a/shared_impl/resource_var.cc b/shared_impl/resource_var.cc
deleted file mode 100644
index a5c693e..0000000
--- a/shared_impl/resource_var.cc
+++ /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.
-
-#include "ppapi/shared_impl/resource_var.h"
-
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-namespace ppapi {
-
-int ResourceVar::GetPendingRendererHostId() const { return 0; }
-
-int ResourceVar::GetPendingBrowserHostId() const { return 0; }
-
-const IPC::Message* ResourceVar::GetCreationMessage() const { return NULL; }
-
-ResourceVar* ResourceVar::AsResourceVar() { return this; }
-
-PP_VarType ResourceVar::GetType() const { return PP_VARTYPE_RESOURCE; }
-
-// static
-ResourceVar* ResourceVar::FromPPVar(PP_Var var) {
-  if (var.type != PP_VARTYPE_RESOURCE)
-    return NULL;
-  scoped_refptr<Var> var_object(
-      PpapiGlobals::Get()->GetVarTracker()->GetVar(var));
-  if (!var_object.get())
-    return NULL;
-  return var_object->AsResourceVar();
-}
-
-ResourceVar::ResourceVar() {}
-
-ResourceVar::~ResourceVar() {}
-
-}  // namespace ppapi
diff --git a/shared_impl/resource_var.h b/shared_impl/resource_var.h
deleted file mode 100644
index e4d9ccc..0000000
--- a/shared_impl/resource_var.h
+++ /dev/null
@@ -1,62 +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.
-
-#ifndef PPAPI_SHARED_IMPL_RESOURCE_VAR_H_
-#define PPAPI_SHARED_IMPL_RESOURCE_VAR_H_
-
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace IPC {
-class Message;
-}
-
-namespace ppapi {
-
-// Represents a resource Var.
-class PPAPI_SHARED_EXPORT ResourceVar : public Var {
- public:
-  ResourceVar(const ResourceVar&) = delete;
-  ResourceVar& operator=(const ResourceVar&) = delete;
-
-  // Gets the resource ID associated with this var.
-  // This is 0 if a resource is still pending (only possible on the host side).
-  // NOTE: This can return a PP_Resource with a reference count of 0 on the
-  // plugin side. It should be AddRef'd if the resource is passed to the user.
-  virtual PP_Resource GetPPResource() const = 0;
-
-  // Gets the pending resource host ID in the renderer.
-  virtual int GetPendingRendererHostId() const;
-
-  // Gets the pending resource host ID in the browser.
-  virtual int GetPendingBrowserHostId() const;
-
-  // Gets the message for creating a plugin-side resource. Returns NULL if the
-  // message is empty (which is always true on the plugin side).
-  virtual const IPC::Message* GetCreationMessage() const;
-
-  // Determines whether this is a pending resource.
-  // This is true if, on the host side, the there is a creation_message and no
-  // PP_Resource.
-  virtual bool IsPending() const = 0;
-
-  // Var override.
-  ResourceVar* AsResourceVar() override;
-  PP_VarType GetType() const override;
-
-  // Helper function that converts a PP_Var to a ResourceVar. This will
-  // return NULL if the PP_Var is not of Resource type.
-  static ResourceVar* FromPPVar(PP_Var var);
-
- protected:
-  ResourceVar();
-
-  ~ResourceVar() override;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_RESOURCE_VAR_H_
diff --git a/shared_impl/scoped_pp_resource.cc b/shared_impl/scoped_pp_resource.cc
deleted file mode 100644
index cb9ae02..0000000
--- a/shared_impl/scoped_pp_resource.cc
+++ /dev/null
@@ -1,72 +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/shared_impl/scoped_pp_resource.h"
-
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-
-namespace ppapi {
-
-ScopedPPResource::ScopedPPResource() : id_(0) {}
-
-ScopedPPResource::ScopedPPResource(PP_Resource resource) : id_(resource) {
-  CallAddRef();
-}
-
-ScopedPPResource::ScopedPPResource(const PassRef&, PP_Resource resource)
-    : id_(resource) {}
-
-ScopedPPResource::ScopedPPResource(Resource* resource)
-    : id_(resource ? resource->GetReference() : 0) {
-  // GetReference AddRef's for us.
-}
-
-ScopedPPResource::ScopedPPResource(const ScopedPPResource& other)
-    : id_(other.id_) {
-  CallAddRef();
-}
-
-ScopedPPResource::~ScopedPPResource() { CallRelease(); }
-
-ScopedPPResource& ScopedPPResource::operator=(PP_Resource resource) {
-  if (id_ == resource)
-    return *this;  // Be careful about self-assignment.
-  CallRelease();
-  id_ = resource;
-  CallAddRef();
-  return *this;
-}
-
-ScopedPPResource& ScopedPPResource::operator=(
-    const ScopedPPResource& resource) {
-  if (id_ == resource.id_)
-    return *this;  // Be careful about self-assignment.
-  CallRelease();
-  id_ = resource.id_;
-  CallAddRef();
-  return *this;
-}
-
-PP_Resource ScopedPPResource::Release() {
-  // We do NOT call CallRelease, because we want to pass our reference to the
-  // caller.
-
-  PP_Resource ret = id_;
-  id_ = 0;
-  return ret;
-}
-
-void ScopedPPResource::CallAddRef() {
-  if (id_)
-    PpapiGlobals::Get()->GetResourceTracker()->AddRefResource(id_);
-}
-
-void ScopedPPResource::CallRelease() {
-  if (id_)
-    PpapiGlobals::Get()->GetResourceTracker()->ReleaseResource(id_);
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/scoped_pp_resource.h b/shared_impl/scoped_pp_resource.h
deleted file mode 100644
index 647cac6..0000000
--- a/shared_impl/scoped_pp_resource.h
+++ /dev/null
@@ -1,59 +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_SHARED_IMPL_SCOPED_PP_RESOURCE_H_
-#define PPAPI_SHARED_IMPL_SCOPED_PP_RESOURCE_H_
-
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-class Resource;
-
-// This is a version of scoped_refptr but for PP_Resources.
-class PPAPI_SHARED_EXPORT ScopedPPResource {
- public:
-  struct PassRef {};
-
-  ScopedPPResource();
-
-  // Takes one reference to the given resource.
-  explicit ScopedPPResource(PP_Resource resource);
-
-  // Assumes responsibility for one ref that the resource already has.
-  explicit ScopedPPResource(const PassRef&, PP_Resource resource);
-
-  // Helper to get the PP_Resource out of the given object and take a reference
-  // to it.
-  explicit ScopedPPResource(Resource* resource);
-
-  // Implicit copy constructor allowed.
-  ScopedPPResource(const ScopedPPResource& other);
-
-  ~ScopedPPResource();
-
-  ScopedPPResource& operator=(PP_Resource resource);
-  ScopedPPResource& operator=(const ScopedPPResource& resource);
-
-  // Returns the PP_Resource without affecting the refcounting.
-  PP_Resource get() const { return id_; }
-  operator PP_Resource() const { return id_; }
-
-  // Returns the PP_Resource, passing the reference to the caller. This class
-  // will no longer hold the resource.
-  PP_Resource Release();
-
- private:
-  // Helpers to addref or release the id_ if it's non-NULL. The id_ value will
-  // be unchanged.
-  void CallAddRef();
-  void CallRelease();
-
-  PP_Resource id_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_SCOPED_PP_RESOURCE_H_
diff --git a/shared_impl/scoped_pp_var.cc b/shared_impl/scoped_pp_var.cc
deleted file mode 100644
index fc823ee..0000000
--- a/shared_impl/scoped_pp_var.cc
+++ /dev/null
@@ -1,97 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include "ppapi/shared_impl/scoped_pp_var.h"
-
-#include <stdint.h>
-
-#include "ppapi/c/dev/ppb_memory_dev.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/var_tracker.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-
-namespace {
-
-void CallAddRef(const PP_Var& v) {
-  PpapiGlobals::Get()->GetVarTracker()->AddRefVar(v);
-}
-
-void CallRelease(const PP_Var& v) {
-  PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(v);
-}
-
-}  // namespace
-
-ScopedPPVar::ScopedPPVar() : var_(PP_MakeUndefined()) {}
-
-ScopedPPVar::ScopedPPVar(const PP_Var& v) : var_(v) { CallAddRef(var_); }
-
-ScopedPPVar::ScopedPPVar(const PassRef&, const PP_Var& v) : var_(v) {}
-
-ScopedPPVar::ScopedPPVar(const ScopedPPVar& other) : var_(other.var_) {
-  CallAddRef(var_);
-}
-
-ScopedPPVar::~ScopedPPVar() { CallRelease(var_); }
-
-ScopedPPVar& ScopedPPVar::operator=(const PP_Var& v) {
-  CallAddRef(v);
-  CallRelease(var_);
-  var_ = v;
-  return *this;
-}
-
-PP_Var ScopedPPVar::Release() {
-  PP_Var result = var_;
-  var_ = PP_MakeUndefined();
-  return result;
-}
-
-ScopedPPVarArray::ScopedPPVarArray(const PassPPBMemoryAllocatedArray&,
-                                   PP_Var* array,
-                                   size_t size)
-    : array_(array),
-      size_(size) {}
-
-ScopedPPVarArray::ScopedPPVarArray(size_t size)
-    : size_(size) {
-  if (size > 0) {
-    array_ = static_cast<PP_Var*>(
-        thunk::GetPPB_Memory_Dev_0_1_Thunk()->MemAlloc(
-            static_cast<uint32_t>(sizeof(PP_Var) * size)));
-  }
-  for (size_t i = 0; i < size_; ++i)
-    array_[i] = PP_MakeUndefined();
-}
-
-ScopedPPVarArray::~ScopedPPVarArray() {
-  for (size_t i = 0; i < size_; ++i)
-    CallRelease(array_[i]);
-  if (size_ > 0)
-    thunk::GetPPB_Memory_Dev_0_1_Thunk()->MemFree(array_);
-
-}
-
-PP_Var* ScopedPPVarArray::Release(const PassPPBMemoryAllocatedArray&) {
-  PP_Var* result = array_;
-  array_ = NULL;
-  size_ = 0;
-  return result;
-}
-
-void ScopedPPVarArray::Set(size_t index, const ScopedPPVar& var) {
-  DCHECK(index < size_);
-  CallAddRef(var.get());
-  CallRelease(array_[index]);
-  array_[index] = var.get();
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/scoped_pp_var.h b/shared_impl/scoped_pp_var.h
deleted file mode 100644
index de7155a..0000000
--- a/shared_impl/scoped_pp_var.h
+++ /dev/null
@@ -1,91 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#ifndef PPAPI_SHARED_IMPL_SCOPED_PP_VAR_H_
-#define PPAPI_SHARED_IMPL_SCOPED_PP_VAR_H_
-
-#include <stddef.h>
-#include <stdlib.h>
-
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT ScopedPPVar {
- public:
-  struct PassRef {};
-
-  ScopedPPVar();
-
-  // Takes one reference to the given var.
-  explicit ScopedPPVar(const PP_Var& v);
-
-  // Assumes responsibility for one ref that the var already has.
-  ScopedPPVar(const PassRef&, const PP_Var& v);
-
-  // Implicit copy constructor allowed.
-  ScopedPPVar(const ScopedPPVar& other);
-
-  ~ScopedPPVar();
-
-  ScopedPPVar& operator=(const PP_Var& r);
-  ScopedPPVar& operator=(const ScopedPPVar& other) {
-    return operator=(other.var_);
-  }
-
-  const PP_Var& get() const { return var_; }
-
-  // Returns the PP_Var, passing the reference to the caller. This class
-  // will no longer hold the var.
-  PP_Var Release();
-
- private:
-  PP_Var var_;
-};
-
-// An array of PP_Vars which will be deallocated and have their references
-// decremented when they go out of scope.
-class PPAPI_SHARED_EXPORT ScopedPPVarArray {
- public:
-  struct PassPPBMemoryAllocatedArray {};
-
-  // Assumes responsibility for one ref of each of the vars in the array as
-  // well as the array memory allocated by PPB_Memory_Dev.
-  // TODO(raymes): Add compatibility for arrays allocated with C++ "new".
-  ScopedPPVarArray(const PassPPBMemoryAllocatedArray&,
-                   PP_Var* array,
-                   size_t size);
-
-  explicit ScopedPPVarArray(size_t size);
-
-  ScopedPPVarArray(const ScopedPPVarArray&) = delete;
-  ScopedPPVarArray& operator=(const ScopedPPVarArray&) = delete;
-
-  ~ScopedPPVarArray();
-
-  // Passes ownership of the vars and the underlying array memory to the caller.
-  // Note that the memory has been allocated with PPB_Memory_Dev.
-  PP_Var* Release(const PassPPBMemoryAllocatedArray&);
-
-  PP_Var* get() { return array_; }
-  size_t size() { return size_; }
-
-  // Takes a ref to |var|. The refcount of the existing var will be decremented.
-  void Set(size_t index, const ScopedPPVar& var);
-  const PP_Var& operator[](size_t index) { return array_[index]; }
-
- private:
-  PP_Var* array_;
-  size_t size_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_SCOPED_PP_VAR_H_
diff --git a/shared_impl/singleton_resource_id.h b/shared_impl/singleton_resource_id.h
deleted file mode 100644
index 3ded9e6..0000000
--- a/shared_impl/singleton_resource_id.h
+++ /dev/null
@@ -1,22 +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_SHARED_IMPL_SINGLETON_RESOURCE_ID_H_
-#define PPAPI_SHARED_IMPL_SINGLETON_RESOURCE_ID_H_
-
-namespace ppapi {
-
-// These IDs are used to access singleton resource objects using
-// PPB_Instance_API.GetSingletonResource.
-enum SingletonResourceID {
-  BROWSER_FONT_SINGLETON_ID,
-  GAMEPAD_SINGLETON_ID,
-  ISOLATED_FILESYSTEM_SINGLETON_ID,
-  NETWORK_PROXY_SINGLETON_ID,
-  UMA_SINGLETON_ID,
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_SINGLETON_RESOURCE_ID_H_
diff --git a/shared_impl/socket_option_data.cc b/shared_impl/socket_option_data.cc
deleted file mode 100644
index f8fd0d5..0000000
--- a/shared_impl/socket_option_data.cc
+++ /dev/null
@@ -1,39 +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.
-
-#include "ppapi/shared_impl/socket_option_data.h"
-
-namespace ppapi {
-
-SocketOptionData::SocketOptionData() : type_(TYPE_INVALID), value_(0) {}
-
-SocketOptionData::~SocketOptionData() {}
-
-SocketOptionData::Type SocketOptionData::GetType() const { return type_; }
-
-bool SocketOptionData::GetBool(bool* out_value) const {
-  if (!out_value || type_ != TYPE_BOOL)
-    return false;
-  *out_value = value_ != 0;
-  return true;
-}
-
-bool SocketOptionData::GetInt32(int32_t* out_value) const {
-  if (!out_value || type_ != TYPE_INT32)
-    return false;
-  *out_value = value_;
-  return true;
-}
-
-void SocketOptionData::SetBool(bool value) {
-  type_ = TYPE_BOOL;
-  value_ = value ? 1 : 0;
-}
-
-void SocketOptionData::SetInt32(int32_t value) {
-  type_ = TYPE_INT32;
-  value_ = value;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/socket_option_data.h b/shared_impl/socket_option_data.h
deleted file mode 100644
index a4282ed..0000000
--- a/shared_impl/socket_option_data.h
+++ /dev/null
@@ -1,35 +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.
-
-#ifndef PPAPI_SHARED_IMPL_SOCKET_OPTION_DATA_H_
-#define PPAPI_SHARED_IMPL_SOCKET_OPTION_DATA_H_
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT SocketOptionData {
- public:
-  enum Type { TYPE_INVALID = 0, TYPE_BOOL = 1, TYPE_INT32 = 2 };
-
-  SocketOptionData();
-  ~SocketOptionData();
-
-  Type GetType() const;
-
-  bool GetBool(bool* out_value) const;
-  bool GetInt32(int32_t* out_value) const;
-
-  void SetBool(bool value);
-  void SetInt32(int32_t value);
-
- private:
-  Type type_;
-  int32_t value_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_SOCKET_OPTION_DATA_H_
diff --git a/shared_impl/thread_aware_callback.cc b/shared_impl/thread_aware_callback.cc
deleted file mode 100644
index e1a7432..0000000
--- a/shared_impl/thread_aware_callback.cc
+++ /dev/null
@@ -1,60 +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/shared_impl/thread_aware_callback.h"
-
-#include "base/check.h"
-#include "base/functional/callback.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/ppb_message_loop_shared.h"
-
-namespace ppapi {
-namespace internal {
-
-class ThreadAwareCallbackBase::Core : public base::RefCountedThreadSafe<Core> {
- public:
-  Core() : aborted_(false) {}
-
-  void MarkAsAborted() { aborted_ = true; }
-
-  void RunIfNotAborted(base::OnceClosure closure) {
-    if (!aborted_)
-      CallWhileUnlocked(std::move(closure));
-  }
-
- private:
-  friend class base::RefCountedThreadSafe<Core>;
-  ~Core() {}
-
-  bool aborted_;
-};
-
-ThreadAwareCallbackBase::ThreadAwareCallbackBase()
-    : target_loop_(PpapiGlobals::Get()->GetCurrentMessageLoop()),
-      core_(new Core()) {
-  DCHECK(target_loop_.get());
-}
-
-ThreadAwareCallbackBase::~ThreadAwareCallbackBase() { core_->MarkAsAborted(); }
-
-// static
-bool ThreadAwareCallbackBase::HasTargetLoop() {
-  return !!PpapiGlobals::Get()->GetCurrentMessageLoop();
-}
-
-void ThreadAwareCallbackBase::InternalRunOnTargetThread(
-    base::OnceClosure closure) {
-  if (target_loop_.get() != PpapiGlobals::Get()->GetCurrentMessageLoop()) {
-    target_loop_->PostClosure(
-        FROM_HERE,
-        RunWhileLocked(
-            base::BindOnce(&Core::RunIfNotAborted, core_, std::move(closure))),
-        0);
-  } else {
-    CallWhileUnlocked(std::move(closure));
-  }
-}
-
-}  // namespace internal
-}  // namespace ppapi
diff --git a/shared_impl/thread_aware_callback.h b/shared_impl/thread_aware_callback.h
deleted file mode 100644
index 8860a59..0000000
--- a/shared_impl/thread_aware_callback.h
+++ /dev/null
@@ -1,112 +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.
-
-#ifndef PPAPI_SHARED_IMPL_THREAD_AWARE_CALLBACK_H_
-#define PPAPI_SHARED_IMPL_THREAD_AWARE_CALLBACK_H_
-
-#include "base/functional/bind.h"
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-
-namespace ppapi {
-
-class MessageLoopShared;
-
-namespace internal {
-
-class PPAPI_SHARED_EXPORT ThreadAwareCallbackBase {
- public:
-  ThreadAwareCallbackBase(const ThreadAwareCallbackBase&) = delete;
-  ThreadAwareCallbackBase& operator=(const ThreadAwareCallbackBase&) = delete;
-
- protected:
-  ThreadAwareCallbackBase();
-  ~ThreadAwareCallbackBase();
-
-  static bool HasTargetLoop();
-
-  void InternalRunOnTargetThread(base::OnceClosure closure);
-
- private:
-  class Core;
-
-  scoped_refptr<MessageLoopShared> target_loop_;
-  scoped_refptr<Core> core_;
-};
-
-}  // namespace internal
-
-// Some PPB interfaces have methods that set a custom callback. Usually, the
-// callback has to be called on the same thread as the one it was set on.
-// ThreadAwareCallback keeps track of the target thread, and posts a task to run
-// on it if requested from a different thread.
-//
-// Please note that:
-// - Unlike TrackedCallback, there is no restriction on how many times the
-//   callback will be called.
-// - When a ThreadAwareCallback object is destroyed, all pending tasks to run
-//   the callback will be ignored. It is designed this way so that when the
-//   resource is destroyed or the callback is cancelled by the plugin, we can
-//   simply delete the ThreadAwareCallback object to prevent touching the
-//   callback later.
-// - When RunOnTargetThread() is called on the target thread, the callback runs
-//   immediately.
-template <class FuncType>
-class ThreadAwareCallback : public internal::ThreadAwareCallbackBase {
- public:
-  // The caller takes ownership of the returned object.
-  // NULL is returned if the current thread doesn't have an associated Pepper
-  // message loop, or |func| is NULL.
-  static ThreadAwareCallback* Create(FuncType func) {
-    if (!func || !HasTargetLoop())
-      return NULL;
-    return new ThreadAwareCallback(func);
-  }
-
-  ~ThreadAwareCallback() {}
-
-  void RunOnTargetThread() { InternalRunOnTargetThread(base::BindOnce(func_)); }
-
-  template <class P1>
-  void RunOnTargetThread(const P1& p1) {
-    InternalRunOnTargetThread(base::BindOnce(func_, p1));
-  }
-
-  template <class P1, class P2>
-  void RunOnTargetThread(const P1& p1, const P2& p2) {
-    InternalRunOnTargetThread(base::BindOnce(func_, p1, p2));
-  }
-
-  template <class P1, class P2, class P3>
-  void RunOnTargetThread(const P1& p1, const P2& p2, const P3& p3) {
-    InternalRunOnTargetThread(base::BindOnce(func_, p1, p2, p3));
-  }
-
-  template <class P1, class P2, class P3, class P4>
-  void RunOnTargetThread(const P1& p1,
-                         const P2& p2,
-                         const P3& p3,
-                         const P4& p4) {
-    InternalRunOnTargetThread(base::BindOnce(func_, p1, p2, p3, p4));
-  }
-
-  template <class P1, class P2, class P3, class P4, class P5>
-  void RunOnTargetThread(const P1& p1,
-                         const P2& p2,
-                         const P3& p3,
-                         const P4& p4,
-                         const P5& p5) {
-    InternalRunOnTargetThread(base::BindOnce(func_, p1, p2, p3, p4, p5));
-  }
-
- private:
-  explicit ThreadAwareCallback(FuncType func) : func_(func) {}
-
-  FuncType func_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_THREAD_AWARE_CALLBACK_H_
diff --git a/shared_impl/time_conversion.cc b/shared_impl/time_conversion.cc
deleted file mode 100644
index db7cad4..0000000
--- a/shared_impl/time_conversion.cc
+++ /dev/null
@@ -1,47 +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/shared_impl/time_conversion.h"
-
-namespace ppapi {
-
-PP_Time TimeToPPTime(base::Time t) {
-  return t.InSecondsFSinceUnixEpoch();
-}
-
-base::Time PPTimeToTime(PP_Time t) {
-  // The time code handles exact "0" values as special, and produces
-  // a "null" Time object. But calling code would expect t==0 to represent the
-  // epoch (according to the description of PP_Time). Hence we just return the
-  // epoch in this case.
-  if (t == 0.0)
-    return base::Time::UnixEpoch();
-  return base::Time::FromSecondsSinceUnixEpoch(t);
-}
-
-PP_TimeTicks TimeTicksToPPTimeTicks(base::TimeTicks t) {
-  return static_cast<double>(t.ToInternalValue()) /
-         base::Time::kMicrosecondsPerSecond;
-}
-
-double PPGetLocalTimeZoneOffset(const base::Time& time) {
-  // Explode it to local time and then unexplode it as if it were UTC. Also
-  // explode it to UTC and unexplode it (this avoids mismatching rounding or
-  // lack thereof). The time zone offset is their difference.
-  base::Time::Exploded exploded = {0};
-  base::Time::Exploded utc_exploded = {0};
-  time.LocalExplode(&exploded);
-  time.UTCExplode(&utc_exploded);
-  if (exploded.HasValidValues() && utc_exploded.HasValidValues()) {
-    base::Time adj_time;
-    if (base::Time::FromUTCExploded(exploded, &adj_time)) {
-      base::Time cur;
-      if (base::Time::FromUTCExploded(utc_exploded, &cur))
-        return (adj_time - cur).InSecondsF();
-    }
-  }
-  return 0.0;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/time_conversion.h b/shared_impl/time_conversion.h
deleted file mode 100644
index 7fecdee..0000000
--- a/shared_impl/time_conversion.h
+++ /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.
-
-#ifndef PPAPI_SHARED_IMPL_TIME_CONVERSION_H_
-#define PPAPI_SHARED_IMPL_TIME_CONVERSION_H_
-
-#include "base/time/time.h"
-#include "ppapi/c/pp_time.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-PPAPI_SHARED_EXPORT PP_Time TimeToPPTime(base::Time t);
-PPAPI_SHARED_EXPORT base::Time PPTimeToTime(PP_Time t);
-
-PPAPI_SHARED_EXPORT PP_TimeTicks TimeTicksToPPTimeTicks(base::TimeTicks t);
-
-// Gets the local time zone offset for a given time. This works in the plugin
-// process only on Windows (the sandbox prevents this from working properly on
-// other platforms).
-PPAPI_SHARED_EXPORT double PPGetLocalTimeZoneOffset(const base::Time& time);
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_TIME_CONVERSION_H_
diff --git a/shared_impl/tracked_callback.cc b/shared_impl/tracked_callback.cc
deleted file mode 100644
index 6d13fe3..0000000
--- a/shared_impl/tracked_callback.cc
+++ /dev/null
@@ -1,295 +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/shared_impl/tracked_callback.h"
-
-#include <memory>
-
-#include "base/check.h"
-#include "base/compiler_specific.h"
-#include "base/functional/bind.h"
-#include "base/location.h"
-#include "base/notreached.h"
-#include "base/synchronization/lock.h"
-#include "base/task/single_thread_task_runner.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_message_loop.h"
-#include "ppapi/shared_impl/callback_tracker.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/ppb_message_loop_shared.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource.h"
-
-namespace ppapi {
-
-namespace {
-
-bool IsMainThread() {
-  return PpapiGlobals::Get()
-      ->GetMainThreadMessageLoop()
-      ->BelongsToCurrentThread();
-}
-
-int32_t RunCompletionTask(TrackedCallback::CompletionTask completion_task,
-                          int32_t result) {
-  ProxyLock::AssertAcquired();
-  int32_t task_result = std::move(completion_task).Run(result);
-  if (result != PP_ERROR_ABORTED)
-    result = task_result;
-  return result;
-}
-
-}  // namespace
-
-// TrackedCallback -------------------------------------------------------------
-
-// Note: don't keep a Resource* since it may go out of scope before us.
-TrackedCallback::TrackedCallback(Resource* resource,
-                                 const PP_CompletionCallback& callback)
-    : is_scheduled_(false),
-      resource_id_(resource ? resource->pp_resource() : 0),
-      completed_(false),
-      aborted_(false),
-      callback_(callback),
-      target_loop_(PpapiGlobals::Get()->GetCurrentMessageLoop()),
-      result_for_blocked_callback_(PP_OK) {
-  // Note that target_loop_ may be NULL at this point, if the plugin has not
-  // attached a loop to this thread, or if this is an in-process plugin.
-  // The Enter class should handle checking this for us.
-
-  // TODO(dmichael): Add tracking at the instance level, for callbacks that only
-  // have an instance (e.g. for MouseLock).
-  if (resource) {
-    tracker_ = PpapiGlobals::Get()->GetCallbackTrackerForInstance(
-        resource->pp_instance());
-    tracker_->Add(base::WrapRefCounted(this));
-  }
-
-  base::Lock* proxy_lock = ProxyLock::Get();
-  if (proxy_lock) {
-    ProxyLock::AssertAcquired();
-    // If the proxy_lock is valid, we're running out-of-process, and locking
-    // is enabled.
-    if (is_blocking()) {
-      // This is a blocking completion callback, so we will need a condition
-      // variable for blocking & signalling the calling thread.
-      operation_completed_condvar_ =
-          std::make_unique<base::ConditionVariable>(&lock_);
-    } else {
-      // It's a non-blocking callback, so we should have a MessageLoopResource
-      // to dispatch to. Note that we don't error check here, though. Later,
-      // EnterResource::SetResult will check to make sure the callback is valid
-      // and take appropriate action.
-    }
-  }
-}
-
-TrackedCallback::~TrackedCallback() {}
-
-void TrackedCallback::Abort() {
-  Run(PP_ERROR_ABORTED);
-}
-
-void TrackedCallback::PostAbort() {
-  PostRun(PP_ERROR_ABORTED);
-}
-
-void TrackedCallback::Run(int32_t result) {
-  // Retain ourselves, since SignalBlockingCallback and MarkAsCompleted might
-  // otherwise cause |this| to be deleted. Do this before acquiring lock_ so
-  // that |this| is definitely valid at the time we release |lock_|.
-  scoped_refptr<TrackedCallback> thiz(this);
-  base::AutoLock acquire(lock_);
-  // Only allow the callback to be run once. Note that this also covers the case
-  // where the callback was previously Aborted because its associated Resource
-  // went away. The callback may live on for a while because of a reference from
-  // a Closure. But when the Closure runs, Run() quietly does nothing, and the
-  // callback will go away when all referring Closures go away.
-  if (completed_)
-    return;
-  if (result == PP_ERROR_ABORTED)
-    aborted_ = true;
-
-  // Note that this call of Run() may have been scheduled prior to Abort() or
-  // PostAbort() being called. If we have been told to Abort, that always
-  // trumps a result that was scheduled before, so we should make sure to pass
-  // PP_ERROR_ABORTED.
-  if (aborted_)
-    result = PP_ERROR_ABORTED;
-
-  if (is_blocking()) {
-    // This is a blocking callback; signal the condvar to wake up the thread.
-    SignalBlockingCallback(result);
-  } else {
-    // If there's a target_loop_, and we're not on the right thread, we need to
-    // post to target_loop_.
-    if (target_loop_ &&
-        target_loop_.get() != PpapiGlobals::Get()->GetCurrentMessageLoop()) {
-      PostRunWithLock(result);
-      return;
-    }
-    // Do this before running the callback in case of reentrancy from running
-    // the completion callback.
-    MarkAsCompletedWithLock();
-
-    if (completion_task_)
-      result = RunCompletionTask(std::move(completion_task_), result);
-
-    {
-      base::AutoUnlock release(lock_);
-      // Call the callback without lock_ and without the ProxyLock.
-      CallWhileUnlocked(PP_RunCompletionCallback, &callback_, result);
-    }
-  }
-}
-
-void TrackedCallback::PostRun(int32_t result) {
-  base::AutoLock acquire(lock_);
-  PostRunWithLock(result);
-}
-
-void TrackedCallback::set_completion_task(CompletionTask completion_task) {
-  base::AutoLock acquire(lock_);
-  DCHECK(completion_task_.is_null());
-  completion_task_ = std::move(completion_task);
-}
-
-// static
-bool TrackedCallback::IsPending(
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (!callback)
-    return false;
-  base::AutoLock acquire(callback->lock_);
-  if (callback->aborted_)
-    return false;
-  return !callback->completed_;
-}
-
-// static
-bool TrackedCallback::IsScheduledToRun(
-    const scoped_refptr<TrackedCallback>& callback) {
-  if (!callback)
-    return false;
-  base::AutoLock acquire(callback->lock_);
-  if (callback->aborted_)
-    return false;
-  return !callback->completed_ && callback->is_scheduled_;
-}
-
-int32_t TrackedCallback::BlockUntilComplete() {
-  // Note, we are already holding the proxy lock in this method and many others
-  // (see ppapi/thunk/enter.cc for where it gets acquired).
-  ProxyLock::AssertAcquired();
-  base::AutoLock acquire(lock_);
-
-  // It doesn't make sense to wait on a non-blocking callback. Furthermore,
-  // BlockUntilComplete should never be called for in-process plugins, where
-  // blocking callbacks are not supported.
-  CHECK(is_blocking() && operation_completed_condvar_);
-
-  // Protect us from being deleted to ensure operation_completed_condvar_ is
-  // available to wait on when we drop our lock.
-  scoped_refptr<TrackedCallback> thiz(this);
-
-  // Unlock proxy lock temporarily; We don't want to block whole proxy while
-  // we're waiting for the callback
-  ProxyLock::Release();
-
-  while (!completed_) {
-    operation_completed_condvar_->Wait();
-  }
-
-  // Now we need to get ProxyLock back, but because it's used in outer code to
-  // maintain lock order we need to release our lock first
-  {
-    base::AutoUnlock unlock(lock_);
-    ProxyLock::Acquire();
-  }
-
-  if (completion_task_) {
-    result_for_blocked_callback_ = RunCompletionTask(
-        std::move(completion_task_), result_for_blocked_callback_);
-  }
-  return result_for_blocked_callback_;
-}
-
-void TrackedCallback::MarkAsCompleted() {
-  base::AutoLock acquire(lock_);
-  MarkAsCompletedWithLock();
-}
-
-void TrackedCallback::MarkAsCompletedWithLock() {
-  lock_.AssertAcquired();
-  DCHECK(!completed_);
-
-  // We will be removed; maintain a reference to ensure we won't be deleted
-  // until we're done.
-  scoped_refptr<TrackedCallback> thiz = this;
-  completed_ = true;
-  // We may not have a valid resource, in which case we're not in the tracker.
-  if (resource_id_)
-    tracker_->Remove(thiz);
-  tracker_.reset();
-
-  // Relax the cross-thread access restriction to non-thread-safe RefCount.
-  // |lock_| protects the access to Resource instances.
-  base::ScopedAllowCrossThreadRefCountAccess
-      allow_cross_thread_ref_count_access;
-  target_loop_.reset();
-}
-
-void TrackedCallback::PostRunWithLock(int32_t result) {
-  lock_.AssertAcquired();
-  CHECK(!completed_);
-  if (result == PP_ERROR_ABORTED)
-    aborted_ = true;
-  // We might abort when there's already a scheduled callback, but callers
-  // should never try to PostRun more than once otherwise.
-  DCHECK(result == PP_ERROR_ABORTED || !is_scheduled_);
-
-  if (is_blocking()) {
-    // We might not have a MessageLoop to post to, so we must Signal
-    // directly.
-    SignalBlockingCallback(result);
-  } else {
-    base::OnceClosure callback_closure(
-        RunWhileLocked(base::BindOnce(&TrackedCallback::Run, this, result)));
-    if (target_loop_) {
-      target_loop_->PostClosure(FROM_HERE, std::move(callback_closure), 0);
-    } else {
-      // We must be running in-process and on the main thread (the Enter
-      // classes protect against having a null target_loop_ otherwise).
-      DCHECK(IsMainThread());
-      DCHECK(PpapiGlobals::Get()->IsHostGlobals());
-      base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
-          FROM_HERE, std::move(callback_closure));
-    }
-  }
-  is_scheduled_ = true;
-}
-
-void TrackedCallback::SignalBlockingCallback(int32_t result) {
-  lock_.AssertAcquired();
-  DCHECK(is_blocking());
-  if (!operation_completed_condvar_) {
-    // If the condition variable is invalid, there are two possibilities. One,
-    // we're running in-process, in which case the call should have come in on
-    // the main thread and we should have returned PP_ERROR_BLOCKS_MAIN_THREAD
-    // well before this. Otherwise, this callback was not created as a
-    // blocking callback. Either way, there's some internal error.
-    NOTREACHED();
-  }
-  result_for_blocked_callback_ = result;
-  // Retain ourselves, since MarkAsCompleted will remove us from the
-  // tracker. Then MarkAsCompleted before waking up the blocked thread,
-  // which could potentially re-enter.
-  scoped_refptr<TrackedCallback> thiz(this);
-  MarkAsCompletedWithLock();
-  // Wake up the blocked thread. See BlockUntilComplete for where the thread
-  // Wait()s.
-  operation_completed_condvar_->Signal();
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/tracked_callback.h b/shared_impl/tracked_callback.h
deleted file mode 100644
index e2ffe4e..0000000
--- a/shared_impl/tracked_callback.h
+++ /dev/null
@@ -1,202 +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_SHARED_IMPL_TRACKED_CALLBACK_H_
-#define PPAPI_SHARED_IMPL_TRACKED_CALLBACK_H_
-
-#include <stdint.h>
-
-#include <memory>
-
-#include "base/functional/callback.h"
-#include "base/memory/ref_counted.h"
-#include "base/synchronization/condition_variable.h"
-#include "base/synchronization/lock.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-#include "ppapi/shared_impl/ppb_message_loop_shared.h"
-
-namespace ppapi {
-
-class CallbackTracker;
-class MessageLoopShared;
-class Resource;
-
-namespace thunk {
-namespace subtle {
-// For a friend declaration below.
-class EnterBase;
-}
-}
-
-// |TrackedCallback| represents a tracked Pepper callback (from the browser to
-// the plugin), typically still pending. Such callbacks have the standard Pepper
-// callback semantics. Execution (i.e., completion) of callbacks happens through
-// objects of subclasses of |TrackedCallback|. Two things are ensured: (1) that
-// the callback is executed at most once, and (2) once a callback is marked to
-// be aborted, any subsequent completion is abortive (even if a non-abortive
-// completion had previously been scheduled).
-//
-// The details of non-abortive completion depend on the type of callback (e.g.,
-// different parameters may be required), but basic abort functionality is core.
-// The ability to post aborts is needed in many situations to ensure that the
-// plugin is not re-entered into. (Note that posting a task to just run
-// |Abort()| is different and not correct; calling |PostAbort()| additionally
-// guarantees that all subsequent completions will be abortive.)
-//
-// This class is reference counted so that different things can hang on to it,
-// and not worry too much about ensuring Pepper callback semantics. Note that
-// the "owning" |CallbackTracker| will keep a reference until the callback is
-// completed.
-//
-// A note on threading:
-// TrackedCallback is usable on any thread. It is *mostly* only used when
-// ppapi::ProxyLock is held. However, it's necessary that Run() can be called
-// without the ProxyLock. This is used to allow running the callback from
-// the IO thread. In particular, blocking callbacks may not have a message loop
-// to which we could post, so Run() must be able to signal the condition
-// variable to wake up the thread that's waiting on the blocking callback, and
-// Run() must be able to do this while not holding the ProxyLock.
-class PPAPI_SHARED_EXPORT TrackedCallback
-    : public base::RefCountedThreadSafe<TrackedCallback> {
- public:
-  TrackedCallback() = delete;
-
-  // Create a tracked completion callback and register it with the tracker. The
-  // resource pointer is not stored. If |resource| is NULL, this callback will
-  // not be added to the callback tracker.
-  TrackedCallback(Resource* resource, const PP_CompletionCallback& callback);
-
-  TrackedCallback(const TrackedCallback&) = delete;
-  TrackedCallback& operator=(const TrackedCallback&) = delete;
-
-  // These run the callback in an abortive manner, or post a task to do so (but
-  // immediately marking the callback as to be aborted).
-  void Abort();
-  void PostAbort();
-
-  // Run the callback with the given result. If the callback had previously been
-  // marked as to be aborted (by |PostAbort()|), |result| will be ignored and
-  // the callback will be run with result |PP_ERROR_ABORTED|.
-  //
-  // Run() will invoke the call immediately, if invoked from the target thread
-  // (as determined by target_loop_). If invoked on a different thread, the
-  // callback will be scheduled to run later on target_loop_.
-  void Run(int32_t result);
-  void AcquireProxyLockAndRun(int32_t result);
-  // PostRun is like Run(), except it guarantees that the callback will be run
-  // later. In particular, if you invoke PostRun on the same thread on which the
-  // callback is targeted to run, it will *not* be run immediately.
-  void PostRun(int32_t result);
-
-  // A task to perform cleanup or write output parameters before the callback
-  // returns a result to the plugin. The |result| parameter has the result so
-  // far, e.g. whether the callback has been aborted. If the callback hasn't
-  // been aborted the return value of the task will become the callback result.
-  // The task is always called on the same thread as the callback to the plugin.
-  using CompletionTask = base::OnceCallback<int32_t(int32_t /* result */)>;
-
-  // Sets a task that is run just before calling back into the plugin. This
-  // should only be called once. Note that the CompletionTask always runs while
-  // holding the ppapi::ProxyLock.
-  void set_completion_task(CompletionTask completion_task);
-
-  // Returns the ID of the resource which "owns" the callback, or 0 if the
-  // callback is not associated with any resource.
-  PP_Resource resource_id() const { return resource_id_; }
-
-  // Returns true if this is a blocking callback.
-  bool is_blocking() const {
-    // This is set on construction and never changes after that, so there is
-    // no need to lock.
-    return !callback_.func;
-  }
-
-  MessageLoopShared* target_loop() const {
-    // This is set on construction and never changes after that, so there is
-    // no need to lock.
-    return target_loop_.get();
-  }
-
-  // Determines if the given callback is pending. A callback is pending if it
-  // has not completed and has not been aborted. When receiving a plugin call,
-  // use this to detect if |callback| represents an operation in progress. When
-  // finishing a plugin call, use this to determine whether to write 'out'
-  // params and Run |callback|.
-  // NOTE: an aborted callback has not necessarily completed, so a false result
-  // doesn't imply that the callback has completed.
-  // As a convenience, if |callback| is null, this returns false.
-  static bool IsPending(const scoped_refptr<TrackedCallback>& callback);
-
-  // Helper to determine if the given callback is scheduled to run on another
-  // message loop.
-  static bool IsScheduledToRun(const scoped_refptr<TrackedCallback>& callback);
-
- private:
-  bool is_required() {
-    return (callback_.func &&
-            !(callback_.flags & PP_COMPLETIONCALLBACK_FLAG_OPTIONAL));
-  }
-  bool has_null_target_loop() const { return target_loop_.get() == NULL; }
-
-  // Same as PostRun(), but lock_ must already be held.
-  void PostRunWithLock(int32_t result);
-
-  void SignalBlockingCallback(int32_t result);
-
-  // TrackedCallback and EnterBase work together to provide appropriate behavior
-  // for callbacks. Pepper interface implementations and proxies should
-  // usually not have to check whether callbacks are required, optional, or
-  // blocking. Nor should interface and proxy implementations have to worry
-  // about blocking on a callback or marking them complete explicitly.
-  //
-  // (There are exceptions; e.g. FileIO checks is_blocking() in order to do
-  // some operations directly on the calling thread if possible.)
-  friend class ppapi::thunk::subtle::EnterBase;
-
-  // Block until the associated operation has completed. Returns the result.
-  // This must only be called on a non-main thread on a blocking callback.
-  int32_t BlockUntilComplete();
-
-  // Mark this object as complete and remove it from the tracker. This must only
-  // be called once. Note that running this may result in this object being
-  // deleted (so keep a reference if it'll still be needed).
-  void MarkAsCompleted();
-  void MarkAsCompletedWithLock();
-
-  // This class is ref counted.
-  friend class base::RefCountedThreadSafe<TrackedCallback>;
-  ~TrackedCallback();
-
-  mutable base::Lock lock_;
-
-  // Flag used by |PostAbort()| and |PostRun()| to check that we don't schedule
-  // the callback more than once.
-  bool is_scheduled_;
-
-  scoped_refptr<CallbackTracker> tracker_;
-  PP_Resource resource_id_;
-  bool completed_;
-  bool aborted_;
-  PP_CompletionCallback callback_;
-
-  // Task to run just before calling back into the plugin.
-  CompletionTask completion_task_;
-
-  // The MessageLoopShared on which this callback should be run. This will be
-  // NULL if we're in-process.
-  scoped_refptr<MessageLoopShared> target_loop_;
-
-  int32_t result_for_blocked_callback_;
-  // Used for pausing/waking the blocked thread if this is a blocking completion
-  // callback. Note that in-process, there is no lock, blocking callbacks are
-  // not allowed, and therefore this pointer will be NULL.
-  std::unique_ptr<base::ConditionVariable> operation_completed_condvar_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_TRACKED_CALLBACK_H_
diff --git a/shared_impl/url_request_info_data.cc b/shared_impl/url_request_info_data.cc
deleted file mode 100644
index b0bd8d6..0000000
--- a/shared_impl/url_request_info_data.cc
+++ /dev/null
@@ -1,65 +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/shared_impl/url_request_info_data.h"
-
-#include "ppapi/shared_impl/resource.h"
-
-namespace ppapi {
-
-namespace {
-
-const int32_t kDefaultPrefetchBufferUpperThreshold = 100 * 1000 * 1000;
-const int32_t kDefaultPrefetchBufferLowerThreshold = 50 * 1000 * 1000;
-
-}  // namespace
-
-URLRequestInfoData::BodyItem::BodyItem()
-    : is_file(false),
-      file_ref_pp_resource(0),
-      start_offset(0),
-      number_of_bytes(-1),
-      expected_last_modified_time(0.0) {}
-
-URLRequestInfoData::BodyItem::BodyItem(const std::string& data)
-    : is_file(false),
-      data(data),
-      file_ref_pp_resource(0),
-      start_offset(0),
-      number_of_bytes(-1),
-      expected_last_modified_time(0.0) {}
-
-URLRequestInfoData::BodyItem::BodyItem(Resource* file_ref,
-                                       int64_t start_offset,
-                                       int64_t number_of_bytes,
-                                       PP_Time expected_last_modified_time)
-    : is_file(true),
-      file_ref_resource(file_ref),
-      file_ref_pp_resource(file_ref->pp_resource()),
-      start_offset(start_offset),
-      number_of_bytes(number_of_bytes),
-      expected_last_modified_time(expected_last_modified_time) {}
-
-URLRequestInfoData::URLRequestInfoData()
-    : url(),
-      method(),
-      headers(),
-      follow_redirects(true),
-      record_download_progress(false),
-      record_upload_progress(false),
-      has_custom_referrer_url(false),
-      custom_referrer_url(),
-      allow_cross_origin_requests(false),
-      allow_credentials(false),
-      has_custom_content_transfer_encoding(false),
-      custom_content_transfer_encoding(),
-      has_custom_user_agent(false),
-      custom_user_agent(),
-      prefetch_buffer_upper_threshold(kDefaultPrefetchBufferUpperThreshold),
-      prefetch_buffer_lower_threshold(kDefaultPrefetchBufferLowerThreshold),
-      body() {}
-
-URLRequestInfoData::~URLRequestInfoData() {}
-
-}  // namespace ppapi
diff --git a/shared_impl/url_request_info_data.h b/shared_impl/url_request_info_data.h
deleted file mode 100644
index e01bcd2..0000000
--- a/shared_impl/url_request_info_data.h
+++ /dev/null
@@ -1,91 +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_SHARED_IMPL_URL_REQUEST_INFO_DATA_H_
-#define PPAPI_SHARED_IMPL_URL_REQUEST_INFO_DATA_H_
-
-#include <string>
-#include <vector>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/c/pp_time.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-
-namespace ppapi {
-
-class Resource;
-
-struct PPAPI_SHARED_EXPORT URLRequestInfoData {
-  struct PPAPI_SHARED_EXPORT BodyItem {
-    BodyItem();
-    explicit BodyItem(const std::string& data);
-    BodyItem(Resource* file_ref,
-             int64_t start_offset,
-             int64_t number_of_bytes,
-             PP_Time expected_last_modified_time);
-
-    // Set if the input is a file, false means the |data| is valid.
-    bool is_file;
-
-    std::string data;
-
-    // Only set on the plugin-side, for refcounting purposes. Only valid when
-    // |is_file| is set.
-    scoped_refptr<Resource> file_ref_resource;
-    // This struct holds no ref to this resource. Only valid when |is_file| is
-    // set.
-    PP_Resource file_ref_pp_resource;
-
-    int64_t start_offset;
-    int64_t number_of_bytes;
-    PP_Time expected_last_modified_time;
-
-    // If you add more stuff here, be sure to modify the serialization rules in
-    // ppapi_messages.h
-  };
-
-  URLRequestInfoData();
-  ~URLRequestInfoData();
-
-  std::string url;
-  std::string method;
-  std::string headers;
-
-  bool follow_redirects;
-  bool record_download_progress;
-  bool record_upload_progress;
-
-  // |has_custom_referrer_url| is set to false if a custom referrer hasn't been
-  // set (or has been set to an Undefined Var) and the default referrer should
-  // be used. (Setting the custom referrer to an empty string indicates that no
-  // referrer header should be generated.)
-  bool has_custom_referrer_url;
-  std::string custom_referrer_url;
-
-  bool allow_cross_origin_requests;
-  bool allow_credentials;
-
-  // Similar to the custom referrer (above), but for custom content transfer
-  // encoding and custom user agent, respectively.
-  bool has_custom_content_transfer_encoding;
-  std::string custom_content_transfer_encoding;
-  bool has_custom_user_agent;
-  std::string custom_user_agent;
-
-  int32_t prefetch_buffer_upper_threshold;
-  int32_t prefetch_buffer_lower_threshold;
-
-  std::vector<BodyItem> body;
-
-  // If you add more stuff here, be sure to modify the serialization rules in
-  // ppapi_messages.h
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_URL_REQUEST_INFO_DATA_H_
diff --git a/shared_impl/url_response_info_data.cc b/shared_impl/url_response_info_data.cc
deleted file mode 100644
index 8924740..0000000
--- a/shared_impl/url_response_info_data.cc
+++ /dev/null
@@ -1,13 +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/shared_impl/url_response_info_data.h"
-
-namespace ppapi {
-
-URLResponseInfoData::URLResponseInfoData() : status_code(-1) {}
-
-URLResponseInfoData::~URLResponseInfoData() {}
-
-}  // namespace ppapi
diff --git a/shared_impl/url_response_info_data.h b/shared_impl/url_response_info_data.h
deleted file mode 100644
index 6b8d2b0..0000000
--- a/shared_impl/url_response_info_data.h
+++ /dev/null
@@ -1,29 +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_SHARED_IMPL_URL_RESPONSE_INFO_DATA_H_
-#define PPAPI_SHARED_IMPL_URL_RESPONSE_INFO_DATA_H_
-
-#include <string>
-
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/shared_impl/file_ref_create_info.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-struct PPAPI_SHARED_EXPORT URLResponseInfoData {
-  URLResponseInfoData();
-  ~URLResponseInfoData();
-
-  std::string url;
-  std::string headers;
-  int32_t status_code;
-  std::string status_text;
-  std::string redirect_url;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_URL_RESPONSE_INFO_DATA_H_
diff --git a/shared_impl/var.cc b/shared_impl/var.cc
deleted file mode 100644
index bff5d08..0000000
--- a/shared_impl/var.cc
+++ /dev/null
@@ -1,199 +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/shared_impl/var.h"
-
-#include <stddef.h>
-
-#include <limits>
-#include <string_view>
-
-#include "base/check.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/strings/string_util.h"
-#include "base/strings/stringprintf.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/resource_var.h"
-#include "ppapi/shared_impl/var_tracker.h"
-
-namespace ppapi {
-
-// Var -------------------------------------------------------------------------
-
-// static
-std::string Var::PPVarToLogString(PP_Var var) {
-  switch (var.type) {
-    case PP_VARTYPE_UNDEFINED:
-      return "[Undefined]";
-    case PP_VARTYPE_NULL:
-      return "[Null]";
-    case PP_VARTYPE_BOOL:
-      return var.value.as_bool ? "[True]" : "[False]";
-    case PP_VARTYPE_INT32:
-      return base::NumberToString(var.value.as_int);
-    case PP_VARTYPE_DOUBLE:
-      return base::NumberToString(var.value.as_double);
-    case PP_VARTYPE_STRING: {
-      StringVar* string(StringVar::FromPPVar(var));
-      if (!string)
-        return "[Invalid string]";
-
-      // Since this is for logging, escape NULLs, truncate length.
-      std::string result;
-      const size_t kTruncateAboveLength = 128;
-      if (string->value().size() > kTruncateAboveLength)
-        result = string->value().substr(0, kTruncateAboveLength) + "...";
-      else
-        result = string->value();
-
-      base::ReplaceSubstringsAfterOffset(&result, 0, std::string_view("\0", 1),
-                                         "\\0");
-      return result;
-    }
-    case PP_VARTYPE_OBJECT:
-      return "[Object]";
-    case PP_VARTYPE_ARRAY:
-      return "[Array]";
-    case PP_VARTYPE_DICTIONARY:
-      return "[Dictionary]";
-    case PP_VARTYPE_ARRAY_BUFFER:
-      return "[Array buffer]";
-    case PP_VARTYPE_RESOURCE: {
-      ResourceVar* resource(ResourceVar::FromPPVar(var));
-      if (!resource)
-        return "[Invalid resource]";
-
-      if (resource->IsPending()) {
-        return base::StringPrintf("[Pending resource]");
-      } else if (resource->GetPPResource()) {
-        return base::StringPrintf("[Resource %d]", resource->GetPPResource());
-      } else {
-        return "[Null resource]";
-      }
-    }
-    default:
-      return "[Invalid var]";
-  }
-}
-
-StringVar* Var::AsStringVar() { return NULL; }
-
-ArrayBufferVar* Var::AsArrayBufferVar() { return NULL; }
-
-V8ObjectVar* Var::AsV8ObjectVar() { return NULL; }
-
-ProxyObjectVar* Var::AsProxyObjectVar() { return NULL; }
-
-ArrayVar* Var::AsArrayVar() { return NULL; }
-
-DictionaryVar* Var::AsDictionaryVar() { return NULL; }
-
-ResourceVar* Var::AsResourceVar() { return NULL; }
-
-PP_Var Var::GetPPVar() {
-  int32_t id = GetOrCreateVarID();
-  if (!id)
-    return PP_MakeNull();
-
-  PP_Var result;
-  result.type = GetType();
-  result.padding = 0;
-  result.value.as_id = id;
-  return result;
-}
-
-int32_t Var::GetExistingVarID() const {
-  return var_id_;
-}
-
-Var::Var() : var_id_(0) {}
-
-Var::~Var() {}
-
-int32_t Var::GetOrCreateVarID() {
-  VarTracker* tracker = PpapiGlobals::Get()->GetVarTracker();
-  if (var_id_) {
-    if (!tracker->AddRefVar(var_id_))
-      return 0;
-  } else {
-    var_id_ = tracker->AddVar(this);
-    if (!var_id_)
-      return 0;
-  }
-  return var_id_;
-}
-
-void Var::AssignVarID(int32_t id) {
-  DCHECK(!var_id_);  // Must not have already been generated.
-  var_id_ = id;
-}
-
-// StringVar -------------------------------------------------------------------
-
-StringVar::StringVar() {}
-
-StringVar::StringVar(const std::string& str) : value_(str) {}
-
-StringVar::StringVar(const char* str, uint32_t len) : value_(str, len) {}
-
-StringVar::~StringVar() {}
-
-StringVar* StringVar::AsStringVar() { return this; }
-
-PP_VarType StringVar::GetType() const { return PP_VARTYPE_STRING; }
-
-// static
-PP_Var StringVar::StringToPPVar(const std::string& var) {
-  return StringToPPVar(var.c_str(), static_cast<uint32_t>(var.size()));
-}
-
-// static
-PP_Var StringVar::StringToPPVar(const char* data, uint32_t len) {
-  scoped_refptr<StringVar> str(new StringVar(data, len));
-  if (!str.get() || !base::IsStringUTF8(str->value()))
-    return PP_MakeNull();
-  return str->GetPPVar();
-}
-
-// static
-StringVar* StringVar::FromPPVar(PP_Var var) {
-  if (var.type != PP_VARTYPE_STRING)
-    return NULL;
-  scoped_refptr<Var> var_object(
-      PpapiGlobals::Get()->GetVarTracker()->GetVar(var));
-  if (!var_object.get())
-    return NULL;
-  return var_object->AsStringVar();
-}
-
-// static
-PP_Var StringVar::SwapValidatedUTF8StringIntoPPVar(std::string* src) {
-  scoped_refptr<StringVar> str(new StringVar);
-  str->value_.swap(*src);
-  return str->GetPPVar();
-}
-
-// ArrayBufferVar --------------------------------------------------------------
-
-ArrayBufferVar::ArrayBufferVar() {}
-
-ArrayBufferVar::~ArrayBufferVar() {}
-
-ArrayBufferVar* ArrayBufferVar::AsArrayBufferVar() { return this; }
-
-PP_VarType ArrayBufferVar::GetType() const { return PP_VARTYPE_ARRAY_BUFFER; }
-
-// static
-ArrayBufferVar* ArrayBufferVar::FromPPVar(PP_Var var) {
-  if (var.type != PP_VARTYPE_ARRAY_BUFFER)
-    return NULL;
-  scoped_refptr<Var> var_object(
-      PpapiGlobals::Get()->GetVarTracker()->GetVar(var));
-  if (!var_object.get())
-    return NULL;
-  return var_object->AsArrayBufferVar();
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/var.h b/shared_impl/var.h
deleted file mode 100644
index b84e210..0000000
--- a/shared_impl/var.h
+++ /dev/null
@@ -1,199 +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_SHARED_IMPL_VAR_H_
-#define PPAPI_SHARED_IMPL_VAR_H_
-
-#include <stdint.h>
-
-#include <string>
-
-#include "base/compiler_specific.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/host_resource.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-class ArrayBufferVar;
-class ArrayVar;
-class DictionaryVar;
-class ProxyObjectVar;
-class ResourceVar;
-class StringVar;
-class V8ObjectVar;
-class VarTracker;
-
-// Var -------------------------------------------------------------------------
-
-// Represents a non-POD var.
-class PPAPI_SHARED_EXPORT Var : public base::RefCounted<Var> {
- public:
-  Var(const Var&) = delete;
-  Var& operator=(const Var&) = delete;
-
-  // Returns a string representing the given var for logging purposes.
-  static std::string PPVarToLogString(PP_Var var);
-
-  virtual StringVar* AsStringVar();
-  virtual ArrayBufferVar* AsArrayBufferVar();
-  virtual V8ObjectVar* AsV8ObjectVar();
-  virtual ProxyObjectVar* AsProxyObjectVar();
-  virtual ArrayVar* AsArrayVar();
-  virtual DictionaryVar* AsDictionaryVar();
-  virtual ResourceVar* AsResourceVar();
-
-  // Creates a PP_Var corresponding to this object. The return value will have
-  // one reference addrefed on behalf of the caller.
-  PP_Var GetPPVar();
-
-  // Returns the type of this var.
-  virtual PP_VarType GetType() const = 0;
-
-  // Returns the ID corresponing to the string or object if it exists already,
-  // or 0 if an ID hasn't been generated for this object (the plugin is holding
-  // no refs).
-  //
-  // Contrast to GetOrCreateVarID which creates the ID and a ref on behalf of
-  // the plugin.
-  int32_t GetExistingVarID() const;
-
- protected:
-  friend class base::RefCounted<Var>;
-  friend class VarTracker;
-
-  Var();
-  virtual ~Var();
-
-  // Returns the unique ID associated with this string or object, creating it
-  // if necessary. The return value will be 0 if the string or object is
-  // invalid.
-  //
-  // This function will take a reference to the var that will be passed to the
-  // caller.
-  int32_t GetOrCreateVarID();
-
-  // Sets the internal object ID. This assumes that the ID hasn't been set
-  // before. This is used in cases where the ID is generated externally.
-  void AssignVarID(int32_t id);
-
-  // Reset the assigned object ID.
-  void ResetVarID() { var_id_ = 0; }
-
- private:
-  // This will be 0 if no ID has been assigned (this happens lazily).
-  int32_t var_id_;
-};
-
-// StringVar -------------------------------------------------------------------
-
-// Represents a string-based Var.
-//
-// Returning a given string as a PP_Var:
-//   return StringVar::StringToPPVar(my_string);
-//
-// Converting a PP_Var to a string:
-//   StringVar* string = StringVar::FromPPVar(var);
-//   if (!string)
-//     return false;  // Not a string or an invalid var.
-//   DoSomethingWithTheString(string->value());
-class PPAPI_SHARED_EXPORT StringVar : public Var {
- public:
-  explicit StringVar(const std::string& str);
-  StringVar(const char* str, uint32_t len);
-
-  StringVar(const StringVar&) = delete;
-  StringVar& operator=(const StringVar&) = delete;
-
-  ~StringVar() override;
-
-  const std::string& value() const { return value_; }
-  // Return a pointer to the internal string. This allows other objects to
-  // temporarily store a weak pointer to our internal string. Use with care; the
-  // pointer *will* become invalid if this StringVar is removed from the
-  // tracker. (All of this applies to value(), but this one's even easier to use
-  // dangerously).
-  const std::string* ptr() const { return &value_; }
-
-  // Var override.
-  StringVar* AsStringVar() override;
-  PP_VarType GetType() const override;
-
-  // Helper function to create a PP_Var of type string that contains a copy of
-  // the given string. The input data must be valid UTF-8 encoded text, if it
-  // is not valid UTF-8, a NULL var will be returned.
-  //
-  // The return value will have a reference count of 1. Internally, this will
-  // create a StringVar and return the reference to it in the var.
-  static PP_Var StringToPPVar(const std::string& str);
-  static PP_Var StringToPPVar(const char* str, uint32_t len);
-
-  // Same as StringToPPVar but avoids a copy by destructively swapping the
-  // given string into the newly created StringVar. The string must already be
-  // valid UTF-8. After the call, *src will be empty.
-  static PP_Var SwapValidatedUTF8StringIntoPPVar(std::string* src);
-
-  // Helper function that converts a PP_Var to a string. This will return NULL
-  // if the PP_Var is not of string type or the string is invalid.
-  static StringVar* FromPPVar(PP_Var var);
-
- private:
-  StringVar();  // Makes an empty string.
-
-  std::string value_;
-};
-
-// ArrayBufferVar --------------------------------------------------------------
-
-// Represents an array buffer Var.
-//
-// Note this is an abstract class. To create an appropriate concrete one, you
-// need to use the VarTracker:
-//   VarArrayBuffer* buf =
-//       PpapiGlobals::Get()->GetVarTracker()->CreateArrayBuffer(size);
-//
-// Converting a PP_Var to an ArrayBufferVar:
-//   ArrayBufferVar* array = ArrayBufferVar::FromPPVar(var);
-//   if (!array)
-//     return false;  // Not an ArrayBuffer or an invalid var.
-//   DoSomethingWithTheBuffer(array);
-class PPAPI_SHARED_EXPORT ArrayBufferVar : public Var {
- public:
-  ArrayBufferVar();
-
-  ArrayBufferVar(const ArrayBufferVar&) = delete;
-  ArrayBufferVar& operator=(const ArrayBufferVar&) = delete;
-
-  ~ArrayBufferVar() override;
-
-  virtual void* Map() = 0;
-  virtual void Unmap() = 0;
-  virtual uint32_t ByteLength() = 0;
-
-  // Creates a new shared memory region, and copies the data in the
-  // ArrayBufferVar into it. On the plugin side, host_shm_handle_id will be set
-  // to some value that is not -1. On the host side, plugin_shm_region will be
-  // set to a valid UnsafeSharedMemoryRegion.
-  //
-  // Returns true if creating the shared memory (and copying) is successful,
-  // false otherwise.
-  virtual bool CopyToNewShmem(
-      PP_Instance instance,
-      int* host_shm_handle_id,
-      base::UnsafeSharedMemoryRegion* plugin_shm_region) = 0;
-
-  // Var override.
-  ArrayBufferVar* AsArrayBufferVar() override;
-  PP_VarType GetType() const override;
-
-  // Helper function that converts a PP_Var to an ArrayBufferVar. This will
-  // return NULL if the PP_Var is not of ArrayBuffer type.
-  static ArrayBufferVar* FromPPVar(PP_Var var);
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_VAR_H_
diff --git a/shared_impl/var_tracker.cc b/shared_impl/var_tracker.cc
deleted file mode 100644
index cf407b4..0000000
--- a/shared_impl/var_tracker.cc
+++ /dev/null
@@ -1,269 +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/shared_impl/var_tracker.h"
-
-#include <algorithm>
-#include <limits>
-#include <memory>
-
-#include "base/logging.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "ppapi/shared_impl/host_resource.h"
-#include "ppapi/shared_impl/id_assignment.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource_var.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace ppapi {
-
-VarTracker::VarInfo::VarInfo()
-    : var(), ref_count(0), track_with_no_reference_count(0) {}
-
-VarTracker::VarInfo::VarInfo(Var* v, int input_ref_count)
-    : var(v), ref_count(input_ref_count), track_with_no_reference_count(0) {}
-
-VarTracker::VarTracker(ThreadMode thread_mode) : last_var_id_(0) {
-  if (thread_mode == SINGLE_THREADED)
-    thread_checker_ = std::make_unique<base::ThreadChecker>();
-}
-
-VarTracker::~VarTracker() {}
-
-void VarTracker::CheckThreadingPreconditions() const {
-  DCHECK(!thread_checker_ || thread_checker_->CalledOnValidThread());
-#ifndef NDEBUG
-  ProxyLock::AssertAcquired();
-#endif
-}
-
-int32_t VarTracker::AddVar(Var* var) {
-  CheckThreadingPreconditions();
-
-  return AddVarInternal(var, ADD_VAR_TAKE_ONE_REFERENCE);
-}
-
-Var* VarTracker::GetVar(int32_t var_id) const {
-  CheckThreadingPreconditions();
-
-  VarMap::const_iterator result = live_vars_.find(var_id);
-  if (result == live_vars_.end())
-    return NULL;
-  return result->second.var.get();
-}
-
-Var* VarTracker::GetVar(const PP_Var& var) const {
-  CheckThreadingPreconditions();
-
-  if (!IsVarTypeRefcounted(var.type))
-    return NULL;
-  return GetVar(static_cast<int32_t>(var.value.as_id));
-}
-
-bool VarTracker::AddRefVar(int32_t var_id) {
-  CheckThreadingPreconditions();
-
-  DLOG_IF(ERROR, !CheckIdType(var_id, PP_ID_TYPE_VAR))
-      << var_id << " is not a PP_Var ID.";
-  VarMap::iterator found = live_vars_.find(var_id);
-  if (found == live_vars_.end()) {
-    NOTREACHED();  // Invalid var.
-  }
-
-  VarInfo& info = found->second;
-  if (info.ref_count == 0) {
-    // All live vars with no refcount should be tracked objects.
-    DCHECK(info.track_with_no_reference_count > 0);
-    DCHECK(info.var->GetType() == PP_VARTYPE_OBJECT);
-
-    TrackedObjectGettingOneRef(found);
-  }
-
-  // Basic refcount increment.
-  info.ref_count++;
-  CHECK(info.ref_count != std::numeric_limits<decltype(info.ref_count)>::max());
-  return true;
-}
-
-bool VarTracker::AddRefVar(const PP_Var& var) {
-  CheckThreadingPreconditions();
-
-  if (!IsVarTypeRefcounted(var.type))
-    return true;
-  return AddRefVar(static_cast<int32_t>(var.value.as_id));
-}
-
-bool VarTracker::ReleaseVar(int32_t var_id) {
-  CheckThreadingPreconditions();
-
-  DLOG_IF(ERROR, !CheckIdType(var_id, PP_ID_TYPE_VAR))
-      << var_id << " is not a PP_Var ID.";
-  VarMap::iterator found = live_vars_.find(var_id);
-  if (found == live_vars_.end())
-    return false;
-
-  VarInfo& info = found->second;
-  if (info.ref_count == 0) {
-    NOTREACHED() << "Releasing an object with zero ref";
-  }
-  info.ref_count--;
-
-  if (info.ref_count == 0) {
-    // Hold a reference to the Var until it is erased so that we don't re-enter
-    // live_vars_.erase() during deletion.
-    // TODO(raymes): Make deletion of Vars iterative instead of recursive.
-    scoped_refptr<Var> var(info.var);
-    if (var->GetType() == PP_VARTYPE_OBJECT) {
-      // Objects have special requirements and may not necessarily be released
-      // when the refcount goes to 0.
-      ObjectGettingZeroRef(found);
-    } else {
-      // All other var types can just be released.
-      DCHECK(info.track_with_no_reference_count == 0);
-      var->ResetVarID();
-      live_vars_.erase(found);
-    }
-  }
-  return true;
-}
-
-bool VarTracker::ReleaseVar(const PP_Var& var) {
-  CheckThreadingPreconditions();
-
-  if (!IsVarTypeRefcounted(var.type))
-    return false;
-  return ReleaseVar(static_cast<int32_t>(var.value.as_id));
-}
-
-int32_t VarTracker::AddVarInternal(Var* var, AddVarRefMode mode) {
-  // If the plugin manages to create millions of strings.
-  if (last_var_id_ == std::numeric_limits<int32_t>::max() >> kPPIdTypeBits)
-    return 0;
-
-  int32_t new_id = MakeTypedId(++last_var_id_, PP_ID_TYPE_VAR);
-  std::pair<VarMap::iterator, bool> was_inserted =
-      live_vars_.insert(std::make_pair(
-          new_id, VarInfo(var, mode == ADD_VAR_TAKE_ONE_REFERENCE ? 1 : 0)));
-  // We should never insert an ID that already exists.
-  DCHECK(was_inserted.second);
-
-  return new_id;
-}
-
-VarTracker::VarMap::iterator VarTracker::GetLiveVar(int32_t id) {
-  return live_vars_.find(id);
-}
-
-int VarTracker::GetRefCountForObject(const PP_Var& plugin_object) {
-  CheckThreadingPreconditions();
-
-  VarMap::iterator found = GetLiveVar(plugin_object);
-  if (found == live_vars_.end())
-    return -1;
-  return found->second.ref_count;
-}
-
-int VarTracker::GetTrackedWithNoReferenceCountForObject(
-    const PP_Var& plugin_object) {
-  CheckThreadingPreconditions();
-
-  VarMap::iterator found = GetLiveVar(plugin_object);
-  if (found == live_vars_.end())
-    return -1;
-  return found->second.track_with_no_reference_count;
-}
-
-// static
-bool VarTracker::IsVarTypeRefcounted(PP_VarType type) {
-  return type >= PP_VARTYPE_STRING;
-}
-
-VarTracker::VarMap::iterator VarTracker::GetLiveVar(const PP_Var& var) {
-  return live_vars_.find(static_cast<int32_t>(var.value.as_id));
-}
-
-VarTracker::VarMap::const_iterator VarTracker::GetLiveVar(const PP_Var& var)
-    const {
-  return live_vars_.find(static_cast<int32_t>(var.value.as_id));
-}
-
-PP_Var VarTracker::MakeArrayBufferPPVar(uint32_t size_in_bytes) {
-  CheckThreadingPreconditions();
-
-  scoped_refptr<ArrayBufferVar> array_buffer(CreateArrayBuffer(size_in_bytes));
-  if (!array_buffer.get())
-    return PP_MakeNull();
-  return array_buffer->GetPPVar();
-}
-
-PP_Var VarTracker::MakeArrayBufferPPVar(uint32_t size_in_bytes,
-                                        const void* data) {
-  CheckThreadingPreconditions();
-
-  ArrayBufferVar* array_buffer = MakeArrayBufferVar(size_in_bytes, data);
-  return array_buffer ? array_buffer->GetPPVar() : PP_MakeNull();
-}
-
-ArrayBufferVar* VarTracker::MakeArrayBufferVar(uint32_t size_in_bytes,
-                                               const void* data) {
-  CheckThreadingPreconditions();
-
-  ArrayBufferVar* array_buffer(CreateArrayBuffer(size_in_bytes));
-  if (!array_buffer)
-    return nullptr;
-  std::copy_n(static_cast<const uint8_t*>(data), size_in_bytes,
-              static_cast<uint8_t*>(array_buffer->Map()));
-  return array_buffer;
-}
-
-PP_Var VarTracker::MakeArrayBufferPPVar(uint32_t size_in_bytes,
-                                        base::UnsafeSharedMemoryRegion region) {
-  CheckThreadingPreconditions();
-
-  scoped_refptr<ArrayBufferVar> array_buffer(
-      CreateShmArrayBuffer(size_in_bytes, std::move(region)));
-  if (!array_buffer.get())
-    return PP_MakeNull();
-  return array_buffer->GetPPVar();
-}
-
-PP_Var VarTracker::MakeResourcePPVar(PP_Resource pp_resource) {
-  CheckThreadingPreconditions();
-
-  ResourceVar* resource_var = MakeResourceVar(pp_resource);
-  return resource_var ? resource_var->GetPPVar() : PP_MakeNull();
-}
-
-std::vector<PP_Var> VarTracker::GetLiveVars() {
-  CheckThreadingPreconditions();
-
-  std::vector<PP_Var> var_vector;
-  var_vector.reserve(live_vars_.size());
-  for (VarMap::const_iterator iter = live_vars_.begin();
-       iter != live_vars_.end();
-       ++iter) {
-    var_vector.push_back(iter->second.var->GetPPVar());
-  }
-  return var_vector;
-}
-
-void VarTracker::TrackedObjectGettingOneRef(VarMap::const_iterator obj) {
-  // Anybody using tracked objects should override this.
-  NOTREACHED();
-}
-
-void VarTracker::ObjectGettingZeroRef(VarMap::iterator iter) {
-  DeleteObjectInfoIfNecessary(iter);
-}
-
-bool VarTracker::DeleteObjectInfoIfNecessary(VarMap::iterator iter) {
-  if (iter->second.ref_count != 0 ||
-      iter->second.track_with_no_reference_count != 0)
-    return false;  // Object still alive.
-  iter->second.var->ResetVarID();
-  live_vars_.erase(iter);
-  return true;
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/var_tracker.h b/shared_impl/var_tracker.h
deleted file mode 100644
index 8975b36..0000000
--- a/shared_impl/var_tracker.h
+++ /dev/null
@@ -1,247 +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_SHARED_IMPL_VAR_TRACKER_H_
-#define PPAPI_SHARED_IMPL_VAR_TRACKER_H_
-
-#include <stdint.h>
-
-#include <memory>
-#include <unordered_map>
-#include <vector>
-
-#include "base/memory/ref_counted.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "base/threading/thread_checker.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_module.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/host_resource.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-#include "ppapi/shared_impl/var.h"
-
-namespace IPC {
-class Message;
-}  // namespace IPC
-
-namespace ppapi {
-
-class ArrayBufferVar;
-
-// Tracks non-POD (refcounted) var objects held by a plugin.
-//
-// The tricky part is the concept of a "tracked object". These are only
-// necessary in the plugin side of the proxy when running out of process. A
-// tracked object is one that the plugin is aware of, but doesn't hold a
-// reference to. This will happen when the plugin is passed an object as an
-// argument from the host (renderer) as an input argument to a sync function,
-// but where ownership is not passed.
-//
-// This class maintains the "track_with_no_reference_count" but doesn't do
-// anything with it other than call virtual functions. The interesting parts
-// are added by the PluginObjectVar derived from this class.
-class PPAPI_SHARED_EXPORT VarTracker {
- public:
-  // A SINGLE_THREADED VarTracker will use a thread-checker to make sure it's
-  // always invoked on the same thread on which it was constructed. A
-  // THREAD_SAFE VarTracker will check that the ProxyLock is held. See
-  // CheckThreadingPreconditions() for more details.
-  enum ThreadMode { SINGLE_THREADED, THREAD_SAFE };
-  explicit VarTracker(ThreadMode thread_mode);
-
-  VarTracker(const VarTracker&) = delete;
-  VarTracker& operator=(const VarTracker&) = delete;
-
-  virtual ~VarTracker();
-
-  // Called by the Var object to add a new var to the tracker.
-  int32_t AddVar(Var* var);
-
-  // Looks up a given var and returns a reference to the Var if it exists.
-  // Returns NULL if the var type is not an object we track (POD) or is
-  // invalid.
-  Var* GetVar(int32_t var_id) const;
-  Var* GetVar(const PP_Var& var) const;
-
-  // Increases a previously-known Var ID's refcount, returning true on success,
-  // false if the ID is invalid. The PP_Var version returns true and does
-  // nothing for non-refcounted type vars.
-  bool AddRefVar(int32_t var_id);
-  bool AddRefVar(const PP_Var& var);
-
-  // Decreases the given Var ID's refcount, returning true on success, false if
-  // the ID is invalid or if the refcount was already 0. The PP_Var version
-  // returns true and does nothing for non-refcounted type vars. The var will
-  // be deleted if there are no more refs to it.
-  bool ReleaseVar(int32_t var_id);
-  bool ReleaseVar(const PP_Var& var);
-
-  // Create a new array buffer of size |size_in_bytes|. Return a PP_Var that
-  // that references it and has an initial reference-count of 1.
-  PP_Var MakeArrayBufferPPVar(uint32_t size_in_bytes);
-  // Same as above, but copy the contents of |data| in to the new array buffer.
-  PP_Var MakeArrayBufferPPVar(uint32_t size_in_bytes, const void* data);
-  // Same as above, but copy the contents of the shared memory in |h|
-  // into the new array buffer.
-  PP_Var MakeArrayBufferPPVar(uint32_t size_in_bytes,
-                              base::UnsafeSharedMemoryRegion h);
-
-  // Create an ArrayBuffer and copy the contents of |data| in to it. The
-  // returned object has 0 reference count in the tracker, and like all
-  // RefCounted objects, has a 0 initial internal reference count. (You should
-  // usually immediately put this in a scoped_refptr).
-  ArrayBufferVar* MakeArrayBufferVar(uint32_t size_in_bytes, const void* data);
-
-  // Creates a new resource var from a resource creation message. Returns a
-  // PP_Var that references a new PP_Resource, both with an initial reference
-  // count of 1. On the host side, |creation_message| is ignored, and an empty
-  // resource var is always returned.
-  virtual PP_Var MakeResourcePPVarFromMessage(
-      PP_Instance instance,
-      const IPC::Message& creation_message,
-      int pending_renderer_id,
-      int pending_browser_id) = 0;
-
-  // Creates a new resource var that points to a given resource ID. Returns a
-  // PP_Var that references it and has an initial reference count of 1.
-  // If |pp_resource| is 0, returns a valid, empty resource var. On the plugin
-  // side (where it is possible to tell which resources exist), if |pp_resource|
-  // does not exist, returns a null var.
-  PP_Var MakeResourcePPVar(PP_Resource pp_resource);
-
-  // Creates a new resource var that points to a given resource ID. This is
-  // implemented by the host and plugin tracker separately, because the plugin
-  // keeps a reference to the resource, and the host does not.
-  // If |pp_resource| is 0, returns a valid, empty resource var. On the plugin
-  // side (where it is possible to tell which resources exist), if |pp_resource|
-  // does not exist, returns NULL.
-  virtual ResourceVar* MakeResourceVar(PP_Resource pp_resource) = 0;
-
-  // Return a vector containing all PP_Vars that are in the tracker. This is to
-  // help implement PPB_Testing_Private.GetLiveVars and should generally not be
-  // used in production code. The PP_Vars are returned in no particular order,
-  // and their reference counts are unaffected.
-  std::vector<PP_Var> GetLiveVars();
-
-  // Retrieves the internal reference counts for testing. Returns 0 if we
-  // know about the object but the corresponding value is 0, or -1 if the
-  // given object ID isn't in our map.
-  int GetRefCountForObject(const PP_Var& object);
-  int GetTrackedWithNoReferenceCountForObject(const PP_Var& object);
-
-  // Returns true if the given vartype is refcounted and has associated objects
-  // (it's not POD).
-  static bool IsVarTypeRefcounted(PP_VarType type);
-
-  // Called after an instance is deleted to do var cleanup.
-  virtual void DidDeleteInstance(PP_Instance instance) = 0;
-
-  // Returns an "id" for a shared memory region that can be safely sent between
-  // the host and plugin, and resolved back into the original region on the
-  // host. Not implemented on the plugin side.
-  virtual int TrackSharedMemoryRegion(PP_Instance instance,
-                                      base::UnsafeSharedMemoryRegion region,
-                                      uint32_t size_in_bytes) = 0;
-
-  // Resolves an "id" generated by TrackSharedMemoryHandle back into
-  // a UnsafeSharedMemoryRegion and its size on the host.
-  // Not implemented on the plugin side.
-  virtual bool StopTrackingSharedMemoryRegion(
-      int id,
-      PP_Instance instance,
-      base::UnsafeSharedMemoryRegion* region,
-      uint32_t* size_in_bytes) = 0;
-
- protected:
-  struct PPAPI_SHARED_EXPORT VarInfo {
-    VarInfo();
-    VarInfo(Var* v, int input_ref_count);
-
-    scoped_refptr<Var> var;
-
-    // Explicit reference count. This value is affected by the renderer calling
-    // AddRef and Release. A nonzero value here is represented by a single
-    // reference in the host on our behalf (this reduces IPC traffic).
-    int ref_count;
-
-    // Tracked object count (see class comment above).
-    //
-    // "TrackObjectWithNoReference" might be called recursively in rare cases.
-    // For example, say the host calls a plugin function with an object as an
-    // argument, and in response, the plugin calls a host function that then
-    // calls another (or the same) plugin function with the same object.
-    //
-    // This value tracks the number of calls to TrackObjectWithNoReference so
-    // we know when we can stop tracking this object.
-    int track_with_no_reference_count;
-  };
-  typedef std::unordered_map<int32_t, VarInfo> VarMap;
-
-  // Specifies what should happen with the refcount when calling AddVarInternal.
-  enum AddVarRefMode {
-    ADD_VAR_TAKE_ONE_REFERENCE,
-    ADD_VAR_CREATE_WITH_NO_REFERENCE
-  };
-
-  // On the host-side, make sure we are called on the right thread. On the
-  // plugin side, make sure we have the proxy lock.
-  void CheckThreadingPreconditions() const;
-
-  // Implementation of AddVar that allows the caller to specify whether the
-  // initial refcount of the added object will be 0 or 1.
-  //
-  // Overridden in the plugin proxy to do additional object tracking.
-  virtual int32_t AddVarInternal(Var* var, AddVarRefMode mode);
-
-  // Convenience functions for doing lookups into the live_vars_ map.
-  VarMap::iterator GetLiveVar(int32_t id);
-  VarMap::iterator GetLiveVar(const PP_Var& var);
-  VarMap::const_iterator GetLiveVar(const PP_Var& var) const;
-
-  // Called when AddRefVar increases a "tracked" ProxyObject's refcount from
-  // zero to one. In the plugin side of the proxy, we need to send some
-  // messages to the host. In the host side, this should never be called since
-  // there are no proxy objects.
-  virtual void TrackedObjectGettingOneRef(VarMap::const_iterator iter);
-
-  // Called when ReleaseVar decreases a object's refcount from one to zero. It
-  // may still be "tracked" (has a "track_with_no_reference_count") value. In
-  // the plugin side of the proxy, we need to tell the host that we no longer
-  // have a reference. In the host side, this should never be called since
-  // there are no proxy objects.
-  virtual void ObjectGettingZeroRef(VarMap::iterator iter);
-
-  // Called when an object may have had its refcount or
-  // track_with_no_reference_count value decreased. If the object has neither
-  // refs anymore, this will remove it and return true. Returns false if it's
-  // still alive.
-  //
-  // Overridden by the PluginVarTracker to also clean up the host info map.
-  virtual bool DeleteObjectInfoIfNecessary(VarMap::iterator iter);
-
-  VarMap live_vars_;
-
-  // Last assigned var ID.
-  int32_t last_var_id_;
-
- private:
-  // Create and return a new ArrayBufferVar size_in_bytes bytes long. This is
-  // implemented by the Host and Plugin tracker separately, so that it can be
-  // a real WebKit ArrayBuffer on the host side.
-  virtual ArrayBufferVar* CreateArrayBuffer(uint32_t size_in_bytes) = 0;
-  virtual ArrayBufferVar* CreateShmArrayBuffer(
-      uint32_t size_in_bytes,
-      base::UnsafeSharedMemoryRegion region) = 0;
-
-  // On the host side, we want to check that we are only called on the main
-  // thread. This is to protect us from accidentally using the tracker from
-  // other threads (especially the IO thread). On the plugin side, the tracker
-  // is protected by the proxy lock and is thread-safe, so this will be NULL.
-  std::unique_ptr<base::ThreadChecker> thread_checker_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_VAR_TRACKER_H_
diff --git a/shared_impl/vpn_provider_util.cc b/shared_impl/vpn_provider_util.cc
deleted file mode 100644
index 14b7c11..0000000
--- a/shared_impl/vpn_provider_util.cc
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2016 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/shared_impl/vpn_provider_util.h"
-
-#include "base/check.h"
-#include "base/notreached.h"
-
-namespace ppapi {
-
-VpnProviderSharedBuffer::VpnProviderSharedBuffer(
-    uint32_t capacity,
-    uint32_t packet_size,
-    base::UnsafeSharedMemoryRegion shm,
-    base::WritableSharedMemoryMapping mapping)
-    : capacity_(capacity),
-      max_packet_size_(packet_size),
-      shm_(std::move(shm)),
-      shm_mapping_(std::move(mapping)),
-      available_(capacity, true) {
-  DCHECK(shm_.IsValid() && shm_mapping_.IsValid());
-}
-
-VpnProviderSharedBuffer::~VpnProviderSharedBuffer() {}
-
-bool VpnProviderSharedBuffer::GetAvailable(uint32_t* id) {
-  for (uint32_t i = 0; i < capacity_; i++) {
-    if (available_[i]) {
-      if (id) {
-        *id = i;
-      }
-      return true;
-    }
-  }
-  return false;
-}
-
-void VpnProviderSharedBuffer::SetAvailable(uint32_t id, bool value) {
-  if (id >= capacity_) {
-    NOTREACHED();
-  }
-  available_[id] = value;
-}
-
-void* VpnProviderSharedBuffer::GetBuffer(uint32_t id) {
-  if (id >= capacity_) {
-    NOTREACHED();
-  }
-  return shm_mapping_.GetMemoryAsSpan<char>()
-      .subspan(max_packet_size_ * id)
-      .data();
-}
-
-base::UnsafeSharedMemoryRegion VpnProviderSharedBuffer::DuplicateRegion()
-    const {
-  return shm_.Duplicate();
-}
-
-}  // namespace ppapi
diff --git a/shared_impl/vpn_provider_util.h b/shared_impl/vpn_provider_util.h
deleted file mode 100644
index 87c31ad..0000000
--- a/shared_impl/vpn_provider_util.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2016 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_SHARED_IMPL_VPN_PROVIDER_UTIL_H_
-#define PPAPI_SHARED_IMPL_VPN_PROVIDER_UTIL_H_
-
-#include <memory>
-#include <vector>
-
-#include "base/memory/shared_memory_mapping.h"
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "ppapi/shared_impl/ppapi_shared_export.h"
-
-namespace ppapi {
-
-class PPAPI_SHARED_EXPORT VpnProviderSharedBuffer {
- public:
-  VpnProviderSharedBuffer(uint32_t capacity,
-                          uint32_t packet_size,
-                          base::UnsafeSharedMemoryRegion shm,
-                          base::WritableSharedMemoryMapping mapping);
-
-  VpnProviderSharedBuffer(const VpnProviderSharedBuffer&) = delete;
-  VpnProviderSharedBuffer& operator=(const VpnProviderSharedBuffer&) = delete;
-
-  ~VpnProviderSharedBuffer();
-
-  bool GetAvailable(uint32_t* id);
-  void SetAvailable(uint32_t id, bool value);
-  void* GetBuffer(uint32_t id);
-  uint32_t max_packet_size() { return max_packet_size_; }
-  base::UnsafeSharedMemoryRegion DuplicateRegion() const;
-
- private:
-  uint32_t capacity_;
-  uint32_t max_packet_size_;
-  base::UnsafeSharedMemoryRegion shm_;
-  base::WritableSharedMemoryMapping shm_mapping_;
-  std::vector<bool> available_;
-};
-
-}  // namespace ppapi
-
-#endif  // PPAPI_SHARED_IMPL_VPN_PROVIDER_UTIL_H_
diff --git a/thunk/BUILD.gn b/thunk/BUILD.gn
deleted file mode 100644
index 87d788d..0000000
--- a/thunk/BUILD.gn
+++ /dev/null
@@ -1,196 +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("//ppapi/buildflags/buildflags.gni")
-
-assert(enable_ppapi)
-
-source_set("headers") {
-  visibility = [
-    ":thunk",
-    "//ppapi/shared_impl:common",
-  ]
-  sources = [
-    "enter.h",
-    "interfaces_postamble.h",
-    "interfaces_ppb_private.h",
-    "interfaces_ppb_private_no_permissions.h",
-    "interfaces_ppb_public_dev.h",
-    "interfaces_ppb_public_dev_channel.h",
-    "interfaces_ppb_public_socket.h",
-    "interfaces_ppb_public_stable.h",
-    "interfaces_preamble.h",
-    "ppapi_thunk_export.h",
-    "ppb_audio_config_api.h",
-    "ppb_device_ref_api.h",
-    "ppb_instance_api.h",
-    "ppb_message_loop_api.h",
-    "resource_creation_api.h",
-    "thunk.h",
-  ]
-
-  configs += [ "//ppapi/shared_impl:export_shared_impl_and_thunk" ]
-
-  deps = [
-    "//base",
-    "//gpu/command_buffer/common",
-    "//ppapi/c",
-    "//ppapi/shared_impl:headers",
-  ]
-}
-
-source_set("thunk") {
-  visibility = [ "//ppapi/shared_impl" ]
-
-  sources = [
-    "enter.cc",
-    "interfaces_legacy.h",
-    "ppb_audio_api.h",
-    "ppb_audio_buffer_api.h",
-    "ppb_audio_buffer_thunk.cc",
-    "ppb_audio_config_thunk.cc",
-    "ppb_audio_input_api.h",
-    "ppb_audio_output_api.h",
-    "ppb_audio_thunk.cc",
-    "ppb_browser_font_singleton_api.h",
-    "ppb_browser_font_trusted_api.h",
-    "ppb_buffer_api.h",
-    "ppb_camera_capabilities_api.h",
-    "ppb_camera_capabilities_private_thunk.cc",
-    "ppb_camera_device_api.h",
-    "ppb_camera_device_private_thunk.cc",
-    "ppb_console_thunk.cc",
-    "ppb_cursor_control_thunk.cc",
-    "ppb_device_ref_dev_thunk.cc",
-    "ppb_ext_crx_file_system_private_thunk.cc",
-    "ppb_file_chooser_api.h",
-    "ppb_file_chooser_dev_thunk.cc",
-    "ppb_file_chooser_trusted_thunk.cc",
-    "ppb_file_io_api.h",
-    "ppb_file_io_private_thunk.cc",
-    "ppb_file_io_thunk.cc",
-    "ppb_file_ref_api.h",
-    "ppb_file_ref_thunk.cc",
-    "ppb_file_system_api.h",
-    "ppb_file_system_thunk.cc",
-    "ppb_fullscreen_thunk.cc",
-    "ppb_gamepad_api.h",
-    "ppb_gamepad_thunk.cc",
-    "ppb_graphics_2d_api.h",
-    "ppb_graphics_2d_thunk.cc",
-    "ppb_graphics_3d_api.h",
-    "ppb_graphics_3d_thunk.cc",
-    "ppb_host_resolver_api.h",
-    "ppb_host_resolver_private_api.h",
-    "ppb_host_resolver_private_thunk.cc",
-    "ppb_host_resolver_thunk.cc",
-    "ppb_image_data_api.h",
-    "ppb_image_data_thunk.cc",
-    "ppb_input_event_api.h",
-    "ppb_input_event_thunk.cc",
-    "ppb_instance_private_thunk.cc",
-    "ppb_instance_thunk.cc",
-    "ppb_isolated_file_system_private_api.h",
-    "ppb_isolated_file_system_private_thunk.cc",
-    "ppb_media_stream_audio_track_api.h",
-    "ppb_media_stream_audio_track_thunk.cc",
-    "ppb_media_stream_video_track_api.h",
-    "ppb_media_stream_video_track_thunk.cc",
-    "ppb_messaging_thunk.cc",
-    "ppb_mouse_cursor_thunk.cc",
-    "ppb_mouse_lock_thunk.cc",
-    "ppb_net_address_api.h",
-    "ppb_net_address_thunk.cc",
-    "ppb_network_list_api.h",
-    "ppb_network_list_thunk.cc",
-    "ppb_network_monitor_api.h",
-    "ppb_network_monitor_thunk.cc",
-    "ppb_network_proxy_api.h",
-    "ppb_network_proxy_thunk.cc",
-    "ppb_printing_api.h",
-    "ppb_printing_dev_thunk.cc",
-    "ppb_tcp_server_socket_private_api.h",
-    "ppb_tcp_server_socket_private_thunk.cc",
-    "ppb_tcp_socket_api.h",
-    "ppb_tcp_socket_private_api.h",
-    "ppb_tcp_socket_private_thunk.cc",
-    "ppb_tcp_socket_thunk.cc",
-    "ppb_text_input_thunk.cc",
-    "ppb_udp_socket_api.h",
-    "ppb_udp_socket_private_api.h",
-    "ppb_udp_socket_private_thunk.cc",
-    "ppb_udp_socket_thunk.cc",
-    "ppb_uma_private_thunk.cc",
-    "ppb_uma_singleton_api.h",
-    "ppb_url_loader_api.h",
-    "ppb_url_loader_thunk.cc",
-    "ppb_url_loader_trusted_thunk.cc",
-    "ppb_url_request_info_api.h",
-    "ppb_url_request_info_thunk.cc",
-    "ppb_url_response_info_api.h",
-    "ppb_url_response_info_thunk.cc",
-    "ppb_var_array_thunk.cc",
-    "ppb_var_dictionary_thunk.cc",
-    "ppb_video_capture_api.h",
-    "ppb_video_decoder_api.h",
-    "ppb_video_decoder_dev_api.h",
-    "ppb_video_decoder_thunk.cc",
-    "ppb_video_encoder_api.h",
-    "ppb_video_encoder_thunk.cc",
-    "ppb_video_frame_api.h",
-    "ppb_video_frame_thunk.cc",
-    "ppb_view_api.h",
-    "ppb_view_dev_thunk.cc",
-    "ppb_view_thunk.cc",
-    "ppb_vpn_provider_api.h",
-    "ppb_vpn_provider_thunk.cc",
-    "ppb_websocket_api.h",
-    "ppb_websocket_thunk.cc",
-  ]
-
-  if (!is_nacl) {
-    sources += [
-      "ppb_audio_input_dev_thunk.cc",
-      "ppb_audio_output_dev_thunk.cc",
-      "ppb_browser_font_trusted_thunk.cc",
-      "ppb_buffer_thunk.cc",
-      "ppb_char_set_thunk.cc",
-      "ppb_gles_chromium_texture_mapping_thunk.cc",
-      "ppb_url_util_thunk.cc",
-      "ppb_video_capture_thunk.cc",
-      "ppb_video_decoder_dev_thunk.cc",
-      "ppb_x509_certificate_private_api.h",
-      "ppb_x509_certificate_private_thunk.cc",
-    ]
-  }
-
-  # This condition is catching the build of nacl64.exe, which is built in
-  # the 64-bit toolchain when the overall build is 32-bit.  We exclude a
-  # few more things, to avoid pulling in more dependencies.
-  # See also //ppapi/shared_impl
-  if (is_win && target_cpu == "x86" && current_cpu == "x64") {
-    sources -= [
-      "ppb_graphics_3d_thunk.cc",
-      "ppb_host_resolver_private_thunk.cc",
-      "ppb_tcp_server_socket_private_thunk.cc",
-      "ppb_tcp_socket_private_thunk.cc",
-      "ppb_udp_socket_private_thunk.cc",
-      "ppb_x509_certificate_private_thunk.cc",
-    ]
-  }
-
-  configs += [
-    "//ppapi/shared_impl:export_shared_impl_and_thunk",
-    "//build/config:precompiled_headers",
-  ]
-
-  deps = [
-    "//base",
-    "//gpu/command_buffer/common",
-    "//ppapi/c",
-    "//ppapi/shared_impl:common",
-    "//ppapi/shared_impl:headers",
-  ]
-  public_deps = [ ":headers" ]
-}
diff --git a/thunk/DEPS b/thunk/DEPS
deleted file mode 100644
index 0621249..0000000
--- a/thunk/DEPS
+++ /dev/null
@@ -1,8 +0,0 @@
-include_rules = [
-  # For gpu::CommandBuffer::State
-  "+gpu/command_buffer/common/command_buffer.h",
-  "+gpu/command_buffer/common/command_buffer_id.h",
-  "+gpu/command_buffer/common/sync_token.h",
-  "-ppapi/cpp",
-  "-ppapi/proxy",
-]
diff --git a/thunk/enter.cc b/thunk/enter.cc
deleted file mode 100644
index 0876f0d..0000000
--- a/thunk/enter.cc
+++ /dev/null
@@ -1,320 +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/thunk/enter.h"
-
-#include "base/functional/bind.h"
-#include "base/logging.h"
-#include "base/strings/stringprintf.h"
-#include "base/synchronization/lock.h"
-#include "base/task/single_thread_task_runner.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/resource_tracker.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-
-namespace ppapi {
-namespace {
-
-bool IsMainThread() {
-  return
-      PpapiGlobals::Get()->GetMainThreadMessageLoop()->BelongsToCurrentThread();
-}
-
-bool CurrentThreadHandlingBlockingMessage() {
-  ppapi::MessageLoopShared* current =
-      PpapiGlobals::Get()->GetCurrentMessageLoop();
-  return current && current->CurrentlyHandlingBlockingMessage();
-}
-
-}  // namespace
-
-namespace thunk {
-
-namespace subtle {
-
-EnterBase::EnterBase() {}
-
-EnterBase::EnterBase(PP_Resource resource) : resource_(GetResource(resource)) {}
-
-EnterBase::EnterBase(PP_Instance instance, SingletonResourceID resource_id)
-    : resource_(GetSingletonResource(instance, resource_id)) {
-  if (!resource_)
-    retval_ = PP_ERROR_BADARGUMENT;
-}
-
-EnterBase::EnterBase(PP_Resource resource,
-                     const PP_CompletionCallback& callback)
-    : EnterBase(resource) {
-  callback_ = new TrackedCallback(resource_, callback);
-}
-
-EnterBase::EnterBase(PP_Instance instance,
-                     SingletonResourceID resource_id,
-                     const PP_CompletionCallback& callback)
-    : EnterBase(instance, resource_id) {
-  callback_ = new TrackedCallback(resource_, callback);
-}
-
-EnterBase::~EnterBase() {
-  // callback_ is cleared any time it is run, scheduled to be run, or once we
-  // know it will be completed asynchronously. So by this point it should be
-  // null.
-  DCHECK(!callback_) << "|callback_| is not null. Did you forget to call "
-                        "|EnterBase::SetResult| in the interface's thunk?";
-}
-
-int32_t EnterBase::SetResult(int32_t result) {
-  if (!callback_) {
-    // It doesn't make sense to call SetResult if there is no callback.
-    NOTREACHED();
-  }
-  if (result == PP_OK_COMPLETIONPENDING) {
-    retval_ = result;
-    if (callback_->is_blocking()) {
-      DCHECK(!IsMainThread());  // We should have returned an error before this.
-      retval_ = callback_->BlockUntilComplete();
-    } else {
-      // The callback is not blocking and the operation will complete
-      // asynchronously, so there's nothing to do.
-      retval_ = result;
-    }
-  } else {
-    // The function completed synchronously.
-    if (callback_->is_required()) {
-      // This is a required callback, so we must issue it asynchronously.
-      callback_->PostRun(result);
-      retval_ = PP_OK_COMPLETIONPENDING;
-    } else {
-      // The callback is blocking or optional, so all we need to do is mark
-      // the callback as completed so that it won't be issued later.
-      callback_->MarkAsCompleted();
-      retval_ = result;
-    }
-  }
-  callback_ = nullptr;
-  return retval_;
-}
-
-// static
-Resource* EnterBase::GetResource(PP_Resource resource) {
-  return PpapiGlobals::Get()->GetResourceTracker()->GetResource(resource);
-}
-
-// static
-Resource* EnterBase::GetSingletonResource(PP_Instance instance,
-                                          SingletonResourceID resource_id) {
-  PPB_Instance_API* ppb_instance =
-      PpapiGlobals::Get()->GetInstanceAPI(instance);
-  if (!ppb_instance)
-    return nullptr;
-
-  return ppb_instance->GetSingletonResource(instance, resource_id);
-}
-
-void EnterBase::SetStateForCallbackError(bool report_error) {
-  if (PpapiGlobals::Get()->IsHostGlobals()) {
-    // In-process plugins can't make PPAPI calls off the main thread.
-    CHECK(IsMainThread());
-  }
-  if (callback_) {
-    if (callback_->is_blocking() && IsMainThread()) {
-      // Blocking callbacks are never allowed on the main thread.
-      callback_->MarkAsCompleted();
-      callback_ = nullptr;
-      retval_ = PP_ERROR_BLOCKS_MAIN_THREAD;
-      if (report_error) {
-        std::string message(
-            "Blocking callbacks are not allowed on the main thread.");
-        PpapiGlobals::Get()->BroadcastLogWithSource(0, PP_LOGLEVEL_ERROR,
-                                                    std::string(), message);
-      }
-    } else if (callback_->is_blocking() &&
-               CurrentThreadHandlingBlockingMessage()) {
-      // Blocking callbacks are not allowed while handling a blocking message.
-      callback_->MarkAsCompleted();
-      callback_ = nullptr;
-      retval_ = PP_ERROR_WOULD_BLOCK_THREAD;
-      if (report_error) {
-        std::string message("Blocking callbacks are not allowed while handling "
-                            "a blocking message from JavaScript.");
-        PpapiGlobals::Get()->BroadcastLogWithSource(0, PP_LOGLEVEL_ERROR,
-                                                    std::string(), message);
-      }
-    } else if (!IsMainThread() &&
-               callback_->has_null_target_loop() &&
-               !callback_->is_blocking()) {
-      // On a non-main thread, there must be a valid target loop for non-
-      // blocking callbacks, or we will have no place to run them.
-
-      // If the callback is required, there's no nice way to tell the plugin.
-      // We can't run their callback asynchronously without a message loop, and
-      // the plugin won't expect any return code other than
-      // PP_OK_COMPLETIONPENDING. So we crash to make the problem more obvious.
-      if (callback_->is_required()) {
-        std::string message("Attempted to use a required callback, but there "
-                            "is no attached message loop on which to run the "
-                            "callback.");
-        PpapiGlobals::Get()->BroadcastLogWithSource(0, PP_LOGLEVEL_ERROR,
-                                                    std::string(), message);
-        LOG(FATAL) << message;
-      }
-
-      callback_->MarkAsCompleted();
-      callback_ = nullptr;
-      retval_ = PP_ERROR_NO_MESSAGE_LOOP;
-      if (report_error) {
-        std::string message(
-            "The calling thread must have a message loop attached.");
-        PpapiGlobals::Get()->BroadcastLogWithSource(0, PP_LOGLEVEL_ERROR,
-                                                    std::string(), message);
-      }
-    }
-  }
-}
-
-void EnterBase::ClearCallback() {
-  callback_ = nullptr;
-}
-
-void EnterBase::SetStateForResourceError(PP_Resource pp_resource,
-                                         Resource* resource_base,
-                                         void* object,
-                                         bool report_error) {
-  // Check for callback errors. If we get any, SetStateForCallbackError will
-  // emit a log message. But we also want to check for resource errors. If there
-  // are both kinds of errors, we'll emit two log messages and return
-  // PP_ERROR_BADRESOURCE.
-  SetStateForCallbackError(report_error);
-
-  if (object)
-    return;  // Everything worked.
-
-  if (callback_ && callback_->is_required()) {
-    callback_->PostRun(static_cast<int32_t>(PP_ERROR_BADRESOURCE));
-    callback_ = nullptr;
-    retval_ = PP_OK_COMPLETIONPENDING;
-  } else {
-    if (callback_)
-      callback_->MarkAsCompleted();
-    callback_ = nullptr;
-    retval_ = PP_ERROR_BADRESOURCE;
-  }
-
-  // We choose to silently ignore the error when the pp_resource is null
-  // because this is a pretty common case and we don't want to have lots
-  // of errors in the log. This should be an obvious case to debug.
-  if (report_error && pp_resource) {
-    std::string message;
-    if (resource_base) {
-      message = base::StringPrintf(
-          "0x%X is not the correct type for this function.",
-          pp_resource);
-    } else {
-      message = base::StringPrintf(
-          "0x%X is not a valid resource ID.",
-          pp_resource);
-    }
-    PpapiGlobals::Get()->BroadcastLogWithSource(0, PP_LOGLEVEL_ERROR,
-                                                std::string(), message);
-  }
-}
-
-void EnterBase::SetStateForFunctionError(PP_Instance pp_instance,
-                                         void* object,
-                                         bool report_error) {
-  // Check for callback errors. If we get any, SetStateForCallbackError will
-  // emit a log message. But we also want to check for instance errors. If there
-  // are both kinds of errors, we'll emit two log messages and return
-  // PP_ERROR_BADARGUMENT.
-  SetStateForCallbackError(report_error);
-
-  if (object)
-    return;  // Everything worked.
-
-  if (callback_ && callback_->is_required()) {
-    callback_->PostRun(static_cast<int32_t>(PP_ERROR_BADARGUMENT));
-    callback_ = nullptr;
-    retval_ = PP_OK_COMPLETIONPENDING;
-  } else {
-    if (callback_)
-      callback_->MarkAsCompleted();
-    callback_ = nullptr;
-    retval_ = PP_ERROR_BADARGUMENT;
-  }
-
-  // We choose to silently ignore the error when the pp_instance is null as
-  // for PP_Resources above.
-  if (report_error && pp_instance) {
-    std::string message;
-    message = base::StringPrintf(
-        "0x%X is not a valid instance ID.",
-        pp_instance);
-    PpapiGlobals::Get()->BroadcastLogWithSource(0, PP_LOGLEVEL_ERROR,
-                                                std::string(), message);
-  }
-}
-
-}  // namespace subtle
-
-EnterInstance::EnterInstance(PP_Instance instance)
-    : EnterBase(),
-      functions_(PpapiGlobals::Get()->GetInstanceAPI(instance)) {
-  SetStateForFunctionError(instance, functions_, true);
-}
-
-EnterInstance::EnterInstance(PP_Instance instance,
-                             const PP_CompletionCallback& callback)
-    : EnterBase(0 /* resource */, callback),
-      // TODO(dmichael): This means that the callback_ we get is not associated
-      //                 even with the instance, but we should handle that for
-      //                 MouseLock (maybe others?).
-      functions_(PpapiGlobals::Get()->GetInstanceAPI(instance)) {
-  SetStateForFunctionError(instance, functions_, true);
-}
-
-EnterInstance::~EnterInstance() {
-}
-
-EnterInstanceNoLock::EnterInstanceNoLock(PP_Instance instance)
-    : EnterBase(),
-      functions_(PpapiGlobals::Get()->GetInstanceAPI(instance)) {
-  SetStateForFunctionError(instance, functions_, true);
-}
-
-EnterInstanceNoLock::EnterInstanceNoLock(
-    PP_Instance instance,
-    const PP_CompletionCallback& callback)
-    : EnterBase(0 /* resource */, callback),
-      // TODO(dmichael): This means that the callback_ we get is not associated
-      //                 even with the instance, but we should handle that for
-      //                 MouseLock (maybe others?).
-      functions_(PpapiGlobals::Get()->GetInstanceAPI(instance)) {
-  SetStateForFunctionError(instance, functions_, true);
-}
-
-EnterInstanceNoLock::~EnterInstanceNoLock() {
-}
-
-EnterResourceCreation::EnterResourceCreation(PP_Instance instance)
-    : EnterBase(),
-      functions_(PpapiGlobals::Get()->GetResourceCreationAPI(instance)) {
-  SetStateForFunctionError(instance, functions_, true);
-}
-
-EnterResourceCreation::~EnterResourceCreation() {
-}
-
-EnterResourceCreationNoLock::EnterResourceCreationNoLock(PP_Instance instance)
-    : EnterBase(),
-      functions_(PpapiGlobals::Get()->GetResourceCreationAPI(instance)) {
-  SetStateForFunctionError(instance, functions_, true);
-}
-
-EnterResourceCreationNoLock::~EnterResourceCreationNoLock() {
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/enter.h b/thunk/enter.h
deleted file mode 100644
index 6e7b646..0000000
--- a/thunk/enter.h
+++ /dev/null
@@ -1,329 +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_THUNK_ENTER_H_
-#define PPAPI_THUNK_ENTER_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/shared_impl/ppapi_globals.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/resource.h"
-#include "ppapi/shared_impl/singleton_resource_id.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-// Enter* helper objects: These objects wrap a call from the C PPAPI into
-// the internal implementation. They make sure the lock is acquired and will
-// automatically set up some stuff for you.
-//
-// You should always check whether the enter succeeded before using the object.
-// If this fails, then the instance or resource ID supplied was invalid.
-//
-// The |report_error| arguments to the constructor should indicate if errors
-// should be logged to the console. If the calling function expects that the
-// input values are correct (the normal case), this should be set to true. In
-// some case like |IsFoo(PP_Resource)| the caller is questioning whether their
-// handle is this type, and we don't want to report an error if it's not.
-//
-// Resource member functions: EnterResource
-//   Automatically interprets the given PP_Resource as a resource ID and sets
-//   up the resource object for you.
-
-namespace subtle {
-
-// This helps us define our RAII Enter classes easily. To make an RAII class
-// which locks the proxy lock on construction and unlocks on destruction,
-// inherit from |LockOnEntry<true>| before all other base classes. This ensures
-// that the lock is acquired before any other base class's constructor can run,
-// and that the lock is only released after all other destructors have run.
-// (This order of initialization is guaranteed by C++98/C++11 12.6.2.10).
-//
-// For cases where you don't want to lock, inherit from |LockOnEntry<false>|.
-// This allows us to share more code between Enter* and Enter*NoLock classes.
-template <bool lock_on_entry>
-struct LockOnEntry;
-
-template <>
-struct LockOnEntry<false> {
-#if (!NDEBUG)
-  LockOnEntry() {
-    // You must already hold the lock to use Enter*NoLock.
-    ProxyLock::AssertAcquired();
-  }
-  ~LockOnEntry() {
-    // You must not release the lock before leaving the scope of the
-    // Enter*NoLock.
-    ProxyLock::AssertAcquired();
-  }
-#endif
-};
-
-template <>
-struct LockOnEntry<true> {
-  LockOnEntry() {
-    ppapi::ProxyLock::Acquire();
-  }
-  ~LockOnEntry() {
-    ppapi::ProxyLock::Release();
-  }
-};
-
-// Keep non-templatized since we need non-inline functions here.
-class PPAPI_THUNK_EXPORT EnterBase {
- public:
-  EnterBase();
-  explicit EnterBase(PP_Resource resource);
-  EnterBase(PP_Instance instance, SingletonResourceID resource_id);
-  EnterBase(PP_Resource resource, const PP_CompletionCallback& callback);
-  EnterBase(PP_Instance instance, SingletonResourceID resource_id,
-            const PP_CompletionCallback& callback);
-  virtual ~EnterBase();
-
-  // Sets the result for calls that use a completion callback. It handles making
-  // sure that "Required" callbacks are scheduled to run asynchronously and
-  // "Blocking" callbacks cause the caller to block. (Interface implementations,
-  // therefore, should not do any special casing based on the type of the
-  // callback.)
-  //
-  // Returns the "retval()". This is to support the typical usage of
-  //   return enter.SetResult(...);
-  // without having to write a separate "return enter.retval();" line.
-  int32_t SetResult(int32_t result);
-
-  // Use this value as the return value for the function.
-  int32_t retval() const { return retval_; }
-
-  // All failure conditions cause retval_ to be set to an appropriate error
-  // code.
-  bool succeeded() const { return retval_ == PP_OK; }
-  bool failed() const { return !succeeded(); }
-
-  const scoped_refptr<TrackedCallback>& callback() { return callback_; }
-
- protected:
-  // Helper function to return a Resource from a PP_Resource. Having this
-  // code be in the non-templatized base keeps us from having to instantiate
-  // it in every template.
-  static Resource* GetResource(PP_Resource resource);
-
-  // Helper function to return a Resource from a PP_Instance and singleton
-  // resource identifier.
-  static Resource* GetSingletonResource(PP_Instance instance,
-                                        SingletonResourceID resource_id);
-
-  void ClearCallback();
-
-  // Does error handling associated with entering a resource. The resource_base
-  // is the result of looking up the given pp_resource. The object is the
-  // result of converting the base to the desired object (converted to a void*
-  // so this function doesn't have to be templatized). The reason for passing
-  // both resource_base and object is that we can differentiate "bad resource
-  // ID" from "valid resource ID not of the correct type."
-  //
-  // This will set retval_ = PP_ERROR_BADRESOURCE if the object is invalid, and
-  // if report_error is set, log a message to the programmer.
-  void SetStateForResourceError(PP_Resource pp_resource,
-                                Resource* resource_base,
-                                void* object,
-                                bool report_error);
-
-  // Same as SetStateForResourceError except for function API.
-  void SetStateForFunctionError(PP_Instance pp_instance,
-                                void* object,
-                                bool report_error);
-
-  // For Enter objects that need a resource, we'll store a pointer to the
-  // Resource object so that we don't need to look it up more than once. For
-  // Enter objects with no resource, this will be null.
-  Resource* resource_ = nullptr;
-
- private:
-  bool CallbackIsValid() const;
-
-  // Checks whether the callback is valid (i.e., if it is either non-blocking,
-  // or blocking and we're on a background thread). If the callback is invalid,
-  // this will set retval_ = PP_ERROR_BLOCKS_MAIN_THREAD, and if report_error is
-  // set, it will log a message to the programmer.
-  void SetStateForCallbackError(bool report_error);
-
-  // Holds the callback. For Enter objects that aren't given a callback, this
-  // will be null.
-  scoped_refptr<TrackedCallback> callback_;
-
-  int32_t retval_ = PP_OK;
-};
-
-}  // namespace subtle
-
-// EnterResource ---------------------------------------------------------------
-
-template<typename ResourceT, bool lock_on_entry = true>
-class EnterResource
-    : public subtle::LockOnEntry<lock_on_entry>,  // Must be first; see above.
-      public subtle::EnterBase {
- public:
-  EnterResource(PP_Resource resource, bool report_error)
-      : EnterBase(resource) {
-    Init(resource, report_error);
-  }
-  EnterResource(PP_Resource resource, const PP_CompletionCallback& callback,
-                bool report_error)
-      : EnterBase(resource, callback) {
-    Init(resource, report_error);
-  }
-
-  EnterResource(const EnterResource&) = delete;
-  EnterResource& operator=(const EnterResource&) = delete;
-
-  ~EnterResource() {}
-
-  ResourceT* object() { return object_; }
-  Resource* resource() { return resource_; }
-
- private:
-  void Init(PP_Resource resource, bool report_error) {
-    if (resource_)
-      object_ = resource_->GetAs<ResourceT>();
-    else
-      object_ = nullptr;
-    // Validate the resource (note, if both are wrong, we will return
-    // PP_ERROR_BADRESOURCE; last in wins).
-    SetStateForResourceError(resource, resource_, object_, report_error);
-  }
-
-  ResourceT* object_;
-};
-
-// ----------------------------------------------------------------------------
-
-// Like EnterResource but assumes the lock is already held.
-template<typename ResourceT>
-class EnterResourceNoLock : public EnterResource<ResourceT, false> {
- public:
-  EnterResourceNoLock(PP_Resource resource, bool report_error)
-      : EnterResource<ResourceT, false>(resource, report_error) {
-  }
-  EnterResourceNoLock(PP_Resource resource,
-                      const PP_CompletionCallback& callback,
-                      bool report_error)
-      : EnterResource<ResourceT, false>(resource, callback, report_error) {
-  }
-};
-
-// EnterInstance ---------------------------------------------------------------
-
-class PPAPI_THUNK_EXPORT EnterInstance
-    : public subtle::LockOnEntry<true>,  // Must be first; see above.
-      public subtle::EnterBase {
- public:
-  explicit EnterInstance(PP_Instance instance);
-  EnterInstance(PP_Instance instance,
-                const PP_CompletionCallback& callback);
-  ~EnterInstance();
-
-  bool succeeded() const { return !!functions_; }
-  bool failed() const { return !functions_; }
-
-  PPB_Instance_API* functions() const { return functions_; }
-
- private:
-  PPB_Instance_API* functions_;
-};
-
-class PPAPI_THUNK_EXPORT EnterInstanceNoLock
-    : public subtle::LockOnEntry<false>,  // Must be first; see above.
-      public subtle::EnterBase {
- public:
-  explicit EnterInstanceNoLock(PP_Instance instance);
-  EnterInstanceNoLock(PP_Instance instance,
-                      const PP_CompletionCallback& callback);
-  ~EnterInstanceNoLock();
-
-  PPB_Instance_API* functions() { return functions_; }
-
- private:
-  PPB_Instance_API* functions_;
-};
-
-// EnterInstanceAPI ------------------------------------------------------------
-
-template<typename ApiT, bool lock_on_entry = true>
-class EnterInstanceAPI
-    : public subtle::LockOnEntry<lock_on_entry>,  // Must be first; see above
-      public subtle::EnterBase {
- public:
-  explicit EnterInstanceAPI(PP_Instance instance)
-      : EnterBase(instance, ApiT::kSingletonResourceID) {
-    if (resource_)
-      functions_ = resource_->GetAs<ApiT>();
-    SetStateForFunctionError(instance, functions_, true);
-  }
-  EnterInstanceAPI(PP_Instance instance, const PP_CompletionCallback& callback)
-      : EnterBase(instance, ApiT::kSingletonResourceID, callback) {
-    if (resource_)
-      functions_ = resource_->GetAs<ApiT>();
-    SetStateForFunctionError(instance, functions_, true);
-  }
-  ~EnterInstanceAPI() {}
-
-  bool succeeded() const { return !!functions_; }
-  bool failed() const { return !functions_; }
-
-  ApiT* functions() const { return functions_; }
-
- private:
-  ApiT* functions_ = nullptr;
-};
-
-template<typename ApiT>
-class EnterInstanceAPINoLock : public EnterInstanceAPI<ApiT, false> {
- public:
-  explicit EnterInstanceAPINoLock(PP_Instance instance)
-      : EnterInstanceAPI<ApiT, false>(instance) {
-  }
-};
-
-// EnterResourceCreation -------------------------------------------------------
-
-class PPAPI_THUNK_EXPORT EnterResourceCreation
-    : public subtle::LockOnEntry<true>,  // Must be first; see above.
-      public subtle::EnterBase {
- public:
-  explicit EnterResourceCreation(PP_Instance instance);
-  ~EnterResourceCreation();
-
-  ResourceCreationAPI* functions() { return functions_; }
-
- private:
-  ResourceCreationAPI* functions_;
-};
-
-class PPAPI_THUNK_EXPORT EnterResourceCreationNoLock
-    : public subtle::LockOnEntry<false>,  // Must be first; see above.
-      public subtle::EnterBase {
- public:
-  explicit EnterResourceCreationNoLock(PP_Instance instance);
-  ~EnterResourceCreationNoLock();
-
-  ResourceCreationAPI* functions() { return functions_; }
-
- private:
-  ResourceCreationAPI* functions_;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_ENTER_H_
diff --git a/thunk/interfaces_legacy.h b/thunk/interfaces_legacy.h
deleted file mode 100644
index d2e8d6b..0000000
--- a/thunk/interfaces_legacy.h
+++ /dev/null
@@ -1,50 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
-#pragma allow_unsafe_libc_calls
-#endif
-
-#ifndef LEGACY_IFACE
-#define LEGACY_IFACE(iface_str, function_name)
-#endif
-
-LEGACY_IFACE(PPB_INPUT_EVENT_INTERFACE_1_0,
-             ::ppapi::thunk::GetPPB_InputEvent_1_0_Thunk())
-LEGACY_IFACE(PPB_INSTANCE_PRIVATE_INTERFACE_0_1,
-             ::ppapi::thunk::GetPPB_Instance_Private_0_1_Thunk())
-LEGACY_IFACE(PPB_CORE_INTERFACE_1_0, &core_interface)
-LEGACY_IFACE(PPB_OPENGLES2_INTERFACE,
-             ::ppapi::PPB_OpenGLES2_Shared::GetInterface())
-LEGACY_IFACE(PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE,
-             ::ppapi::PPB_OpenGLES2_Shared::GetInstancedArraysInterface())
-LEGACY_IFACE(PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE,
-             ::ppapi::PPB_OpenGLES2_Shared::GetFramebufferBlitInterface())
-LEGACY_IFACE(
-    PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE,
-    ::ppapi::PPB_OpenGLES2_Shared::GetFramebufferMultisampleInterface())
-LEGACY_IFACE(PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE,
-             ::ppapi::PPB_OpenGLES2_Shared::GetChromiumEnableFeatureInterface())
-LEGACY_IFACE(PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE,
-             ::ppapi::PPB_OpenGLES2_Shared::GetChromiumMapSubInterface())
-LEGACY_IFACE(PPB_OPENGLES2_CHROMIUMMAPSUB_DEV_INTERFACE_1_0,
-             ::ppapi::PPB_OpenGLES2_Shared::GetChromiumMapSubInterface())
-LEGACY_IFACE(PPB_OPENGLES2_QUERY_INTERFACE,
-             ::ppapi::PPB_OpenGLES2_Shared::GetQueryInterface())
-LEGACY_IFACE(PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE,
-             ::ppapi::PPB_OpenGLES2_Shared::GetDrawBuffersInterface())
-LEGACY_IFACE(PPB_PROXY_PRIVATE_INTERFACE, PPB_Proxy_Impl::GetInterface())
-LEGACY_IFACE(PPB_VAR_DEPRECATED_INTERFACE,
-             PPB_Var_Deprecated_Impl::GetVarDeprecatedInterface())
-LEGACY_IFACE(PPB_VAR_INTERFACE_1_0,
-             ::ppapi::PPB_Var_Shared::GetVarInterface1_0())
-LEGACY_IFACE(PPB_VAR_INTERFACE_1_1,
-             ::ppapi::PPB_Var_Shared::GetVarInterface1_1())
-LEGACY_IFACE(PPB_VAR_INTERFACE_1_2,
-             ::ppapi::PPB_Var_Shared::GetVarInterface1_2())
-LEGACY_IFACE(PPB_VAR_ARRAY_BUFFER_INTERFACE_1_0,
-             ::ppapi::PPB_Var_Shared::GetVarArrayBufferInterface1_0())
-
-
diff --git a/thunk/interfaces_postamble.h b/thunk/interfaces_postamble.h
deleted file mode 100644
index 35e3dbd..0000000
--- a/thunk/interfaces_postamble.h
+++ /dev/null
@@ -1,15 +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.
-
-// Cleans up after interfaces_preamble.h, see that file for more.
-
-#ifdef UNDEFINE_PROXIED_API
-#undef UNDEFINE_PROXIED_API
-#undef PROXIED_API
-#endif
-
-#ifdef UNDEFINE_PROXIED_IFACE
-#undef UNDEFINE_PROXIED_IFACE
-#undef PROXIED_IFACE
-#endif
diff --git a/thunk/interfaces_ppb_private.h b/thunk/interfaces_ppb_private.h
deleted file mode 100644
index 7e66547..0000000
--- a/thunk/interfaces_ppb_private.h
+++ /dev/null
@@ -1,37 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
-#pragma allow_unsafe_libc_calls
-#endif
-
-// Please see inteface_ppb_public_stable for the documentation on the format of
-// this file.
-
-// no-include-guard-because-multiply-included
-
-#include "build/build_config.h"
-#include "ppapi/thunk/interfaces_preamble.h"
-
-// See interfaces_ppb_private_no_permissions.h for other private interfaces.
-
-PROXIED_API(PPB_X509Certificate_Private)
-
-#if !BUILDFLAG(IS_NACL)
-PROXIED_IFACE(PPB_X509CERTIFICATE_PRIVATE_INTERFACE_0_1,
-              PPB_X509Certificate_Private_0_1)
-PROXIED_IFACE(PPB_BROWSERFONT_TRUSTED_INTERFACE_1_0,
-              PPB_BrowserFont_Trusted_1_0)
-PROXIED_IFACE(PPB_CHARSET_TRUSTED_INTERFACE_1_0,
-              PPB_CharSet_Trusted_1_0)
-PROXIED_IFACE(PPB_FILECHOOSER_TRUSTED_INTERFACE_0_5,
-              PPB_FileChooserTrusted_0_5)
-PROXIED_IFACE(PPB_FILECHOOSER_TRUSTED_INTERFACE_0_6,
-              PPB_FileChooserTrusted_0_6)
-PROXIED_IFACE(PPB_FILEREFPRIVATE_INTERFACE_0_1,
-              PPB_FileRefPrivate_0_1)
-#endif  // !BUILDFLAG(IS_NACL)
-
-#include "ppapi/thunk/interfaces_postamble.h"
diff --git a/thunk/interfaces_ppb_private_no_permissions.h b/thunk/interfaces_ppb_private_no_permissions.h
deleted file mode 100644
index f02a185..0000000
--- a/thunk/interfaces_ppb_private_no_permissions.h
+++ /dev/null
@@ -1,50 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
-#pragma allow_unsafe_libc_calls
-#endif
-
-// Please see inteface_ppb_public_stable for the documentation on the format of
-// this file.
-
-// no-include-guard-because-multiply-included
-// NOLINT(build/header_guard)
-
-#include "ppapi/thunk/interfaces_preamble.h"
-
-// These interfaces don't require private permissions. However, they only work
-// for whitelisted origins.
-
-PROXIED_IFACE(PPB_CAMERACAPABILITIES_PRIVATE_INTERFACE_0_1,
-              PPB_CameraCapabilities_Private_0_1)
-PROXIED_IFACE(PPB_CAMERADEVICE_PRIVATE_INTERFACE_0_1,
-              PPB_CameraDevice_Private_0_1)
-
-PROXIED_IFACE(PPB_HOSTRESOLVER_PRIVATE_INTERFACE_0_1,
-              PPB_HostResolver_Private_0_1)
-
-PROXIED_IFACE(PPB_NETADDRESS_PRIVATE_INTERFACE_0_1,
-              PPB_NetAddress_Private_0_1)
-PROXIED_IFACE(PPB_NETADDRESS_PRIVATE_INTERFACE_1_0,
-              PPB_NetAddress_Private_1_0)
-PROXIED_IFACE(PPB_NETADDRESS_PRIVATE_INTERFACE_1_1,
-              PPB_NetAddress_Private_1_1)
-
-PROXIED_IFACE(PPB_EXT_CRXFILESYSTEM_PRIVATE_INTERFACE_0_1,
-              PPB_Ext_CrxFileSystem_Private_0_1)
-PROXIED_IFACE(PPB_FILEIO_PRIVATE_INTERFACE_0_1,
-              PPB_FileIO_Private_0_1)
-PROXIED_IFACE(PPB_ISOLATEDFILESYSTEM_PRIVATE_INTERFACE_0_2,
-              PPB_IsolatedFileSystem_Private_0_2)
-
-PROXIED_IFACE(PPB_UMA_PRIVATE_INTERFACE_0_3,
-              PPB_UMA_Private_0_3)
-
-// This has permission checks done in pepper_url_loader_host.cc
-PROXIED_IFACE(PPB_URLLOADERTRUSTED_INTERFACE_0_3,
-              PPB_URLLoaderTrusted_0_3)
-
-#include "ppapi/thunk/interfaces_postamble.h"
diff --git a/thunk/interfaces_ppb_public_dev.h b/thunk/interfaces_ppb_public_dev.h
deleted file mode 100644
index ca42fda..0000000
--- a/thunk/interfaces_ppb_public_dev.h
+++ /dev/null
@@ -1,52 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
-#pragma allow_unsafe_libc_calls
-#endif
-
-// Please see inteface_ppb_public_stable for the documentation on the format of
-// this file.
-
-// no-include-guard-because-multiply-included
-// NOLINT(build/header_guard)
-
-#include "build/build_config.h"
-#include "ppapi/thunk/interfaces_preamble.h"
-
-// Map the old dev console interface to the stable one (which is the same) to
-// keep Flash, etc. working.
-PROXIED_IFACE("PPB_Console(Dev);0.1", PPB_Console_1_0)
-PROXIED_IFACE(PPB_CURSOR_CONTROL_DEV_INTERFACE_0_4, PPB_CursorControl_Dev_0_4)
-PROXIED_IFACE(PPB_FILECHOOSER_DEV_INTERFACE_0_5, PPB_FileChooser_Dev_0_5)
-PROXIED_IFACE(PPB_FILECHOOSER_DEV_INTERFACE_0_6, PPB_FileChooser_Dev_0_6)
-PROXIED_IFACE(PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_2, PPB_IMEInputEvent_Dev_0_2)
-PROXIED_IFACE(PPB_MEMORY_DEV_INTERFACE_0_1, PPB_Memory_Dev_0_1)
-PROXIED_IFACE(PPB_PRINTING_DEV_INTERFACE_0_7, PPB_Printing_Dev_0_7)
-PROXIED_IFACE(PPB_TEXTINPUT_DEV_INTERFACE_0_2, PPB_TextInput_Dev_0_2)
-PROXIED_IFACE(PPB_VIEW_DEV_INTERFACE_0_1, PPB_View_Dev_0_1)
-
-#if !BUILDFLAG(IS_NACL)
-PROXIED_API(PPB_Buffer)
-PROXIED_API(PPB_VideoDecoder)
-
-PROXIED_IFACE(PPB_AUDIO_INPUT_DEV_INTERFACE_0_3, PPB_AudioInput_Dev_0_3)
-PROXIED_IFACE(PPB_AUDIO_INPUT_DEV_INTERFACE_0_4, PPB_AudioInput_Dev_0_4)
-PROXIED_IFACE(PPB_AUDIO_OUTPUT_DEV_INTERFACE_0_1, PPB_AudioOutput_Dev_0_1)
-PROXIED_IFACE(PPB_BUFFER_DEV_INTERFACE_0_4, PPB_Buffer_Dev_0_4)
-PROXIED_IFACE(PPB_CHAR_SET_DEV_INTERFACE_0_4, PPB_CharSet_Dev_0_4)
-PROXIED_IFACE(PPB_CRYPTO_DEV_INTERFACE_0_1, PPB_Crypto_Dev_0_1)
-PROXIED_IFACE(PPB_DEVICEREF_DEV_INTERFACE_0_1, PPB_DeviceRef_Dev_0_1)
-PROXIED_IFACE(PPB_GLES_CHROMIUM_TEXTURE_MAPPING_DEV_INTERFACE_0_1,
-              PPB_GLESChromiumTextureMapping_Dev_0_1)
-PROXIED_IFACE(PPB_IME_INPUT_EVENT_DEV_INTERFACE_0_1, PPB_IMEInputEvent_Dev_0_1)
-PROXIED_IFACE(PPB_TEXTINPUT_DEV_INTERFACE_0_1, PPB_TextInput_Dev_0_1)
-PROXIED_IFACE(PPB_URLUTIL_DEV_INTERFACE_0_6, PPB_URLUtil_Dev_0_6)
-PROXIED_IFACE(PPB_URLUTIL_DEV_INTERFACE_0_7, PPB_URLUtil_Dev_0_7)
-PROXIED_IFACE(PPB_VIDEOCAPTURE_DEV_INTERFACE_0_3, PPB_VideoCapture_Dev_0_3)
-PROXIED_IFACE(PPB_VIDEODECODER_DEV_INTERFACE_0_16, PPB_VideoDecoder_Dev_0_16)
-#endif  // !BUILDFLAG(IS_NACL)
-
-#include "ppapi/thunk/interfaces_postamble.h"
diff --git a/thunk/interfaces_ppb_public_dev_channel.h b/thunk/interfaces_ppb_public_dev_channel.h
deleted file mode 100644
index df7f092..0000000
--- a/thunk/interfaces_ppb_public_dev_channel.h
+++ /dev/null
@@ -1,30 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
-#pragma allow_unsafe_libc_calls
-#endif
-
-// Please see inteface_ppb_public_stable for the documentation on the format of
-// this file.
-
-// no-include-guard-because-multiply-included
-
-#include "ppapi/thunk/interfaces_preamble.h"
-
-// Interfaces go here.
-PROXIED_IFACE(PPB_VIDEODECODER_INTERFACE_0_1, PPB_VideoDecoder_0_1)
-PROXIED_IFACE(PPB_VIDEOENCODER_INTERFACE_0_1, PPB_VideoEncoder_0_1)
-PROXIED_IFACE(PPB_VPNPROVIDER_INTERFACE_0_1, PPB_VpnProvider_0_1)
-
-// Note, PPB_TraceEvent is special. We don't want to actually make it stable,
-// but we want developers to be able to leverage it when running Chrome Dev or
-// Chrome Canary.
-PROXIED_IFACE(PPB_TRACE_EVENT_DEV_INTERFACE_0_1,
-              PPB_Trace_Event_Dev_0_1)
-PROXIED_IFACE(PPB_TRACE_EVENT_DEV_INTERFACE_0_2,
-              PPB_Trace_Event_Dev_0_2)
-
-#include "ppapi/thunk/interfaces_postamble.h"
diff --git a/thunk/interfaces_ppb_public_socket.h b/thunk/interfaces_ppb_public_socket.h
deleted file mode 100644
index bee946f..0000000
--- a/thunk/interfaces_ppb_public_socket.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2019 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
-#pragma allow_unsafe_libc_calls
-#endif
-
-// no-include-guard-because-multiply-included
-// NOLINT(build/header_guard)
-
-#include "ppapi/thunk/interfaces_preamble.h"
-
-// See interfaces_ppp_public_stable.h for documentation on these macros.
-PROXIED_IFACE(PPB_TCPSOCKET_INTERFACE_1_0, PPB_TCPSocket_1_0)
-PROXIED_IFACE(PPB_TCPSOCKET_INTERFACE_1_1, PPB_TCPSocket_1_1)
-PROXIED_IFACE(PPB_TCPSOCKET_INTERFACE_1_2, PPB_TCPSocket_1_2)
-PROXIED_IFACE(PPB_UDPSOCKET_INTERFACE_1_0, PPB_UDPSocket_1_0)
-PROXIED_IFACE(PPB_UDPSOCKET_INTERFACE_1_1, PPB_UDPSocket_1_1)
-PROXIED_IFACE(PPB_UDPSOCKET_INTERFACE_1_2, PPB_UDPSocket_1_2)
-
-// These interfaces only work for whitelisted origins.
-PROXIED_IFACE(PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_1,
-              PPB_TCPServerSocket_Private_0_1)
-PROXIED_IFACE(PPB_TCPSERVERSOCKET_PRIVATE_INTERFACE_0_2,
-              PPB_TCPServerSocket_Private_0_2)
-PROXIED_IFACE(PPB_TCPSOCKET_PRIVATE_INTERFACE_0_3, PPB_TCPSocket_Private_0_3)
-PROXIED_IFACE(PPB_TCPSOCKET_PRIVATE_INTERFACE_0_4, PPB_TCPSocket_Private_0_4)
-PROXIED_IFACE(PPB_TCPSOCKET_PRIVATE_INTERFACE_0_5, PPB_TCPSocket_Private_0_5)
-PROXIED_IFACE(PPB_UDPSOCKET_PRIVATE_INTERFACE_0_2, PPB_UDPSocket_Private_0_2)
-PROXIED_IFACE(PPB_UDPSOCKET_PRIVATE_INTERFACE_0_3, PPB_UDPSocket_Private_0_3)
-PROXIED_IFACE(PPB_UDPSOCKET_PRIVATE_INTERFACE_0_4, PPB_UDPSocket_Private_0_4)
-
-#include "ppapi/thunk/interfaces_postamble.h"
diff --git a/thunk/interfaces_ppb_public_stable.h b/thunk/interfaces_ppb_public_stable.h
deleted file mode 100644
index 84b6877..0000000
--- a/thunk/interfaces_ppb_public_stable.h
+++ /dev/null
@@ -1,120 +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.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/390223051): Remove C-library calls to fix the errors.
-#pragma allow_unsafe_libc_calls
-#endif
-
-// no-include-guard-because-multiply-included
-// NOLINT(build/header_guard)
-
-#include "ppapi/thunk/interfaces_preamble.h"
-
-// This file contains lists of interfaces. It's intended to be included by
-// another file which defines implementations of the macros. This allows files
-// to do specific registration tasks for each supported interface.
-//
-// When adding an interface, you must also add the hash value for the
-// interface's name to tools/metrics/histograms/histograms.xml. This is so we
-// get human-readable UMA tracking for interface usage.
-//
-// Use the 'pepper_hash_for_uma' tool in ppapi/tools to determine the hash for
-// a given interface string.
-
-// Api categories
-// --------------
-// Enumerates the categories of APIs. These correspnd to the *_api.h files in
-// this directory. One API may implement one or more actual interfaces.
-//
-// For PROXIED_APIs, these also correspond to *_Proxy objects. The proxied ones
-// define factory functions for each of these classes.
-PROXIED_API(PPB_Audio)
-PROXIED_API(PPB_Core)
-PROXIED_API(PPB_Graphics3D)
-PROXIED_API(PPB_ImageData)
-PROXIED_API(PPB_Instance)
-
-// Interfaces
-// ----------
-// Enumerates interfaces as (interface_name, interface_struct).
-//
-// The api_name corresponds to the class in the list above for the object
-// that implements the API. Some things may be special and aren't implemented
-// by any specific API object, and we use "NoAPIName" for those. Implementors
-// of these macros should handle this case. There can be more than one line
-// referring to the same api_name (typically different versions of the
-// same interface).
-//
-// The interface_name is the string that corresponds to the interface.
-//
-// The interface_struct is the typename of the struct corresponding to the
-// interface string.
-// Note: Core is special and is registered manually.
-PROXIED_IFACE(PPB_AUDIO_INTERFACE_1_0, PPB_Audio_1_0)
-PROXIED_IFACE(PPB_AUDIO_INTERFACE_1_1, PPB_Audio_1_1)
-PROXIED_IFACE(PPB_AUDIOBUFFER_INTERFACE_0_1, PPB_AudioBuffer_0_1)
-PROXIED_IFACE(PPB_FILEREF_INTERFACE_1_0, PPB_FileRef_1_0)
-PROXIED_IFACE(PPB_FILEREF_INTERFACE_1_1, PPB_FileRef_1_1)
-PROXIED_IFACE(PPB_FILEREF_INTERFACE_1_2, PPB_FileRef_1_2)
-PROXIED_IFACE(PPB_FILESYSTEM_INTERFACE_1_0, PPB_FileSystem_1_0)
-PROXIED_IFACE(PPB_GRAPHICS_3D_INTERFACE_1_0, PPB_Graphics3D_1_0)
-PROXIED_IFACE(PPB_IMAGEDATA_INTERFACE_1_0, PPB_ImageData_1_0)
-PROXIED_IFACE(PPB_CONSOLE_INTERFACE_1_0, PPB_Console_1_0)
-PROXIED_IFACE(PPB_GAMEPAD_INTERFACE_1_0, PPB_Gamepad_1_0)
-PROXIED_IFACE(PPB_INSTANCE_INTERFACE_1_0, PPB_Instance_1_0)
-PROXIED_IFACE(PPB_FILEIO_INTERFACE_1_0, PPB_FileIO_1_0)
-PROXIED_IFACE(PPB_FILEIO_INTERFACE_1_1, PPB_FileIO_1_1)
-PROXIED_IFACE(PPB_GRAPHICS_2D_INTERFACE_1_0, PPB_Graphics2D_1_0)
-PROXIED_IFACE(PPB_GRAPHICS_2D_INTERFACE_1_1, PPB_Graphics2D_1_1)
-PROXIED_IFACE(PPB_GRAPHICS_2D_INTERFACE_1_2, PPB_Graphics2D_1_2)
-PROXIED_IFACE(PPB_HOSTRESOLVER_INTERFACE_1_0, PPB_HostResolver_1_0)
-PROXIED_IFACE(PPB_IME_INPUT_EVENT_INTERFACE_1_0, PPB_IMEInputEvent_1_0)
-PROXIED_IFACE(PPB_INPUT_EVENT_INTERFACE_1_0, PPB_InputEvent_1_0)
-PROXIED_IFACE(PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_0,
-              PPB_KeyboardInputEvent_1_0)
-PROXIED_IFACE(PPB_KEYBOARD_INPUT_EVENT_INTERFACE_1_2,
-              PPB_KeyboardInputEvent_1_2)
-PROXIED_IFACE(PPB_MOUSE_INPUT_EVENT_INTERFACE_1_0, PPB_MouseInputEvent_1_0)
-PROXIED_IFACE(PPB_MOUSE_INPUT_EVENT_INTERFACE_1_1, PPB_MouseInputEvent_1_1)
-PROXIED_IFACE(PPB_WHEEL_INPUT_EVENT_INTERFACE_1_0, PPB_WheelInputEvent_1_0)
-PROXIED_IFACE(PPB_TOUCH_INPUT_EVENT_INTERFACE_1_0, PPB_TouchInputEvent_1_0)
-PROXIED_IFACE(PPB_TOUCH_INPUT_EVENT_INTERFACE_1_4, PPB_TouchInputEvent_1_4)
-PROXIED_IFACE(PPB_FULLSCREEN_INTERFACE_1_0, PPB_Fullscreen_1_0)
-PROXIED_IFACE(PPB_MEDIASTREAMAUDIOTRACK_INTERFACE_0_1,
-              PPB_MediaStreamAudioTrack_0_1)
-PROXIED_IFACE(PPB_MEDIASTREAMVIDEOTRACK_INTERFACE_0_1,
-              PPB_MediaStreamVideoTrack_0_1)
-PROXIED_IFACE(PPB_MESSAGING_INTERFACE_1_0, PPB_Messaging_1_0)
-PROXIED_IFACE(PPB_MESSAGING_INTERFACE_1_2, PPB_Messaging_1_2)
-PROXIED_IFACE(PPB_MOUSECURSOR_INTERFACE_1_0, PPB_MouseCursor_1_0)
-PROXIED_IFACE(PPB_MOUSELOCK_INTERFACE_1_0, PPB_MouseLock_1_0)
-PROXIED_IFACE(PPB_NETADDRESS_INTERFACE_1_0, PPB_NetAddress_1_0)
-PROXIED_IFACE(PPB_NETWORKLIST_INTERFACE_1_0, PPB_NetworkList_1_0)
-PROXIED_IFACE(PPB_NETWORKMONITOR_INTERFACE_1_0, PPB_NetworkMonitor_1_0)
-PROXIED_IFACE(PPB_NETWORKPROXY_INTERFACE_1_0, PPB_NetworkProxy_1_0)
-PROXIED_IFACE(PPB_TEXTINPUTCONTROLLER_INTERFACE_1_0,
-              PPB_TextInputController_1_0)
-PROXIED_IFACE(PPB_URLLOADER_INTERFACE_1_0, PPB_URLLoader_1_0)
-PROXIED_IFACE(PPB_URLREQUESTINFO_INTERFACE_1_0, PPB_URLRequestInfo_1_0)
-PROXIED_IFACE(PPB_URLRESPONSEINFO_INTERFACE_1_0, PPB_URLResponseInfo_1_0)
-PROXIED_IFACE(PPB_VAR_ARRAY_INTERFACE_1_0, PPB_VarArray_1_0)
-PROXIED_IFACE(PPB_VAR_DICTIONARY_INTERFACE_1_0, PPB_VarDictionary_1_0)
-PROXIED_IFACE(PPB_VIDEODECODER_INTERFACE_0_2, PPB_VideoDecoder_0_2)
-PROXIED_IFACE(PPB_VIDEODECODER_INTERFACE_1_0, PPB_VideoDecoder_1_0)
-PROXIED_IFACE(PPB_VIDEODECODER_INTERFACE_1_1, PPB_VideoDecoder_1_1)
-PROXIED_IFACE(PPB_VIDEOENCODER_INTERFACE_0_2, PPB_VideoEncoder_0_2)
-PROXIED_IFACE(PPB_VIDEOFRAME_INTERFACE_0_1, PPB_VideoFrame_0_1)
-PROXIED_IFACE(PPB_WEBSOCKET_INTERFACE_1_0, PPB_WebSocket_1_0)
-
-// Note: PPB_Var and PPB_VarArrayBuffer are special and registered manually.
-PROXIED_IFACE(PPB_VIEW_INTERFACE_1_0, PPB_View_1_0)
-PROXIED_IFACE(PPB_VIEW_INTERFACE_1_1, PPB_View_1_1)
-PROXIED_IFACE(PPB_VIEW_INTERFACE_1_2, PPB_View_1_2)
-
-// This has no corresponding _Proxy object since it does no IPC.
-PROXIED_IFACE(PPB_AUDIO_CONFIG_INTERFACE_1_0, PPB_AudioConfig_1_0)
-PROXIED_IFACE(PPB_AUDIO_CONFIG_INTERFACE_1_1, PPB_AudioConfig_1_1)
-
-#include "ppapi/thunk/interfaces_postamble.h"
diff --git a/thunk/interfaces_preamble.h b/thunk/interfaces_preamble.h
deleted file mode 100644
index 678c856..0000000
--- a/thunk/interfaces_preamble.h
+++ /dev/null
@@ -1,21 +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 file defines empty versions of the macros used in the interfaces_*.h
-// files, as long as they aren't already defined. This allows users of those
-// files to only implement the macros they need, and everything else will
-// compile.
-//
-// Include this file at the top, and interfaces_postamble.h at the bottom. The
-// postamble will clean up these definitions.
-
-#ifndef PROXIED_API
-#define PROXIED_API(api_name)
-#define UNDEFINE_PROXIED_API
-#endif
-
-#ifndef PROXIED_IFACE
-#define PROXIED_IFACE(iface_str, iface_struct)
-#define UNDEFINE_PROXIED_IFACE
-#endif
diff --git a/thunk/ppapi_thunk_export.h b/thunk/ppapi_thunk_export.h
deleted file mode 100644
index 7c13557..0000000
--- a/thunk/ppapi_thunk_export.h
+++ /dev/null
@@ -1,25 +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_THUNK_PPAPI_THUNK_EXPORT_H_
-#define PPAPI_THUNK_PPAPI_THUNK_EXPORT_H_
-
-#if defined(COMPONENT_BUILD)
-#if defined(WIN32)
-
-#if defined(PPAPI_THUNK_IMPLEMENTATION)
-#define PPAPI_THUNK_EXPORT __declspec(dllexport)
-#else
-#define PPAPI_THUNK_EXPORT __declspec(dllimport)
-#endif  // defined(PPAPI_THUNK_IMPLEMENTATION)
-
-#else  // defined(WIN32)
-#define PPAPI_THUNK_EXPORT __attribute__((visibility("default")))
-#endif
-
-#else  // defined(COMPONENT_BUILD)
-#define PPAPI_THUNK_EXPORT
-#endif
-
-#endif  // PPAPI_THUNK_PPAPI_THUNK_EXPORT_H_
diff --git a/thunk/ppb_audio_api.h b/thunk/ppb_audio_api.h
deleted file mode 100644
index 1165a84..0000000
--- a/thunk/ppb_audio_api.h
+++ /dev/null
@@ -1,44 +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_THUNK_PPB_AUDIO_API_H_
-#define PPAPI_THUNK_PPB_AUDIO_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/ppb_audio.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace base {
-class UnsafeSharedMemoryRegion;
-}  // namespace base
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_Audio_API {
- public:
-  virtual ~PPB_Audio_API() {}
-
-  virtual PP_Resource GetCurrentConfig() = 0;
-  virtual PP_Bool StartPlayback() = 0;
-  virtual PP_Bool StopPlayback() = 0;
-
-  // Trusted API.
-  virtual int32_t Open(
-      PP_Resource config_id,
-      scoped_refptr<TrackedCallback> create_callback) = 0;
-  virtual int32_t GetSyncSocket(int* sync_socket) = 0;
-  virtual int32_t GetSharedMemory(base::UnsafeSharedMemoryRegion** shm) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_AUDIO_API_H_
diff --git a/thunk/ppb_audio_buffer_api.h b/thunk/ppb_audio_buffer_api.h
deleted file mode 100644
index 9bad210..0000000
--- a/thunk/ppb_audio_buffer_api.h
+++ /dev/null
@@ -1,40 +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_THUNK_PPB_AUDIO_BUFFER_API_H_
-#define PPAPI_THUNK_PPB_AUDIO_BUFFER_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_audio_buffer.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-union MediaStreamBuffer;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_AudioBuffer_API {
- public:
-  virtual ~PPB_AudioBuffer_API() {}
-  virtual PP_TimeDelta GetTimestamp() = 0;
-  virtual void SetTimestamp(PP_TimeDelta timestamp) = 0;
-  virtual PP_AudioBuffer_SampleRate GetSampleRate() = 0;
-  virtual PP_AudioBuffer_SampleSize GetSampleSize() = 0;
-  virtual uint32_t GetNumberOfChannels() = 0;
-  virtual uint32_t GetNumberOfSamples() = 0;
-  virtual void* GetDataBuffer() = 0;
-  virtual uint32_t GetDataBufferSize() = 0;
-
-  // Methods used by Pepper internal implementation only.
-  virtual MediaStreamBuffer* GetBuffer() = 0;
-  virtual int32_t GetBufferIndex() = 0;
-  virtual void Invalidate() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_AUDIO_BUFFER_API_H_
diff --git a/thunk/ppb_audio_buffer_thunk.cc b/thunk/ppb_audio_buffer_thunk.cc
deleted file mode 100644
index e050191..0000000
--- a/thunk/ppb_audio_buffer_thunk.cc
+++ /dev/null
@@ -1,104 +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.
-
-// From ppb_audio_buffer.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_audio_buffer.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_audio_buffer_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Bool IsAudioBuffer(PP_Resource resource) {
-  VLOG(4) << "PPB_AudioBuffer::IsAudioBuffer()";
-  EnterResource<PPB_AudioBuffer_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-PP_TimeDelta GetTimestamp(PP_Resource buffer) {
-  VLOG(4) << "PPB_AudioBuffer::GetTimestamp()";
-  EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
-  if (enter.failed())
-    return 0.0;
-  return enter.object()->GetTimestamp();
-}
-
-void SetTimestamp(PP_Resource buffer, PP_TimeDelta timestamp) {
-  VLOG(4) << "PPB_AudioBuffer::SetTimestamp()";
-  EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
-  if (enter.failed())
-    return;
-  enter.object()->SetTimestamp(timestamp);
-}
-
-PP_AudioBuffer_SampleRate GetSampleRate(PP_Resource buffer) {
-  VLOG(4) << "PPB_AudioBuffer::GetSampleRate()";
-  EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
-  if (enter.failed())
-    return PP_AUDIOBUFFER_SAMPLERATE_UNKNOWN;
-  return enter.object()->GetSampleRate();
-}
-
-PP_AudioBuffer_SampleSize GetSampleSize(PP_Resource buffer) {
-  VLOG(4) << "PPB_AudioBuffer::GetSampleSize()";
-  EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
-  if (enter.failed())
-    return PP_AUDIOBUFFER_SAMPLESIZE_UNKNOWN;
-  return enter.object()->GetSampleSize();
-}
-
-uint32_t GetNumberOfChannels(PP_Resource buffer) {
-  VLOG(4) << "PPB_AudioBuffer::GetNumberOfChannels()";
-  EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetNumberOfChannels();
-}
-
-uint32_t GetNumberOfSamples(PP_Resource buffer) {
-  VLOG(4) << "PPB_AudioBuffer::GetNumberOfSamples()";
-  EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetNumberOfSamples();
-}
-
-void* GetDataBuffer(PP_Resource buffer) {
-  VLOG(4) << "PPB_AudioBuffer::GetDataBuffer()";
-  EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
-  if (enter.failed())
-    return NULL;
-  return enter.object()->GetDataBuffer();
-}
-
-uint32_t GetDataBufferSize(PP_Resource buffer) {
-  VLOG(4) << "PPB_AudioBuffer::GetDataBufferSize()";
-  EnterResource<PPB_AudioBuffer_API> enter(buffer, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetDataBufferSize();
-}
-
-const PPB_AudioBuffer_0_1 g_ppb_audiobuffer_thunk_0_1 = {
-    &IsAudioBuffer,      &GetTimestamp,  &SetTimestamp,
-    &GetSampleRate,      &GetSampleSize, &GetNumberOfChannels,
-    &GetNumberOfSamples, &GetDataBuffer, &GetDataBufferSize};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_AudioBuffer_0_1* GetPPB_AudioBuffer_0_1_Thunk() {
-  return &g_ppb_audiobuffer_thunk_0_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_audio_config_api.h b/thunk/ppb_audio_config_api.h
deleted file mode 100644
index e265e3e..0000000
--- a/thunk/ppb_audio_config_api.h
+++ /dev/null
@@ -1,27 +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_THUNK_PPB_AUDIO_CONFIG_API_H_
-#define PPAPI_THUNK_PPB_AUDIO_CONFIG_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_audio_config.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_AudioConfig_API {
- public:
-  virtual ~PPB_AudioConfig_API() {}
-
-  virtual PP_AudioSampleRate GetSampleRate() = 0;
-  virtual uint32_t GetSampleFrameCount() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_AUDIO_CONFIG_API_H_
diff --git a/thunk/ppb_audio_config_thunk.cc b/thunk/ppb_audio_config_thunk.cc
deleted file mode 100644
index bbf3b14..0000000
--- a/thunk/ppb_audio_config_thunk.cc
+++ /dev/null
@@ -1,108 +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 "base/logging.h"
-#include "ppapi/shared_impl/ppb_audio_config_shared.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_audio_config_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource CreateStereo16bit(PP_Instance instance,
-                              PP_AudioSampleRate sample_rate,
-                              uint32_t sample_frame_count) {
-  VLOG(4) << "PPB_AudioConfig::CreateStereo16Bit()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateAudioConfig(instance, sample_rate,
-                                              sample_frame_count);
-}
-
-uint32_t RecommendSampleFrameCount_1_0(PP_AudioSampleRate sample_rate,
-                                       uint32_t requested_sample_frame_count) {
-  VLOG(4) << "PPB_AudioConfig::RecommendSampleFrameCount()";
-  return PPB_AudioConfig_Shared::RecommendSampleFrameCount_1_0(sample_rate,
-      requested_sample_frame_count);
-}
-
-uint32_t RecommendSampleFrameCount_1_1(PP_Instance instance,
-                                       PP_AudioSampleRate sample_rate,
-                                       uint32_t requested_sample_frame_count) {
-  VLOG(4) << "PPB_AudioConfig::RecommendSampleFrameCount()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return 0;
-  return PPB_AudioConfig_Shared::RecommendSampleFrameCount_1_1(instance,
-      sample_rate, requested_sample_frame_count);
-}
-
-
-PP_Bool IsAudioConfig(PP_Resource resource) {
-  VLOG(4) << "PPB_AudioConfig::IsAudioConfig()";
-  EnterResource<PPB_AudioConfig_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-PP_AudioSampleRate GetSampleRate(PP_Resource config_id) {
-  VLOG(4) << "PPB_AudioConfig::GetSampleRate()";
-  EnterResource<PPB_AudioConfig_API> enter(config_id, true);
-  if (enter.failed())
-    return PP_AUDIOSAMPLERATE_NONE;
-  return enter.object()->GetSampleRate();
-}
-
-uint32_t GetSampleFrameCount(PP_Resource config_id) {
-  VLOG(4) << "PPB_AudioConfig::GetSampleFrameCount()";
-  EnterResource<PPB_AudioConfig_API> enter(config_id, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetSampleFrameCount();
-}
-
-PP_AudioSampleRate RecommendSampleRate(PP_Instance instance) {
-  VLOG(4) << "PPB_AudioConfig::RecommendSampleRate()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_AUDIOSAMPLERATE_NONE;
-  return PPB_AudioConfig_Shared::RecommendSampleRate(instance);
-}
-
-const PPB_AudioConfig_1_0 g_ppb_audio_config_thunk_1_0 = {
-  &CreateStereo16bit,
-  &RecommendSampleFrameCount_1_0,
-  &IsAudioConfig,
-  &GetSampleRate,
-  &GetSampleFrameCount
-};
-
-const PPB_AudioConfig_1_1 g_ppb_audio_config_thunk_1_1 = {
-  &CreateStereo16bit,
-  &RecommendSampleFrameCount_1_1,
-  &IsAudioConfig,
-  &GetSampleRate,
-  &GetSampleFrameCount,
-  &RecommendSampleRate
-};
-
-
-}  // namespace
-
-const PPB_AudioConfig_1_0* GetPPB_AudioConfig_1_0_Thunk() {
-  return &g_ppb_audio_config_thunk_1_0;
-}
-
-const PPB_AudioConfig_1_1* GetPPB_AudioConfig_1_1_Thunk() {
-  return &g_ppb_audio_config_thunk_1_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_audio_encoder_thunk.cc b/thunk/ppb_audio_encoder_thunk.cc
deleted file mode 100644
index a6c1f65..0000000
--- a/thunk/ppb_audio_encoder_thunk.cc
+++ /dev/null
@@ -1,152 +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.
-
-// From ppb_audio_encoder.idl modified Wed Jan 27 17:39:22 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_audio_encoder.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_audio_encoder_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_AudioEncoder::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateAudioEncoder(instance);
-}
-
-PP_Bool IsAudioEncoder(PP_Resource resource) {
-  VLOG(4) << "PPB_AudioEncoder::IsAudioEncoder()";
-  EnterResource<PPB_AudioEncoder_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t GetSupportedProfiles(PP_Resource audio_encoder,
-                             struct PP_ArrayOutput output,
-                             struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_AudioEncoder::GetSupportedProfiles()";
-  EnterResource<PPB_AudioEncoder_API> enter(audio_encoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->GetSupportedProfiles(output, enter.callback()));
-}
-
-int32_t Initialize(PP_Resource audio_encoder,
-                   uint32_t channels,
-                   PP_AudioBuffer_SampleRate input_sample_rate,
-                   PP_AudioBuffer_SampleSize input_sample_size,
-                   PP_AudioProfile output_profile,
-                   uint32_t initial_bitrate,
-                   PP_HardwareAcceleration acceleration,
-                   struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_AudioEncoder::Initialize()";
-  EnterResource<PPB_AudioEncoder_API> enter(audio_encoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Initialize(
-      channels, input_sample_rate, input_sample_size, output_profile,
-      initial_bitrate, acceleration, enter.callback()));
-}
-
-int32_t GetNumberOfSamples(PP_Resource audio_encoder) {
-  VLOG(4) << "PPB_AudioEncoder::GetNumberOfSamples()";
-  EnterResource<PPB_AudioEncoder_API> enter(audio_encoder, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->GetNumberOfSamples();
-}
-
-int32_t GetBuffer(PP_Resource audio_encoder,
-                  PP_Resource* audio_buffer,
-                  struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_AudioEncoder::GetBuffer()";
-  EnterResource<PPB_AudioEncoder_API> enter(audio_encoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->GetBuffer(audio_buffer, enter.callback()));
-}
-
-int32_t Encode(PP_Resource audio_encoder,
-               PP_Resource audio_buffer,
-               struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_AudioEncoder::Encode()";
-  EnterResource<PPB_AudioEncoder_API> enter(audio_encoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->Encode(audio_buffer, enter.callback()));
-}
-
-int32_t GetBitstreamBuffer(PP_Resource audio_encoder,
-                           struct PP_AudioBitstreamBuffer* bitstream_buffer,
-                           struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_AudioEncoder::GetBitstreamBuffer()";
-  EnterResource<PPB_AudioEncoder_API> enter(audio_encoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->GetBitstreamBuffer(bitstream_buffer, enter.callback()));
-}
-
-void RecycleBitstreamBuffer(
-    PP_Resource audio_encoder,
-    const struct PP_AudioBitstreamBuffer* bitstream_buffer) {
-  VLOG(4) << "PPB_AudioEncoder::RecycleBitstreamBuffer()";
-  EnterResource<PPB_AudioEncoder_API> enter(audio_encoder, true);
-  if (enter.failed())
-    return;
-  enter.object()->RecycleBitstreamBuffer(bitstream_buffer);
-}
-
-void RequestBitrateChange(PP_Resource audio_encoder, uint32_t bitrate) {
-  VLOG(4) << "PPB_AudioEncoder::RequestBitrateChange()";
-  EnterResource<PPB_AudioEncoder_API> enter(audio_encoder, true);
-  if (enter.failed())
-    return;
-  enter.object()->RequestBitrateChange(bitrate);
-}
-
-void Close(PP_Resource audio_encoder) {
-  VLOG(4) << "PPB_AudioEncoder::Close()";
-  EnterResource<PPB_AudioEncoder_API> enter(audio_encoder, true);
-  if (enter.failed())
-    return;
-  enter.object()->Close();
-}
-
-const PPB_AudioEncoder_0_1 g_ppb_audioencoder_thunk_0_1 = {
-    &Create,
-    &IsAudioEncoder,
-    &GetSupportedProfiles,
-    &Initialize,
-    &GetNumberOfSamples,
-    &GetBuffer,
-    &Encode,
-    &GetBitstreamBuffer,
-    &RecycleBitstreamBuffer,
-    &RequestBitrateChange,
-    &Close};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_AudioEncoder_0_1* GetPPB_AudioEncoder_0_1_Thunk() {
-  return &g_ppb_audioencoder_thunk_0_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_audio_input_api.h b/thunk/ppb_audio_input_api.h
deleted file mode 100644
index 50cf7ee..0000000
--- a/thunk/ppb_audio_input_api.h
+++ /dev/null
@@ -1,46 +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_THUNK_PPB_AUDIO_INPUT_API_H_
-#define PPAPI_THUNK_PPB_AUDIO_INPUT_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/dev/ppb_audio_input_dev.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPB_AudioInput_API {
- public:
-  virtual ~PPB_AudioInput_API() {}
-
-  virtual int32_t EnumerateDevices(const PP_ArrayOutput& output,
-                                   scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t MonitorDeviceChange(PP_MonitorDeviceChangeCallback callback,
-                                      void* user_data) = 0;
-  virtual int32_t Open0_3(PP_Resource device_ref,
-                          PP_Resource config,
-                          PPB_AudioInput_Callback_0_3 audio_input_callback_0_3,
-                          void* user_data,
-                          scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Open(PP_Resource device_ref,
-                       PP_Resource config,
-                       PPB_AudioInput_Callback audio_input_callback,
-                       void* user_data,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-  virtual PP_Resource GetCurrentConfig() = 0;
-  virtual PP_Bool StartCapture() = 0;
-  virtual PP_Bool StopCapture() = 0;
-  virtual void Close() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_AUDIO_INPUT_API_H_
diff --git a/thunk/ppb_audio_input_dev_thunk.cc b/thunk/ppb_audio_input_dev_thunk.cc
deleted file mode 100644
index e9d00ba..0000000
--- a/thunk/ppb_audio_input_dev_thunk.cc
+++ /dev/null
@@ -1,159 +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 "base/logging.h"
-#include "ppapi/c/dev/ppb_audio_input_dev.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_audio_input_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_AudioInput_Dev::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateAudioInput(instance);
-}
-
-PP_Bool IsAudioInput(PP_Resource resource) {
-  VLOG(4) << "PPB_AudioInput_Dev::IsAudioInput()";
-  EnterResource<PPB_AudioInput_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t EnumerateDevices(PP_Resource audio_input,
-                         struct PP_ArrayOutput output,
-                         struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_AudioInput_Dev::EnumerateDevices()";
-  EnterResource<PPB_AudioInput_API> enter(audio_input, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->EnumerateDevices(output,
-                                                          enter.callback()));
-}
-
-int32_t MonitorDeviceChange(PP_Resource audio_input,
-                            PP_MonitorDeviceChangeCallback callback,
-                            void* user_data) {
-  VLOG(4) << "PPB_AudioInput_Dev::MonitorDeviceChange()";
-  EnterResource<PPB_AudioInput_API> enter(audio_input, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->MonitorDeviceChange(callback, user_data);
-}
-
-int32_t Open_0_3(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) {
-  VLOG(4) << "PPB_AudioInput_Dev::Open()";
-  EnterResource<PPB_AudioInput_API> enter(audio_input, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Open0_3(device_ref,
-                                                 config,
-                                                 audio_input_callback,
-                                                 user_data,
-                                                 enter.callback()));
-}
-
-int32_t 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) {
-  VLOG(4) << "PPB_AudioInput_Dev::Open()";
-  EnterResource<PPB_AudioInput_API> enter(audio_input, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Open(device_ref,
-                                              config,
-                                              audio_input_callback,
-                                              user_data,
-                                              enter.callback()));
-}
-
-PP_Resource GetCurrentConfig(PP_Resource audio_input) {
-  VLOG(4) << "PPB_AudioInput_Dev::GetCurrentConfig()";
-  EnterResource<PPB_AudioInput_API> enter(audio_input, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetCurrentConfig();
-}
-
-PP_Bool StartCapture(PP_Resource audio_input) {
-  VLOG(4) << "PPB_AudioInput_Dev::StartCapture()";
-  EnterResource<PPB_AudioInput_API> enter(audio_input, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->StartCapture();
-}
-
-PP_Bool StopCapture(PP_Resource audio_input) {
-  VLOG(4) << "PPB_AudioInput_Dev::StopCapture()";
-  EnterResource<PPB_AudioInput_API> enter(audio_input, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->StopCapture();
-}
-
-void Close(PP_Resource audio_input) {
-  VLOG(4) << "PPB_AudioInput_Dev::Close()";
-  EnterResource<PPB_AudioInput_API> enter(audio_input, true);
-  if (enter.failed())
-    return;
-  enter.object()->Close();
-}
-
-const PPB_AudioInput_Dev_0_3 g_ppb_audioinput_dev_thunk_0_3 = {
-  &Create,
-  &IsAudioInput,
-  &EnumerateDevices,
-  &MonitorDeviceChange,
-  &Open_0_3,
-  &GetCurrentConfig,
-  &StartCapture,
-  &StopCapture,
-  &Close
-};
-
-const PPB_AudioInput_Dev_0_4 g_ppb_audioinput_dev_thunk_0_4 = {
-  &Create,
-  &IsAudioInput,
-  &EnumerateDevices,
-  &MonitorDeviceChange,
-  &Open,
-  &GetCurrentConfig,
-  &StartCapture,
-  &StopCapture,
-  &Close
-};
-
-}  // namespace
-
-const PPB_AudioInput_Dev_0_3* GetPPB_AudioInput_Dev_0_3_Thunk() {
-  return &g_ppb_audioinput_dev_thunk_0_3;
-}
-
-const PPB_AudioInput_Dev_0_4* GetPPB_AudioInput_Dev_0_4_Thunk() {
-  return &g_ppb_audioinput_dev_thunk_0_4;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_audio_output_api.h b/thunk/ppb_audio_output_api.h
deleted file mode 100644
index e8c9ec8..0000000
--- a/thunk/ppb_audio_output_api.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2017 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_THUNK_PPB_AUDIO_OUTPUT_API_H_
-#define PPAPI_THUNK_PPB_AUDIO_OUTPUT_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/dev/ppb_audio_output_dev.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPB_AudioOutput_API {
- public:
-  virtual ~PPB_AudioOutput_API() {}
-
-  virtual int32_t EnumerateDevices(const PP_ArrayOutput& output,
-                                   scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t MonitorDeviceChange(PP_MonitorDeviceChangeCallback callback,
-                                      void* user_data) = 0;
-  virtual int32_t Open(PP_Resource device_ref,
-                       PP_Resource config,
-                       PPB_AudioOutput_Callback audio_output_callback,
-                       void* user_data,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-  virtual PP_Resource GetCurrentConfig() = 0;
-  virtual PP_Bool StartPlayback() = 0;
-  virtual PP_Bool StopPlayback() = 0;
-  virtual void Close() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_AUDIO_OUTPUT_API_H_
diff --git a/thunk/ppb_audio_output_dev_thunk.cc b/thunk/ppb_audio_output_dev_thunk.cc
deleted file mode 100644
index 7549429..0000000
--- a/thunk/ppb_audio_output_dev_thunk.cc
+++ /dev/null
@@ -1,117 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// From dev/ppb_audio_output_dev.idl modified Fri Mar 31 08:08:16 2017.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/dev/ppb_audio_output_dev.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_audio_output_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_AudioOutput_Dev::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateAudioOutput(instance);
-}
-
-PP_Bool IsAudioOutput(PP_Resource resource) {
-  VLOG(4) << "PPB_AudioOutput_Dev::IsAudioOutput()";
-  EnterResource<PPB_AudioOutput_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t EnumerateDevices(PP_Resource audio_output,
-                         struct PP_ArrayOutput output,
-                         struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_AudioOutput_Dev::EnumerateDevices()";
-  EnterResource<PPB_AudioOutput_API> enter(audio_output, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->EnumerateDevices(output, enter.callback()));
-}
-
-int32_t MonitorDeviceChange(PP_Resource audio_output,
-                            PP_MonitorDeviceChangeCallback callback,
-                            void* user_data) {
-  VLOG(4) << "PPB_AudioOutput_Dev::MonitorDeviceChange()";
-  EnterResource<PPB_AudioOutput_API> enter(audio_output, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->MonitorDeviceChange(callback, user_data);
-}
-
-int32_t 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) {
-  VLOG(4) << "PPB_AudioOutput_Dev::Open()";
-  EnterResource<PPB_AudioOutput_API> enter(audio_output, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Open(
-      device_ref, config, audio_output_callback, user_data, enter.callback()));
-}
-
-PP_Resource GetCurrentConfig(PP_Resource audio_output) {
-  VLOG(4) << "PPB_AudioOutput_Dev::GetCurrentConfig()";
-  EnterResource<PPB_AudioOutput_API> enter(audio_output, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetCurrentConfig();
-}
-
-PP_Bool StartPlayback(PP_Resource audio_output) {
-  VLOG(4) << "PPB_AudioOutput_Dev::StartPlayback()";
-  EnterResource<PPB_AudioOutput_API> enter(audio_output, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->StartPlayback();
-}
-
-PP_Bool StopPlayback(PP_Resource audio_output) {
-  VLOG(4) << "PPB_AudioOutput_Dev::StopPlayback()";
-  EnterResource<PPB_AudioOutput_API> enter(audio_output, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->StopPlayback();
-}
-
-void Close(PP_Resource audio_output) {
-  VLOG(4) << "PPB_AudioOutput_Dev::Close()";
-  EnterResource<PPB_AudioOutput_API> enter(audio_output, true);
-  if (enter.failed())
-    return;
-  enter.object()->Close();
-}
-
-const PPB_AudioOutput_Dev_0_1 g_ppb_audiooutput_dev_thunk_0_1 = {
-    &Create, &IsAudioOutput,    &EnumerateDevices, &MonitorDeviceChange,
-    &Open,   &GetCurrentConfig, &StartPlayback,    &StopPlayback,
-    &Close};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_AudioOutput_Dev_0_1*
-GetPPB_AudioOutput_Dev_0_1_Thunk() {
-  return &g_ppb_audiooutput_dev_thunk_0_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_audio_thunk.cc b/thunk/ppb_audio_thunk.cc
deleted file mode 100644
index fc62202..0000000
--- a/thunk/ppb_audio_thunk.cc
+++ /dev/null
@@ -1,105 +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 "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_audio.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_audio_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create_1_0(PP_Instance instance,
-                      PP_Resource config,
-                      PPB_Audio_Callback_1_0 audio_callback,
-                      void* user_data) {
-  VLOG(4) << "PPB_Audio::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateAudio1_0(instance,
-                                           config,
-                                           audio_callback,
-                                           user_data);
-}
-
-PP_Resource Create(PP_Instance instance,
-                   PP_Resource config,
-                   PPB_Audio_Callback audio_callback,
-                   void* user_data) {
-  VLOG(4) << "PPB_Audio::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateAudio(instance,
-                                        config,
-                                        audio_callback,
-                                        user_data);
-}
-
-PP_Bool IsAudio(PP_Resource resource) {
-  VLOG(4) << "PPB_Audio::IsAudio()";
-  EnterResource<PPB_Audio_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-PP_Resource GetCurrentConfig(PP_Resource audio) {
-  VLOG(4) << "PPB_Audio::GetCurrentConfig()";
-  EnterResource<PPB_Audio_API> enter(audio, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetCurrentConfig();
-}
-
-PP_Bool StartPlayback(PP_Resource audio) {
-  VLOG(4) << "PPB_Audio::StartPlayback()";
-  EnterResource<PPB_Audio_API> enter(audio, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->StartPlayback();
-}
-
-PP_Bool StopPlayback(PP_Resource audio) {
-  VLOG(4) << "PPB_Audio::StopPlayback()";
-  EnterResource<PPB_Audio_API> enter(audio, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->StopPlayback();
-}
-
-const PPB_Audio_1_0 g_ppb_audio_thunk_1_0 = {
-  &Create_1_0,
-  &IsAudio,
-  &GetCurrentConfig,
-  &StartPlayback,
-  &StopPlayback
-};
-
-const PPB_Audio_1_1 g_ppb_audio_thunk_1_1 = {
-  &Create,
-  &IsAudio,
-  &GetCurrentConfig,
-  &StartPlayback,
-  &StopPlayback
-};
-
-}  // namespace
-
-const PPB_Audio_1_0* GetPPB_Audio_1_0_Thunk() {
-  return &g_ppb_audio_thunk_1_0;
-}
-
-const PPB_Audio_1_1* GetPPB_Audio_1_1_Thunk() {
-  return &g_ppb_audio_thunk_1_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_browser_font_singleton_api.h b/thunk/ppb_browser_font_singleton_api.h
deleted file mode 100644
index 639951e..0000000
--- a/thunk/ppb_browser_font_singleton_api.h
+++ /dev/null
@@ -1,28 +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_THUNK_PPB_BROWSER_FONT_SINGLETON_API_H_
-#define PPAPI_THUNK_PPB_BROWSER_FONT_SINGLETON_API_H_
-
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/singleton_resource_id.h"
-
-namespace ppapi {
-namespace thunk {
-
-class PPB_BrowserFont_Singleton_API {
- public:
-  virtual ~PPB_BrowserFont_Singleton_API() {}
-
-  virtual PP_Var GetFontFamilies(PP_Instance instance) = 0;
-
-  static const SingletonResourceID kSingletonResourceID =
-      BROWSER_FONT_SINGLETON_ID;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_BROWSER_FONT_SINGLETON_API_H_
diff --git a/thunk/ppb_browser_font_trusted_api.h b/thunk/ppb_browser_font_trusted_api.h
deleted file mode 100644
index 2953f68..0000000
--- a/thunk/ppb_browser_font_trusted_api.h
+++ /dev/null
@@ -1,41 +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_THUNK_PPB_BROWSER_FONT_TRUSTED_API_H_
-#define PPAPI_THUNK_PPB_BROWSER_FONT_TRUSTED_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/trusted/ppb_browser_font_trusted.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-// API for font resources.
-class PPAPI_THUNK_EXPORT PPB_BrowserFont_Trusted_API {
- public:
-  virtual ~PPB_BrowserFont_Trusted_API() {}
-
-  virtual PP_Bool Describe(PP_BrowserFont_Trusted_Description* description,
-                           PP_BrowserFont_Trusted_Metrics* metrics) = 0;
-  virtual PP_Bool DrawTextAt(PP_Resource image_data,
-                             const PP_BrowserFont_Trusted_TextRun* text,
-                             const PP_Point* position,
-                             uint32_t color,
-                             const PP_Rect* clip,
-                             PP_Bool image_data_is_opaque) = 0;
-  virtual int32_t MeasureText(const PP_BrowserFont_Trusted_TextRun* text) = 0;
-  virtual uint32_t CharacterOffsetForPixel(
-      const PP_BrowserFont_Trusted_TextRun* text,
-      int32_t pixel_position) = 0;
-  virtual int32_t PixelOffsetForCharacter(
-      const PP_BrowserFont_Trusted_TextRun* text,
-      uint32_t char_offset) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_BROWSER_FONT_TRUSTED_API_H_
diff --git a/thunk/ppb_browser_font_trusted_thunk.cc b/thunk/ppb_browser_font_trusted_thunk.cc
deleted file mode 100644
index d7cece7..0000000
--- a/thunk/ppb_browser_font_trusted_thunk.cc
+++ /dev/null
@@ -1,101 +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 "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_browser_font_singleton_api.h"
-#include "ppapi/thunk/ppb_browser_font_trusted_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-typedef EnterResource<PPB_BrowserFont_Trusted_API> EnterBrowserFont;
-
-PP_Var GetFontFamilies(PP_Instance instance) {
-  EnterInstanceAPI<PPB_BrowserFont_Singleton_API> enter(instance);
-  return enter.succeeded() ?
-      enter.functions()->GetFontFamilies(instance) : PP_MakeUndefined();
-}
-
-PP_Resource Create(PP_Instance instance,
-                   const PP_BrowserFont_Trusted_Description* description) {
-  EnterResourceCreation enter(instance);
-  return enter.succeeded() ?
-      enter.functions()->CreateBrowserFont(instance, description) : 0;
-}
-
-PP_Bool IsBrowserFont(PP_Resource resource) {
-  EnterBrowserFont enter(resource, false);
-  return enter.succeeded() ? PP_TRUE : PP_FALSE;
-}
-
-PP_Bool Describe(PP_Resource font_id,
-                 PP_BrowserFont_Trusted_Description* description,
-                 PP_BrowserFont_Trusted_Metrics* metrics) {
-  EnterBrowserFont enter(font_id, true);
-  return enter.succeeded() ?
-      enter.object()->Describe(description, metrics) : PP_FALSE;
-}
-
-PP_Bool DrawTextAt(PP_Resource font_id,
-                   PP_Resource image_data,
-                   const PP_BrowserFont_Trusted_TextRun* text,
-                   const PP_Point* position,
-                   uint32_t color,
-                   const PP_Rect* clip,
-                   PP_Bool image_data_is_opaque) {
-  EnterBrowserFont enter(font_id, true);
-  return enter.succeeded() ?
-      enter.object()->DrawTextAt(image_data, text, position, color, clip,
-                                 image_data_is_opaque) :
-      PP_FALSE;
-}
-
-int32_t MeasureText(PP_Resource font_id,
-                    const PP_BrowserFont_Trusted_TextRun* text) {
-  EnterBrowserFont enter(font_id, true);
-  return enter.succeeded() ? enter.object()->MeasureText(text) : -1;
-}
-
-uint32_t CharacterOffsetForPixel(PP_Resource font_id,
-                                 const PP_BrowserFont_Trusted_TextRun* text,
-                                 int32_t pixel_position) {
-  EnterBrowserFont enter(font_id, true);
-  return enter.succeeded() ?
-      enter.object()->CharacterOffsetForPixel(text, pixel_position) :
-      0xFFFFFFFF;
-}
-
-int32_t PixelOffsetForCharacter(PP_Resource font_id,
-                                const PP_BrowserFont_Trusted_TextRun* text,
-                                uint32_t char_offset) {
-  EnterBrowserFont enter(font_id, true);
-  return enter.succeeded() ?
-      enter.object()->PixelOffsetForCharacter(text, char_offset) : -1;
-}
-
-const PPB_BrowserFont_Trusted_1_0 g_ppb_browser_font_trusted_thunk = {
-  &GetFontFamilies,
-  &Create,
-  &IsBrowserFont,
-  &Describe,
-  &DrawTextAt,
-  &MeasureText,
-  &CharacterOffsetForPixel,
-  &PixelOffsetForCharacter
-};
-
-}  // namespace
-
-const PPB_BrowserFont_Trusted_1_0* GetPPB_BrowserFont_Trusted_1_0_Thunk() {
-  return &g_ppb_browser_font_trusted_thunk;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_buffer_api.h b/thunk/ppb_buffer_api.h
deleted file mode 100644
index b97b7f1..0000000
--- a/thunk/ppb_buffer_api.h
+++ /dev/null
@@ -1,35 +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_THUNK_PPB_BUFFER_API_H_
-#define PPAPI_THUNK_PPB_BUFFER_API_H_
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace base {
-class UnsafeSharedMemoryRegion;
-}  // namespace base
-
-namespace ppapi {
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_Buffer_API {
- public:
-  virtual ~PPB_Buffer_API() {}
-
-  virtual PP_Bool Describe(uint32_t* size_in_bytes) = 0;
-  virtual PP_Bool IsMapped() = 0;
-  virtual void* Map() = 0;
-  virtual void Unmap() = 0;
-
-  // Trusted API
-  virtual int32_t GetSharedMemory(base::UnsafeSharedMemoryRegion** shm) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_BUFFER_API_H_
diff --git a/thunk/ppb_buffer_thunk.cc b/thunk/ppb_buffer_thunk.cc
deleted file mode 100644
index 7cfbf29..0000000
--- a/thunk/ppb_buffer_thunk.cc
+++ /dev/null
@@ -1,67 +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 "ppapi/c/dev/ppb_buffer_dev.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_buffer_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance, uint32_t size) {
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateBuffer(instance, size);
-}
-
-PP_Bool IsBuffer(PP_Resource resource) {
-  EnterResource<PPB_Buffer_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-PP_Bool Describe(PP_Resource resource, uint32_t* size_in_bytes) {
-  EnterResource<PPB_Buffer_API> enter(resource, true);
-  if (enter.failed()) {
-    *size_in_bytes = 0;
-    return PP_FALSE;
-  }
-  return enter.object()->Describe(size_in_bytes);
-}
-
-void* Map(PP_Resource resource) {
-  EnterResource<PPB_Buffer_API> enter(resource, true);
-  if (enter.failed())
-    return NULL;
-  return enter.object()->Map();
-}
-
-void Unmap(PP_Resource resource) {
-  EnterResource<PPB_Buffer_API> enter(resource, true);
-  if (enter.succeeded())
-    enter.object()->Unmap();
-}
-
-const PPB_Buffer_Dev g_ppb_buffer_thunk = {
-  &Create,
-  &IsBuffer,
-  &Describe,
-  &Map,
-  &Unmap,
-};
-
-}  // namespace
-
-const PPB_Buffer_Dev_0_4* GetPPB_Buffer_Dev_0_4_Thunk() {
-  return &g_ppb_buffer_thunk;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_camera_capabilities_api.h b/thunk/ppb_camera_capabilities_api.h
deleted file mode 100644
index 3038ae3..0000000
--- a/thunk/ppb_camera_capabilities_api.h
+++ /dev/null
@@ -1,28 +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_THUNK_PPB_CAMERA_CAPABILITIES_API_H_
-#define PPAPI_THUNK_PPB_CAMERA_CAPABILITIES_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/private/ppb_camera_capabilities_private.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_CameraCapabilities_API {
- public:
-  virtual ~PPB_CameraCapabilities_API() {}
-  virtual void GetSupportedVideoCaptureFormats(
-      uint32_t* array_size,
-      PP_VideoCaptureFormat** formats) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_CAMERA_CAPABILITIES_API_H_
diff --git a/thunk/ppb_camera_capabilities_private_thunk.cc b/thunk/ppb_camera_capabilities_private_thunk.cc
deleted file mode 100644
index d61aa65..0000000
--- a/thunk/ppb_camera_capabilities_private_thunk.cc
+++ /dev/null
@@ -1,52 +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.
-
-// From private/ppb_camera_capabilities_private.idl modified Wed Jan 27 17:10:16
-// 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/private/ppb_camera_capabilities_private.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_camera_capabilities_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Bool IsCameraCapabilities(PP_Resource resource) {
-  VLOG(4) << "PPB_CameraCapabilities_Private::IsCameraCapabilities()";
-  EnterResource<PPB_CameraCapabilities_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-void GetSupportedVideoCaptureFormats(PP_Resource capabilities,
-                                     uint32_t* array_size,
-                                     struct PP_VideoCaptureFormat** formats) {
-  VLOG(4)
-      << "PPB_CameraCapabilities_Private::GetSupportedVideoCaptureFormats()";
-  EnterResource<PPB_CameraCapabilities_API> enter(capabilities, true);
-  if (enter.failed())
-    return;
-  enter.object()->GetSupportedVideoCaptureFormats(array_size, formats);
-}
-
-const PPB_CameraCapabilities_Private_0_1
-    g_ppb_cameracapabilities_private_thunk_0_1 = {
-        &IsCameraCapabilities, &GetSupportedVideoCaptureFormats};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_CameraCapabilities_Private_0_1*
-GetPPB_CameraCapabilities_Private_0_1_Thunk() {
-  return &g_ppb_cameracapabilities_private_thunk_0_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_camera_device_api.h b/thunk/ppb_camera_device_api.h
deleted file mode 100644
index 1db3bb8..0000000
--- a/thunk/ppb_camera_device_api.h
+++ /dev/null
@@ -1,33 +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_THUNK_PPB_CAMERA_DEVICE_API_H_
-#define PPAPI_THUNK_PPB_CAMERA_DEVICE_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/private/ppb_camera_device_private.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_CameraDevice_API {
- public:
-  virtual ~PPB_CameraDevice_API() {}
-  virtual int32_t Open(PP_Var device_id,
-                       const scoped_refptr<TrackedCallback>& callback) = 0;
-  virtual void Close() = 0;
-  virtual int32_t GetCameraCapabilities(
-      PP_Resource* capabilities,
-      const scoped_refptr<TrackedCallback>& callback) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_CAMERA_DEVICE_API_H_
diff --git a/thunk/ppb_camera_device_private_thunk.cc b/thunk/ppb_camera_device_private_thunk.cc
deleted file mode 100644
index bd0badf..0000000
--- a/thunk/ppb_camera_device_private_thunk.cc
+++ /dev/null
@@ -1,77 +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.
-
-// From private/ppb_camera_device_private.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/private/ppb_camera_device_private.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_camera_device_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_CameraDevice_Private::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateCameraDevicePrivate(instance);
-}
-
-PP_Bool IsCameraDevice(PP_Resource resource) {
-  VLOG(4) << "PPB_CameraDevice_Private::IsCameraDevice()";
-  EnterResource<PPB_CameraDevice_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Open(PP_Resource camera_device,
-             struct PP_Var device_id,
-             struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_CameraDevice_Private::Open()";
-  EnterResource<PPB_CameraDevice_API> enter(camera_device, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Open(device_id, enter.callback()));
-}
-
-void Close(PP_Resource camera_device) {
-  VLOG(4) << "PPB_CameraDevice_Private::Close()";
-  EnterResource<PPB_CameraDevice_API> enter(camera_device, true);
-  if (enter.failed())
-    return;
-  enter.object()->Close();
-}
-
-int32_t GetCameraCapabilities(PP_Resource camera_device,
-                              PP_Resource* capabilities,
-                              struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_CameraDevice_Private::GetCameraCapabilities()";
-  EnterResource<PPB_CameraDevice_API> enter(camera_device, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->GetCameraCapabilities(capabilities, enter.callback()));
-}
-
-const PPB_CameraDevice_Private_0_1 g_ppb_cameradevice_private_thunk_0_1 = {
-    &Create, &IsCameraDevice, &Open, &Close, &GetCameraCapabilities};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_CameraDevice_Private_0_1*
-GetPPB_CameraDevice_Private_0_1_Thunk() {
-  return &g_ppb_cameradevice_private_thunk_0_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_char_set_thunk.cc b/thunk/ppb_char_set_thunk.cc
deleted file mode 100644
index fe71608..0000000
--- a/thunk/ppb_char_set_thunk.cc
+++ /dev/null
@@ -1,109 +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 "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/private/ppb_char_set_shared.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-char* UTF16ToCharSetDeprecated(PP_Instance instance,
-                               const uint16_t* utf16, uint32_t utf16_len,
-                               const char* output_char_set,
-                               PP_CharSet_ConversionError on_error,
-                               uint32_t* output_length) {
-  // We validate the instance just to make sure we can make changes in the
-  // future and assume people pass proper instances.
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return NULL;
-
-  return PPB_CharSet_Shared::UTF16ToCharSetDeprecated(
-      utf16, utf16_len, output_char_set, on_error, output_length);
-}
-
-PP_Bool UTF16ToCharSet(const uint16_t utf16[],
-                       uint32_t utf16_len,
-                       const char* output_char_set,
-                       PP_CharSet_Trusted_ConversionError on_error,
-                       char* output_buffer,
-                       uint32_t* output_length) {
-  // This interface is a bit odd because it contains a function
-  // (GetDefaultCharSet) that must be called on the instance object and
-  // proxied, but the rest of the functions are implemented in the plugin
-  // process by just calling base functions.
-  //
-  // We could have PPB_Instance_API functions for the two charset conversion
-  // functions, and then have the instance impl and proxy call through to the
-  // shared_impl. That would be more consistent, and we may want to do that if
-  // this file is autogenerated in the future. For now, however, it's less code
-  // to just call the shared_impl code directly here.
-  return PPB_CharSet_Shared::UTF16ToCharSet(
-      utf16, utf16_len, output_char_set, on_error,
-      output_buffer, output_length);
-}
-
-uint16_t* CharSetToUTF16Deprecated(PP_Instance instance,
-                                   const char* input, uint32_t input_len,
-                                   const char* input_char_set,
-                                   PP_CharSet_ConversionError on_error,
-                                   uint32_t* output_length) {
-  // We validate the instance just to make sure we can make changes in the
-  // future and assume people pass proper instances.
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return NULL;
-
-  return PPB_CharSet_Shared::CharSetToUTF16Deprecated(
-      input, input_len, input_char_set, on_error, output_length);
-}
-
-PP_Bool CharSetToUTF16(const char* input,
-                       uint32_t input_len,
-                       const char* input_char_set,
-                       PP_CharSet_Trusted_ConversionError on_error,
-                       uint16_t* output_buffer,
-                       uint32_t* output_utf16_length) {
-  return PPB_CharSet_Shared::CharSetToUTF16(
-      input, input_len, input_char_set, on_error,
-      output_buffer, output_utf16_length);
-}
-
-PP_Var GetDefaultCharSet(PP_Instance instance) {
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.functions()->GetDefaultCharSet(instance);
-}
-
-const PPB_CharSet_Dev g_ppb_char_set_thunk = {
-  &UTF16ToCharSetDeprecated,
-  &CharSetToUTF16Deprecated,
-  &GetDefaultCharSet
-};
-
-const PPB_CharSet_Trusted_1_0 g_ppb_char_set_trusted_thunk = {
-  &UTF16ToCharSet,
-  &CharSetToUTF16,
-  &GetDefaultCharSet
-};
-
-}  // namespace
-
-const PPB_CharSet_Dev_0_4* GetPPB_CharSet_Dev_0_4_Thunk() {
-  return &g_ppb_char_set_thunk;
-}
-
-const PPB_CharSet_Trusted_1_0* GetPPB_CharSet_Trusted_1_0_Thunk() {
-  return &g_ppb_char_set_trusted_thunk;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_console_thunk.cc b/thunk/ppb_console_thunk.cc
deleted file mode 100644
index 482a576..0000000
--- a/thunk/ppb_console_thunk.cc
+++ /dev/null
@@ -1,49 +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.
-
-// From ppb_console.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_console.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-void Log(PP_Instance instance, PP_LogLevel level, struct PP_Var value) {
-  VLOG(4) << "PPB_Console::Log()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return;
-  enter.functions()->Log(instance, level, value);
-}
-
-void LogWithSource(PP_Instance instance,
-                   PP_LogLevel level,
-                   struct PP_Var source,
-                   struct PP_Var value) {
-  VLOG(4) << "PPB_Console::LogWithSource()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return;
-  enter.functions()->LogWithSource(instance, level, source, value);
-}
-
-const PPB_Console_1_0 g_ppb_console_thunk_1_0 = {&Log, &LogWithSource};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_Console_1_0* GetPPB_Console_1_0_Thunk() {
-  return &g_ppb_console_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_cursor_control_thunk.cc b/thunk/ppb_cursor_control_thunk.cc
deleted file mode 100644
index 187c34b..0000000
--- a/thunk/ppb_cursor_control_thunk.cc
+++ /dev/null
@@ -1,60 +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/c/dev/ppb_cursor_control_dev.h"
-#include "ppapi/thunk/thunk.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-
-// This interface is only for temporary backwards compat and currently just
-// forwards to the stable interfaces that implement these features.
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Bool SetCursor(PP_Instance instance,
-                  PP_CursorType_Dev type,
-                  PP_Resource custom_image,
-                  const PP_Point* hot_spot) {
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.functions()->SetCursor(instance,
-      static_cast<PP_MouseCursor_Type>(type), custom_image, hot_spot);
-}
-
-PP_Bool LockCursor(PP_Instance instance) {
-  return PP_FALSE;
-}
-
-PP_Bool UnlockCursor(PP_Instance instance) {
-  return PP_FALSE;
-}
-
-PP_Bool HasCursorLock(PP_Instance instance) {
-  return PP_FALSE;
-}
-
-PP_Bool CanLockCursor(PP_Instance instance) {
-  return PP_FALSE;
-}
-
-const PPB_CursorControl_Dev g_ppb_cursor_control_thunk = {
-  &SetCursor,
-  &LockCursor,
-  &UnlockCursor,
-  &HasCursorLock,
-  &CanLockCursor
-};
-
-}  // namespace
-
-const PPB_CursorControl_Dev_0_4* GetPPB_CursorControl_Dev_0_4_Thunk() {
-  return &g_ppb_cursor_control_thunk;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_device_ref_api.h b/thunk/ppb_device_ref_api.h
deleted file mode 100644
index 5d57718..0000000
--- a/thunk/ppb_device_ref_api.h
+++ /dev/null
@@ -1,32 +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_THUNK_PPB_DEVICE_REF_API_H_
-#define PPAPI_THUNK_PPB_DEVICE_REF_API_H_
-
-#include "ppapi/c/dev/ppb_device_ref_dev.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-struct DeviceRefData;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_DeviceRef_API {
- public:
-  virtual ~PPB_DeviceRef_API() {}
-
-  // This function is not exposed through the C API, but returns the internal
-  // data for easy proxying.
-  virtual const DeviceRefData& GetDeviceRefData() const = 0;
-
-  virtual PP_DeviceType_Dev GetType() = 0;
-  virtual PP_Var GetName() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_DEVICE_REF_API_H_
diff --git a/thunk/ppb_device_ref_dev_thunk.cc b/thunk/ppb_device_ref_dev_thunk.cc
deleted file mode 100644
index 58a5e87..0000000
--- a/thunk/ppb_device_ref_dev_thunk.cc
+++ /dev/null
@@ -1,55 +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.
-
-// From dev/ppb_device_ref_dev.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/dev/ppb_device_ref_dev.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_device_ref_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Bool IsDeviceRef(PP_Resource resource) {
-  VLOG(4) << "PPB_DeviceRef_Dev::IsDeviceRef()";
-  EnterResource<PPB_DeviceRef_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-PP_DeviceType_Dev GetType(PP_Resource device_ref) {
-  VLOG(4) << "PPB_DeviceRef_Dev::GetType()";
-  EnterResource<PPB_DeviceRef_API> enter(device_ref, true);
-  if (enter.failed())
-    return PP_DEVICETYPE_DEV_INVALID;
-  return enter.object()->GetType();
-}
-
-struct PP_Var GetName(PP_Resource device_ref) {
-  VLOG(4) << "PPB_DeviceRef_Dev::GetName()";
-  EnterResource<PPB_DeviceRef_API> enter(device_ref, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetName();
-}
-
-const PPB_DeviceRef_Dev_0_1 g_ppb_deviceref_dev_thunk_0_1 = {
-    &IsDeviceRef, &GetType, &GetName};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_DeviceRef_Dev_0_1*
-GetPPB_DeviceRef_Dev_0_1_Thunk() {
-  return &g_ppb_deviceref_dev_thunk_0_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_display_color_profile_private_thunk.cc b/thunk/ppb_display_color_profile_private_thunk.cc
deleted file mode 100644
index 12f2725..0000000
--- a/thunk/ppb_display_color_profile_private_thunk.cc
+++ /dev/null
@@ -1,75 +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.
-
-// From private/ppb_display_color_profile_private.idl modified Wed Jan 27
-// 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/private/ppb_display_color_profile_private.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_display_color_profile_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_DisplayColorProfile_Private::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateDisplayColorProfilePrivate(instance);
-}
-
-PP_Bool IsDisplayColorProfile(PP_Resource resource) {
-  VLOG(4) << "PPB_DisplayColorProfile_Private::IsDisplayColorProfile()";
-  EnterResource<PPB_DisplayColorProfile_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t GetColorProfile(PP_Resource display_color_profile_res,
-                        struct PP_ArrayOutput color_profile,
-                        struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_DisplayColorProfile_Private::GetColorProfile()";
-  EnterResource<PPB_DisplayColorProfile_API> enter(display_color_profile_res,
-                                                   callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->GetColorProfile(color_profile, enter.callback()));
-}
-
-int32_t RegisterColorProfileChangeCallback(
-    PP_Resource display_color_profile_res,
-    struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_DisplayColorProfile_Private::"
-             "RegisterColorProfileChangeCallback()";
-  EnterResource<PPB_DisplayColorProfile_API> enter(display_color_profile_res,
-                                                   callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->RegisterColorProfileChangeCallback(enter.callback()));
-}
-
-const PPB_DisplayColorProfile_Private_0_1
-    g_ppb_displaycolorprofile_private_thunk_0_1 = {
-        &Create, &IsDisplayColorProfile, &GetColorProfile,
-        &RegisterColorProfileChangeCallback};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_DisplayColorProfile_Private_0_1*
-GetPPB_DisplayColorProfile_Private_0_1_Thunk() {
-  return &g_ppb_displaycolorprofile_private_thunk_0_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_ext_crx_file_system_private_thunk.cc b/thunk/ppb_ext_crx_file_system_private_thunk.cc
deleted file mode 100644
index 12bc3f4..0000000
--- a/thunk/ppb_ext_crx_file_system_private_thunk.cc
+++ /dev/null
@@ -1,51 +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.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/private/ppb_ext_crx_file_system_private.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/ppb_isolated_file_system_private_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-int32_t Open(PP_Instance instance,
-             PP_Resource* file_system,
-             struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_Ext_CrxFileSystem_Private::Open()";
-  EnterInstanceAPI<PPB_IsolatedFileSystem_Private_API> enter(instance,
-                                                             callback);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.functions()->Open(
-      instance,
-      PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_CRX,
-      file_system,
-      enter.callback()));
-}
-
-const PPB_Ext_CrxFileSystem_Private_0_1
-    g_ppb_ext_crxfilesystem_private_thunk_0_1 = {
-  &Open
-};
-
-}  // namespace
-
-const PPB_Ext_CrxFileSystem_Private_0_1*
-    GetPPB_Ext_CrxFileSystem_Private_0_1_Thunk() {
-  return &g_ppb_ext_crxfilesystem_private_thunk_0_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_file_chooser_api.h b/thunk/ppb_file_chooser_api.h
deleted file mode 100644
index 093e3f8..0000000
--- a/thunk/ppb_file_chooser_api.h
+++ /dev/null
@@ -1,47 +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_THUNK_PPB_FILE_CHOOSER_API_H_
-#define PPAPI_THUNK_PPB_FILE_CHOOSER_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/dev/ppb_file_chooser_dev.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPB_FileChooser_API {
- public:
-  virtual ~PPB_FileChooser_API() {}
-
-  virtual int32_t Show(const PP_ArrayOutput& output,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-
-  // Trusted API.
-  virtual int32_t ShowWithoutUserGesture(
-      PP_Bool save_as,
-      PP_Var suggested_file_name,
-      const PP_ArrayOutput& output,
-      scoped_refptr<TrackedCallback> callback) = 0;
-
-  // Version 0.5 API.
-  virtual int32_t Show0_5(scoped_refptr<TrackedCallback> callback) = 0;
-  virtual PP_Resource GetNextChosenFile() = 0;
-
-  // Trusted version 0.5 API.
-  virtual int32_t ShowWithoutUserGesture0_5(
-      PP_Bool save_as,
-      PP_Var suggested_file_name,
-      scoped_refptr<TrackedCallback> callback) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_FILE_CHOOSER_API_H_
diff --git a/thunk/ppb_file_chooser_dev_thunk.cc b/thunk/ppb_file_chooser_dev_thunk.cc
deleted file mode 100644
index 1ea2496..0000000
--- a/thunk/ppb_file_chooser_dev_thunk.cc
+++ /dev/null
@@ -1,84 +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.
-
-// From dev/ppb_file_chooser_dev.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/dev/ppb_file_chooser_dev.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_file_chooser_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance,
-                   PP_FileChooserMode_Dev mode,
-                   struct PP_Var accept_types) {
-  VLOG(4) << "PPB_FileChooser_Dev::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateFileChooser(instance, mode, accept_types);
-}
-
-PP_Bool IsFileChooser(PP_Resource resource) {
-  VLOG(4) << "PPB_FileChooser_Dev::IsFileChooser()";
-  EnterResource<PPB_FileChooser_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Show_0_5(PP_Resource chooser, struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileChooser_Dev::Show_0_5()";
-  EnterResource<PPB_FileChooser_API> enter(chooser, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Show0_5(enter.callback()));
-}
-
-PP_Resource GetNextChosenFile(PP_Resource chooser) {
-  VLOG(4) << "PPB_FileChooser_Dev::GetNextChosenFile()";
-  EnterResource<PPB_FileChooser_API> enter(chooser, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetNextChosenFile();
-}
-
-int32_t Show(PP_Resource chooser,
-             struct PP_ArrayOutput output,
-             struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileChooser_Dev::Show()";
-  EnterResource<PPB_FileChooser_API> enter(chooser, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Show(output, enter.callback()));
-}
-
-const PPB_FileChooser_Dev_0_5 g_ppb_filechooser_dev_thunk_0_5 = {
-    &Create, &IsFileChooser, &Show_0_5, &GetNextChosenFile};
-
-const PPB_FileChooser_Dev_0_6 g_ppb_filechooser_dev_thunk_0_6 = {
-    &Create, &IsFileChooser, &Show};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_FileChooser_Dev_0_5*
-GetPPB_FileChooser_Dev_0_5_Thunk() {
-  return &g_ppb_filechooser_dev_thunk_0_5;
-}
-
-PPAPI_THUNK_EXPORT const PPB_FileChooser_Dev_0_6*
-GetPPB_FileChooser_Dev_0_6_Thunk() {
-  return &g_ppb_filechooser_dev_thunk_0_6;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_file_chooser_trusted_thunk.cc b/thunk/ppb_file_chooser_trusted_thunk.cc
deleted file mode 100644
index 61bc884..0000000
--- a/thunk/ppb_file_chooser_trusted_thunk.cc
+++ /dev/null
@@ -1,67 +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.
-
-// From trusted/ppb_file_chooser_trusted.idl modified Fri Feb  7 08:29:41 2014.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/trusted/ppb_file_chooser_trusted.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_file_chooser_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-int32_t ShowWithoutUserGesture_0_5(PP_Resource chooser,
-                                   PP_Bool save_as,
-                                   struct PP_Var suggested_file_name,
-                                   struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileChooserTrusted::ShowWithoutUserGesture_0_5()";
-  EnterResource<PPB_FileChooser_API> enter(chooser, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->ShowWithoutUserGesture0_5(
-      save_as, suggested_file_name, enter.callback()));
-}
-
-int32_t ShowWithoutUserGesture(PP_Resource chooser,
-                               PP_Bool save_as,
-                               struct PP_Var suggested_file_name,
-                               struct PP_ArrayOutput output,
-                               struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileChooserTrusted::ShowWithoutUserGesture()";
-  EnterResource<PPB_FileChooser_API> enter(chooser, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->ShowWithoutUserGesture(
-      save_as, suggested_file_name, output, enter.callback()));
-}
-
-const PPB_FileChooserTrusted_0_5 g_ppb_filechoosertrusted_thunk_0_5 = {
-    &ShowWithoutUserGesture_0_5};
-
-const PPB_FileChooserTrusted_0_6 g_ppb_filechoosertrusted_thunk_0_6 = {
-    &ShowWithoutUserGesture};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_FileChooserTrusted_0_5*
-GetPPB_FileChooserTrusted_0_5_Thunk() {
-  return &g_ppb_filechoosertrusted_thunk_0_5;
-}
-
-PPAPI_THUNK_EXPORT const PPB_FileChooserTrusted_0_6*
-GetPPB_FileChooserTrusted_0_6_Thunk() {
-  return &g_ppb_filechoosertrusted_thunk_0_6;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_file_io_api.h b/thunk/ppb_file_io_api.h
deleted file mode 100644
index 1948473..0000000
--- a/thunk/ppb_file_io_api.h
+++ /dev/null
@@ -1,63 +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_THUNK_PPB_FILE_IO_API_H_
-#define PPAPI_THUNK_PPB_FILE_IO_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/ppb_file_io.h"
-#include "ppapi/c/private/pp_file_handle.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_FileIO_API {
- public:
-  virtual ~PPB_FileIO_API() {}
-
-  virtual int32_t Open(PP_Resource file_ref,
-                       int32_t open_flags,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Query(PP_FileInfo* info,
-                        scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Touch(PP_Time last_access_time,
-                        PP_Time last_modified_time,
-                        scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Read(int64_t offset,
-                       char* buffer,
-                       int32_t bytes_to_read,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t ReadToArray(int64_t offset,
-                              int32_t max_read_length,
-                              PP_ArrayOutput* buffer,
-                              scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Write(int64_t offset,
-                        const char* buffer,
-                        int32_t bytes_to_write,
-                        scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t SetLength(int64_t length,
-                            scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int64_t GetMaxWrittenOffset() const = 0;
-  virtual int64_t GetAppendModeWriteAmount() const = 0;
-  virtual void SetMaxWrittenOffset(int64_t max_written_offset) = 0;
-  virtual void SetAppendModeWriteAmount(int64_t append_mode_write_amount) = 0;
-  virtual int32_t Flush(scoped_refptr<TrackedCallback> callback) = 0;
-  virtual void Close() = 0;
-
-  // Private API.
-  virtual int32_t RequestOSFileHandle(
-      PP_FileHandle* handle,
-      scoped_refptr<TrackedCallback> callback) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_FILE_IO_API_H_
diff --git a/thunk/ppb_file_io_private_thunk.cc b/thunk/ppb_file_io_private_thunk.cc
deleted file mode 100644
index 5c42e58..0000000
--- a/thunk/ppb_file_io_private_thunk.cc
+++ /dev/null
@@ -1,46 +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.
-
-// From private/ppb_file_io_private.idl modified Tue Mar 26 15:29:46 2013.
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/private/ppb_file_io_private.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_file_io_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-int32_t RequestOSFileHandle(PP_Resource file_io,
-                            PP_FileHandle* handle,
-                            struct PP_CompletionCallback callback) {
-  EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->RequestOSFileHandle(
-      handle,
-      enter.callback()));
-}
-
-const PPB_FileIO_Private_0_1 g_ppb_fileio_private_thunk_0_1 = {
-  &RequestOSFileHandle
-};
-
-}  // namespace
-
-const PPB_FileIO_Private_0_1* GetPPB_FileIO_Private_0_1_Thunk() {
-  return &g_ppb_fileio_private_thunk_0_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_file_io_thunk.cc b/thunk/ppb_file_io_thunk.cc
deleted file mode 100644
index 08c508b..0000000
--- a/thunk/ppb_file_io_thunk.cc
+++ /dev/null
@@ -1,155 +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.
-
-// From ppb_file_io.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_file_io.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_file_io_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_FileIO::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateFileIO(instance);
-}
-
-PP_Bool IsFileIO(PP_Resource resource) {
-  VLOG(4) << "PPB_FileIO::IsFileIO()";
-  EnterResource<PPB_FileIO_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Open(PP_Resource file_io,
-             PP_Resource file_ref,
-             int32_t open_flags,
-             struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileIO::Open()";
-  EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->Open(file_ref, open_flags, enter.callback()));
-}
-
-int32_t Query(PP_Resource file_io,
-              struct PP_FileInfo* info,
-              struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileIO::Query()";
-  EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Query(info, enter.callback()));
-}
-
-int32_t Touch(PP_Resource file_io,
-              PP_Time last_access_time,
-              PP_Time last_modified_time,
-              struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileIO::Touch()";
-  EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Touch(
-      last_access_time, last_modified_time, enter.callback()));
-}
-
-int32_t Read(PP_Resource file_io,
-             int64_t offset,
-             char* buffer,
-             int32_t bytes_to_read,
-             struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileIO::Read()";
-  EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->Read(offset, buffer, bytes_to_read, enter.callback()));
-}
-
-int32_t Write(PP_Resource file_io,
-              int64_t offset,
-              const char* buffer,
-              int32_t bytes_to_write,
-              struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileIO::Write()";
-  EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->Write(offset, buffer, bytes_to_write, enter.callback()));
-}
-
-int32_t SetLength(PP_Resource file_io,
-                  int64_t length,
-                  struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileIO::SetLength()";
-  EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->SetLength(length, enter.callback()));
-}
-
-int32_t Flush(PP_Resource file_io, struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileIO::Flush()";
-  EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Flush(enter.callback()));
-}
-
-void Close(PP_Resource file_io) {
-  VLOG(4) << "PPB_FileIO::Close()";
-  EnterResource<PPB_FileIO_API> enter(file_io, true);
-  if (enter.failed())
-    return;
-  enter.object()->Close();
-}
-
-int32_t ReadToArray(PP_Resource file_io,
-                    int64_t offset,
-                    int32_t max_read_length,
-                    struct PP_ArrayOutput* output,
-                    struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileIO::ReadToArray()";
-  EnterResource<PPB_FileIO_API> enter(file_io, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->ReadToArray(offset, max_read_length,
-                                                     output, enter.callback()));
-}
-
-const PPB_FileIO_1_0 g_ppb_fileio_thunk_1_0 = {
-    &Create, &IsFileIO, &Open,      &Query, &Touch,
-    &Read,   &Write,    &SetLength, &Flush, &Close};
-
-const PPB_FileIO_1_1 g_ppb_fileio_thunk_1_1 = {
-    &Create, &IsFileIO,  &Open,  &Query, &Touch,      &Read,
-    &Write,  &SetLength, &Flush, &Close, &ReadToArray};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_FileIO_1_0* GetPPB_FileIO_1_0_Thunk() {
-  return &g_ppb_fileio_thunk_1_0;
-}
-
-PPAPI_THUNK_EXPORT const PPB_FileIO_1_1* GetPPB_FileIO_1_1_Thunk() {
-  return &g_ppb_fileio_thunk_1_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_file_ref_api.h b/thunk/ppb_file_ref_api.h
deleted file mode 100644
index f57c391..0000000
--- a/thunk/ppb_file_ref_api.h
+++ /dev/null
@@ -1,55 +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_THUNK_PPB_FILE_REF_API_H_
-#define PPAPI_THUNK_PPB_FILE_REF_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/ppb_file_ref.h"
-#include "ppapi/shared_impl/file_ref_create_info.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-struct FileRefCreateInfo;
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_FileRef_API {
- public:
-  virtual ~PPB_FileRef_API() {}
-
-  virtual PP_FileSystemType GetFileSystemType() const = 0;
-  virtual PP_Var GetName() const = 0;
-  virtual PP_Var GetPath() const = 0;
-  virtual PP_Resource GetParent() = 0;
-  virtual int32_t MakeDirectory(int32_t make_directory_flags,
-                                scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Touch(PP_Time last_access_time,
-                        PP_Time last_modified_time,
-                        scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Delete(scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Rename(PP_Resource new_file_ref,
-                         scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Query(PP_FileInfo* info,
-                        scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t ReadDirectoryEntries(
-      const PP_ArrayOutput& output,
-      scoped_refptr<TrackedCallback> callback) = 0;
-
-  // Internal function for use in proxying. Returns the internal CreateInfo
-  // (the contained resource does not carry a ref on behalf of the caller).
-  virtual const FileRefCreateInfo& GetCreateInfo() const = 0;
-
-  // Private API
-  virtual PP_Var GetAbsolutePath() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_FILE_REF_API_H_
diff --git a/thunk/ppb_file_ref_thunk.cc b/thunk/ppb_file_ref_thunk.cc
deleted file mode 100644
index e435628..0000000
--- a/thunk/ppb_file_ref_thunk.cc
+++ /dev/null
@@ -1,237 +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 "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/pp_file_info.h"
-#include "ppapi/c/ppb_file_ref.h"
-#include "ppapi/c/private/ppb_file_ref_private.h"
-#include "ppapi/shared_impl/file_ref_create_info.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_file_ref_api.h"
-#include "ppapi/thunk/ppb_file_system_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-typedef EnterResource<PPB_FileRef_API> EnterFileRef;
-
-PP_Resource Create(PP_Resource file_system, const char* path) {
-  VLOG(4) << "PPB_FileRef::Create()";
-  ppapi::ProxyAutoLock lock;
-  EnterResourceNoLock<PPB_FileSystem_API> enter_file_system(file_system, true);
-  if (enter_file_system.failed())
-    return 0;
-  PP_Instance instance = enter_file_system.resource()->pp_instance();
-  EnterResourceCreationNoLock enter(instance);
-  if (enter.failed())
-    return 0;
-  FileRefCreateInfo info;
-  info.file_system_type = enter_file_system.object()->GetType();
-  info.internal_path = std::string(path);
-  info.browser_pending_host_resource_id = 0;
-  info.renderer_pending_host_resource_id = 0;
-  info.file_system_plugin_resource = file_system;
-  return enter.functions()->CreateFileRef(instance, info);
-}
-
-PP_Bool IsFileRef(PP_Resource resource) {
-  VLOG(4) << "PPB_FileRef::IsFileRef()";
-  EnterFileRef enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-PP_FileSystemType GetFileSystemType(PP_Resource file_ref) {
-  VLOG(4) << "PPB_FileRef::GetFileSystemType()";
-  EnterFileRef enter(file_ref, true);
-  if (enter.failed())
-    return PP_FILESYSTEMTYPE_INVALID;
-  return enter.object()->GetFileSystemType();
-}
-
-PP_Var GetName(PP_Resource file_ref) {
-  VLOG(4) << "PPB_FileRef::GetName()";
-  EnterFileRef enter(file_ref, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetName();
-}
-
-PP_Var GetPath(PP_Resource file_ref) {
-  VLOG(4) << "PPB_FileRef::GetPath()";
-  EnterFileRef enter(file_ref, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetPath();
-}
-
-PP_Resource GetParent(PP_Resource file_ref) {
-  VLOG(4) << "PPB_FileRef::GetParent()";
-  EnterFileRef enter(file_ref, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetParent();
-}
-
-int32_t MakeDirectory(PP_Resource directory_ref,
-                      PP_Bool make_ancestors,
-                      PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileRef::MakeDirectory()";
-  EnterFileRef enter(directory_ref, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  int32_t flag = make_ancestors ? PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS
-                                : PP_MAKEDIRECTORYFLAG_NONE;
-  return enter.SetResult(enter.object()->MakeDirectory(
-      flag, enter.callback()));
-}
-
-int32_t MakeDirectory_1_2(PP_Resource directory_ref,
-                          int32_t make_directory_flags,
-                          PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileRef::MakeDirectory()";
-  EnterFileRef enter(directory_ref, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->MakeDirectory(
-      make_directory_flags, enter.callback()));
-}
-
-int32_t Touch(PP_Resource file_ref,
-              PP_Time last_access_time,
-              PP_Time last_modified_time,
-              PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileRef::Touch()";
-  EnterFileRef enter(file_ref, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Touch(
-      last_access_time, last_modified_time, enter.callback()));
-}
-
-int32_t Delete(PP_Resource file_ref,
-               PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileRef::Delete()";
-  EnterFileRef enter(file_ref, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Delete(enter.callback()));
-}
-
-int32_t Rename(PP_Resource file_ref,
-               PP_Resource new_file_ref,
-               PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileRef::Rename()";
-  EnterFileRef enter(file_ref, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Rename(new_file_ref,
-                                                enter.callback()));
-}
-
-int32_t Query(PP_Resource file_ref,
-              PP_FileInfo* info,
-              PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileRef::Query()";
-  EnterFileRef enter(file_ref, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Query(info,
-                                               enter.callback()));
-}
-
-int32_t ReadDirectoryEntries(PP_Resource file_ref,
-                             PP_ArrayOutput output,
-                             PP_CompletionCallback callback) {
-  EnterFileRef enter(file_ref, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->ReadDirectoryEntries(
-      output, enter.callback()));
-}
-
-PP_Var GetAbsolutePath(PP_Resource file_ref) {
-  VLOG(4) << "PPB_FileRef::GetAbsolutePath";
-  EnterFileRef enter(file_ref, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetAbsolutePath();
-}
-
-const PPB_FileRef_1_0 g_ppb_file_ref_thunk_1_0 = {
-  &Create,
-  &IsFileRef,
-  &GetFileSystemType,
-  &GetName,
-  &GetPath,
-  &GetParent,
-  &MakeDirectory,
-  &Touch,
-  &Delete,
-  &Rename
-};
-
-const PPB_FileRef_1_1 g_ppb_file_ref_thunk_1_1 = {
-  &Create,
-  &IsFileRef,
-  &GetFileSystemType,
-  &GetName,
-  &GetPath,
-  &GetParent,
-  &MakeDirectory,
-  &Touch,
-  &Delete,
-  &Rename,
-  &Query,
-  &ReadDirectoryEntries
-};
-
-const PPB_FileRef_1_2 g_ppb_file_ref_thunk_1_2 = {
-  &Create,
-  &IsFileRef,
-  &GetFileSystemType,
-  &GetName,
-  &GetPath,
-  &GetParent,
-  &MakeDirectory_1_2,
-  &Touch,
-  &Delete,
-  &Rename,
-  &Query,
-  &ReadDirectoryEntries
-};
-
-const PPB_FileRefPrivate g_ppb_file_ref_private_thunk = {
-  &GetAbsolutePath
-};
-
-}  // namespace
-
-const PPB_FileRef_1_0* GetPPB_FileRef_1_0_Thunk() {
-  return &g_ppb_file_ref_thunk_1_0;
-}
-
-const PPB_FileRef_1_1* GetPPB_FileRef_1_1_Thunk() {
-  return &g_ppb_file_ref_thunk_1_1;
-}
-
-const PPB_FileRef_1_2* GetPPB_FileRef_1_2_Thunk() {
-  return &g_ppb_file_ref_thunk_1_2;
-}
-
-const PPB_FileRefPrivate_0_1* GetPPB_FileRefPrivate_0_1_Thunk() {
-  return &g_ppb_file_ref_private_thunk;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_file_system_api.h b/thunk/ppb_file_system_api.h
deleted file mode 100644
index 11b00b8..0000000
--- a/thunk/ppb_file_system_api.h
+++ /dev/null
@@ -1,37 +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_THUNK_PPB_FILE_SYSTEM_API_H_
-#define PPAPI_THUNK_PPB_FILE_SYSTEM_API_H_
-
-#include <stdint.h>
-
-#include "base/functional/callback_forward.h"
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/ppb_file_system.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPB_FileSystem_API {
- public:
-  virtual ~PPB_FileSystem_API() {}
-
-  virtual int32_t Open(int64_t expected_size,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-  virtual PP_FileSystemType GetType() = 0;
-  virtual void OpenQuotaFile(PP_Resource file_io) = 0;
-  virtual void CloseQuotaFile(PP_Resource file_io) = 0;
-  typedef base::OnceCallback<void(int64_t)> RequestQuotaCallback;
-  virtual int64_t RequestQuota(int64_t amount,
-                               RequestQuotaCallback callback) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_FILE_SYSTEM_API_H_
diff --git a/thunk/ppb_file_system_thunk.cc b/thunk/ppb_file_system_thunk.cc
deleted file mode 100644
index 5a442dd..0000000
--- a/thunk/ppb_file_system_thunk.cc
+++ /dev/null
@@ -1,65 +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.
-
-// From ppb_file_system.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_file_system.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_file_system_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance, PP_FileSystemType type) {
-  VLOG(4) << "PPB_FileSystem::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateFileSystem(instance, type);
-}
-
-PP_Bool IsFileSystem(PP_Resource resource) {
-  VLOG(4) << "PPB_FileSystem::IsFileSystem()";
-  EnterResource<PPB_FileSystem_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Open(PP_Resource file_system,
-             int64_t expected_size,
-             struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_FileSystem::Open()";
-  EnterResource<PPB_FileSystem_API> enter(file_system, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Open(expected_size, enter.callback()));
-}
-
-PP_FileSystemType GetType(PP_Resource file_system) {
-  VLOG(4) << "PPB_FileSystem::GetType()";
-  EnterResource<PPB_FileSystem_API> enter(file_system, true);
-  if (enter.failed())
-    return PP_FILESYSTEMTYPE_INVALID;
-  return enter.object()->GetType();
-}
-
-const PPB_FileSystem_1_0 g_ppb_filesystem_thunk_1_0 = {&Create, &IsFileSystem,
-                                                       &Open, &GetType};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_FileSystem_1_0* GetPPB_FileSystem_1_0_Thunk() {
-  return &g_ppb_filesystem_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_fullscreen_thunk.cc b/thunk/ppb_fullscreen_thunk.cc
deleted file mode 100644
index 277eac8..0000000
--- a/thunk/ppb_fullscreen_thunk.cc
+++ /dev/null
@@ -1,55 +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.
-
-// From ppb_fullscreen.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_fullscreen.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Bool IsFullscreen(PP_Instance instance) {
-  VLOG(4) << "PPB_Fullscreen::IsFullscreen()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.functions()->IsFullscreen(instance);
-}
-
-PP_Bool SetFullscreen(PP_Instance instance, PP_Bool fullscreen) {
-  VLOG(4) << "PPB_Fullscreen::SetFullscreen()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.functions()->SetFullscreen(instance, fullscreen);
-}
-
-PP_Bool GetScreenSize(PP_Instance instance, struct PP_Size* size) {
-  VLOG(4) << "PPB_Fullscreen::GetScreenSize()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.functions()->GetScreenSize(instance, size);
-}
-
-const PPB_Fullscreen_1_0 g_ppb_fullscreen_thunk_1_0 = {
-    &IsFullscreen, &SetFullscreen, &GetScreenSize};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_Fullscreen_1_0* GetPPB_Fullscreen_1_0_Thunk() {
-  return &g_ppb_fullscreen_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_gamepad_api.h b/thunk/ppb_gamepad_api.h
deleted file mode 100644
index e2b4621..0000000
--- a/thunk/ppb_gamepad_api.h
+++ /dev/null
@@ -1,29 +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_THUNK_PPB_GAMEPAD_API_H_
-#define PPAPI_THUNK_PPB_GAMEPAD_API_H_
-
-#include "ppapi/shared_impl/singleton_resource_id.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-struct PP_GamepadsSampleData;
-
-namespace ppapi {
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_Gamepad_API {
- public:
-  virtual ~PPB_Gamepad_API() {}
-
-  virtual void Sample(PP_Instance instance,
-                      PP_GamepadsSampleData* data) = 0;
-
-  static const SingletonResourceID kSingletonResourceID = GAMEPAD_SINGLETON_ID;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_GAMEPAD_API_H_
diff --git a/thunk/ppb_gamepad_thunk.cc b/thunk/ppb_gamepad_thunk.cc
deleted file mode 100644
index bd7a282..0000000
--- a/thunk/ppb_gamepad_thunk.cc
+++ /dev/null
@@ -1,42 +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.
-
-// From ppb_gamepad.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-#include <string.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_gamepad.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_gamepad_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-void Sample(PP_Instance instance, struct PP_GamepadsSampleData* data) {
-  VLOG(4) << "PPB_Gamepad::Sample()";
-  EnterInstanceAPI<PPB_Gamepad_API> enter(instance);
-  if (enter.failed()) {
-    memset(data, 0, sizeof(*data));
-    return;
-  }
-  enter.functions()->Sample(instance, data);
-}
-
-const PPB_Gamepad_1_0 g_ppb_gamepad_thunk_1_0 = {&Sample};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_Gamepad_1_0* GetPPB_Gamepad_1_0_Thunk() {
-  return &g_ppb_gamepad_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_gles_chromium_texture_mapping_thunk.cc b/thunk/ppb_gles_chromium_texture_mapping_thunk.cc
deleted file mode 100644
index 3b5d2e5..0000000
--- a/thunk/ppb_gles_chromium_texture_mapping_thunk.cc
+++ /dev/null
@@ -1,55 +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/thunk/thunk.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_graphics_3d_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-typedef EnterResource<PPB_Graphics3D_API> EnterGraphics3D;
-
-void* MapTexSubImage2DCHROMIUM(PP_Resource context,
-                               GLenum target,
-                               GLint level,
-                               GLint xoffset,
-                               GLint yoffset,
-                               GLsizei width,
-                               GLsizei height,
-                               GLenum format,
-                               GLenum type,
-                               GLenum access) {
-  EnterGraphics3D enter(context, true);
-  if (enter.succeeded()) {
-    return enter.object()->MapTexSubImage2DCHROMIUM(
-        target, level, xoffset, yoffset, width, height, format, type, access);
-  }
-  return NULL;
-}
-
-void UnmapTexSubImage2DCHROMIUM(PP_Resource context, const void* mem) {
-  EnterGraphics3D enter(context, true);
-  if (enter.succeeded())
-    enter.object()->UnmapTexSubImage2DCHROMIUM(mem);
-}
-
-const PPB_GLESChromiumTextureMapping_Dev
-g_ppb_gles_chromium_texture_mapping_thunk = {
-  &MapTexSubImage2DCHROMIUM,
-  &UnmapTexSubImage2DCHROMIUM
-};
-
-}  // namespace
-
-const PPB_GLESChromiumTextureMapping_Dev_0_1*
-GetPPB_GLESChromiumTextureMapping_Dev_0_1_Thunk() {
-  return &g_ppb_gles_chromium_texture_mapping_thunk;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_graphics_2d_api.h b/thunk/ppb_graphics_2d_api.h
deleted file mode 100644
index d894b99..0000000
--- a/thunk/ppb_graphics_2d_api.h
+++ /dev/null
@@ -1,50 +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_THUNK_PPB_GRAPHICS_2D_API_H_
-#define PPAPI_THUNK_PPB_GRAPHICS_2D_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_point.h"
-#include "ppapi/c/pp_rect.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_Graphics2D_API {
- public:
-  virtual ~PPB_Graphics2D_API() {}
-
-  virtual PP_Bool Describe(PP_Size* size, PP_Bool* is_always_opaque) = 0;
-  virtual void PaintImageData(PP_Resource image_data,
-                              const PP_Point* top_left,
-                              const PP_Rect* src_rect) = 0;
-  virtual void Scroll(const PP_Rect* clip_rect,
-                      const PP_Point* amount) = 0;
-  virtual void ReplaceContents(PP_Resource image_data) = 0;
-  virtual int32_t Flush(scoped_refptr<TrackedCallback> callback) = 0;
-  virtual PP_Bool SetScale(float scale) = 0;
-  virtual float GetScale() = 0;
-  virtual PP_Bool SetLayerTransform(float scale,
-                                    const PP_Point* origin,
-                                    const PP_Point* translate) = 0;
-
-  // Test only
-  virtual bool ReadImageData(PP_Resource image, const PP_Point* top_left) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_GRAPHICS_2D_API_H_
diff --git a/thunk/ppb_graphics_2d_thunk.cc b/thunk/ppb_graphics_2d_thunk.cc
deleted file mode 100644
index e67cd11..0000000
--- a/thunk/ppb_graphics_2d_thunk.cc
+++ /dev/null
@@ -1,145 +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.
-
-// From ppb_graphics_2d.idl modified Fri Apr 15 15:37:20 2016.
-
-#include <stdint.h>
-#include <string.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_graphics_2d.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_graphics_2d_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance,
-                   const struct PP_Size* size,
-                   PP_Bool is_always_opaque) {
-  VLOG(4) << "PPB_Graphics2D::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateGraphics2D(instance, size, is_always_opaque);
-}
-
-PP_Bool IsGraphics2D(PP_Resource resource) {
-  VLOG(4) << "PPB_Graphics2D::IsGraphics2D()";
-  EnterResource<PPB_Graphics2D_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-PP_Bool Describe(PP_Resource graphics_2d,
-                 struct PP_Size* size,
-                 PP_Bool* is_always_opaque) {
-  VLOG(4) << "PPB_Graphics2D::Describe()";
-  EnterResource<PPB_Graphics2D_API> enter(graphics_2d, true);
-  if (enter.failed()) {
-    memset(size, 0, sizeof(*size));
-    memset(is_always_opaque, 0, sizeof(*is_always_opaque));
-    return PP_FALSE;
-  }
-  return enter.object()->Describe(size, is_always_opaque);
-}
-
-void PaintImageData(PP_Resource graphics_2d,
-                    PP_Resource image_data,
-                    const struct PP_Point* top_left,
-                    const struct PP_Rect* src_rect) {
-  VLOG(4) << "PPB_Graphics2D::PaintImageData()";
-  EnterResource<PPB_Graphics2D_API> enter(graphics_2d, true);
-  if (enter.failed())
-    return;
-  enter.object()->PaintImageData(image_data, top_left, src_rect);
-}
-
-void Scroll(PP_Resource graphics_2d,
-            const struct PP_Rect* clip_rect,
-            const struct PP_Point* amount) {
-  VLOG(4) << "PPB_Graphics2D::Scroll()";
-  EnterResource<PPB_Graphics2D_API> enter(graphics_2d, true);
-  if (enter.failed())
-    return;
-  enter.object()->Scroll(clip_rect, amount);
-}
-
-void ReplaceContents(PP_Resource graphics_2d, PP_Resource image_data) {
-  VLOG(4) << "PPB_Graphics2D::ReplaceContents()";
-  EnterResource<PPB_Graphics2D_API> enter(graphics_2d, true);
-  if (enter.failed())
-    return;
-  enter.object()->ReplaceContents(image_data);
-}
-
-int32_t Flush(PP_Resource graphics_2d, struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_Graphics2D::Flush()";
-  EnterResource<PPB_Graphics2D_API> enter(graphics_2d, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Flush(enter.callback()));
-}
-
-PP_Bool SetScale(PP_Resource resource, float scale) {
-  VLOG(4) << "PPB_Graphics2D::SetScale()";
-  EnterResource<PPB_Graphics2D_API> enter(resource, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->SetScale(scale);
-}
-
-float GetScale(PP_Resource resource) {
-  VLOG(4) << "PPB_Graphics2D::GetScale()";
-  EnterResource<PPB_Graphics2D_API> enter(resource, true);
-  if (enter.failed())
-    return 0.0f;
-  return enter.object()->GetScale();
-}
-
-PP_Bool SetLayerTransform(PP_Resource resource,
-                          float scale,
-                          const struct PP_Point* origin,
-                          const struct PP_Point* translate) {
-  VLOG(4) << "PPB_Graphics2D::SetLayerTransform()";
-  EnterResource<PPB_Graphics2D_API> enter(resource, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->SetLayerTransform(scale, origin, translate);
-}
-
-const PPB_Graphics2D_1_0 g_ppb_graphics2d_thunk_1_0 = {
-    &Create, &IsGraphics2D,    &Describe, &PaintImageData,
-    &Scroll, &ReplaceContents, &Flush};
-
-const PPB_Graphics2D_1_1 g_ppb_graphics2d_thunk_1_1 = {
-    &Create,          &IsGraphics2D, &Describe, &PaintImageData, &Scroll,
-    &ReplaceContents, &Flush,        &SetScale, &GetScale};
-
-const PPB_Graphics2D_1_2 g_ppb_graphics2d_thunk_1_2 = {
-    &Create,   &IsGraphics2D,     &Describe, &PaintImageData,
-    &Scroll,   &ReplaceContents,  &Flush,    &SetScale,
-    &GetScale, &SetLayerTransform};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_Graphics2D_1_0* GetPPB_Graphics2D_1_0_Thunk() {
-  return &g_ppb_graphics2d_thunk_1_0;
-}
-
-PPAPI_THUNK_EXPORT const PPB_Graphics2D_1_1* GetPPB_Graphics2D_1_1_Thunk() {
-  return &g_ppb_graphics2d_thunk_1_1;
-}
-
-PPAPI_THUNK_EXPORT const PPB_Graphics2D_1_2* GetPPB_Graphics2D_1_2_Thunk() {
-  return &g_ppb_graphics2d_thunk_1_2;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_graphics_3d_api.h b/thunk/ppb_graphics_3d_api.h
deleted file mode 100644
index cd38b70..0000000
--- a/thunk/ppb_graphics_3d_api.h
+++ /dev/null
@@ -1,78 +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_THUNK_PPB_GRAPHICS_3D_API_H_
-#define PPAPI_THUNK_PPB_GRAPHICS_3D_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "gpu/command_buffer/common/command_buffer.h"
-#include "ppapi/c/dev/ppb_gles_chromium_texture_mapping_dev.h"
-#include "ppapi/c/ppb_graphics_3d.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace gfx {
-class Size;
-}
-
-namespace gpu {
-struct SyncToken;
-}
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_Graphics3D_API {
- public:
-  virtual ~PPB_Graphics3D_API() {}
-
-  // Graphics3D API.
-  virtual int32_t GetAttribs(int32_t attrib_list[]) = 0;
-  virtual int32_t SetAttribs(const int32_t attrib_list[]) = 0;
-  virtual int32_t GetError() = 0;
-  virtual int32_t ResizeBuffers(int32_t width, int32_t height) = 0;
-  virtual int32_t SwapBuffers(scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t SwapBuffersWithSyncToken(
-      scoped_refptr<TrackedCallback> callback,
-      const gpu::SyncToken& sync_token,
-      const gfx::Size& size) = 0;
-  virtual int32_t GetAttribMaxValue(int32_t attribute, int32_t* value) = 0;
-
-  // Graphics3DTrusted API.
-  virtual PP_Bool SetGetBuffer(int32_t shm_id) = 0;
-  virtual scoped_refptr<gpu::Buffer> CreateTransferBuffer(uint32_t size,
-                                                          int32_t* id) = 0;
-  virtual PP_Bool DestroyTransferBuffer(int32_t id) = 0;
-  virtual PP_Bool Flush(int32_t put_offset, uint64_t release_count) = 0;
-  virtual gpu::CommandBuffer::State WaitForTokenInRange(int32_t start,
-                                                        int32_t end) = 0;
-  virtual gpu::CommandBuffer::State WaitForGetOffsetInRange(
-      uint32_t set_get_buffer_count,
-      int32_t start,
-      int32_t end) = 0;
-
-  // GLESChromiumTextureMapping.
-  virtual void* MapTexSubImage2DCHROMIUM(GLenum target,
-                                         GLint level,
-                                         GLint xoffset,
-                                         GLint yoffset,
-                                         GLsizei width,
-                                         GLsizei height,
-                                         GLenum format,
-                                         GLenum type,
-                                         GLenum access) = 0;
-  virtual void UnmapTexSubImage2DCHROMIUM(const void* mem) = 0;
-
-  virtual void EnsureWorkVisible() = 0;
-  virtual void ResolveAndDetachFramebuffer() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_GRAPHICS_3D_API_H_
diff --git a/thunk/ppb_graphics_3d_thunk.cc b/thunk/ppb_graphics_3d_thunk.cc
deleted file mode 100644
index b6eba78..0000000
--- a/thunk/ppb_graphics_3d_thunk.cc
+++ /dev/null
@@ -1,102 +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.
-
-// From ppb_graphics_3d.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_graphics_3d.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_graphics_3d_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-int32_t GetAttribMaxValue(PP_Resource instance,
-                          int32_t attribute,
-                          int32_t* value) {
-  VLOG(4) << "PPB_Graphics3D::GetAttribMaxValue()";
-  EnterResource<PPB_Graphics3D_API> enter(instance, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->GetAttribMaxValue(attribute, value);
-}
-
-PP_Resource Create(PP_Instance instance,
-                   PP_Resource share_context,
-                   const int32_t attrib_list[]) {
-  VLOG(4) << "PPB_Graphics3D::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateGraphics3D(instance, share_context,
-                                             attrib_list);
-}
-
-PP_Bool IsGraphics3D(PP_Resource resource) {
-  VLOG(4) << "PPB_Graphics3D::IsGraphics3D()";
-  EnterResource<PPB_Graphics3D_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t GetAttribs(PP_Resource context, int32_t attrib_list[]) {
-  VLOG(4) << "PPB_Graphics3D::GetAttribs()";
-  EnterResource<PPB_Graphics3D_API> enter(context, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->GetAttribs(attrib_list);
-}
-
-int32_t SetAttribs(PP_Resource context, const int32_t attrib_list[]) {
-  VLOG(4) << "PPB_Graphics3D::SetAttribs()";
-  EnterResource<PPB_Graphics3D_API> enter(context, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->SetAttribs(attrib_list);
-}
-
-int32_t GetError(PP_Resource context) {
-  VLOG(4) << "PPB_Graphics3D::GetError()";
-  EnterResource<PPB_Graphics3D_API> enter(context, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->GetError();
-}
-
-int32_t ResizeBuffers(PP_Resource context, int32_t width, int32_t height) {
-  VLOG(4) << "PPB_Graphics3D::ResizeBuffers()";
-  EnterResource<PPB_Graphics3D_API> enter(context, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->ResizeBuffers(width, height);
-}
-
-int32_t SwapBuffers(PP_Resource context,
-                    struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_Graphics3D::SwapBuffers()";
-  EnterResource<PPB_Graphics3D_API> enter(context, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->SwapBuffers(enter.callback()));
-}
-
-const PPB_Graphics3D_1_0 g_ppb_graphics3d_thunk_1_0 = {
-    &GetAttribMaxValue, &Create,   &IsGraphics3D,  &GetAttribs,
-    &SetAttribs,        &GetError, &ResizeBuffers, &SwapBuffers};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_Graphics3D_1_0* GetPPB_Graphics3D_1_0_Thunk() {
-  return &g_ppb_graphics3d_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_host_resolver_api.h b/thunk/ppb_host_resolver_api.h
deleted file mode 100644
index fe67bd8..0000000
--- a/thunk/ppb_host_resolver_api.h
+++ /dev/null
@@ -1,36 +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.
-
-#ifndef PPAPI_THUNK_PPB_HOST_RESOLVER_API_H_
-#define PPAPI_THUNK_PPB_HOST_RESOLVER_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/ppb_host_resolver.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_HostResolver_API {
- public:
-  virtual ~PPB_HostResolver_API() {}
-
-  virtual int32_t Resolve(const char* host,
-                          uint16_t port,
-                          const PP_HostResolver_Hint* hint,
-                          scoped_refptr<TrackedCallback> callback) = 0;
-  virtual PP_Var GetCanonicalName() = 0;
-  virtual uint32_t GetNetAddressCount() = 0;
-  virtual PP_Resource GetNetAddress(uint32_t index) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_HOST_RESOLVER_API_H_
diff --git a/thunk/ppb_host_resolver_private_api.h b/thunk/ppb_host_resolver_private_api.h
deleted file mode 100644
index aacaa84..0000000
--- a/thunk/ppb_host_resolver_private_api.h
+++ /dev/null
@@ -1,37 +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_THUNK_PPB_HOST_RESOLVER_PRIVATE_API_H_
-#define PPAPI_THUNK_PPB_HOST_RESOLVER_PRIVATE_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/private/ppb_host_resolver_private.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_HostResolver_Private_API {
- public:
-  virtual ~PPB_HostResolver_Private_API() {}
-
-  virtual int32_t Resolve(const char* host,
-                          uint16_t port,
-                          const PP_HostResolver_Private_Hint* hint,
-                          scoped_refptr<TrackedCallback> callback) = 0;
-  virtual PP_Var GetCanonicalName() = 0;
-  virtual uint32_t GetSize() = 0;
-  virtual bool GetNetAddress(uint32_t index,
-                             PP_NetAddress_Private* addr) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_HOST_RESOLVER_PRIVATE_API_H_
diff --git a/thunk/ppb_host_resolver_private_thunk.cc b/thunk/ppb_host_resolver_private_thunk.cc
deleted file mode 100644
index 60d5d8e..0000000
--- a/thunk/ppb_host_resolver_private_thunk.cc
+++ /dev/null
@@ -1,85 +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 "ppapi/c/pp_var.h"
-#include "ppapi/c/private/ppb_host_resolver_private.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_host_resolver_private_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-typedef EnterResource<PPB_HostResolver_Private_API> EnterHostResolver;
-
-PP_Resource Create(PP_Instance instance) {
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateHostResolverPrivate(instance);
-}
-
-PP_Bool IsHostResolver(PP_Resource resource) {
-  EnterHostResolver enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Resolve(PP_Resource host_resolver,
-                const char* host,
-                uint16_t port,
-                const PP_HostResolver_Private_Hint* hint,
-                PP_CompletionCallback callback) {
-  EnterHostResolver enter(host_resolver, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Resolve(host, port, hint,
-                                                 enter.callback()));
-}
-
-PP_Var GetCanonicalName(PP_Resource host_resolver) {
-  EnterHostResolver enter(host_resolver, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetCanonicalName();
-}
-
-uint32_t GetSize(PP_Resource host_resolver) {
-  EnterHostResolver enter(host_resolver, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetSize();
-}
-
-PP_Bool GetNetAddress(PP_Resource host_resolver,
-                      uint32_t index,
-                      PP_NetAddress_Private* addr) {
-  EnterHostResolver enter(host_resolver, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return PP_FromBool(enter.object()->GetNetAddress(index, addr));
-}
-
-const PPB_HostResolver_Private g_ppb_host_resolver_thunk = {
-  &Create,
-  &IsHostResolver,
-  &Resolve,
-  &GetCanonicalName,
-  &GetSize,
-  &GetNetAddress
-};
-
-}  // namespace
-
-const PPB_HostResolver_Private_0_1* GetPPB_HostResolver_Private_0_1_Thunk() {
-  return &g_ppb_host_resolver_thunk;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_host_resolver_thunk.cc b/thunk/ppb_host_resolver_thunk.cc
deleted file mode 100644
index 20941ef..0000000
--- a/thunk/ppb_host_resolver_thunk.cc
+++ /dev/null
@@ -1,85 +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.
-
-// From ppb_host_resolver.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_host_resolver.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_host_resolver_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_HostResolver::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateHostResolver(instance);
-}
-
-PP_Bool IsHostResolver(PP_Resource resource) {
-  VLOG(4) << "PPB_HostResolver::IsHostResolver()";
-  EnterResource<PPB_HostResolver_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Resolve(PP_Resource host_resolver,
-                const char* host,
-                uint16_t port,
-                const struct PP_HostResolver_Hint* hint,
-                struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_HostResolver::Resolve()";
-  EnterResource<PPB_HostResolver_API> enter(host_resolver, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->Resolve(host, port, hint, enter.callback()));
-}
-
-struct PP_Var GetCanonicalName(PP_Resource host_resolver) {
-  VLOG(4) << "PPB_HostResolver::GetCanonicalName()";
-  EnterResource<PPB_HostResolver_API> enter(host_resolver, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetCanonicalName();
-}
-
-uint32_t GetNetAddressCount(PP_Resource host_resolver) {
-  VLOG(4) << "PPB_HostResolver::GetNetAddressCount()";
-  EnterResource<PPB_HostResolver_API> enter(host_resolver, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetNetAddressCount();
-}
-
-PP_Resource GetNetAddress(PP_Resource host_resolver, uint32_t index) {
-  VLOG(4) << "PPB_HostResolver::GetNetAddress()";
-  EnterResource<PPB_HostResolver_API> enter(host_resolver, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetNetAddress(index);
-}
-
-const PPB_HostResolver_1_0 g_ppb_hostresolver_thunk_1_0 = {
-    &Create,           &IsHostResolver,     &Resolve,
-    &GetCanonicalName, &GetNetAddressCount, &GetNetAddress};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_HostResolver_1_0* GetPPB_HostResolver_1_0_Thunk() {
-  return &g_ppb_hostresolver_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_image_data_api.h b/thunk/ppb_image_data_api.h
deleted file mode 100644
index 979c557..0000000
--- a/thunk/ppb_image_data_api.h
+++ /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.
-
-#ifndef PPAPI_THUNK_PPB_IMAGE_DATA_API_H_
-#define PPAPI_THUNK_PPB_IMAGE_DATA_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/ppb_image_data.h"
-
-class SkCanvas;
-
-namespace base {
-class UnsafeSharedMemoryRegion;
-}  // namespace base
-
-namespace ppapi {
-namespace thunk {
-
-class PPB_ImageData_API {
- public:
-  virtual ~PPB_ImageData_API() {}
-
-  virtual PP_Bool Describe(PP_ImageDataDesc* desc) = 0;
-  virtual void* Map() = 0;
-  virtual void Unmap() = 0;
-
-  // Trusted inteface.
-  virtual int32_t GetSharedMemoryRegion(
-      base::UnsafeSharedMemoryRegion** region) = 0;
-
-  // Get the canvas that backs this ImageData, if there is one.
-  // The canvas will be NULL:
-  //   * If the image is not mapped.
-  //   * Within untrusted code (which does not have skia).
-  virtual SkCanvas* GetCanvas() = 0;
-
-  // Signal that this image is a good candidate for reuse. Call this from APIs
-  // that receive ImageData resources of a fixed size and where the plugin will
-  // release its reference to the ImageData. If the current implementation
-  // supports image data reuse (only supported out-of-process) then the
-  // ImageData will be marked and potentially cached for re-use.
-  virtual void SetIsCandidateForReuse() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_IMAGE_DATA_API_H_
diff --git a/thunk/ppb_image_data_thunk.cc b/thunk/ppb_image_data_thunk.cc
deleted file mode 100644
index b352e4f..0000000
--- a/thunk/ppb_image_data_thunk.cc
+++ /dev/null
@@ -1,94 +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.
-
-// From ppb_image_data.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-#include <string.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_image_data.h"
-#include "ppapi/shared_impl/ppb_image_data_shared.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_image_data_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_ImageDataFormat GetNativeImageDataFormat(void) {
-  VLOG(4) << "PPB_ImageData::GetNativeImageDataFormat()";
-  return PPB_ImageData_Shared::GetNativeImageDataFormat();
-}
-
-PP_Bool IsImageDataFormatSupported(PP_ImageDataFormat format) {
-  VLOG(4) << "PPB_ImageData::IsImageDataFormatSupported()";
-  return PPB_ImageData_Shared::IsImageDataFormatSupported(format);
-}
-
-PP_Resource Create(PP_Instance instance,
-                   PP_ImageDataFormat format,
-                   const struct PP_Size* size,
-                   PP_Bool init_to_zero) {
-  VLOG(4) << "PPB_ImageData::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateImageData(instance, format, size,
-                                            init_to_zero);
-}
-
-PP_Bool IsImageData(PP_Resource image_data) {
-  VLOG(4) << "PPB_ImageData::IsImageData()";
-  EnterResource<PPB_ImageData_API> enter(image_data, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-PP_Bool Describe(PP_Resource image_data, struct PP_ImageDataDesc* desc) {
-  VLOG(4) << "PPB_ImageData::Describe()";
-  EnterResource<PPB_ImageData_API> enter(image_data, true);
-  if (enter.failed()) {
-    memset(desc, 0, sizeof(*desc));
-    return PP_FALSE;
-  }
-  return enter.object()->Describe(desc);
-}
-
-void* Map(PP_Resource image_data) {
-  VLOG(4) << "PPB_ImageData::Map()";
-  EnterResource<PPB_ImageData_API> enter(image_data, true);
-  if (enter.failed())
-    return NULL;
-  return enter.object()->Map();
-}
-
-void Unmap(PP_Resource image_data) {
-  VLOG(4) << "PPB_ImageData::Unmap()";
-  EnterResource<PPB_ImageData_API> enter(image_data, true);
-  if (enter.failed())
-    return;
-  enter.object()->Unmap();
-}
-
-const PPB_ImageData_1_0 g_ppb_imagedata_thunk_1_0 = {
-    &GetNativeImageDataFormat,
-    &IsImageDataFormatSupported,
-    &Create,
-    &IsImageData,
-    &Describe,
-    &Map,
-    &Unmap};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_ImageData_1_0* GetPPB_ImageData_1_0_Thunk() {
-  return &g_ppb_imagedata_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_input_event_api.h b/thunk/ppb_input_event_api.h
deleted file mode 100644
index 517dece..0000000
--- a/thunk/ppb_input_event_api.h
+++ /dev/null
@@ -1,62 +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_THUNK_PPB_INPUT_EVENT_API_H_
-#define PPAPI_THUNK_PPB_INPUT_EVENT_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/dev/ppb_ime_input_event_dev.h"
-#include "ppapi/c/ppb_input_event.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-struct InputEventData;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_InputEvent_API {
- public:
-  virtual ~PPB_InputEvent_API() {}
-
-  // This function is not exposed through the C API, but returns the internal
-  // event data for easy proxying.
-  virtual const InputEventData& GetInputEventData() const = 0;
-
-  virtual PP_InputEvent_Type GetType() = 0;
-  virtual PP_TimeTicks GetTimeStamp() = 0;
-  virtual uint32_t GetModifiers() = 0;
-  virtual PP_InputEvent_MouseButton GetMouseButton() = 0;
-  virtual PP_Point GetMousePosition() = 0;
-  virtual int32_t GetMouseClickCount() = 0;
-  virtual PP_Point GetMouseMovement() = 0;
-  virtual PP_FloatPoint GetWheelDelta() = 0;
-  virtual PP_FloatPoint GetWheelTicks() = 0;
-  virtual PP_Bool GetWheelScrollByPage() = 0;
-  virtual uint32_t GetKeyCode() = 0;
-  virtual PP_Var GetCharacterText() = 0;
-  virtual PP_Var GetCode() = 0;
-  virtual uint32_t GetIMESegmentNumber() = 0;
-  virtual uint32_t GetIMESegmentOffset(uint32_t index) = 0;
-  virtual int32_t GetIMETargetSegment() = 0;
-  virtual void GetIMESelection(uint32_t* start, uint32_t* end) = 0;
-  virtual void AddTouchPoint(PP_TouchListType list,
-                             const PP_TouchPoint& point) = 0;
-  virtual uint32_t GetTouchCount(PP_TouchListType list) = 0;
-  virtual PP_TouchPoint GetTouchByIndex(PP_TouchListType list,
-                                        uint32_t index) = 0;
-  virtual PP_TouchPoint GetTouchById(PP_TouchListType list,
-                                     uint32_t id) = 0;
-  virtual PP_FloatPoint GetTouchTiltByIndex(PP_TouchListType list,
-                                            uint32_t index) = 0;
-
-  virtual PP_FloatPoint GetTouchTiltById(PP_TouchListType list,
-                                         uint32_t id) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_INPUT_EVENT_API_H_
diff --git a/thunk/ppb_input_event_thunk.cc b/thunk/ppb_input_event_thunk.cc
deleted file mode 100644
index 02286af..0000000
--- a/thunk/ppb_input_event_thunk.cc
+++ /dev/null
@@ -1,578 +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 "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_input_event_api.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-typedef EnterResource<PPB_InputEvent_API> EnterInputEvent;
-
-// InputEvent ------------------------------------------------------------------
-
-int32_t RequestInputEvents(PP_Instance instance, uint32_t event_classes) {
-  VLOG(4) << "PPB_InputEvent::RequestInputEvents()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return enter.retval();
-  return enter.functions()->RequestInputEvents(instance, event_classes);
-}
-
-int32_t RequestFilteringInputEvents(PP_Instance instance,
-                                    uint32_t event_classes) {
-  VLOG(4) << "PPB_InputEvent::RequestFilteringInputEvents()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return enter.retval();
-  return enter.functions()->RequestFilteringInputEvents(instance,
-                                                        event_classes);
-}
-
-void ClearInputEventRequest(PP_Instance instance,
-                            uint32_t event_classes) {
-  VLOG(4) << "PPB_InputEvent::ClearInputEventRequest()";
-  EnterInstance enter(instance);
-  if (enter.succeeded())
-    enter.functions()->ClearInputEventRequest(instance, event_classes);
-}
-
-PP_Bool IsInputEvent(PP_Resource resource) {
-  VLOG(4) << "PPB_InputEvent::IsInputEvent()";
-  EnterInputEvent enter(resource, false);
-  return enter.succeeded() ? PP_TRUE : PP_FALSE;
-}
-
-PP_InputEvent_Type GetType(PP_Resource event) {
-  VLOG(4) << "PPB_InputEvent::GetType()";
-  EnterInputEvent enter(event, true);
-  if (enter.failed())
-    return PP_INPUTEVENT_TYPE_UNDEFINED;
-  return enter.object()->GetType();
-}
-
-PP_TimeTicks GetTimeStamp(PP_Resource event) {
-  VLOG(4) << "PPB_InputEvent::GetTimeStamp()";
-  EnterInputEvent enter(event, true);
-  if (enter.failed())
-    return 0.0;
-  return enter.object()->GetTimeStamp();
-}
-
-uint32_t GetModifiers(PP_Resource event) {
-  VLOG(4) << "PPB_InputEvent::GetModifiers()";
-  EnterInputEvent enter(event, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetModifiers();
-}
-
-const PPB_InputEvent g_ppb_input_event_thunk = {
-  &RequestInputEvents,
-  &RequestFilteringInputEvents,
-  &ClearInputEventRequest,
-  &IsInputEvent,
-  &GetType,
-  &GetTimeStamp,
-  &GetModifiers
-};
-
-// Mouse -----------------------------------------------------------------------
-
-PP_Resource CreateMouseInputEvent1_0(PP_Instance instance,
-                                     PP_InputEvent_Type type,
-                                     PP_TimeTicks time_stamp,
-                                     uint32_t modifiers,
-                                     PP_InputEvent_MouseButton mouse_button,
-                                     const PP_Point* mouse_position,
-                                     int32_t click_count) {
-  VLOG(4) << "PPB_MouseInputEvent::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-
-  PP_Point mouse_movement = PP_MakePoint(0, 0);
-  return enter.functions()->CreateMouseInputEvent(instance, type, time_stamp,
-                                                  modifiers, mouse_button,
-                                                  mouse_position, click_count,
-                                                  &mouse_movement);
-}
-
-PP_Resource CreateMouseInputEvent1_1(PP_Instance instance,
-                                     PP_InputEvent_Type type,
-                                     PP_TimeTicks time_stamp,
-                                     uint32_t modifiers,
-                                     PP_InputEvent_MouseButton mouse_button,
-                                     const PP_Point* mouse_position,
-                                     int32_t click_count,
-                                     const PP_Point* mouse_movement) {
-  VLOG(4) << "PPB_MouseInputEvent::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateMouseInputEvent(instance, type, time_stamp,
-                                                  modifiers, mouse_button,
-                                                  mouse_position, click_count,
-                                                  mouse_movement);
-}
-
-PP_Bool IsMouseInputEvent(PP_Resource resource) {
-  VLOG(4) << "PPB_MouseInputEvent::IsMouseInputEvent()";
-  if (!IsInputEvent(resource))
-    return PP_FALSE;  // Prevent warning log in GetType.
-  PP_InputEvent_Type type = GetType(resource);
-  return PP_FromBool(type == PP_INPUTEVENT_TYPE_MOUSEDOWN ||
-                     type == PP_INPUTEVENT_TYPE_MOUSEUP ||
-                     type == PP_INPUTEVENT_TYPE_MOUSEMOVE ||
-                     type == PP_INPUTEVENT_TYPE_MOUSEENTER ||
-                     type == PP_INPUTEVENT_TYPE_MOUSELEAVE ||
-                     type == PP_INPUTEVENT_TYPE_CONTEXTMENU);
-}
-
-PP_InputEvent_MouseButton GetMouseButton(PP_Resource mouse_event) {
-  VLOG(4) << "PPB_MouseInputEvent::GetButton()";
-  EnterInputEvent enter(mouse_event, true);
-  if (enter.failed())
-    return PP_INPUTEVENT_MOUSEBUTTON_NONE;
-  return enter.object()->GetMouseButton();
-}
-
-PP_Point GetMousePosition(PP_Resource mouse_event) {
-  VLOG(4) << "PPB_MouseInputEvent::GetPosition()";
-  EnterInputEvent enter(mouse_event, true);
-  if (enter.failed())
-    return PP_MakePoint(0, 0);
-  return enter.object()->GetMousePosition();
-}
-
-int32_t GetMouseClickCount(PP_Resource mouse_event) {
-  VLOG(4) << "PPB_MouseInputEvent::GetClickCount()";
-  EnterInputEvent enter(mouse_event, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetMouseClickCount();
-}
-
-PP_Point GetMouseMovement(PP_Resource mouse_event) {
-  VLOG(4) << "PPB_MouseInputEvent::GetMovement()";
-  EnterInputEvent enter(mouse_event, true);
-  if (enter.failed())
-    return PP_MakePoint(0, 0);
-  return enter.object()->GetMouseMovement();
-}
-
-const PPB_MouseInputEvent_1_0 g_ppb_mouse_input_event_1_0_thunk = {
-  &CreateMouseInputEvent1_0,
-  &IsMouseInputEvent,
-  &GetMouseButton,
-  &GetMousePosition,
-  &GetMouseClickCount
-};
-
-const PPB_MouseInputEvent g_ppb_mouse_input_event_1_1_thunk = {
-  &CreateMouseInputEvent1_1,
-  &IsMouseInputEvent,
-  &GetMouseButton,
-  &GetMousePosition,
-  &GetMouseClickCount,
-  &GetMouseMovement
-};
-
-// Wheel -----------------------------------------------------------------------
-
-PP_Resource CreateWheelInputEvent(PP_Instance instance,
-                                  PP_TimeTicks time_stamp,
-                                  uint32_t modifiers,
-                                  const PP_FloatPoint* wheel_delta,
-                                  const PP_FloatPoint* wheel_ticks,
-                                  PP_Bool scroll_by_page) {
-  VLOG(4) << "PPB_WheelInputEvent::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateWheelInputEvent(instance, time_stamp,
-                                                  modifiers, wheel_delta,
-                                                  wheel_ticks, scroll_by_page);
-}
-
-PP_Bool IsWheelInputEvent(PP_Resource resource) {
-  VLOG(4) << "PPB_WheelInputEvent::IsWheelInputEvent()";
-  if (!IsInputEvent(resource))
-    return PP_FALSE;  // Prevent warning log in GetType.
-  PP_InputEvent_Type type = GetType(resource);
-  return PP_FromBool(type == PP_INPUTEVENT_TYPE_WHEEL);
-}
-
-PP_FloatPoint GetWheelDelta(PP_Resource wheel_event) {
-  VLOG(4) << "PPB_WheelInputEvent::GetDelta()";
-  EnterInputEvent enter(wheel_event, true);
-  if (enter.failed())
-    return PP_MakeFloatPoint(0.0f, 0.0f);
-  return enter.object()->GetWheelDelta();
-}
-
-PP_FloatPoint GetWheelTicks(PP_Resource wheel_event) {
-  VLOG(4) << "PPB_WheelInputEvent::GetTicks()";
-  EnterInputEvent enter(wheel_event, true);
-  if (enter.failed())
-    return PP_MakeFloatPoint(0.0f, 0.0f);
-  return enter.object()->GetWheelTicks();
-}
-
-PP_Bool GetWheelScrollByPage(PP_Resource wheel_event) {
-  VLOG(4) << "PPB_WheelInputEvent::GetScrollByPage()";
-  EnterInputEvent enter(wheel_event, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->GetWheelScrollByPage();
-}
-
-const PPB_WheelInputEvent g_ppb_wheel_input_event_thunk = {
-  &CreateWheelInputEvent,
-  &IsWheelInputEvent,
-  &GetWheelDelta,
-  &GetWheelTicks,
-  &GetWheelScrollByPage
-};
-
-// Keyboard --------------------------------------------------------------------
-
-PP_Resource CreateKeyboardInputEvent_1_0(PP_Instance instance,
-                                         PP_InputEvent_Type type,
-                                         PP_TimeTicks time_stamp,
-                                         uint32_t modifiers,
-                                         uint32_t key_code,
-                                         struct PP_Var character_text) {
-  VLOG(4) << "PPB_KeyboardInputEvent::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateKeyboardInputEvent_1_0(instance, type,
-                                                         time_stamp,
-                                                         modifiers, key_code,
-                                                         character_text);
-}
-
-PP_Resource CreateKeyboardInputEvent_1_2(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) {
-  VLOG(4) << "PPB_KeyboardInputEvent::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateKeyboardInputEvent_1_2(instance, type,
-                                                         time_stamp,
-                                                         modifiers, key_code,
-                                                         character_text, code);
-}
-
-PP_Bool IsKeyboardInputEvent(PP_Resource resource) {
-  VLOG(4) << "PPB_KeyboardInputEvent::IsKeyboardInputEvent()";
-  if (!IsInputEvent(resource))
-    return PP_FALSE;  // Prevent warning log in GetType.
-  PP_InputEvent_Type type = GetType(resource);
-  return PP_FromBool(type == PP_INPUTEVENT_TYPE_KEYDOWN ||
-                     type == PP_INPUTEVENT_TYPE_KEYUP ||
-                     type == PP_INPUTEVENT_TYPE_RAWKEYDOWN ||
-                     type == PP_INPUTEVENT_TYPE_CHAR);
-}
-
-uint32_t GetKeyCode(PP_Resource key_event) {
-  VLOG(4) << "PPB_KeyboardInputEvent::GetKeyCode()";
-  EnterInputEvent enter(key_event, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetKeyCode();
-}
-
-PP_Var GetCharacterText(PP_Resource character_event) {
-  VLOG(4) << "PPB_KeyboardInputEvent::GetCharacterText()";
-  EnterInputEvent enter(character_event, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetCharacterText();
-}
-
-PP_Var GetCode(PP_Resource key_event) {
-  VLOG(4) << "PPB_KeyboardInputEvent::GetCode()";
-  EnterInputEvent enter(key_event, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetCode();
-}
-
-const PPB_KeyboardInputEvent_1_0 g_ppb_keyboard_input_event_1_0_thunk = {
-  &CreateKeyboardInputEvent_1_0,
-  &IsKeyboardInputEvent,
-  &GetKeyCode,
-  &GetCharacterText
-};
-
-const PPB_KeyboardInputEvent g_ppb_keyboard_input_event_thunk = {
-  &CreateKeyboardInputEvent_1_2,
-  &IsKeyboardInputEvent,
-  &GetKeyCode,
-  &GetCharacterText,
-  &GetCode
-};
-
-// Composition -----------------------------------------------------------------
-
-PP_Resource CreateIMEInputEvent(PP_Instance instance,
-                                PP_InputEvent_Type type,
-                                PP_TimeTicks time_stamp,
-                                PP_Var text,
-                                uint32_t segment_number,
-                                const uint32_t segment_offsets[],
-                                int32_t target_segment,
-                                uint32_t selection_start,
-                                uint32_t selection_end) {
-  VLOG(4) << "PPB_IMEInputEvent_Dev::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateIMEInputEvent(instance, type, time_stamp,
-                                                text, segment_number,
-                                                segment_offsets,
-                                                target_segment,
-                                                selection_start,
-                                                selection_end);
-}
-
-PP_Bool IsIMEInputEvent(PP_Resource resource) {
-  VLOG(4) << "PPB_IMEInputEvent_Dev::IsIMEInputEvent()";
-  if (!IsInputEvent(resource))
-    return PP_FALSE;  // Prevent warning log in GetType.
-  PP_InputEvent_Type type = GetType(resource);
-  return PP_FromBool(type == PP_INPUTEVENT_TYPE_IME_COMPOSITION_START ||
-                     type == PP_INPUTEVENT_TYPE_IME_COMPOSITION_UPDATE ||
-                     type == PP_INPUTEVENT_TYPE_IME_COMPOSITION_END ||
-                     type == PP_INPUTEVENT_TYPE_IME_TEXT);
-}
-
-PP_Var GetIMEText(PP_Resource ime_event) {
-  VLOG(4) << "PPB_IMEInputEvent_Dev::GetText()";
-  return GetCharacterText(ime_event);
-}
-
-uint32_t GetIMESegmentNumber(PP_Resource ime_event) {
-  VLOG(4) << "PPB_IMEInputEvent_Dev::GetSegmentNumber()";
-  EnterInputEvent enter(ime_event, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetIMESegmentNumber();
-}
-
-uint32_t GetIMESegmentOffset(PP_Resource ime_event, uint32_t index) {
-  VLOG(4) << "PPB_IMEInputEvent_Dev::GetSegmentOffset()";
-  EnterInputEvent enter(ime_event, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetIMESegmentOffset(index);
-}
-
-int32_t GetIMETargetSegment(PP_Resource ime_event) {
-  VLOG(4) << "PPB_IMEInputEvent_Dev::GetTargetSegment()";
-  EnterInputEvent enter(ime_event, true);
-  if (enter.failed())
-    return -1;
-  return enter.object()->GetIMETargetSegment();
-}
-
-void GetIMESelection(PP_Resource ime_event, uint32_t* start, uint32_t* end) {
-  VLOG(4) << "PPB_IMEInputEvent_Dev::GetSelection()";
-  EnterInputEvent enter(ime_event, true);
-  if (enter.failed()) {
-    if (start)
-      *start = 0;
-    if (end)
-      *end = 0;
-    return;
-  }
-  enter.object()->GetIMESelection(start, end);
-}
-
-const PPB_IMEInputEvent_Dev_0_1 g_ppb_ime_input_event_0_1_thunk = {
-  &IsIMEInputEvent,
-  &GetIMEText,
-  &GetIMESegmentNumber,
-  &GetIMESegmentOffset,
-  &GetIMETargetSegment,
-  &GetIMESelection
-};
-
-const PPB_IMEInputEvent_Dev_0_2 g_ppb_ime_input_event_0_2_thunk = {
-  &CreateIMEInputEvent,
-  &IsIMEInputEvent,
-  &GetIMEText,
-  &GetIMESegmentNumber,
-  &GetIMESegmentOffset,
-  &GetIMETargetSegment,
-  &GetIMESelection
-};
-
-const PPB_IMEInputEvent_1_0 g_ppb_ime_input_event_1_0_thunk = {
-  &CreateIMEInputEvent,
-  &IsIMEInputEvent,
-  &GetIMEText,
-  &GetIMESegmentNumber,
-  &GetIMESegmentOffset,
-  &GetIMETargetSegment,
-  &GetIMESelection
-};
-
-// Touch -----------------------------------------------------------------------
-
-PP_Resource CreateTouchInputEvent(PP_Instance instance,
-                                  PP_InputEvent_Type type,
-                                  PP_TimeTicks time_stamp,
-                                  uint32_t modifiers) {
-  VLOG(4) << "PPB_TouchInputEvent::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateTouchInputEvent(instance, type, time_stamp,
-                                                  modifiers);
-}
-
-void AddTouchPoint(PP_Resource touch_event,
-                   PP_TouchListType list,
-                   const PP_TouchPoint* point) {
-  VLOG(4) << "PPB_TouchInputEvent::AddTouchPoint()";
-  EnterInputEvent enter(touch_event, true);
-  if (enter.failed())
-    return;
-  return enter.object()->AddTouchPoint(list, *point);
-}
-
-PP_Bool IsTouchInputEvent(PP_Resource resource) {
-  VLOG(4) << "PPB_TouchInputEvent::IsTouchInputEvent()";
-  if (!IsInputEvent(resource))
-    return PP_FALSE;  // Prevent warning log in GetType.
-  PP_InputEvent_Type type = GetType(resource);
-  return PP_FromBool(type == PP_INPUTEVENT_TYPE_TOUCHSTART ||
-                     type == PP_INPUTEVENT_TYPE_TOUCHMOVE ||
-                     type == PP_INPUTEVENT_TYPE_TOUCHEND ||
-                     type == PP_INPUTEVENT_TYPE_TOUCHCANCEL);
-}
-
-uint32_t GetTouchCount(PP_Resource touch_event, PP_TouchListType list) {
-  VLOG(4) << "PPB_TouchInputEvent::GetTouchCount()";
-  EnterInputEvent enter(touch_event, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetTouchCount(list);
-}
-
-struct PP_TouchPoint GetTouchByIndex(PP_Resource touch_event,
-                                     PP_TouchListType list,
-                                     uint32_t index) {
-  VLOG(4) << "PPB_TouchInputEvent::GetTouchByIndex()";
-  EnterInputEvent enter(touch_event, true);
-  if (enter.failed())
-    return PP_MakeTouchPoint();
-  return enter.object()->GetTouchByIndex(list, index);
-}
-
-struct PP_TouchPoint GetTouchById(PP_Resource touch_event,
-                                  PP_TouchListType list,
-                                  uint32_t id) {
-  VLOG(4) << "PPB_TouchInputEvent::GetTouchById()";
-  EnterInputEvent enter(touch_event, true);
-  if (enter.failed())
-    return PP_MakeTouchPoint();
-  return enter.object()->GetTouchById(list, id);
-}
-
-struct PP_FloatPoint GetTouchTiltByIndex(PP_Resource touch_event,
-                                         PP_TouchListType list,
-                                         uint32_t index) {
-  VLOG(4) << "PPB_TouchInputEvent::GetTouchTiltByIndex()";
-  EnterInputEvent enter(touch_event, true);
-  if (enter.failed())
-    return PP_MakeFloatPoint(0, 0);
-  return enter.object()->GetTouchTiltByIndex(list, index);
-}
-
-struct PP_FloatPoint GetTouchTiltById(PP_Resource touch_event,
-                                      PP_TouchListType list,
-                                      uint32_t id) {
-  VLOG(4) << "PPB_TouchInputEvent::GetTouchTiltById()";
-  EnterInputEvent enter(touch_event, true);
-  if (enter.failed())
-    return PP_MakeFloatPoint(0, 0);
-  return enter.object()->GetTouchTiltById(list, id);
-}
-
-const PPB_TouchInputEvent_1_0 g_ppb_touch_input_event_1_0_thunk = {
-    &CreateTouchInputEvent, &AddTouchPoint,   &IsTouchInputEvent,
-    &GetTouchCount,         &GetTouchByIndex, &GetTouchById};
-
-const PPB_TouchInputEvent_1_4 g_ppb_touch_input_event_1_4_thunk = {
-    &CreateTouchInputEvent, &AddTouchPoint,    &IsTouchInputEvent,
-    &GetTouchCount,         &GetTouchByIndex,  &GetTouchById,
-    &GetTouchTiltByIndex,   &GetTouchTiltById,
-};
-
-}  // namespace
-
-const PPB_InputEvent_1_0* GetPPB_InputEvent_1_0_Thunk() {
-  return &g_ppb_input_event_thunk;
-}
-
-const PPB_MouseInputEvent_1_0* GetPPB_MouseInputEvent_1_0_Thunk() {
-  return &g_ppb_mouse_input_event_1_0_thunk;
-}
-
-const PPB_MouseInputEvent_1_1* GetPPB_MouseInputEvent_1_1_Thunk() {
-  return &g_ppb_mouse_input_event_1_1_thunk;
-}
-
-const PPB_KeyboardInputEvent_1_0* GetPPB_KeyboardInputEvent_1_0_Thunk() {
-  return &g_ppb_keyboard_input_event_1_0_thunk;
-}
-
-const PPB_KeyboardInputEvent_1_2* GetPPB_KeyboardInputEvent_1_2_Thunk() {
-  return &g_ppb_keyboard_input_event_thunk;
-}
-
-const PPB_WheelInputEvent_1_0* GetPPB_WheelInputEvent_1_0_Thunk() {
-  return &g_ppb_wheel_input_event_thunk;
-}
-
-const PPB_IMEInputEvent_Dev_0_1* GetPPB_IMEInputEvent_Dev_0_1_Thunk() {
-  return &g_ppb_ime_input_event_0_1_thunk;
-}
-
-const PPB_IMEInputEvent_Dev_0_2* GetPPB_IMEInputEvent_Dev_0_2_Thunk() {
-  return &g_ppb_ime_input_event_0_2_thunk;
-}
-
-const PPB_IMEInputEvent_1_0* GetPPB_IMEInputEvent_1_0_Thunk() {
-  return &g_ppb_ime_input_event_1_0_thunk;
-}
-
-const PPB_TouchInputEvent_1_0* GetPPB_TouchInputEvent_1_0_Thunk() {
-  return &g_ppb_touch_input_event_1_0_thunk;
-}
-
-const PPB_TouchInputEvent_1_4* GetPPB_TouchInputEvent_1_4_Thunk() {
-  return &g_ppb_touch_input_event_1_4_thunk;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_instance_api.h b/thunk/ppb_instance_api.h
deleted file mode 100644
index e80ac50..0000000
--- a/thunk/ppb_instance_api.h
+++ /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.
-
-#ifndef PPAPI_THUNK_PPB_INSTANCE_API_H_
-#define PPAPI_THUNK_PPB_INSTANCE_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "build/build_config.h"
-#include "ppapi/c/dev/ppb_url_util_dev.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_size.h"
-#include "ppapi/c/pp_time.h"
-#include "ppapi/c/ppb_audio_config.h"
-#include "ppapi/c/ppb_console.h"
-#include "ppapi/c/ppb_gamepad.h"
-#include "ppapi/c/ppb_instance.h"
-#include "ppapi/c/ppb_mouse_cursor.h"
-#include "ppapi/c/ppb_text_input_controller.h"
-#include "ppapi/c/private/ppb_instance_private.h"
-#include "ppapi/shared_impl/api_id.h"
-#include "ppapi/shared_impl/singleton_resource_id.h"
-
-// Windows headers interfere with this file.
-#ifdef PostMessage
-#undef PostMessage
-#endif
-
-struct PPP_MessageHandler_0_2;
-
-namespace ppapi {
-
-class Resource;
-class TrackedCallback;
-struct ViewData;
-
-namespace thunk {
-
-class PPB_Instance_API {
- public:
-  virtual ~PPB_Instance_API() {}
-
-  virtual PP_Bool BindGraphics(PP_Instance instance, PP_Resource device) = 0;
-  virtual PP_Bool IsFullFrame(PP_Instance instance) = 0;
-
-  // Unexposed PPAPI functions for proxying.
-  // Returns the internal view data struct.
-  virtual const ViewData* GetViewData(PP_Instance instance) = 0;
-
-  // InstancePrivate.
-  virtual PP_Var GetWindowObject(PP_Instance instance) = 0;
-  virtual PP_Var GetOwnerElementObject(PP_Instance instance) = 0;
-  virtual PP_Var ExecuteScript(PP_Instance instance,
-                               PP_Var script,
-                               PP_Var* exception) = 0;
-
-  // Audio.
-  virtual uint32_t GetAudioHardwareOutputSampleRate(PP_Instance instance) = 0;
-  virtual uint32_t GetAudioHardwareOutputBufferSize(PP_Instance instance) = 0;
-
-  // CharSet.
-  virtual PP_Var GetDefaultCharSet(PP_Instance instance) = 0;
-
-  // Console.
-  virtual void Log(PP_Instance instance,
-                   PP_LogLevel log_level,
-                   PP_Var value) = 0;
-  virtual void LogWithSource(PP_Instance instance,
-                             PP_LogLevel log_level,
-                             PP_Var source,
-                             PP_Var value) = 0;
-
-  // Fullscreen.
-  virtual PP_Bool IsFullscreen(PP_Instance instance) = 0;
-  virtual PP_Bool SetFullscreen(PP_Instance instance,
-                                PP_Bool fullscreen) = 0;
-  virtual PP_Bool GetScreenSize(PP_Instance instance, PP_Size* size) = 0;
-
-  // This is an implementation-only function which grabs an instance of a
-  // "singleton resource". These are used to implement instance interfaces
-  // (functions which are associated with the instance itself as opposed to a
-  // resource).
-  virtual Resource* GetSingletonResource(
-      PP_Instance instance, SingletonResourceID id) = 0;
-
-  // InputEvent.
-  virtual int32_t RequestInputEvents(PP_Instance instance,
-                                     uint32_t event_classes) = 0;
-  virtual int32_t RequestFilteringInputEvents(PP_Instance instance,
-                                              uint32_t event_classes) = 0;
-  virtual void ClearInputEventRequest(PP_Instance instance,
-                                      uint32_t event_classes) = 0;
-
-  // Messaging.
-  virtual void PostMessage(PP_Instance instance, PP_Var message) = 0;
-  virtual int32_t RegisterMessageHandler(PP_Instance instance,
-                                         void* user_data,
-                                         const PPP_MessageHandler_0_2* handler,
-                                         PP_Resource message_loop) = 0;
-  virtual void UnregisterMessageHandler(PP_Instance instance) = 0;
-
-  // Mouse cursor.
-  virtual PP_Bool SetCursor(PP_Instance instance,
-                            PP_MouseCursor_Type type,
-                            PP_Resource image,
-                            const PP_Point* hot_spot) = 0;
-
-  // MouseLock.
-  virtual int32_t LockMouse(PP_Instance instance,
-                            scoped_refptr<TrackedCallback> callback) = 0;
-  virtual void UnlockMouse(PP_Instance instance) = 0;
-
-  // TextInput.
-  virtual void SetTextInputType(PP_Instance instance,
-                                PP_TextInput_Type type) = 0;
-  virtual void UpdateCaretPosition(PP_Instance instance,
-                                   const PP_Rect& caret,
-                                   const PP_Rect& bounding_box) = 0;
-  virtual void CancelCompositionText(PP_Instance instance) = 0;
-  virtual void SelectionChanged(PP_Instance instance) = 0;
-  virtual void UpdateSurroundingText(PP_Instance instance,
-                                     const char* text,
-                                     uint32_t caret,
-                                     uint32_t anchor) = 0;
-
-  // Testing and URLUtil.
-  virtual PP_Var GetDocumentURL(PP_Instance instance,
-                                PP_URLComponents_Dev* components) = 0;
-#if !BUILDFLAG(IS_NACL)
-  // URLUtil.
-  virtual PP_Var ResolveRelativeToDocument(
-      PP_Instance instance,
-      PP_Var relative,
-      PP_URLComponents_Dev* components) = 0;
-  virtual PP_Bool DocumentCanRequest(PP_Instance instance, PP_Var url) = 0;
-  virtual PP_Bool DocumentCanAccessDocument(PP_Instance instance,
-                                            PP_Instance target) = 0;
-  virtual PP_Var GetPluginInstanceURL(PP_Instance instance,
-                                      PP_URLComponents_Dev* components) = 0;
-  virtual PP_Var GetPluginReferrerURL(PP_Instance instance,
-                                      PP_URLComponents_Dev* components) = 0;
-#endif  // !BUILDFLAG(IS_NACL)
-
-  static const ApiID kApiID = API_ID_PPB_INSTANCE;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_INSTANCE_API_H_
diff --git a/thunk/ppb_instance_private_thunk.cc b/thunk/ppb_instance_private_thunk.cc
deleted file mode 100644
index cb8fda5..0000000
--- a/thunk/ppb_instance_private_thunk.cc
+++ /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.
-
-// From private/ppb_instance_private.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/private/ppb_instance_private.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-struct PP_Var GetWindowObject(PP_Instance instance) {
-  VLOG(4) << "PPB_Instance_Private::GetWindowObject()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.functions()->GetWindowObject(instance);
-}
-
-struct PP_Var GetOwnerElementObject(PP_Instance instance) {
-  VLOG(4) << "PPB_Instance_Private::GetOwnerElementObject()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.functions()->GetOwnerElementObject(instance);
-}
-
-struct PP_Var ExecuteScript(PP_Instance instance,
-                            struct PP_Var script,
-                            struct PP_Var* exception) {
-  VLOG(4) << "PPB_Instance_Private::ExecuteScript()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.functions()->ExecuteScript(instance, script, exception);
-}
-
-const PPB_Instance_Private_0_1 g_ppb_instance_private_thunk_0_1 = {
-    &GetWindowObject, &GetOwnerElementObject, &ExecuteScript};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_Instance_Private_0_1*
-GetPPB_Instance_Private_0_1_Thunk() {
-  return &g_ppb_instance_private_thunk_0_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_instance_thunk.cc b/thunk/ppb_instance_thunk.cc
deleted file mode 100644
index 8d7a110..0000000
--- a/thunk/ppb_instance_thunk.cc
+++ /dev/null
@@ -1,46 +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.
-
-// From ppb_instance.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_instance.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Bool BindGraphics(PP_Instance instance, PP_Resource device) {
-  VLOG(4) << "PPB_Instance::BindGraphics()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.functions()->BindGraphics(instance, device);
-}
-
-PP_Bool IsFullFrame(PP_Instance instance) {
-  VLOG(4) << "PPB_Instance::IsFullFrame()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.functions()->IsFullFrame(instance);
-}
-
-const PPB_Instance_1_0 g_ppb_instance_thunk_1_0 = {&BindGraphics, &IsFullFrame};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_Instance_1_0* GetPPB_Instance_1_0_Thunk() {
-  return &g_ppb_instance_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_isolated_file_system_private_api.h b/thunk/ppb_isolated_file_system_private_api.h
deleted file mode 100644
index 6a4f225..0000000
--- a/thunk/ppb_isolated_file_system_private_api.h
+++ /dev/null
@@ -1,38 +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.
-
-#ifndef PPAPI_THUNK_PPB_ISOLATED_FILE_SYSTEM_PRIVATE_API_H_
-#define PPAPI_THUNK_PPB_ISOLATED_FILE_SYSTEM_PRIVATE_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/private/ppb_isolated_file_system_private.h"
-#include "ppapi/shared_impl/singleton_resource_id.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_IsolatedFileSystem_Private_API {
- public:
-  virtual ~PPB_IsolatedFileSystem_Private_API() {}
-
-  virtual int32_t Open(PP_Instance instance,
-                       PP_IsolatedFileSystemType_Private type,
-                       PP_Resource* file_system,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-
-  static const SingletonResourceID kSingletonResourceID =
-      ISOLATED_FILESYSTEM_SINGLETON_ID;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_ISOLATED_FILE_SYSTEM_PRIVATE_API_H_
diff --git a/thunk/ppb_isolated_file_system_private_thunk.cc b/thunk/ppb_isolated_file_system_private_thunk.cc
deleted file mode 100644
index 1e0f25a..0000000
--- a/thunk/ppb_isolated_file_system_private_thunk.cc
+++ /dev/null
@@ -1,48 +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.
-
-// From private/ppb_isolated_file_system_private.idl modified Tue Dec  3
-// 11:01:20 2013.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/private/ppb_isolated_file_system_private.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_isolated_file_system_private_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-int32_t Open(PP_Instance instance,
-             PP_IsolatedFileSystemType_Private type,
-             PP_Resource* file_system,
-             struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_IsolatedFileSystem_Private::Open()";
-  EnterInstanceAPI<PPB_IsolatedFileSystem_Private_API> enter(instance,
-                                                             callback);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.functions()->Open(instance, type, file_system, enter.callback()));
-}
-
-const PPB_IsolatedFileSystem_Private_0_2
-    g_ppb_isolatedfilesystem_private_thunk_0_2 = {&Open};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_IsolatedFileSystem_Private_0_2*
-GetPPB_IsolatedFileSystem_Private_0_2_Thunk() {
-  return &g_ppb_isolatedfilesystem_private_thunk_0_2;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_media_stream_audio_track_api.h b/thunk/ppb_media_stream_audio_track_api.h
deleted file mode 100644
index 422f068..0000000
--- a/thunk/ppb_media_stream_audio_track_api.h
+++ /dev/null
@@ -1,33 +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_THUNK_PPB_MEDIA_STREAM_AUDIO_TRACK_API_H_
-#define PPAPI_THUNK_PPB_MEDIA_STREAM_AUDIO_TRACK_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_media_stream_audio_track.h"
-
-namespace ppapi {
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_MediaStreamAudioTrack_API {
- public:
-  virtual ~PPB_MediaStreamAudioTrack_API() {}
-  virtual PP_Var GetId() = 0;
-  virtual PP_Bool HasEnded() = 0;
-  virtual int32_t Configure(const int32_t attrib_list[],
-                            scoped_refptr<ppapi::TrackedCallback> callback) = 0;
-  virtual int32_t GetAttrib(PP_MediaStreamAudioTrack_Attrib attrib,
-                            int32_t* value) = 0;
-  virtual int32_t GetBuffer(PP_Resource* buffer,
-                            scoped_refptr<ppapi::TrackedCallback> callback) = 0;
-  virtual int32_t RecycleBuffer(PP_Resource buffer) = 0;
-  virtual void Close() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_MEDIA_STREAM_AUDIO_TRACK_API_H_
diff --git a/thunk/ppb_media_stream_audio_track_thunk.cc b/thunk/ppb_media_stream_audio_track_thunk.cc
deleted file mode 100644
index 25f2281..0000000
--- a/thunk/ppb_media_stream_audio_track_thunk.cc
+++ /dev/null
@@ -1,112 +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.
-
-// From ppb_media_stream_audio_track.idl modified Thu Sep 18 11:36:39 2014.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_media_stream_audio_track.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_media_stream_audio_track_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Bool IsMediaStreamAudioTrack(PP_Resource resource) {
-  VLOG(4) << "PPB_MediaStreamAudioTrack::IsMediaStreamAudioTrack()";
-  EnterResource<PPB_MediaStreamAudioTrack_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Configure(PP_Resource audio_track,
-                  const int32_t attrib_list[],
-                  struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_MediaStreamAudioTrack::Configure()";
-  EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, callback,
-                                                     true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->Configure(attrib_list, enter.callback()));
-}
-
-int32_t GetAttrib(PP_Resource audio_track,
-                  PP_MediaStreamAudioTrack_Attrib attrib,
-                  int32_t* value) {
-  VLOG(4) << "PPB_MediaStreamAudioTrack::GetAttrib()";
-  EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->GetAttrib(attrib, value);
-}
-
-struct PP_Var GetId(PP_Resource audio_track) {
-  VLOG(4) << "PPB_MediaStreamAudioTrack::GetId()";
-  EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetId();
-}
-
-PP_Bool HasEnded(PP_Resource audio_track) {
-  VLOG(4) << "PPB_MediaStreamAudioTrack::HasEnded()";
-  EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true);
-  if (enter.failed())
-    return PP_TRUE;
-  return enter.object()->HasEnded();
-}
-
-int32_t GetBuffer(PP_Resource audio_track,
-                  PP_Resource* buffer,
-                  struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_MediaStreamAudioTrack::GetBuffer()";
-  EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, callback,
-                                                     true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->GetBuffer(buffer, enter.callback()));
-}
-
-int32_t RecycleBuffer(PP_Resource audio_track, PP_Resource buffer) {
-  VLOG(4) << "PPB_MediaStreamAudioTrack::RecycleBuffer()";
-  EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->RecycleBuffer(buffer);
-}
-
-void Close(PP_Resource audio_track) {
-  VLOG(4) << "PPB_MediaStreamAudioTrack::Close()";
-  EnterResource<PPB_MediaStreamAudioTrack_API> enter(audio_track, true);
-  if (enter.failed())
-    return;
-  enter.object()->Close();
-}
-
-const PPB_MediaStreamAudioTrack_0_1 g_ppb_mediastreamaudiotrack_thunk_0_1 = {
-    &IsMediaStreamAudioTrack,
-    &Configure,
-    &GetAttrib,
-    &GetId,
-    &HasEnded,
-    &GetBuffer,
-    &RecycleBuffer,
-    &Close};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_MediaStreamAudioTrack_0_1*
-GetPPB_MediaStreamAudioTrack_0_1_Thunk() {
-  return &g_ppb_mediastreamaudiotrack_thunk_0_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_media_stream_video_track_api.h b/thunk/ppb_media_stream_video_track_api.h
deleted file mode 100644
index efa8641..0000000
--- a/thunk/ppb_media_stream_video_track_api.h
+++ /dev/null
@@ -1,37 +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_THUNK_PPB_MEDIA_STREAM_VIDEO_TRACK_API_H_
-#define PPAPI_THUNK_PPB_MEDIA_STREAM_VIDEO_TRACK_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_media_stream_video_track.h"
-
-namespace ppapi {
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_MediaStreamVideoTrack_API {
- public:
-  virtual ~PPB_MediaStreamVideoTrack_API() {}
-  virtual PP_Var GetId() = 0;
-  virtual PP_Bool HasEnded() = 0;
-  virtual int32_t Configure(const int32_t attrib_list[],
-                            scoped_refptr<ppapi::TrackedCallback> callback) = 0;
-  virtual int32_t GetAttrib(PP_MediaStreamVideoTrack_Attrib attrib,
-                            int32_t* value) = 0;
-  virtual int32_t GetFrame(PP_Resource* frame,
-                           scoped_refptr<ppapi::TrackedCallback> callback) = 0;
-  virtual int32_t RecycleFrame(PP_Resource frame) = 0;
-  virtual void Close() = 0;
-  virtual int32_t GetEmptyFrame(
-      PP_Resource* frame,
-      scoped_refptr<ppapi::TrackedCallback> callback) = 0;
-  virtual int32_t PutFrame(PP_Resource frame) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_MEDIA_STREAM_VIDEO_TRACK_API_H_
diff --git a/thunk/ppb_media_stream_video_track_thunk.cc b/thunk/ppb_media_stream_video_track_thunk.cc
deleted file mode 100644
index f16d77a..0000000
--- a/thunk/ppb_media_stream_video_track_thunk.cc
+++ /dev/null
@@ -1,153 +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.
-
-// From ppb_media_stream_video_track.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_media_stream_video_track.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_media_stream_video_track_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_MediaStreamVideoTrack::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateMediaStreamVideoTrack(instance);
-}
-
-PP_Bool IsMediaStreamVideoTrack(PP_Resource resource) {
-  VLOG(4) << "PPB_MediaStreamVideoTrack::IsMediaStreamVideoTrack()";
-  EnterResource<PPB_MediaStreamVideoTrack_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Configure(PP_Resource video_track,
-                  const int32_t attrib_list[],
-                  struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_MediaStreamVideoTrack::Configure()";
-  EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, callback,
-                                                     true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->Configure(attrib_list, enter.callback()));
-}
-
-int32_t GetAttrib(PP_Resource video_track,
-                  PP_MediaStreamVideoTrack_Attrib attrib,
-                  int32_t* value) {
-  VLOG(4) << "PPB_MediaStreamVideoTrack::GetAttrib()";
-  EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->GetAttrib(attrib, value);
-}
-
-struct PP_Var GetId(PP_Resource video_track) {
-  VLOG(4) << "PPB_MediaStreamVideoTrack::GetId()";
-  EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetId();
-}
-
-PP_Bool HasEnded(PP_Resource video_track) {
-  VLOG(4) << "PPB_MediaStreamVideoTrack::HasEnded()";
-  EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, true);
-  if (enter.failed())
-    return PP_TRUE;
-  return enter.object()->HasEnded();
-}
-
-int32_t GetFrame(PP_Resource video_track,
-                 PP_Resource* frame,
-                 struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_MediaStreamVideoTrack::GetFrame()";
-  EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, callback,
-                                                     true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->GetFrame(frame, enter.callback()));
-}
-
-int32_t RecycleFrame(PP_Resource video_track, PP_Resource frame) {
-  VLOG(4) << "PPB_MediaStreamVideoTrack::RecycleFrame()";
-  EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->RecycleFrame(frame);
-}
-
-void Close(PP_Resource video_track) {
-  VLOG(4) << "PPB_MediaStreamVideoTrack::Close()";
-  EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, true);
-  if (enter.failed())
-    return;
-  enter.object()->Close();
-}
-
-int32_t GetEmptyFrame(PP_Resource video_track,
-                      PP_Resource* frame,
-                      struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_MediaStreamVideoTrack::GetEmptyFrame()";
-  EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, callback,
-                                                     true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->GetEmptyFrame(frame, enter.callback()));
-}
-
-int32_t PutFrame(PP_Resource video_track, PP_Resource frame) {
-  VLOG(4) << "PPB_MediaStreamVideoTrack::PutFrame()";
-  EnterResource<PPB_MediaStreamVideoTrack_API> enter(video_track, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->PutFrame(frame);
-}
-
-const PPB_MediaStreamVideoTrack_0_1 g_ppb_mediastreamvideotrack_thunk_0_1 = {
-    &IsMediaStreamVideoTrack,
-    &Configure,
-    &GetAttrib,
-    &GetId,
-    &HasEnded,
-    &GetFrame,
-    &RecycleFrame,
-    &Close};
-
-const PPB_MediaStreamVideoTrack_1_0 g_ppb_mediastreamvideotrack_thunk_1_0 = {
-    &Create,    &IsMediaStreamVideoTrack,
-    &Configure, &GetAttrib,
-    &GetId,     &HasEnded,
-    &GetFrame,  &RecycleFrame,
-    &Close,     &GetEmptyFrame,
-    &PutFrame};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_MediaStreamVideoTrack_0_1*
-GetPPB_MediaStreamVideoTrack_0_1_Thunk() {
-  return &g_ppb_mediastreamvideotrack_thunk_0_1;
-}
-
-PPAPI_THUNK_EXPORT const PPB_MediaStreamVideoTrack_1_0*
-GetPPB_MediaStreamVideoTrack_1_0_Thunk() {
-  return &g_ppb_mediastreamvideotrack_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_message_loop_api.h b/thunk/ppb_message_loop_api.h
deleted file mode 100644
index bf1f106..0000000
--- a/thunk/ppb_message_loop_api.h
+++ /dev/null
@@ -1,38 +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_THUNK_PPB_MESSAGE_LOOP_API_H_
-#define PPAPI_THUNK_PPB_MESSAGE_LOOP_API_H_
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_stdint.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_MessageLoop_API {
- public:
-  virtual ~PPB_MessageLoop_API() {}
-
-  virtual int32_t AttachToCurrentThread() = 0;
-  virtual int32_t Run() = 0;
-  // Note: Most interfaces should use scoped_refptr<TrackedCallback>, in order
-  // to track callbacks and support things like blocking or optional callbacks.
-  // In this case, the callback is really just a way to pass a function pointer,
-  // and those options don't make sense.
-  virtual int32_t PostWork(PP_CompletionCallback callback,
-                           int64_t delay_ms) = 0;
-  virtual int32_t PostQuit(PP_Bool should_destroy) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_MESSAGE_LOOP_API_H_
diff --git a/thunk/ppb_messaging_thunk.cc b/thunk/ppb_messaging_thunk.cc
deleted file mode 100644
index b4c00c7..0000000
--- a/thunk/ppb_messaging_thunk.cc
+++ /dev/null
@@ -1,65 +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.
-
-// From ppb_messaging.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_messaging.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-void PostMessage(PP_Instance instance, struct PP_Var message) {
-  VLOG(4) << "PPB_Messaging::PostMessage()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return;
-  enter.functions()->PostMessage(instance, message);
-}
-
-int32_t RegisterMessageHandler(PP_Instance instance,
-                               void* user_data,
-                               const struct PPP_MessageHandler_0_2* handler,
-                               PP_Resource message_loop) {
-  VLOG(4) << "PPB_Messaging::RegisterMessageHandler()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return enter.retval();
-  return enter.functions()->RegisterMessageHandler(instance, user_data, handler,
-                                                   message_loop);
-}
-
-void UnregisterMessageHandler(PP_Instance instance) {
-  VLOG(4) << "PPB_Messaging::UnregisterMessageHandler()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return;
-  enter.functions()->UnregisterMessageHandler(instance);
-}
-
-const PPB_Messaging_1_0 g_ppb_messaging_thunk_1_0 = {&PostMessage};
-
-const PPB_Messaging_1_2 g_ppb_messaging_thunk_1_2 = {
-    &PostMessage, &RegisterMessageHandler, &UnregisterMessageHandler};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_Messaging_1_0* GetPPB_Messaging_1_0_Thunk() {
-  return &g_ppb_messaging_thunk_1_0;
-}
-
-PPAPI_THUNK_EXPORT const PPB_Messaging_1_2* GetPPB_Messaging_1_2_Thunk() {
-  return &g_ppb_messaging_thunk_1_2;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_mouse_cursor_thunk.cc b/thunk/ppb_mouse_cursor_thunk.cc
deleted file mode 100644
index bf4bd5d..0000000
--- a/thunk/ppb_mouse_cursor_thunk.cc
+++ /dev/null
@@ -1,41 +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.
-
-// From ppb_mouse_cursor.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_mouse_cursor.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Bool SetCursor(PP_Instance instance,
-                  enum PP_MouseCursor_Type type,
-                  PP_Resource image,
-                  const struct PP_Point* hot_spot) {
-  VLOG(4) << "PPB_MouseCursor::SetCursor()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.functions()->SetCursor(instance, type, image, hot_spot);
-}
-
-const PPB_MouseCursor_1_0 g_ppb_mousecursor_thunk_1_0 = {&SetCursor};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_MouseCursor_1_0* GetPPB_MouseCursor_1_0_Thunk() {
-  return &g_ppb_mousecursor_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_mouse_lock_thunk.cc b/thunk/ppb_mouse_lock_thunk.cc
deleted file mode 100644
index 9e2e712..0000000
--- a/thunk/ppb_mouse_lock_thunk.cc
+++ /dev/null
@@ -1,48 +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.
-
-// From ppb_mouse_lock.idl modified Wed May 15 13:57:07 2013.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_mouse_lock.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-int32_t LockMouse(PP_Instance instance, struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_MouseLock::LockMouse()";
-  EnterInstance enter(instance, callback);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.functions()->LockMouse(instance, enter.callback()));
-}
-
-void UnlockMouse(PP_Instance instance) {
-  VLOG(4) << "PPB_MouseLock::UnlockMouse()";
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return;
-  enter.functions()->UnlockMouse(instance);
-}
-
-const PPB_MouseLock_1_0 g_ppb_mouselock_thunk_1_0 = {&LockMouse, &UnlockMouse};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_MouseLock_1_0* GetPPB_MouseLock_1_0_Thunk() {
-  return &g_ppb_mouselock_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_net_address_api.h b/thunk/ppb_net_address_api.h
deleted file mode 100644
index 7353d67..0000000
--- a/thunk/ppb_net_address_api.h
+++ /dev/null
@@ -1,31 +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.
-
-#ifndef PPAPI_THUNK_PPB_NET_ADDRESS_API_H_
-#define PPAPI_THUNK_PPB_NET_ADDRESS_API_H_
-
-#include "ppapi/c/ppb_net_address.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-struct PP_NetAddress_Private;
-
-namespace ppapi {
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_NetAddress_API {
- public:
-  virtual ~PPB_NetAddress_API() {}
-
-  virtual PP_NetAddress_Family GetFamily() = 0;
-  virtual PP_Var DescribeAsString(PP_Bool include_port) = 0;
-  virtual PP_Bool DescribeAsIPv4Address(PP_NetAddress_IPv4* ipv4_addr) = 0;
-  virtual PP_Bool DescribeAsIPv6Address(PP_NetAddress_IPv6* ipv6_addr) = 0;
-
-  virtual const PP_NetAddress_Private& GetNetAddressPrivate() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_NET_ADDRESS_API_H_
diff --git a/thunk/ppb_net_address_thunk.cc b/thunk/ppb_net_address_thunk.cc
deleted file mode 100644
index bfba069..0000000
--- a/thunk/ppb_net_address_thunk.cc
+++ /dev/null
@@ -1,99 +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.
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_net_address.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/ppb_net_address_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource CreateFromIPv4Address(
-    PP_Instance instance,
-    const struct PP_NetAddress_IPv4* ipv4_addr) {
-  VLOG(4) << "PPB_NetAddress::CreateFromIPv4Address()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateNetAddressFromIPv4Address(instance,
-                                                            ipv4_addr);
-}
-
-PP_Resource CreateFromIPv6Address(
-    PP_Instance instance,
-    const struct PP_NetAddress_IPv6* ipv6_addr) {
-  VLOG(4) << "PPB_NetAddress::CreateFromIPv6Address()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateNetAddressFromIPv6Address(instance,
-                                                            ipv6_addr);
-}
-
-PP_Bool IsNetAddress(PP_Resource resource) {
-  VLOG(4) << "PPB_NetAddress::IsNetAddress()";
-  EnterResource<PPB_NetAddress_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-PP_NetAddress_Family GetFamily(PP_Resource addr) {
-  VLOG(4) << "PPB_NetAddress::GetFamily()";
-  EnterResource<PPB_NetAddress_API> enter(addr, true);
-  if (enter.failed())
-    return PP_NETADDRESS_FAMILY_UNSPECIFIED;
-  return enter.object()->GetFamily();
-}
-
-struct PP_Var DescribeAsString(PP_Resource addr, PP_Bool include_port) {
-  VLOG(4) << "PPB_NetAddress::DescribeAsString()";
-  EnterResource<PPB_NetAddress_API> enter(addr, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->DescribeAsString(include_port);
-}
-
-PP_Bool DescribeAsIPv4Address(PP_Resource addr,
-                              struct PP_NetAddress_IPv4* ipv4_addr) {
-  VLOG(4) << "PPB_NetAddress::DescribeAsIPv4Address()";
-  EnterResource<PPB_NetAddress_API> enter(addr, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->DescribeAsIPv4Address(ipv4_addr);
-}
-
-PP_Bool DescribeAsIPv6Address(PP_Resource addr,
-                              struct PP_NetAddress_IPv6* ipv6_addr) {
-  VLOG(4) << "PPB_NetAddress::DescribeAsIPv6Address()";
-  EnterResource<PPB_NetAddress_API> enter(addr, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->DescribeAsIPv6Address(ipv6_addr);
-}
-
-const PPB_NetAddress_1_0 g_ppb_netaddress_thunk_1_0 = {
-  &CreateFromIPv4Address,
-  &CreateFromIPv6Address,
-  &IsNetAddress,
-  &GetFamily,
-  &DescribeAsString,
-  &DescribeAsIPv4Address,
-  &DescribeAsIPv6Address
-};
-
-}  // namespace
-
-const PPB_NetAddress_1_0* GetPPB_NetAddress_1_0_Thunk() {
-  return &g_ppb_netaddress_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_network_list_api.h b/thunk/ppb_network_list_api.h
deleted file mode 100644
index 7f4788b..0000000
--- a/thunk/ppb_network_list_api.h
+++ /dev/null
@@ -1,34 +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_THUNK_PPB_NETWORK_LIST_API_H_
-#define PPAPI_THUNK_PPB_NETWORK_LIST_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_network_list.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_NetworkList_API {
- public:
-  virtual ~PPB_NetworkList_API() {}
-
-  // Private API
-  virtual uint32_t GetCount() = 0;
-  virtual PP_Var GetName(uint32_t index) = 0;
-  virtual PP_NetworkList_Type GetType(uint32_t index) = 0;
-  virtual PP_NetworkList_State GetState(uint32_t index) = 0;
-  virtual int32_t GetIpAddresses(uint32_t index,
-                                 const PP_ArrayOutput& output) = 0;
-  virtual PP_Var GetDisplayName(uint32_t index) = 0;
-  virtual uint32_t GetMTU(uint32_t index) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_NETWORK_LIST_API_H_
diff --git a/thunk/ppb_network_list_thunk.cc b/thunk/ppb_network_list_thunk.cc
deleted file mode 100644
index 60cb563..0000000
--- a/thunk/ppb_network_list_thunk.cc
+++ /dev/null
@@ -1,97 +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.
-
-// From ppb_network_list.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_network_list.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_network_list_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Bool IsNetworkList(PP_Resource resource) {
-  VLOG(4) << "PPB_NetworkList::IsNetworkList()";
-  EnterResource<PPB_NetworkList_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-uint32_t GetCount(PP_Resource resource) {
-  VLOG(4) << "PPB_NetworkList::GetCount()";
-  EnterResource<PPB_NetworkList_API> enter(resource, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetCount();
-}
-
-struct PP_Var GetName(PP_Resource resource, uint32_t index) {
-  VLOG(4) << "PPB_NetworkList::GetName()";
-  EnterResource<PPB_NetworkList_API> enter(resource, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetName(index);
-}
-
-PP_NetworkList_Type GetType(PP_Resource resource, uint32_t index) {
-  VLOG(4) << "PPB_NetworkList::GetType()";
-  EnterResource<PPB_NetworkList_API> enter(resource, true);
-  if (enter.failed())
-    return PP_NETWORKLIST_TYPE_UNKNOWN;
-  return enter.object()->GetType(index);
-}
-
-PP_NetworkList_State GetState(PP_Resource resource, uint32_t index) {
-  VLOG(4) << "PPB_NetworkList::GetState()";
-  EnterResource<PPB_NetworkList_API> enter(resource, true);
-  if (enter.failed())
-    return PP_NETWORKLIST_STATE_DOWN;
-  return enter.object()->GetState(index);
-}
-
-int32_t GetIpAddresses(PP_Resource resource,
-                       uint32_t index,
-                       struct PP_ArrayOutput output) {
-  VLOG(4) << "PPB_NetworkList::GetIpAddresses()";
-  EnterResource<PPB_NetworkList_API> enter(resource, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->GetIpAddresses(index, output);
-}
-
-struct PP_Var GetDisplayName(PP_Resource resource, uint32_t index) {
-  VLOG(4) << "PPB_NetworkList::GetDisplayName()";
-  EnterResource<PPB_NetworkList_API> enter(resource, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetDisplayName(index);
-}
-
-uint32_t GetMTU(PP_Resource resource, uint32_t index) {
-  VLOG(4) << "PPB_NetworkList::GetMTU()";
-  EnterResource<PPB_NetworkList_API> enter(resource, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetMTU(index);
-}
-
-const PPB_NetworkList_1_0 g_ppb_networklist_thunk_1_0 = {
-    &IsNetworkList, &GetCount,       &GetName,        &GetType,
-    &GetState,      &GetIpAddresses, &GetDisplayName, &GetMTU};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_NetworkList_1_0* GetPPB_NetworkList_1_0_Thunk() {
-  return &g_ppb_networklist_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_network_monitor_api.h b/thunk/ppb_network_monitor_api.h
deleted file mode 100644
index c04bd12..0000000
--- a/thunk/ppb_network_monitor_api.h
+++ /dev/null
@@ -1,31 +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.
-
-#ifndef PPAPI_THUNK_PPB_NETWORK_MONITOR_API_H_
-#define PPAPI_THUNK_PPB_NETWORK_MONITOR_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_network_monitor.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_NetworkMonitor_API {
- public:
-  virtual ~PPB_NetworkMonitor_API() {}
-
-  virtual int32_t UpdateNetworkList(
-      PP_Resource* network_list,
-      scoped_refptr<TrackedCallback> callback) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_NETWORK_MONITOR_API_H_
diff --git a/thunk/ppb_network_monitor_thunk.cc b/thunk/ppb_network_monitor_thunk.cc
deleted file mode 100644
index 0137658..0000000
--- a/thunk/ppb_network_monitor_thunk.cc
+++ /dev/null
@@ -1,59 +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.
-
-// From ppb_network_monitor.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_network_monitor.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_network_monitor_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_NetworkMonitor::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateNetworkMonitor(instance);
-}
-
-int32_t UpdateNetworkList(PP_Resource network_monitor,
-                          PP_Resource* network_list,
-                          struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_NetworkMonitor::UpdateNetworkList()";
-  EnterResource<PPB_NetworkMonitor_API> enter(network_monitor, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->UpdateNetworkList(network_list, enter.callback()));
-}
-
-PP_Bool IsNetworkMonitor(PP_Resource resource) {
-  VLOG(4) << "PPB_NetworkMonitor::IsNetworkMonitor()";
-  EnterResource<PPB_NetworkMonitor_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-const PPB_NetworkMonitor_1_0 g_ppb_networkmonitor_thunk_1_0 = {
-    &Create, &UpdateNetworkList, &IsNetworkMonitor};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_NetworkMonitor_1_0*
-GetPPB_NetworkMonitor_1_0_Thunk() {
-  return &g_ppb_networkmonitor_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_network_proxy_api.h b/thunk/ppb_network_proxy_api.h
deleted file mode 100644
index fffbb84..0000000
--- a/thunk/ppb_network_proxy_api.h
+++ /dev/null
@@ -1,39 +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.
-
-#ifndef PPAPI_THUNK_PPB_NETWORK_PROXY_API_H_
-#define PPAPI_THUNK_PPB_NETWORK_PROXY_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/shared_impl/singleton_resource_id.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-struct PP_Var;
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_NetworkProxy_API {
- public:
-  virtual ~PPB_NetworkProxy_API() {}
-
-  virtual int32_t GetProxyForURL(PP_Instance instance,
-                                 PP_Var url,
-                                 PP_Var* proxy_string,
-                                 scoped_refptr<TrackedCallback> callback) = 0;
-
-  static const SingletonResourceID kSingletonResourceID =
-      NETWORK_PROXY_SINGLETON_ID;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_NETWORK_PROXY_API_H_
diff --git a/thunk/ppb_network_proxy_thunk.cc b/thunk/ppb_network_proxy_thunk.cc
deleted file mode 100644
index 8f65f2a..0000000
--- a/thunk/ppb_network_proxy_thunk.cc
+++ /dev/null
@@ -1,44 +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.
-
-// From ppb_network_proxy.idl modified Tue Jun 25 15:45:53 2013.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_network_proxy.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_network_proxy_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-int32_t GetProxyForURL(PP_Instance instance,
-                       struct PP_Var url,
-                       struct PP_Var* proxy_string,
-                       struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_NetworkProxy::GetProxyForURL()";
-  EnterInstanceAPI<PPB_NetworkProxy_API> enter(instance, callback);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.functions()->GetProxyForURL(
-      instance, url, proxy_string, enter.callback()));
-}
-
-const PPB_NetworkProxy_1_0 g_ppb_networkproxy_thunk_1_0 = {&GetProxyForURL};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_NetworkProxy_1_0* GetPPB_NetworkProxy_1_0_Thunk() {
-  return &g_ppb_networkproxy_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_printing_api.h b/thunk/ppb_printing_api.h
deleted file mode 100644
index a81ab21..0000000
--- a/thunk/ppb_printing_api.h
+++ /dev/null
@@ -1,31 +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_THUNK_PPB_PRINTING_API_H_
-#define PPAPI_THUNK_PPB_PRINTING_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/dev/ppb_printing_dev.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPB_Printing_API {
- public:
-  virtual ~PPB_Printing_API() {}
-
-  virtual int32_t GetDefaultPrintSettings(
-      PP_PrintSettings_Dev *print_settings,
-      scoped_refptr<TrackedCallback> callback) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_PRINTING_API_H_
diff --git a/thunk/ppb_printing_dev_thunk.cc b/thunk/ppb_printing_dev_thunk.cc
deleted file mode 100644
index e00d416..0000000
--- a/thunk/ppb_printing_dev_thunk.cc
+++ /dev/null
@@ -1,52 +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.
-
-// From dev/ppb_printing_dev.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/dev/ppb_printing_dev.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_printing_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_Printing_Dev::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreatePrinting(instance);
-}
-
-int32_t GetDefaultPrintSettings(PP_Resource resource,
-                                struct PP_PrintSettings_Dev* print_settings,
-                                struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_Printing_Dev::GetDefaultPrintSettings()";
-  EnterResource<PPB_Printing_API> enter(resource, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->GetDefaultPrintSettings(
-      print_settings, enter.callback()));
-}
-
-const PPB_Printing_Dev_0_7 g_ppb_printing_dev_thunk_0_7 = {
-    &Create, &GetDefaultPrintSettings};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_Printing_Dev_0_7* GetPPB_Printing_Dev_0_7_Thunk() {
-  return &g_ppb_printing_dev_thunk_0_7;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_tcp_server_socket_private_api.h b/thunk/ppb_tcp_server_socket_private_api.h
deleted file mode 100644
index f6d58cc..0000000
--- a/thunk/ppb_tcp_server_socket_private_api.h
+++ /dev/null
@@ -1,36 +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_THUNK_PPB_TCP_SERVER_SOCKET_PRIVATE_API_H_
-#define PPAPI_THUNK_PPB_TCP_SERVER_SOCKET_PRIVATE_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/private/ppb_tcp_server_socket_private.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_TCPServerSocket_Private_API {
-public:
-  virtual ~PPB_TCPServerSocket_Private_API() {}
-
-  virtual int32_t Listen(const PP_NetAddress_Private* addr,
-                         int32_t backlog,
-                         scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Accept(PP_Resource* tcp_socket,
-                         scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t GetLocalAddress(PP_NetAddress_Private* addr) = 0;
-  virtual void StopListening() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_TCP_SERVER_SOCKET_PRIVATE_API_H_
diff --git a/thunk/ppb_tcp_server_socket_private_thunk.cc b/thunk/ppb_tcp_server_socket_private_thunk.cc
deleted file mode 100644
index 91fbdf4..0000000
--- a/thunk/ppb_tcp_server_socket_private_thunk.cc
+++ /dev/null
@@ -1,98 +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 "ppapi/c/pp_errors.h"
-#include "ppapi/c/private/ppb_tcp_server_socket_private.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_tcp_server_socket_private_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-typedef EnterResource<PPB_TCPServerSocket_Private_API> EnterTCPServer;
-
-PP_Resource Create(PP_Instance instance) {
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateTCPServerSocketPrivate(instance);
-}
-
-PP_Bool IsTCPServerSocket(PP_Resource resource) {
-  EnterTCPServer enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Listen(PP_Resource tcp_server_socket,
-               const PP_NetAddress_Private* addr,
-               int32_t backlog,
-               PP_CompletionCallback callback) {
-  EnterTCPServer enter(tcp_server_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Listen(addr, backlog,
-                                                enter.callback()));
-}
-
-int32_t Accept(PP_Resource tcp_server_socket,
-               PP_Resource* tcp_socket,
-               PP_CompletionCallback callback) {
-  EnterTCPServer enter(tcp_server_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Accept(tcp_socket, enter.callback()));
-}
-
-int32_t GetLocalAddress(PP_Resource tcp_server_socket,
-                        PP_NetAddress_Private* addr) {
-  EnterTCPServer enter(tcp_server_socket, true);
-  if (enter.failed())
-    return PP_ERROR_BADRESOURCE;
-  return enter.object()->GetLocalAddress(addr);
-}
-
-void StopListening(PP_Resource tcp_server_socket) {
-  EnterTCPServer enter(tcp_server_socket, true);
-  if (enter.succeeded())
-    enter.object()->StopListening();
-}
-
-const PPB_TCPServerSocket_Private_0_1 g_ppb_tcp_server_socket_thunk_0_1 = {
-  Create,
-  IsTCPServerSocket,
-  Listen,
-  Accept,
-  StopListening
-};
-
-const PPB_TCPServerSocket_Private_0_2 g_ppb_tcp_server_socket_thunk_0_2 = {
-  Create,
-  IsTCPServerSocket,
-  Listen,
-  Accept,
-  GetLocalAddress,
-  StopListening,
-};
-
-}  // namespace
-
-const PPB_TCPServerSocket_Private_0_1*
-GetPPB_TCPServerSocket_Private_0_1_Thunk() {
-  return &g_ppb_tcp_server_socket_thunk_0_1;
-}
-
-const PPB_TCPServerSocket_Private_0_2*
-GetPPB_TCPServerSocket_Private_0_2_Thunk() {
-  return &g_ppb_tcp_server_socket_thunk_0_2;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_tcp_socket_api.h b/thunk/ppb_tcp_socket_api.h
deleted file mode 100644
index beebec3..0000000
--- a/thunk/ppb_tcp_socket_api.h
+++ /dev/null
@@ -1,52 +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.
-
-#ifndef PPAPI_THUNK_PPB_TCP_SOCKET_API_H_
-#define PPAPI_THUNK_PPB_TCP_SOCKET_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/ppb_tcp_socket.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_TCPSocket_API {
- public:
-  virtual ~PPB_TCPSocket_API() {}
-
-  virtual int32_t Bind(PP_Resource addr,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Connect(PP_Resource addr,
-                          scoped_refptr<TrackedCallback> callback) = 0;
-  virtual PP_Resource GetLocalAddress() = 0;
-  virtual PP_Resource GetRemoteAddress() = 0;
-  virtual int32_t Read(char* buffer,
-                       int32_t bytes_to_read,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Write(const char* buffer,
-                        int32_t bytes_to_write,
-                        scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Listen(int32_t backlog,
-                         scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Accept(PP_Resource* accepted_tcp_socket,
-                         scoped_refptr<TrackedCallback> callback) = 0;
-  virtual void Close() = 0;
-  virtual int32_t SetOption1_1(PP_TCPSocket_Option name,
-                               const PP_Var& value,
-                               scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t SetOption(PP_TCPSocket_Option name,
-                            const PP_Var& value,
-                            scoped_refptr<TrackedCallback> callback) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_TCP_SOCKET_API_H_
diff --git a/thunk/ppb_tcp_socket_private_api.h b/thunk/ppb_tcp_socket_private_api.h
deleted file mode 100644
index 927bd70..0000000
--- a/thunk/ppb_tcp_socket_private_api.h
+++ /dev/null
@@ -1,53 +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_THUNK_PPB_TCP_SOCKET_PRIVATE_API_H_
-#define PPAPI_THUNK_PPB_TCP_SOCKET_PRIVATE_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/private/ppb_tcp_socket_private.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_TCPSocket_Private_API {
- public:
-  virtual ~PPB_TCPSocket_Private_API() {}
-
-  virtual int32_t Connect(const char* host,
-                          uint16_t port,
-                          scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t ConnectWithNetAddress(
-      const PP_NetAddress_Private* addr,
-      scoped_refptr<TrackedCallback> callback) = 0;
-  virtual PP_Bool GetLocalAddress(PP_NetAddress_Private* local_addr) = 0;
-  virtual PP_Bool GetRemoteAddress(PP_NetAddress_Private* remote_addr) = 0;
-  virtual int32_t SSLHandshake(const char* server_name,
-                               uint16_t server_port,
-                               scoped_refptr<TrackedCallback> callback) = 0;
-  virtual PP_Resource GetServerCertificate() = 0;
-  virtual PP_Bool AddChainBuildingCertificate(PP_Resource certificate,
-                                              PP_Bool trusted) = 0;
-  virtual int32_t Read(char* buffer,
-                       int32_t bytes_to_read,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Write(const char* buffer,
-                        int32_t bytes_to_write,
-                        scoped_refptr<TrackedCallback> callback) = 0;
-  virtual void Disconnect() = 0;
-  virtual int32_t SetOption(PP_TCPSocketOption_Private name,
-                            const PP_Var& value,
-                            scoped_refptr<TrackedCallback> callback) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_TCP_SOCKET_PRIVATE_API_H_
diff --git a/thunk/ppb_tcp_socket_private_thunk.cc b/thunk/ppb_tcp_socket_private_thunk.cc
deleted file mode 100644
index a520312..0000000
--- a/thunk/ppb_tcp_socket_private_thunk.cc
+++ /dev/null
@@ -1,196 +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 "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/private/ppb_tcp_socket_private.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_tcp_socket_private_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-typedef EnterResource<PPB_TCPSocket_Private_API> EnterTCP;
-
-PP_Resource Create(PP_Instance instance) {
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateTCPSocketPrivate(instance);
-}
-
-PP_Bool IsTCPSocket(PP_Resource resource) {
-  EnterTCP enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Connect(PP_Resource tcp_socket,
-                const char* host,
-                uint16_t port,
-                PP_CompletionCallback callback) {
-  EnterTCP enter(tcp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Connect(host, port, enter.callback()));
-}
-
-int32_t ConnectWithNetAddress(PP_Resource tcp_socket,
-                              const PP_NetAddress_Private* addr,
-                              PP_CompletionCallback callback) {
-  EnterTCP enter(tcp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->ConnectWithNetAddress(addr, enter.callback()));
-}
-
-PP_Bool GetLocalAddress(PP_Resource tcp_socket,
-                        PP_NetAddress_Private* local_addr) {
-  EnterTCP enter(tcp_socket, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->GetLocalAddress(local_addr);
-}
-
-PP_Bool GetRemoteAddress(PP_Resource tcp_socket,
-                         PP_NetAddress_Private* remote_addr) {
-  EnterTCP enter(tcp_socket, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->GetRemoteAddress(remote_addr);
-}
-
-int32_t SSLHandshake(PP_Resource tcp_socket,
-                     const char* server_name,
-                     uint16_t server_port,
-                     PP_CompletionCallback callback) {
-  EnterTCP enter(tcp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->SSLHandshake(server_name, server_port,
-                                                      enter.callback()));
-}
-
-PP_Resource GetServerCertificate(PP_Resource tcp_socket) {
-  EnterTCP enter(tcp_socket, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetServerCertificate();
-}
-
-PP_Bool AddChainBuildingCertificate(PP_Resource tcp_socket,
-                                    PP_Resource certificate,
-                                    PP_Bool trusted) {
-  EnterTCP enter(tcp_socket, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->AddChainBuildingCertificate(certificate, trusted);
-}
-
-int32_t Read(PP_Resource tcp_socket,
-             char* buffer,
-             int32_t bytes_to_read,
-             PP_CompletionCallback callback) {
-  EnterTCP enter(tcp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Read(buffer, bytes_to_read,
-                                              enter.callback()));
-}
-
-int32_t Write(PP_Resource tcp_socket,
-              const char* buffer,
-              int32_t bytes_to_write,
-              PP_CompletionCallback callback) {
-  EnterTCP enter(tcp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Write(buffer, bytes_to_write,
-                                               enter.callback()));
-}
-
-void Disconnect(PP_Resource tcp_socket) {
-  EnterTCP enter(tcp_socket, true);
-  if (enter.succeeded())
-    enter.object()->Disconnect();
-}
-
-int32_t SetOption(PP_Resource tcp_socket,
-                  PP_TCPSocketOption_Private name,
-                  PP_Var value,
-                  PP_CompletionCallback callback) {
-  EnterTCP enter(tcp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->SetOption(name, value, enter.callback()));
-}
-
-const PPB_TCPSocket_Private_0_3 g_ppb_tcp_socket_thunk_0_3 = {
-  &Create,
-  &IsTCPSocket,
-  &Connect,
-  &ConnectWithNetAddress,
-  &GetLocalAddress,
-  &GetRemoteAddress,
-  &SSLHandshake,
-  &Read,
-  &Write,
-  &Disconnect
-};
-
-const PPB_TCPSocket_Private_0_4 g_ppb_tcp_socket_thunk_0_4 = {
-  &Create,
-  &IsTCPSocket,
-  &Connect,
-  &ConnectWithNetAddress,
-  &GetLocalAddress,
-  &GetRemoteAddress,
-  &SSLHandshake,
-  &GetServerCertificate,
-  &AddChainBuildingCertificate,
-  &Read,
-  &Write,
-  &Disconnect
-};
-
-const PPB_TCPSocket_Private_0_5 g_ppb_tcp_socket_thunk_0_5 = {
-  &Create,
-  &IsTCPSocket,
-  &Connect,
-  &ConnectWithNetAddress,
-  &GetLocalAddress,
-  &GetRemoteAddress,
-  &SSLHandshake,
-  &GetServerCertificate,
-  &AddChainBuildingCertificate,
-  &Read,
-  &Write,
-  &Disconnect,
-  &SetOption
-};
-
-}  // namespace
-
-const PPB_TCPSocket_Private_0_3* GetPPB_TCPSocket_Private_0_3_Thunk() {
-  return &g_ppb_tcp_socket_thunk_0_3;
-}
-
-const PPB_TCPSocket_Private_0_4* GetPPB_TCPSocket_Private_0_4_Thunk() {
-  return &g_ppb_tcp_socket_thunk_0_4;
-}
-
-const PPB_TCPSocket_Private_0_5* GetPPB_TCPSocket_Private_0_5_Thunk() {
-  return &g_ppb_tcp_socket_thunk_0_5;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_tcp_socket_thunk.cc b/thunk/ppb_tcp_socket_thunk.cc
deleted file mode 100644
index c9f3ca5..0000000
--- a/thunk/ppb_tcp_socket_thunk.cc
+++ /dev/null
@@ -1,221 +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.
-
-// From ppb_tcp_socket.idl modified Sun Sep 15 16:14:21 2013.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_tcp_socket.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/ppb_tcp_socket_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create_1_0(PP_Instance instance) {
-  VLOG(4) << "PPB_TCPSocket::Create_1_0()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateTCPSocket1_0(instance);
-}
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_TCPSocket::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateTCPSocket(instance);
-}
-
-PP_Bool IsTCPSocket(PP_Resource resource) {
-  VLOG(4) << "PPB_TCPSocket::IsTCPSocket()";
-  EnterResource<PPB_TCPSocket_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Bind(PP_Resource tcp_socket,
-             PP_Resource addr,
-             struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_TCPSocket::Bind()";
-  EnterResource<PPB_TCPSocket_API> enter(tcp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Bind(addr, enter.callback()));
-}
-
-int32_t Connect(PP_Resource tcp_socket,
-                PP_Resource addr,
-                struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_TCPSocket::Connect()";
-  EnterResource<PPB_TCPSocket_API> enter(tcp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Connect(addr, enter.callback()));
-}
-
-PP_Resource GetLocalAddress(PP_Resource tcp_socket) {
-  VLOG(4) << "PPB_TCPSocket::GetLocalAddress()";
-  EnterResource<PPB_TCPSocket_API> enter(tcp_socket, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetLocalAddress();
-}
-
-PP_Resource GetRemoteAddress(PP_Resource tcp_socket) {
-  VLOG(4) << "PPB_TCPSocket::GetRemoteAddress()";
-  EnterResource<PPB_TCPSocket_API> enter(tcp_socket, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetRemoteAddress();
-}
-
-int32_t Read(PP_Resource tcp_socket,
-             char* buffer,
-             int32_t bytes_to_read,
-             struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_TCPSocket::Read()";
-  EnterResource<PPB_TCPSocket_API> enter(tcp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Read(buffer,
-                                              bytes_to_read,
-                                              enter.callback()));
-}
-
-int32_t Write(PP_Resource tcp_socket,
-              const char* buffer,
-              int32_t bytes_to_write,
-              struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_TCPSocket::Write()";
-  EnterResource<PPB_TCPSocket_API> enter(tcp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Write(buffer,
-                                               bytes_to_write,
-                                               enter.callback()));
-}
-
-int32_t Listen(PP_Resource tcp_socket,
-               int32_t backlog,
-               struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_TCPSocket::Listen()";
-  EnterResource<PPB_TCPSocket_API> enter(tcp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Listen(backlog, enter.callback()));
-}
-
-int32_t Accept(PP_Resource tcp_socket,
-               PP_Resource* accepted_tcp_socket,
-               struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_TCPSocket::Accept()";
-  EnterResource<PPB_TCPSocket_API> enter(tcp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Accept(accepted_tcp_socket,
-                                                enter.callback()));
-}
-
-void Close(PP_Resource tcp_socket) {
-  VLOG(4) << "PPB_TCPSocket::Close()";
-  EnterResource<PPB_TCPSocket_API> enter(tcp_socket, true);
-  if (enter.failed())
-    return;
-  enter.object()->Close();
-}
-
-int32_t SetOption1_1(PP_Resource tcp_socket,
-                     PP_TCPSocket_Option name,
-                     struct PP_Var value,
-                     struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_TCPSocket::SetOption1_1()";
-  EnterResource<PPB_TCPSocket_API> enter(tcp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->SetOption1_1(name,
-                                                      value,
-                                                      enter.callback()));
-}
-
-int32_t SetOption(PP_Resource tcp_socket,
-                  PP_TCPSocket_Option name,
-                  struct PP_Var value,
-                  struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_TCPSocket::SetOption()";
-  EnterResource<PPB_TCPSocket_API> enter(tcp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->SetOption(name,
-                                                   value,
-                                                   enter.callback()));
-}
-
-const PPB_TCPSocket_1_0 g_ppb_tcpsocket_thunk_1_0 = {
-  &Create_1_0,
-  &IsTCPSocket,
-  &Connect,
-  &GetLocalAddress,
-  &GetRemoteAddress,
-  &Read,
-  &Write,
-  &Close,
-  &SetOption1_1
-};
-
-const PPB_TCPSocket_1_1 g_ppb_tcpsocket_thunk_1_1 = {
-  &Create,
-  &IsTCPSocket,
-  &Bind,
-  &Connect,
-  &GetLocalAddress,
-  &GetRemoteAddress,
-  &Read,
-  &Write,
-  &Listen,
-  &Accept,
-  &Close,
-  &SetOption1_1
-};
-
-const PPB_TCPSocket_1_2 g_ppb_tcpsocket_thunk_1_2 = {
-  &Create,
-  &IsTCPSocket,
-  &Bind,
-  &Connect,
-  &GetLocalAddress,
-  &GetRemoteAddress,
-  &Read,
-  &Write,
-  &Listen,
-  &Accept,
-  &Close,
-  &SetOption
-};
-
-}  // namespace
-
-const PPB_TCPSocket_1_0* GetPPB_TCPSocket_1_0_Thunk() {
-  return &g_ppb_tcpsocket_thunk_1_0;
-}
-
-const PPB_TCPSocket_1_1* GetPPB_TCPSocket_1_1_Thunk() {
-  return &g_ppb_tcpsocket_thunk_1_1;
-}
-
-const PPB_TCPSocket_1_2* GetPPB_TCPSocket_1_2_Thunk() {
-  return &g_ppb_tcpsocket_thunk_1_2;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_text_input_thunk.cc b/thunk/ppb_text_input_thunk.cc
deleted file mode 100644
index cac8782..0000000
--- a/thunk/ppb_text_input_thunk.cc
+++ /dev/null
@@ -1,127 +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 "ppapi/c/dev/ppb_text_input_dev.h"
-#include "ppapi/c/ppb_text_input_controller.h"
-#include "ppapi/shared_impl/var.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-#define STATIC_ASSERT_ENUM(a, b)                            \
-  static_assert(static_cast<int>(a) == static_cast<int>(b), \
-                "mismatching enum: " #a)
-
-STATIC_ASSERT_ENUM(PP_TEXTINPUT_TYPE_DEV_NONE, PP_TEXTINPUT_TYPE_NONE);
-STATIC_ASSERT_ENUM(PP_TEXTINPUT_TYPE_DEV_TEXT, PP_TEXTINPUT_TYPE_TEXT);
-STATIC_ASSERT_ENUM(PP_TEXTINPUT_TYPE_DEV_PASSWORD, PP_TEXTINPUT_TYPE_PASSWORD);
-STATIC_ASSERT_ENUM(PP_TEXTINPUT_TYPE_DEV_SEARCH, PP_TEXTINPUT_TYPE_SEARCH);
-STATIC_ASSERT_ENUM(PP_TEXTINPUT_TYPE_DEV_EMAIL, PP_TEXTINPUT_TYPE_EMAIL);
-STATIC_ASSERT_ENUM(PP_TEXTINPUT_TYPE_DEV_NUMBER, PP_TEXTINPUT_TYPE_NUMBER);
-STATIC_ASSERT_ENUM(PP_TEXTINPUT_TYPE_DEV_TELEPHONE,
-                   PP_TEXTINPUT_TYPE_TELEPHONE);
-STATIC_ASSERT_ENUM(PP_TEXTINPUT_TYPE_DEV_URL, PP_TEXTINPUT_TYPE_URL);
-
-void SetTextInputType(PP_Instance instance, PP_TextInput_Type type) {
-  EnterInstance enter(instance);
-  if (enter.succeeded())
-    enter.functions()->SetTextInputType(instance, type);
-}
-
-void SetTextInputType_0_2(PP_Instance instance, PP_TextInput_Type_Dev type) {
-  EnterInstance enter(instance);
-  if (enter.succeeded())
-    enter.functions()->SetTextInputType(instance,
-                                        static_cast<PP_TextInput_Type>(type));
-}
-
-void UpdateCaretPosition_0_2(PP_Instance instance,
-                         const PP_Rect* caret,
-                         const PP_Rect* bounding_box) {
-  EnterInstance enter(instance);
-  if (enter.succeeded() && caret && bounding_box)
-    enter.functions()->UpdateCaretPosition(instance, *caret, *bounding_box);
-}
-
-void UpdateCaretPosition(PP_Instance instance,
-                         const PP_Rect* caret) {
-  EnterInstance enter(instance);
-  if (enter.succeeded() && caret)
-    enter.functions()->UpdateCaretPosition(instance, *caret, PP_Rect());
-}
-
-void CancelCompositionText(PP_Instance instance) {
-  EnterInstance enter(instance);
-  if (enter.succeeded())
-    enter.functions()->CancelCompositionText(instance);
-}
-
-void UpdateSurroundingText_0_2(PP_Instance instance, const char* text,
-                               uint32_t caret, uint32_t anchor) {
-  EnterInstance enter(instance);
-  if (enter.succeeded())
-    enter.functions()->UpdateSurroundingText(instance, text, caret, anchor);
-}
-
-void UpdateSurroundingText_1_0(PP_Instance instance, PP_Var text,
-                               uint32_t caret, uint32_t anchor) {
-  EnterInstance enter(instance);
-  StringVar* var = StringVar::FromPPVar(text);
-  if (enter.succeeded() && var)
-    enter.functions()->UpdateSurroundingText(instance,
-                                             var->value().c_str(),
-                                             caret,
-                                             anchor);
-}
-
-void SelectionChanged(PP_Instance instance) {
-  EnterInstance enter(instance);
-  if (enter.succeeded())
-    enter.functions()->SelectionChanged(instance);
-}
-
-const PPB_TextInput_Dev_0_1 g_ppb_textinput_0_1_thunk = {
-  &SetTextInputType_0_2,
-  &UpdateCaretPosition_0_2,
-  &CancelCompositionText,
-};
-
-const PPB_TextInput_Dev_0_2 g_ppb_textinput_0_2_thunk = {
-  &SetTextInputType_0_2,
-  &UpdateCaretPosition_0_2,
-  &CancelCompositionText,
-  &UpdateSurroundingText_0_2,
-  &SelectionChanged,
-};
-
-const PPB_TextInputController_1_0 g_ppb_textinputcontroller_1_0_thunk = {
-  &SetTextInputType,
-  &UpdateCaretPosition,
-  &CancelCompositionText,
-  &UpdateSurroundingText_1_0,
-};
-
-}  // namespace
-
-const PPB_TextInput_Dev_0_1* GetPPB_TextInput_Dev_0_1_Thunk() {
-  return &g_ppb_textinput_0_1_thunk;
-}
-
-const PPB_TextInput_Dev_0_2* GetPPB_TextInput_Dev_0_2_Thunk() {
-  return &g_ppb_textinput_0_2_thunk;
-}
-
-const PPB_TextInputController_1_0* GetPPB_TextInputController_1_0_Thunk() {
-  return &g_ppb_textinputcontroller_1_0_thunk;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_udp_socket_api.h b/thunk/ppb_udp_socket_api.h
deleted file mode 100644
index 4c09a2e..0000000
--- a/thunk/ppb_udp_socket_api.h
+++ /dev/null
@@ -1,54 +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.
-
-#ifndef PPAPI_THUNK_PPB_UDP_SOCKET_API_H_
-#define PPAPI_THUNK_PPB_UDP_SOCKET_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/ppb_udp_socket.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_UDPSocket_API {
- public:
-  virtual ~PPB_UDPSocket_API() {}
-
-  virtual int32_t Bind(PP_Resource addr,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-  virtual PP_Resource GetBoundAddress() = 0;
-  virtual int32_t RecvFrom(char* buffer,
-                           int32_t num_bytes,
-                           PP_Resource* addr,
-                           scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t SendTo(const char* buffer,
-                         int32_t num_bytes,
-                         PP_Resource addr,
-                         scoped_refptr<TrackedCallback> callback) = 0;
-  virtual void Close() = 0;
-  virtual int32_t SetOption1_0(PP_UDPSocket_Option name,
-                               const PP_Var& value,
-                               scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t SetOption1_1(PP_UDPSocket_Option name,
-                               const PP_Var& value,
-                               scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t SetOption(PP_UDPSocket_Option name,
-                            const PP_Var& value,
-                            scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t JoinGroup(PP_Resource group,
-                            scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t LeaveGroup(PP_Resource group,
-                            scoped_refptr<TrackedCallback> callback) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_UDP_SOCKET_API_H_
diff --git a/thunk/ppb_udp_socket_private_api.h b/thunk/ppb_udp_socket_private_api.h
deleted file mode 100644
index fa96236..0000000
--- a/thunk/ppb_udp_socket_private_api.h
+++ /dev/null
@@ -1,43 +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_THUNK_PPB_UDP_SOCKET_PRIVATE_API_H_
-#define PPAPI_THUNK_PPB_UDP_SOCKET_PRIVATE_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/private/ppb_udp_socket_private.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_UDPSocket_Private_API {
- public:
-  virtual ~PPB_UDPSocket_Private_API() {}
-
-  virtual int32_t SetSocketFeature(PP_UDPSocketFeature_Private name,
-                                   PP_Var value) = 0;
-  virtual int32_t Bind(const PP_NetAddress_Private* addr,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-  virtual PP_Bool GetBoundAddress(PP_NetAddress_Private* addr) = 0;
-  virtual int32_t RecvFrom(char* buffer,
-                           int32_t num_bytes,
-                           scoped_refptr<TrackedCallback> callback) = 0;
-  virtual PP_Bool GetRecvFromAddress(PP_NetAddress_Private* addr) = 0;
-  virtual int32_t SendTo(const char* buffer,
-                         int32_t num_bytes,
-                         const PP_NetAddress_Private* addr,
-                         scoped_refptr<TrackedCallback> callback) = 0;
-  virtual void Close() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_UDP_SOCKET_PRIVATE_API_H_
diff --git a/thunk/ppb_udp_socket_private_thunk.cc b/thunk/ppb_udp_socket_private_thunk.cc
deleted file mode 100644
index 0375282..0000000
--- a/thunk/ppb_udp_socket_private_thunk.cc
+++ /dev/null
@@ -1,150 +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 "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/private/ppb_udp_socket_private.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_udp_socket_private_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-typedef EnterResource<PPB_UDPSocket_Private_API> EnterUDP;
-
-PP_Resource Create(PP_Instance instance) {
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateUDPSocketPrivate(instance);
-}
-
-PP_Bool IsUDPSocket(PP_Resource resource) {
-  EnterUDP enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t SetSocketFeature(PP_Resource udp_socket,
-                         PP_UDPSocketFeature_Private name,
-                         PP_Var value) {
-  EnterUDP enter(udp_socket, true);
-  if (enter.failed())
-    return PP_ERROR_BADRESOURCE;
-  return enter.object()->SetSocketFeature(name, value);
-}
-
-int32_t Bind(PP_Resource udp_socket,
-             const PP_NetAddress_Private *addr,
-             PP_CompletionCallback callback) {
-  EnterUDP enter(udp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Bind(addr, enter.callback()));
-}
-
-PP_Bool GetBoundAddress(PP_Resource udp_socket,
-                        PP_NetAddress_Private* addr) {
-  EnterUDP enter(udp_socket, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->GetBoundAddress(addr);
-}
-
-int32_t RecvFrom(PP_Resource udp_socket,
-                 char* buffer,
-                 int32_t num_bytes,
-                 PP_CompletionCallback callback) {
-#ifdef NDEBUG
-  EnterUDP enter(udp_socket, callback, false);
-#else
-  EnterUDP enter(udp_socket, callback, true);
-#endif
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->RecvFrom(buffer, num_bytes,
-                                                  enter.callback()));
-}
-
-PP_Bool GetRecvFromAddress(PP_Resource udp_socket,
-                           PP_NetAddress_Private* addr) {
-  EnterUDP enter(udp_socket, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->GetRecvFromAddress(addr);
-}
-
-int32_t SendTo(PP_Resource udp_socket,
-               const char* buffer,
-               int32_t num_bytes,
-               const PP_NetAddress_Private* addr,
-               PP_CompletionCallback callback) {
-  EnterUDP enter(udp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->SendTo(buffer, num_bytes, addr,
-                                                enter.callback()));
-}
-
-void Close(PP_Resource udp_socket) {
-  EnterUDP enter(udp_socket, true);
-  if (enter.succeeded())
-    enter.object()->Close();
-}
-
-const PPB_UDPSocket_Private_0_2 g_ppb_udp_socket_thunk_0_2 = {
-  &Create,
-  &IsUDPSocket,
-  &Bind,
-  &RecvFrom,
-  &GetRecvFromAddress,
-  &SendTo,
-  &Close
-};
-
-const PPB_UDPSocket_Private_0_3 g_ppb_udp_socket_thunk_0_3 = {
-  &Create,
-  &IsUDPSocket,
-  &Bind,
-  &GetBoundAddress,
-  &RecvFrom,
-  &GetRecvFromAddress,
-  &SendTo,
-  &Close
-};
-
-const PPB_UDPSocket_Private_0_4 g_ppb_udp_socket_thunk_0_4 = {
-  &Create,
-  &IsUDPSocket,
-  &SetSocketFeature,
-  &Bind,
-  &GetBoundAddress,
-  &RecvFrom,
-  &GetRecvFromAddress,
-  &SendTo,
-  &Close
-};
-
-}  // namespace
-
-const PPB_UDPSocket_Private_0_2* GetPPB_UDPSocket_Private_0_2_Thunk() {
-  return &g_ppb_udp_socket_thunk_0_2;
-}
-
-const PPB_UDPSocket_Private_0_3* GetPPB_UDPSocket_Private_0_3_Thunk() {
-  return &g_ppb_udp_socket_thunk_0_3;
-}
-
-const PPB_UDPSocket_Private_0_4* GetPPB_UDPSocket_Private_0_4_Thunk() {
-  return &g_ppb_udp_socket_thunk_0_4;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_udp_socket_thunk.cc b/thunk/ppb_udp_socket_thunk.cc
deleted file mode 100644
index a86486e..0000000
--- a/thunk/ppb_udp_socket_thunk.cc
+++ /dev/null
@@ -1,172 +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.
-
-// From ppb_udp_socket.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_udp_socket.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_udp_socket_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_UDPSocket::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateUDPSocket(instance);
-}
-
-PP_Bool IsUDPSocket(PP_Resource resource) {
-  VLOG(4) << "PPB_UDPSocket::IsUDPSocket()";
-  EnterResource<PPB_UDPSocket_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Bind(PP_Resource udp_socket,
-             PP_Resource addr,
-             struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_UDPSocket::Bind()";
-  EnterResource<PPB_UDPSocket_API> enter(udp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Bind(addr, enter.callback()));
-}
-
-PP_Resource GetBoundAddress(PP_Resource udp_socket) {
-  VLOG(4) << "PPB_UDPSocket::GetBoundAddress()";
-  EnterResource<PPB_UDPSocket_API> enter(udp_socket, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetBoundAddress();
-}
-
-int32_t RecvFrom(PP_Resource udp_socket,
-                 char* buffer,
-                 int32_t num_bytes,
-                 PP_Resource* addr,
-                 struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_UDPSocket::RecvFrom()";
-  EnterResource<PPB_UDPSocket_API> enter(udp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->RecvFrom(buffer, num_bytes, addr, enter.callback()));
-}
-
-int32_t SendTo(PP_Resource udp_socket,
-               const char* buffer,
-               int32_t num_bytes,
-               PP_Resource addr,
-               struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_UDPSocket::SendTo()";
-  EnterResource<PPB_UDPSocket_API> enter(udp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->SendTo(buffer, num_bytes, addr, enter.callback()));
-}
-
-void Close(PP_Resource udp_socket) {
-  VLOG(4) << "PPB_UDPSocket::Close()";
-  EnterResource<PPB_UDPSocket_API> enter(udp_socket, true);
-  if (enter.failed())
-    return;
-  enter.object()->Close();
-}
-
-int32_t SetOption_1_0(PP_Resource udp_socket,
-                      PP_UDPSocket_Option name,
-                      struct PP_Var value,
-                      struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_UDPSocket::SetOption_1_0()";
-  EnterResource<PPB_UDPSocket_API> enter(udp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->SetOption1_0(name, value, enter.callback()));
-}
-
-int32_t SetOption_1_1(PP_Resource udp_socket,
-                      PP_UDPSocket_Option name,
-                      struct PP_Var value,
-                      struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_UDPSocket::SetOption_1_1()";
-  EnterResource<PPB_UDPSocket_API> enter(udp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->SetOption1_1(name, value, enter.callback()));
-}
-
-int32_t SetOption(PP_Resource udp_socket,
-                  PP_UDPSocket_Option name,
-                  struct PP_Var value,
-                  struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_UDPSocket::SetOption()";
-  EnterResource<PPB_UDPSocket_API> enter(udp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->SetOption(name, value, enter.callback()));
-}
-
-int32_t JoinGroup(PP_Resource udp_socket,
-                  PP_Resource group,
-                  struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_UDPSocket::JoinGroup()";
-  EnterResource<PPB_UDPSocket_API> enter(udp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->JoinGroup(group, enter.callback()));
-}
-
-int32_t LeaveGroup(PP_Resource udp_socket,
-                   PP_Resource group,
-                   struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_UDPSocket::LeaveGroup()";
-  EnterResource<PPB_UDPSocket_API> enter(udp_socket, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->LeaveGroup(group, enter.callback()));
-}
-
-const PPB_UDPSocket_1_0 g_ppb_udpsocket_thunk_1_0 = {
-    &Create,   &IsUDPSocket, &Bind,  &GetBoundAddress,
-    &RecvFrom, &SendTo,      &Close, &SetOption_1_0};
-
-const PPB_UDPSocket_1_1 g_ppb_udpsocket_thunk_1_1 = {
-    &Create,   &IsUDPSocket, &Bind,  &GetBoundAddress,
-    &RecvFrom, &SendTo,      &Close, &SetOption_1_1};
-
-const PPB_UDPSocket_1_2 g_ppb_udpsocket_thunk_1_2 = {
-    &Create, &IsUDPSocket, &Bind,      &GetBoundAddress, &RecvFrom,
-    &SendTo, &Close,       &SetOption, &JoinGroup,       &LeaveGroup};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_UDPSocket_1_0* GetPPB_UDPSocket_1_0_Thunk() {
-  return &g_ppb_udpsocket_thunk_1_0;
-}
-
-PPAPI_THUNK_EXPORT const PPB_UDPSocket_1_1* GetPPB_UDPSocket_1_1_Thunk() {
-  return &g_ppb_udpsocket_thunk_1_1;
-}
-
-PPAPI_THUNK_EXPORT const PPB_UDPSocket_1_2* GetPPB_UDPSocket_1_2_Thunk() {
-  return &g_ppb_udpsocket_thunk_1_2;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_uma_private_thunk.cc b/thunk/ppb_uma_private_thunk.cc
deleted file mode 100644
index ab5fae9..0000000
--- a/thunk/ppb_uma_private_thunk.cc
+++ /dev/null
@@ -1,84 +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.
-
-// From private/ppb_uma_private.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/private/ppb_uma_private.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_uma_singleton_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-void HistogramCustomTimes(PP_Instance instance,
-                          struct PP_Var name,
-                          int64_t sample,
-                          int64_t min,
-                          int64_t max,
-                          uint32_t bucket_count) {
-  VLOG(4) << "PPB_UMA_Private::HistogramCustomTimes()";
-  EnterInstanceAPI<PPB_UMA_Singleton_API> enter(instance);
-  if (enter.failed())
-    return;
-  enter.functions()->HistogramCustomTimes(instance, name, sample, min, max,
-                                          bucket_count);
-}
-
-void HistogramCustomCounts(PP_Instance instance,
-                           struct PP_Var name,
-                           int32_t sample,
-                           int32_t min,
-                           int32_t max,
-                           uint32_t bucket_count) {
-  VLOG(4) << "PPB_UMA_Private::HistogramCustomCounts()";
-  EnterInstanceAPI<PPB_UMA_Singleton_API> enter(instance);
-  if (enter.failed())
-    return;
-  enter.functions()->HistogramCustomCounts(instance, name, sample, min, max,
-                                           bucket_count);
-}
-
-void HistogramEnumeration(PP_Instance instance,
-                          struct PP_Var name,
-                          int32_t sample,
-                          int32_t boundary_value) {
-  VLOG(4) << "PPB_UMA_Private::HistogramEnumeration()";
-  EnterInstanceAPI<PPB_UMA_Singleton_API> enter(instance);
-  if (enter.failed())
-    return;
-  enter.functions()->HistogramEnumeration(instance, name, sample,
-                                          boundary_value);
-}
-
-int32_t IsCrashReportingEnabled(PP_Instance instance,
-                                struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_UMA_Private::IsCrashReportingEnabled()";
-  EnterInstanceAPI<PPB_UMA_Singleton_API> enter(instance, callback);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.functions()->IsCrashReportingEnabled(instance, enter.callback()));
-}
-
-const PPB_UMA_Private_0_3 g_ppb_uma_private_thunk_0_3 = {
-    &HistogramCustomTimes, &HistogramCustomCounts, &HistogramEnumeration,
-    &IsCrashReportingEnabled};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_UMA_Private_0_3* GetPPB_UMA_Private_0_3_Thunk() {
-  return &g_ppb_uma_private_thunk_0_3;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_uma_singleton_api.h b/thunk/ppb_uma_singleton_api.h
deleted file mode 100644
index 2ed073c..0000000
--- a/thunk/ppb_uma_singleton_api.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_THUNK_PPB_UMA_SINGLETON_API_H_
-#define PPAPI_THUNK_PPB_UMA_SINGLETON_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/shared_impl/singleton_resource_id.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_UMA_Singleton_API {
- public:
-  virtual ~PPB_UMA_Singleton_API() {}
-
-  virtual void HistogramCustomTimes(PP_Instance instance,
-                                    struct PP_Var name,
-                                    int64_t sample,
-                                    int64_t min,
-                                    int64_t max,
-                                    uint32_t bucket_count) = 0;
-
-  virtual void HistogramCustomCounts(PP_Instance instance,
-                                     struct PP_Var name,
-                                     int32_t sample,
-                                     int32_t min,
-                                     int32_t max,
-                                     uint32_t bucket_count) = 0;
-
-  virtual void HistogramEnumeration(PP_Instance instance,
-                                    struct PP_Var name,
-                                    int32_t sample,
-                                    int32_t boundary_value) = 0;
-
-  virtual int32_t IsCrashReportingEnabled(
-      PP_Instance instance,
-      scoped_refptr<TrackedCallback> cc) = 0;
-
-  static const SingletonResourceID kSingletonResourceID = UMA_SINGLETON_ID;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_UMA_SINGLETON_API_H_
diff --git a/thunk/ppb_url_loader_api.h b/thunk/ppb_url_loader_api.h
deleted file mode 100644
index 2daaa82..0000000
--- a/thunk/ppb_url_loader_api.h
+++ /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.
-
-#ifndef PPAPI_THUNK_PPB_URL_LOADER_API_H_
-#define PPAPI_THUNK_PPB_URL_LOADER_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/ppb_url_loader.h"
-#include "ppapi/c/trusted/ppb_url_loader_trusted.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-struct URLRequestInfoData;
-
-namespace thunk {
-
-class PPB_URLLoader_API {
- public:
-  virtual ~PPB_URLLoader_API() {}
-
-  // Open given the resource ID of a PPB_URLRequestInfo resource.
-  virtual int32_t Open(PP_Resource request_id,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-
-  // Internal open given a URLRequestInfoData and requestor_pid, which
-  // indicates the process that requested and will consume the data.
-  // Pass 0 for requestor_pid to indicate the current process.
-  virtual int32_t Open(const URLRequestInfoData& data,
-                       int requestor_pid,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-
-  virtual int32_t FollowRedirect(scoped_refptr<TrackedCallback> callback) = 0;
-  virtual PP_Bool GetUploadProgress(int64_t* bytes_sent,
-                                    int64_t* total_bytes_to_be_sent) = 0;
-  virtual PP_Bool GetDownloadProgress(int64_t* bytes_received,
-                                      int64_t* total_bytes_to_be_received) = 0;
-  virtual PP_Resource GetResponseInfo() = 0;
-  virtual int32_t ReadResponseBody(void* buffer,
-                                   int32_t bytes_to_read,
-                                   scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t FinishStreamingToFile(
-      scoped_refptr<TrackedCallback> callback) = 0;
-  virtual void Close() = 0;
-
-  // Trusted API.
-  virtual void GrantUniversalAccess() = 0;
-  virtual void RegisterStatusCallback(
-      PP_URLLoaderTrusted_StatusCallback cb) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_URL_LOADER_API_H_
diff --git a/thunk/ppb_url_loader_thunk.cc b/thunk/ppb_url_loader_thunk.cc
deleted file mode 100644
index dfbf086..0000000
--- a/thunk/ppb_url_loader_thunk.cc
+++ /dev/null
@@ -1,140 +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.
-
-// From ppb_url_loader.idl modified Tue May  7 14:43:00 2013.
-
-#include <stdint.h>
-#include <string.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_url_loader.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_url_loader_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_URLLoader::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateURLLoader(instance);
-}
-
-PP_Bool IsURLLoader(PP_Resource resource) {
-  VLOG(4) << "PPB_URLLoader::IsURLLoader()";
-  EnterResource<PPB_URLLoader_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Open(PP_Resource loader,
-             PP_Resource request_info,
-             struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_URLLoader::Open()";
-  EnterResource<PPB_URLLoader_API> enter(loader, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Open(request_info, enter.callback()));
-}
-
-int32_t FollowRedirect(PP_Resource loader,
-                       struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_URLLoader::FollowRedirect()";
-  EnterResource<PPB_URLLoader_API> enter(loader, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->FollowRedirect(enter.callback()));
-}
-
-PP_Bool GetUploadProgress(PP_Resource loader,
-                          int64_t* bytes_sent,
-                          int64_t* total_bytes_to_be_sent) {
-  VLOG(4) << "PPB_URLLoader::GetUploadProgress()";
-  EnterResource<PPB_URLLoader_API> enter(loader, true);
-  if (enter.failed()) {
-    memset(bytes_sent, 0, sizeof(*bytes_sent));
-    memset(total_bytes_to_be_sent, 0, sizeof(*total_bytes_to_be_sent));
-    return PP_FALSE;
-  }
-  return enter.object()->GetUploadProgress(bytes_sent, total_bytes_to_be_sent);
-}
-
-PP_Bool GetDownloadProgress(PP_Resource loader,
-                            int64_t* bytes_received,
-                            int64_t* total_bytes_to_be_received) {
-  VLOG(4) << "PPB_URLLoader::GetDownloadProgress()";
-  EnterResource<PPB_URLLoader_API> enter(loader, true);
-  if (enter.failed()) {
-    memset(bytes_received, 0, sizeof(*bytes_received));
-    memset(total_bytes_to_be_received, 0, sizeof(*total_bytes_to_be_received));
-    return PP_FALSE;
-  }
-  return enter.object()->GetDownloadProgress(bytes_received,
-                                             total_bytes_to_be_received);
-}
-
-PP_Resource GetResponseInfo(PP_Resource loader) {
-  VLOG(4) << "PPB_URLLoader::GetResponseInfo()";
-  EnterResource<PPB_URLLoader_API> enter(loader, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetResponseInfo();
-}
-
-int32_t ReadResponseBody(PP_Resource loader,
-                         void* buffer,
-                         int32_t bytes_to_read,
-                         struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_URLLoader::ReadResponseBody()";
-  EnterResource<PPB_URLLoader_API> enter(loader, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->ReadResponseBody(buffer, bytes_to_read,
-                                                          enter.callback()));
-}
-
-int32_t FinishStreamingToFile(PP_Resource loader,
-                              struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_URLLoader::FinishStreamingToFile()";
-  EnterResource<PPB_URLLoader_API> enter(loader, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->FinishStreamingToFile(enter.callback()));
-}
-
-void Close(PP_Resource loader) {
-  VLOG(4) << "PPB_URLLoader::Close()";
-  EnterResource<PPB_URLLoader_API> enter(loader, true);
-  if (enter.failed())
-    return;
-  enter.object()->Close();
-}
-
-const PPB_URLLoader_1_0 g_ppb_urlloader_thunk_1_0 = {&Create,
-                                                     &IsURLLoader,
-                                                     &Open,
-                                                     &FollowRedirect,
-                                                     &GetUploadProgress,
-                                                     &GetDownloadProgress,
-                                                     &GetResponseInfo,
-                                                     &ReadResponseBody,
-                                                     &FinishStreamingToFile,
-                                                     &Close};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_URLLoader_1_0* GetPPB_URLLoader_1_0_Thunk() {
-  return &g_ppb_urlloader_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_url_loader_trusted_thunk.cc b/thunk/ppb_url_loader_trusted_thunk.cc
deleted file mode 100644
index ca1f620..0000000
--- a/thunk/ppb_url_loader_trusted_thunk.cc
+++ /dev/null
@@ -1,50 +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.
-
-// From trusted/ppb_url_loader_trusted.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/trusted/ppb_url_loader_trusted.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_url_loader_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-void GrantUniversalAccess(PP_Resource loader) {
-  VLOG(4) << "PPB_URLLoaderTrusted::GrantUniversalAccess()";
-  EnterResource<PPB_URLLoader_API> enter(loader, true);
-  if (enter.failed())
-    return;
-  enter.object()->GrantUniversalAccess();
-}
-
-void RegisterStatusCallback(PP_Resource loader,
-                            PP_URLLoaderTrusted_StatusCallback cb) {
-  VLOG(4) << "PPB_URLLoaderTrusted::RegisterStatusCallback()";
-  EnterResource<PPB_URLLoader_API> enter(loader, true);
-  if (enter.failed())
-    return;
-  enter.object()->RegisterStatusCallback(cb);
-}
-
-const PPB_URLLoaderTrusted_0_3 g_ppb_urlloadertrusted_thunk_0_3 = {
-    &GrantUniversalAccess, &RegisterStatusCallback};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_URLLoaderTrusted_0_3*
-GetPPB_URLLoaderTrusted_0_3_Thunk() {
-  return &g_ppb_urlloadertrusted_thunk_0_3;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_url_request_info_api.h b/thunk/ppb_url_request_info_api.h
deleted file mode 100644
index 6c34be3..0000000
--- a/thunk/ppb_url_request_info_api.h
+++ /dev/null
@@ -1,38 +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_THUNK_PPB_URL_REQUEST_INFO_API_H_
-#define PPAPI_THUNK_PPB_URL_REQUEST_INFO_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_url_request_info.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-struct URLRequestInfoData;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_URLRequestInfo_API {
- public:
-  virtual ~PPB_URLRequestInfo_API() {}
-
-  virtual PP_Bool SetProperty(PP_URLRequestProperty property,
-                              PP_Var var) = 0;
-  virtual PP_Bool AppendDataToBody(const void* data, uint32_t len) = 0;
-  virtual PP_Bool AppendFileToBody(PP_Resource file_ref,
-                                   int64_t start_offset,
-                                   int64_t number_of_bytes,
-                                   PP_Time expected_last_modified_time) = 0;
-
-  // Internal-only function for retrieving the current config.
-  virtual const URLRequestInfoData& GetData() const = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_URL_REQUEST_INFO_API_H_
diff --git a/thunk/ppb_url_request_info_thunk.cc b/thunk/ppb_url_request_info_thunk.cc
deleted file mode 100644
index a5f3e8a..0000000
--- a/thunk/ppb_url_request_info_thunk.cc
+++ /dev/null
@@ -1,79 +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.
-
-// From ppb_url_request_info.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_url_request_info.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_url_request_info_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_URLRequestInfo::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateURLRequestInfo(instance);
-}
-
-PP_Bool IsURLRequestInfo(PP_Resource resource) {
-  VLOG(4) << "PPB_URLRequestInfo::IsURLRequestInfo()";
-  EnterResource<PPB_URLRequestInfo_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-PP_Bool SetProperty(PP_Resource request,
-                    PP_URLRequestProperty property,
-                    struct PP_Var value) {
-  VLOG(4) << "PPB_URLRequestInfo::SetProperty()";
-  EnterResource<PPB_URLRequestInfo_API> enter(request, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->SetProperty(property, value);
-}
-
-PP_Bool AppendDataToBody(PP_Resource request, const void* data, uint32_t len) {
-  VLOG(4) << "PPB_URLRequestInfo::AppendDataToBody()";
-  EnterResource<PPB_URLRequestInfo_API> enter(request, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->AppendDataToBody(data, len);
-}
-
-PP_Bool AppendFileToBody(PP_Resource request,
-                         PP_Resource file_ref,
-                         int64_t start_offset,
-                         int64_t number_of_bytes,
-                         PP_Time expected_last_modified_time) {
-  VLOG(4) << "PPB_URLRequestInfo::AppendFileToBody()";
-  EnterResource<PPB_URLRequestInfo_API> enter(request, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->AppendFileToBody(
-      file_ref, start_offset, number_of_bytes, expected_last_modified_time);
-}
-
-const PPB_URLRequestInfo_1_0 g_ppb_urlrequestinfo_thunk_1_0 = {
-    &Create, &IsURLRequestInfo, &SetProperty, &AppendDataToBody,
-    &AppendFileToBody};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_URLRequestInfo_1_0*
-GetPPB_URLRequestInfo_1_0_Thunk() {
-  return &g_ppb_urlrequestinfo_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_url_response_info_api.h b/thunk/ppb_url_response_info_api.h
deleted file mode 100644
index 933c931..0000000
--- a/thunk/ppb_url_response_info_api.h
+++ /dev/null
@@ -1,25 +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_THUNK_PPB_URL_RESPONSE_INFO_API_H_
-#define PPAPI_THUNK_PPB_URL_RESPONSE_INFO_API_H_
-
-#include "ppapi/c/ppb_url_response_info.h"
-#include "ppapi/shared_impl/url_response_info_data.h"
-
-namespace ppapi {
-namespace thunk {
-
-class PPB_URLResponseInfo_API {
- public:
-  virtual ~PPB_URLResponseInfo_API() {}
-
-  virtual PP_Var GetProperty(PP_URLResponseProperty property) = 0;
-  virtual PP_Resource GetBodyAsFileRef() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_URL_RESPONSE_INFO_API_H_
diff --git a/thunk/ppb_url_response_info_thunk.cc b/thunk/ppb_url_response_info_thunk.cc
deleted file mode 100644
index ba3dbec..0000000
--- a/thunk/ppb_url_response_info_thunk.cc
+++ /dev/null
@@ -1,56 +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.
-
-// From ppb_url_response_info.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_url_response_info.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_url_response_info_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Bool IsURLResponseInfo(PP_Resource resource) {
-  VLOG(4) << "PPB_URLResponseInfo::IsURLResponseInfo()";
-  EnterResource<PPB_URLResponseInfo_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-struct PP_Var GetProperty(PP_Resource response,
-                          PP_URLResponseProperty property) {
-  VLOG(4) << "PPB_URLResponseInfo::GetProperty()";
-  EnterResource<PPB_URLResponseInfo_API> enter(response, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetProperty(property);
-}
-
-PP_Resource GetBodyAsFileRef(PP_Resource response) {
-  VLOG(4) << "PPB_URLResponseInfo::GetBodyAsFileRef()";
-  EnterResource<PPB_URLResponseInfo_API> enter(response, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetBodyAsFileRef();
-}
-
-const PPB_URLResponseInfo_1_0 g_ppb_urlresponseinfo_thunk_1_0 = {
-    &IsURLResponseInfo, &GetProperty, &GetBodyAsFileRef};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_URLResponseInfo_1_0*
-GetPPB_URLResponseInfo_1_0_Thunk() {
-  return &g_ppb_urlresponseinfo_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_url_util_thunk.cc b/thunk/ppb_url_util_thunk.cc
deleted file mode 100644
index 4670f11..0000000
--- a/thunk/ppb_url_util_thunk.cc
+++ /dev/null
@@ -1,98 +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/c/pp_errors.h"
-#include "ppapi/shared_impl/ppb_url_util_shared.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_instance_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Var ResolveRelativeToDocument(PP_Instance instance,
-                                 PP_Var relative,
-                                 PP_URLComponents_Dev* components) {
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.functions()->ResolveRelativeToDocument(instance, relative,
-                                                      components);
-}
-
-PP_Bool DocumentCanRequest(PP_Instance instance, PP_Var url) {
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.functions()->DocumentCanRequest(instance, url);
-}
-
-PP_Bool DocumentCanAccessDocument(PP_Instance active, PP_Instance target) {
-  EnterInstance enter(active);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.functions()->DocumentCanAccessDocument(active, target);
-}
-
-PP_Var GetDocumentURL(PP_Instance instance,
-                      PP_URLComponents_Dev* components) {
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.functions()->GetDocumentURL(instance, components);
-}
-
-PP_Var GetPluginInstanceURL(PP_Instance instance,
-                            PP_URLComponents_Dev* components) {
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.functions()->GetPluginInstanceURL(instance, components);
-}
-
-PP_Var GetPluginReferrerURL(PP_Instance instance,
-                            PP_URLComponents_Dev* components) {
-  EnterInstance enter(instance);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.functions()->GetPluginReferrerURL(instance, components);
-}
-
-const PPB_URLUtil_Dev_0_6 g_ppb_url_util_0_6 = {
-  &PPB_URLUtil_Shared::Canonicalize,
-  &PPB_URLUtil_Shared::ResolveRelativeToURL,
-  &ResolveRelativeToDocument,
-  &PPB_URLUtil_Shared::IsSameSecurityOrigin,
-  &DocumentCanRequest,
-  &DocumentCanAccessDocument,
-  &GetDocumentURL,
-  &GetPluginInstanceURL
-};
-
-const PPB_URLUtil_Dev_0_7 g_ppb_url_util_0_7 = {
-  &PPB_URLUtil_Shared::Canonicalize,
-  &PPB_URLUtil_Shared::ResolveRelativeToURL,
-  &ResolveRelativeToDocument,
-  &PPB_URLUtil_Shared::IsSameSecurityOrigin,
-  &DocumentCanRequest,
-  &DocumentCanAccessDocument,
-  &GetDocumentURL,
-  &GetPluginInstanceURL,
-  &GetPluginReferrerURL
-};
-
-}  // namespace
-
-const PPB_URLUtil_Dev_0_6* GetPPB_URLUtil_Dev_0_6_Thunk() {
-  return &g_ppb_url_util_0_6;
-}
-
-const PPB_URLUtil_Dev_0_7* GetPPB_URLUtil_Dev_0_7_Thunk() {
-  return &g_ppb_url_util_0_7;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_var_array_thunk.cc b/thunk/ppb_var_array_thunk.cc
deleted file mode 100644
index 2d7ffae..0000000
--- a/thunk/ppb_var_array_thunk.cc
+++ /dev/null
@@ -1,76 +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.
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_var_array.h"
-#include "ppapi/shared_impl/array_var.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Var Create() {
-  ProxyAutoLock lock;
-
-  // Var tracker will hold a reference to this object.
-  ArrayVar* var = new ArrayVar();
-  return var->GetPPVar();
-}
-
-PP_Var Get(PP_Var array, uint32_t index) {
-  ProxyAutoLock lock;
-
-  ArrayVar* array_var = ArrayVar::FromPPVar(array);
-  if (!array_var)
-    return PP_MakeUndefined();
-  return array_var->Get(index);
-}
-
-PP_Bool Set(PP_Var array, uint32_t index, PP_Var value) {
-  ProxyAutoLock lock;
-
-  ArrayVar* array_var = ArrayVar::FromPPVar(array);
-  if (!array_var)
-    return PP_FALSE;
-  return array_var->Set(index, value);
-}
-
-uint32_t GetLength(PP_Var array) {
-  ProxyAutoLock lock;
-
-  ArrayVar* array_var = ArrayVar::FromPPVar(array);
-  if (!array_var)
-    return 0;
-  return array_var->GetLength();
-}
-
-PP_Bool SetLength(PP_Var array, uint32_t length) {
-  ProxyAutoLock lock;
-
-  ArrayVar* array_var = ArrayVar::FromPPVar(array);
-  if (!array_var)
-    return PP_FALSE;
-  return array_var->SetLength(length);
-}
-
-const PPB_VarArray_1_0 g_ppb_vararray_1_0_thunk = {
-  &Create,
-  &Get,
-  &Set,
-  &GetLength,
-  &SetLength
-};
-
-}  // namespace
-
-const PPB_VarArray_1_0* GetPPB_VarArray_1_0_Thunk() {
-  return &g_ppb_vararray_1_0_thunk;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_var_dictionary_thunk.cc b/thunk/ppb_var_dictionary_thunk.cc
deleted file mode 100644
index 26b72d1..0000000
--- a/thunk/ppb_var_dictionary_thunk.cc
+++ /dev/null
@@ -1,86 +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.
-
-#include "ppapi/c/ppb_var_dictionary.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_var.h"
-#include "ppapi/shared_impl/dictionary_var.h"
-#include "ppapi/shared_impl/proxy_lock.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Var Create() {
-  ProxyAutoLock lock;
-
-  // Var tracker will hold a reference to this object.
-  DictionaryVar* var = new DictionaryVar();
-  return var->GetPPVar();
-}
-
-PP_Var Get(PP_Var dict, PP_Var key) {
-  ProxyAutoLock lock;
-
-  DictionaryVar* dict_var = DictionaryVar::FromPPVar(dict);
-  if (!dict_var)
-    return PP_MakeUndefined();
-  return dict_var->Get(key);
-}
-
-PP_Bool Set(PP_Var dict, PP_Var key, PP_Var value) {
-  ProxyAutoLock lock;
-
-  DictionaryVar* dict_var = DictionaryVar::FromPPVar(dict);
-  if (!dict_var)
-    return PP_FALSE;
-
-  return dict_var->Set(key, value);
-}
-
-void Delete(PP_Var dict, PP_Var key) {
-  ProxyAutoLock lock;
-
-  DictionaryVar* dict_var = DictionaryVar::FromPPVar(dict);
-  if (dict_var)
-    dict_var->Delete(key);
-}
-
-PP_Bool HasKey(PP_Var dict, PP_Var key) {
-  ProxyAutoLock lock;
-
-  DictionaryVar* dict_var = DictionaryVar::FromPPVar(dict);
-  if (!dict_var)
-    return PP_FALSE;
-  return dict_var->HasKey(key);
-}
-
-PP_Var GetKeys(PP_Var dict) {
-  ProxyAutoLock lock;
-
-  DictionaryVar* dict_var = DictionaryVar::FromPPVar(dict);
-  if (!dict_var)
-    return PP_MakeNull();
-  return dict_var->GetKeys();
-}
-
-const PPB_VarDictionary_1_0 g_ppb_vardictionary_1_0_thunk = {
-  &Create,
-  &Get,
-  &Set,
-  &Delete,
-  &HasKey,
-  &GetKeys
-};
-
-}  // namespace
-
-const PPB_VarDictionary_1_0* GetPPB_VarDictionary_1_0_Thunk() {
-  return &g_ppb_vardictionary_1_0_thunk;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_video_capture_api.h b/thunk/ppb_video_capture_api.h
deleted file mode 100644
index fbaf498..0000000
--- a/thunk/ppb_video_capture_api.h
+++ /dev/null
@@ -1,48 +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_THUNK_PPB_VIDEO_CAPTURE_API_H_
-#define PPAPI_THUNK_PPB_VIDEO_CAPTURE_API_H_
-
-#include <stdint.h>
-
-#include <string>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/dev/ppb_video_capture_dev.h"
-#include "ppapi/c/pp_array_output.h"
-#include "ppapi/c/pp_resource.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPB_VideoCapture_API {
- public:
-  virtual ~PPB_VideoCapture_API() {}
-
-  virtual int32_t EnumerateDevices(const PP_ArrayOutput& output,
-                                   scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t MonitorDeviceChange(PP_MonitorDeviceChangeCallback callback,
-                                      void* user_data) = 0;
-  virtual int32_t Open(const std::string& device_id,
-                       const PP_VideoCaptureDeviceInfo_Dev& requested_info,
-                       uint32_t buffer_count,
-                       scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t StartCapture() = 0;
-  virtual int32_t ReuseBuffer(uint32_t buffer) = 0;
-  virtual int32_t StopCapture() = 0;
-  virtual void Close() = 0;
-
-  // This function is not exposed through the C API.  It is only used by flash
-  // to make synchronous device enumeration.
-  virtual int32_t EnumerateDevicesSync(const PP_ArrayOutput& devices) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_VIDEO_CAPTURE_API_H_
diff --git a/thunk/ppb_video_capture_thunk.cc b/thunk/ppb_video_capture_thunk.cc
deleted file mode 100644
index 6688cc1..0000000
--- a/thunk/ppb_video_capture_thunk.cc
+++ /dev/null
@@ -1,125 +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 "ppapi/c/pp_errors.h"
-#include "ppapi/shared_impl/ppb_device_ref_shared.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_device_ref_api.h"
-#include "ppapi/thunk/ppb_video_capture_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-typedef EnterResource<PPB_VideoCapture_API> EnterVideoCapture;
-
-PP_Resource Create(PP_Instance instance) {
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateVideoCapture(instance);
-}
-
-PP_Bool IsVideoCapture(PP_Resource resource) {
-  EnterVideoCapture enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t EnumerateDevices(PP_Resource video_capture,
-                         PP_ArrayOutput output,
-                         PP_CompletionCallback callback) {
-  EnterVideoCapture enter(video_capture, callback, true);
-  if (enter.failed())
-    return enter.retval();
-
-  return enter.SetResult(enter.object()->EnumerateDevices(output,
-                                                          enter.callback()));
-}
-
-int32_t MonitorDeviceChange(PP_Resource video_capture,
-                            PP_MonitorDeviceChangeCallback callback,
-                            void* user_data) {
-  EnterVideoCapture enter(video_capture, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->MonitorDeviceChange(callback, user_data);
-}
-
-int32_t Open(PP_Resource video_capture,
-             PP_Resource device_ref,
-             const PP_VideoCaptureDeviceInfo_Dev* requested_info,
-             uint32_t buffer_count,
-             PP_CompletionCallback callback) {
-  EnterVideoCapture enter(video_capture, callback, true);
-  if (enter.failed())
-    return enter.retval();
-
-  std::string device_id;
-  // |device_id| remains empty if |device_ref| is 0, which means the default
-  // device.
-  if (device_ref != 0) {
-    EnterResourceNoLock<PPB_DeviceRef_API> enter_device_ref(device_ref, true);
-    if (enter_device_ref.failed())
-      return enter.SetResult(PP_ERROR_BADRESOURCE);
-    device_id = enter_device_ref.object()->GetDeviceRefData().id;
-  }
-
-  return enter.SetResult(enter.object()->Open(
-      device_id, *requested_info, buffer_count, enter.callback()));
-}
-
-int32_t StartCapture(PP_Resource video_capture) {
-  EnterVideoCapture enter(video_capture, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->StartCapture();
-}
-
-int32_t ReuseBuffer(PP_Resource video_capture,
-                    uint32_t buffer) {
-  EnterVideoCapture enter(video_capture, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->ReuseBuffer(buffer);
-}
-
-int32_t StopCapture(PP_Resource video_capture) {
-  EnterVideoCapture enter(video_capture, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->StopCapture();
-}
-
-void Close(PP_Resource video_capture) {
-  EnterVideoCapture enter(video_capture, true);
-  if (enter.succeeded())
-    enter.object()->Close();
-}
-
-const PPB_VideoCapture_Dev_0_3 g_ppb_video_capture_0_3_thunk = {
-  &Create,
-  &IsVideoCapture,
-  &EnumerateDevices,
-  &MonitorDeviceChange,
-  &Open,
-  &StartCapture,
-  &ReuseBuffer,
-  &StopCapture,
-  &Close
-};
-
-}  // namespace
-
-const PPB_VideoCapture_Dev_0_3* GetPPB_VideoCapture_Dev_0_3_Thunk() {
-  return &g_ppb_video_capture_0_3_thunk;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_video_decoder_api.h b/thunk/ppb_video_decoder_api.h
deleted file mode 100644
index eefa956..0000000
--- a/thunk/ppb_video_decoder_api.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_THUNK_PPB_VIDEO_DECODER_API_H_
-#define PPAPI_THUNK_PPB_VIDEO_DECODER_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_codecs.h"
-#include "ppapi/c/ppb_video_decoder.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_VideoDecoder_API {
- public:
-  virtual ~PPB_VideoDecoder_API() {}
-
-  virtual int32_t Initialize0_1(PP_Resource graphics3d_context,
-                                PP_VideoProfile profile,
-                                PP_Bool allow_software_fallback,
-                                scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Initialize0_2(PP_Resource graphics3d_context,
-                                PP_VideoProfile profile,
-                                PP_HardwareAcceleration acceleration,
-                                scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Initialize(PP_Resource graphics3d_context,
-                             PP_VideoProfile profile,
-                             PP_HardwareAcceleration acceleration,
-                             uint32_t min_picture_count,
-                             scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Decode(uint32_t decode_id,
-                         uint32_t size,
-                         const void* buffer,
-                         scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t GetPicture0_1(PP_VideoPicture_0_1* picture,
-                                scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t GetPicture(PP_VideoPicture* picture,
-                             scoped_refptr<TrackedCallback> callback) = 0;
-  virtual void RecyclePicture(const PP_VideoPicture* picture) = 0;
-  virtual int32_t Flush(scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Reset(scoped_refptr<TrackedCallback> callback) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_VIDEO_DECODER_API_H_
diff --git a/thunk/ppb_video_decoder_dev_api.h b/thunk/ppb_video_decoder_dev_api.h
deleted file mode 100644
index 23ffdf9..0000000
--- a/thunk/ppb_video_decoder_dev_api.h
+++ /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.
-
-#ifndef PPAPI_THUNK_PPB_VIDEO_DECODER_DEV_API_H_
-#define PPAPI_THUNK_PPB_VIDEO_DECODER_DEV_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/dev/ppb_video_decoder_dev.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPB_VideoDecoder_Dev_API {
- public:
-  virtual ~PPB_VideoDecoder_Dev_API() {}
-
-  virtual int32_t Decode(const PP_VideoBitstreamBuffer_Dev* bitstream_buffer,
-                         scoped_refptr<TrackedCallback> callback) = 0;
-  virtual void AssignPictureBuffers(uint32_t no_of_buffers,
-                                    const PP_PictureBuffer_Dev* buffers) = 0;
-  virtual void ReusePictureBuffer(int32_t picture_buffer_id) = 0;
-  virtual int32_t Flush(scoped_refptr<TrackedCallback> callback) = 0;
-  virtual int32_t Reset(scoped_refptr<TrackedCallback> callback) = 0;
-  virtual void Destroy() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_VIDEO_DECODER_DEV_API_H_
diff --git a/thunk/ppb_video_decoder_dev_thunk.cc b/thunk/ppb_video_decoder_dev_thunk.cc
deleted file mode 100644
index 79d2b2c..0000000
--- a/thunk/ppb_video_decoder_dev_thunk.cc
+++ /dev/null
@@ -1,98 +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 "ppapi/c/pp_errors.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_video_decoder_dev_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-typedef EnterResource<PPB_VideoDecoder_Dev_API> EnterVideoDecoder;
-
-PP_Resource Create(PP_Instance instance,
-                   PP_Resource graphics_3d,
-                   PP_VideoDecoder_Profile profile) {
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateVideoDecoderDev(
-      instance, graphics_3d, profile);
-}
-
-PP_Bool IsVideoDecoder(PP_Resource resource) {
-  EnterVideoDecoder enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Decode(PP_Resource video_decoder,
-               const PP_VideoBitstreamBuffer_Dev* bitstream_buffer,
-               PP_CompletionCallback callback) {
-  EnterVideoDecoder enter(video_decoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->Decode(bitstream_buffer, enter.callback()));
-}
-
-void AssignPictureBuffers(PP_Resource video_decoder,
-                          uint32_t no_of_buffers,
-                          const PP_PictureBuffer_Dev* buffers) {
-  EnterVideoDecoder enter(video_decoder, true);
-  if (enter.succeeded())
-    enter.object()->AssignPictureBuffers(no_of_buffers, buffers);
-}
-
-void ReusePictureBuffer(PP_Resource video_decoder, int32_t picture_buffer_id) {
-  EnterVideoDecoder enter(video_decoder, true);
-  if (enter.succeeded())
-    enter.object()->ReusePictureBuffer(picture_buffer_id);
-}
-
-int32_t Flush(PP_Resource video_decoder, PP_CompletionCallback callback) {
-  EnterVideoDecoder enter(video_decoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Flush(enter.callback()));
-}
-
-int32_t Reset(PP_Resource video_decoder, PP_CompletionCallback callback) {
-  EnterVideoDecoder enter(video_decoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Reset(enter.callback()));
-}
-
-void Destroy(PP_Resource video_decoder) {
-  EnterVideoDecoder enter(video_decoder, true);
-  if (enter.succeeded())
-    enter.object()->Destroy();
-}
-
-const PPB_VideoDecoder_Dev g_ppb_videodecoder_dev_thunk = {
-  &Create,
-  &IsVideoDecoder,
-  &Decode,
-  &AssignPictureBuffers,
-  &ReusePictureBuffer,
-  &Flush,
-  &Reset,
-  &Destroy
-};
-
-}  // namespace
-
-const PPB_VideoDecoder_Dev_0_16* GetPPB_VideoDecoder_Dev_0_16_Thunk() {
-  return &g_ppb_videodecoder_dev_thunk;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_video_decoder_thunk.cc b/thunk/ppb_video_decoder_thunk.cc
deleted file mode 100644
index a47d38c..0000000
--- a/thunk/ppb_video_decoder_thunk.cc
+++ /dev/null
@@ -1,174 +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.
-
-// From ppb_video_decoder.idl modified Wed Aug 12 17:59:47 2015.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_video_decoder.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_video_decoder_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_VideoDecoder::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateVideoDecoder(instance);
-}
-
-PP_Bool IsVideoDecoder(PP_Resource resource) {
-  VLOG(4) << "PPB_VideoDecoder::IsVideoDecoder()";
-  EnterResource<PPB_VideoDecoder_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Initialize_0_1(PP_Resource video_decoder,
-                       PP_Resource graphics3d_context,
-                       PP_VideoProfile profile,
-                       PP_Bool allow_software_fallback,
-                       struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VideoDecoder::Initialize_0_1()";
-  EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Initialize0_1(
-      graphics3d_context, profile, allow_software_fallback, enter.callback()));
-}
-
-int32_t Initialize_0_2(PP_Resource video_decoder,
-                       PP_Resource graphics3d_context,
-                       PP_VideoProfile profile,
-                       PP_HardwareAcceleration acceleration,
-                       struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VideoDecoder::Initialize_0_2()";
-  EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Initialize0_2(
-      graphics3d_context, profile, acceleration, enter.callback()));
-}
-
-int32_t Initialize(PP_Resource video_decoder,
-                   PP_Resource graphics3d_context,
-                   PP_VideoProfile profile,
-                   PP_HardwareAcceleration acceleration,
-                   uint32_t min_picture_count,
-                   struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VideoDecoder::Initialize()";
-  EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->Initialize(graphics3d_context, profile, acceleration,
-                                 min_picture_count, enter.callback()));
-}
-
-int32_t Decode(PP_Resource video_decoder,
-               uint32_t decode_id,
-               uint32_t size,
-               const void* buffer,
-               struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VideoDecoder::Decode()";
-  EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->Decode(decode_id, size, buffer, enter.callback()));
-}
-
-int32_t GetPicture_0_1(PP_Resource video_decoder,
-                       struct PP_VideoPicture_0_1* picture,
-                       struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VideoDecoder::GetPicture_0_1()";
-  EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->GetPicture0_1(picture, enter.callback()));
-}
-
-int32_t GetPicture(PP_Resource video_decoder,
-                   struct PP_VideoPicture* picture,
-                   struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VideoDecoder::GetPicture()";
-  EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->GetPicture(picture, enter.callback()));
-}
-
-void RecyclePicture(PP_Resource video_decoder,
-                    const struct PP_VideoPicture* picture) {
-  VLOG(4) << "PPB_VideoDecoder::RecyclePicture()";
-  EnterResource<PPB_VideoDecoder_API> enter(video_decoder, true);
-  if (enter.failed())
-    return;
-  enter.object()->RecyclePicture(picture);
-}
-
-int32_t Flush(PP_Resource video_decoder,
-              struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VideoDecoder::Flush()";
-  EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Flush(enter.callback()));
-}
-
-int32_t Reset(PP_Resource video_decoder,
-              struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VideoDecoder::Reset()";
-  EnterResource<PPB_VideoDecoder_API> enter(video_decoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Reset(enter.callback()));
-}
-
-const PPB_VideoDecoder_0_1 g_ppb_videodecoder_thunk_0_1 = {
-    &Create,         &IsVideoDecoder, &Initialize_0_1, &Decode,
-    &GetPicture_0_1, &RecyclePicture, &Flush,          &Reset};
-
-const PPB_VideoDecoder_0_2 g_ppb_videodecoder_thunk_0_2 = {
-    &Create,         &IsVideoDecoder, &Initialize_0_2, &Decode,
-    &GetPicture_0_1, &RecyclePicture, &Flush,          &Reset};
-
-const PPB_VideoDecoder_1_0 g_ppb_videodecoder_thunk_1_0 = {
-    &Create,     &IsVideoDecoder, &Initialize_0_2, &Decode,
-    &GetPicture, &RecyclePicture, &Flush,          &Reset};
-
-const PPB_VideoDecoder_1_1 g_ppb_videodecoder_thunk_1_1 = {
-    &Create,     &IsVideoDecoder, &Initialize, &Decode,
-    &GetPicture, &RecyclePicture, &Flush,      &Reset};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_VideoDecoder_0_1* GetPPB_VideoDecoder_0_1_Thunk() {
-  return &g_ppb_videodecoder_thunk_0_1;
-}
-
-PPAPI_THUNK_EXPORT const PPB_VideoDecoder_0_2* GetPPB_VideoDecoder_0_2_Thunk() {
-  return &g_ppb_videodecoder_thunk_0_2;
-}
-
-PPAPI_THUNK_EXPORT const PPB_VideoDecoder_1_0* GetPPB_VideoDecoder_1_0_Thunk() {
-  return &g_ppb_videodecoder_thunk_1_0;
-}
-
-PPAPI_THUNK_EXPORT const PPB_VideoDecoder_1_1* GetPPB_VideoDecoder_1_1_Thunk() {
-  return &g_ppb_videodecoder_thunk_1_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_video_encoder_api.h b/thunk/ppb_video_encoder_api.h
deleted file mode 100644
index 8ecc2dd..0000000
--- a/thunk/ppb_video_encoder_api.h
+++ /dev/null
@@ -1,58 +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_THUNK_PPB_VIDEO_ENCODER_API_H_
-#define PPAPI_THUNK_PPB_VIDEO_ENCODER_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/pp_codecs.h"
-#include "ppapi/c/ppb_video_encoder.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_VideoEncoder_API {
- public:
-  virtual ~PPB_VideoEncoder_API() {}
-
-  virtual int32_t GetSupportedProfiles(
-      const PP_ArrayOutput& output,
-      const scoped_refptr<TrackedCallback>& callback) = 0;
-  virtual int32_t GetSupportedProfiles0_1(
-      const PP_ArrayOutput& output,
-      const scoped_refptr<TrackedCallback>& callback) = 0;
-  virtual int32_t Initialize(
-      PP_VideoFrame_Format input_format,
-      const PP_Size* input_visible_size,
-      PP_VideoProfile output_profile,
-      uint32_t initial_bitrate,
-      PP_HardwareAcceleration acceleration,
-      const scoped_refptr<TrackedCallback>& callback) = 0;
-  virtual int32_t GetFramesRequired() = 0;
-  virtual int32_t GetFrameCodedSize(PP_Size* size) = 0;
-  virtual int32_t GetVideoFrame(
-      PP_Resource* video_frame,
-      const scoped_refptr<TrackedCallback>& callback) = 0;
-  virtual int32_t Encode(PP_Resource video_frame,
-                         PP_Bool force_keyframe,
-                         const scoped_refptr<TrackedCallback>& callback) = 0;
-  virtual int32_t GetBitstreamBuffer(
-      PP_BitstreamBuffer* bitstream_buffer,
-      const scoped_refptr<TrackedCallback>& callback) = 0;
-  virtual void RecycleBitstreamBuffer(
-      const PP_BitstreamBuffer* bitstream_buffer) = 0;
-  virtual void RequestEncodingParametersChange(uint32_t bitrate,
-                                               uint32_t framerate) = 0;
-  virtual void Close() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_VIDEO_ENCODER_API_H_
diff --git a/thunk/ppb_video_encoder_thunk.cc b/thunk/ppb_video_encoder_thunk.cc
deleted file mode 100644
index 09ce7f3..0000000
--- a/thunk/ppb_video_encoder_thunk.cc
+++ /dev/null
@@ -1,192 +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.
-
-// From ppb_video_encoder.idl modified Mon May 18 12:43:25 2015.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_video_encoder.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_video_encoder_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_VideoEncoder::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateVideoEncoder(instance);
-}
-
-PP_Bool IsVideoEncoder(PP_Resource resource) {
-  VLOG(4) << "PPB_VideoEncoder::IsVideoEncoder()";
-  EnterResource<PPB_VideoEncoder_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t GetSupportedProfiles_0_1(PP_Resource video_encoder,
-                                 struct PP_ArrayOutput output,
-                                 struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VideoEncoder::GetSupportedProfiles_0_1()";
-  EnterResource<PPB_VideoEncoder_API> enter(video_encoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->GetSupportedProfiles0_1(output, enter.callback()));
-}
-
-int32_t GetSupportedProfiles(PP_Resource video_encoder,
-                             struct PP_ArrayOutput output,
-                             struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VideoEncoder::GetSupportedProfiles()";
-  EnterResource<PPB_VideoEncoder_API> enter(video_encoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->GetSupportedProfiles(output, enter.callback()));
-}
-
-int32_t 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) {
-  VLOG(4) << "PPB_VideoEncoder::Initialize()";
-  EnterResource<PPB_VideoEncoder_API> enter(video_encoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Initialize(
-      input_format, input_visible_size, output_profile, initial_bitrate,
-      acceleration, enter.callback()));
-}
-
-int32_t GetFramesRequired(PP_Resource video_encoder) {
-  VLOG(4) << "PPB_VideoEncoder::GetFramesRequired()";
-  EnterResource<PPB_VideoEncoder_API> enter(video_encoder, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->GetFramesRequired();
-}
-
-int32_t GetFrameCodedSize(PP_Resource video_encoder,
-                          struct PP_Size* coded_size) {
-  VLOG(4) << "PPB_VideoEncoder::GetFrameCodedSize()";
-  EnterResource<PPB_VideoEncoder_API> enter(video_encoder, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->GetFrameCodedSize(coded_size);
-}
-
-int32_t GetVideoFrame(PP_Resource video_encoder,
-                      PP_Resource* video_frame,
-                      struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VideoEncoder::GetVideoFrame()";
-  EnterResource<PPB_VideoEncoder_API> enter(video_encoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->GetVideoFrame(video_frame, enter.callback()));
-}
-
-int32_t Encode(PP_Resource video_encoder,
-               PP_Resource video_frame,
-               PP_Bool force_keyframe,
-               struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VideoEncoder::Encode()";
-  EnterResource<PPB_VideoEncoder_API> enter(video_encoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->Encode(video_frame, force_keyframe, enter.callback()));
-}
-
-int32_t GetBitstreamBuffer(PP_Resource video_encoder,
-                           struct PP_BitstreamBuffer* bitstream_buffer,
-                           struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VideoEncoder::GetBitstreamBuffer()";
-  EnterResource<PPB_VideoEncoder_API> enter(video_encoder, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->GetBitstreamBuffer(bitstream_buffer, enter.callback()));
-}
-
-void RecycleBitstreamBuffer(PP_Resource video_encoder,
-                            const struct PP_BitstreamBuffer* bitstream_buffer) {
-  VLOG(4) << "PPB_VideoEncoder::RecycleBitstreamBuffer()";
-  EnterResource<PPB_VideoEncoder_API> enter(video_encoder, true);
-  if (enter.failed())
-    return;
-  enter.object()->RecycleBitstreamBuffer(bitstream_buffer);
-}
-
-void RequestEncodingParametersChange(PP_Resource video_encoder,
-                                     uint32_t bitrate,
-                                     uint32_t framerate) {
-  VLOG(4) << "PPB_VideoEncoder::RequestEncodingParametersChange()";
-  EnterResource<PPB_VideoEncoder_API> enter(video_encoder, true);
-  if (enter.failed())
-    return;
-  enter.object()->RequestEncodingParametersChange(bitrate, framerate);
-}
-
-void Close(PP_Resource video_encoder) {
-  VLOG(4) << "PPB_VideoEncoder::Close()";
-  EnterResource<PPB_VideoEncoder_API> enter(video_encoder, true);
-  if (enter.failed())
-    return;
-  enter.object()->Close();
-}
-
-const PPB_VideoEncoder_0_1 g_ppb_videoencoder_thunk_0_1 = {
-    &Create,
-    &IsVideoEncoder,
-    &GetSupportedProfiles_0_1,
-    &Initialize,
-    &GetFramesRequired,
-    &GetFrameCodedSize,
-    &GetVideoFrame,
-    &Encode,
-    &GetBitstreamBuffer,
-    &RecycleBitstreamBuffer,
-    &RequestEncodingParametersChange,
-    &Close};
-
-const PPB_VideoEncoder_0_2 g_ppb_videoencoder_thunk_0_2 = {
-    &Create,
-    &IsVideoEncoder,
-    &GetSupportedProfiles,
-    &Initialize,
-    &GetFramesRequired,
-    &GetFrameCodedSize,
-    &GetVideoFrame,
-    &Encode,
-    &GetBitstreamBuffer,
-    &RecycleBitstreamBuffer,
-    &RequestEncodingParametersChange,
-    &Close};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_VideoEncoder_0_1* GetPPB_VideoEncoder_0_1_Thunk() {
-  return &g_ppb_videoencoder_thunk_0_1;
-}
-
-PPAPI_THUNK_EXPORT const PPB_VideoEncoder_0_2* GetPPB_VideoEncoder_0_2_Thunk() {
-  return &g_ppb_videoencoder_thunk_0_2;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_video_frame_api.h b/thunk/ppb_video_frame_api.h
deleted file mode 100644
index 61aa623..0000000
--- a/thunk/ppb_video_frame_api.h
+++ /dev/null
@@ -1,38 +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_THUNK_PPB_VIDEO_FRAME_API_H_
-#define PPAPI_THUNK_PPB_VIDEO_FRAME_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_video_frame.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-union MediaStreamBuffer;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_VideoFrame_API {
- public:
-  virtual ~PPB_VideoFrame_API() {}
-  virtual PP_TimeDelta GetTimestamp() = 0;
-  virtual void SetTimestamp(PP_TimeDelta timestamp) = 0;
-  virtual PP_VideoFrame_Format GetFormat() = 0;
-  virtual PP_Bool GetSize(PP_Size* size) = 0;
-  virtual void* GetDataBuffer() = 0;
-  virtual uint32_t GetDataBufferSize() = 0;
-
-  // Methods used by Pepper internal implementation only.
-  virtual MediaStreamBuffer* GetBuffer() = 0;
-  virtual int32_t GetBufferIndex() = 0;
-  virtual void Invalidate() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_VIDEO_FRAME_API_H_
diff --git a/thunk/ppb_video_frame_thunk.cc b/thunk/ppb_video_frame_thunk.cc
deleted file mode 100644
index 868170b..0000000
--- a/thunk/ppb_video_frame_thunk.cc
+++ /dev/null
@@ -1,87 +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.
-
-// From ppb_video_frame.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_video_frame.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_video_frame_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Bool IsVideoFrame(PP_Resource resource) {
-  VLOG(4) << "PPB_VideoFrame::IsVideoFrame()";
-  EnterResource<PPB_VideoFrame_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-PP_TimeDelta GetTimestamp(PP_Resource frame) {
-  VLOG(4) << "PPB_VideoFrame::GetTimestamp()";
-  EnterResource<PPB_VideoFrame_API> enter(frame, true);
-  if (enter.failed())
-    return 0.0;
-  return enter.object()->GetTimestamp();
-}
-
-void SetTimestamp(PP_Resource frame, PP_TimeDelta timestamp) {
-  VLOG(4) << "PPB_VideoFrame::SetTimestamp()";
-  EnterResource<PPB_VideoFrame_API> enter(frame, true);
-  if (enter.failed())
-    return;
-  enter.object()->SetTimestamp(timestamp);
-}
-
-PP_VideoFrame_Format GetFormat(PP_Resource frame) {
-  VLOG(4) << "PPB_VideoFrame::GetFormat()";
-  EnterResource<PPB_VideoFrame_API> enter(frame, true);
-  if (enter.failed())
-    return PP_VIDEOFRAME_FORMAT_UNKNOWN;
-  return enter.object()->GetFormat();
-}
-
-PP_Bool GetSize(PP_Resource frame, struct PP_Size* size) {
-  VLOG(4) << "PPB_VideoFrame::GetSize()";
-  EnterResource<PPB_VideoFrame_API> enter(frame, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->GetSize(size);
-}
-
-void* GetDataBuffer(PP_Resource frame) {
-  VLOG(4) << "PPB_VideoFrame::GetDataBuffer()";
-  EnterResource<PPB_VideoFrame_API> enter(frame, true);
-  if (enter.failed())
-    return NULL;
-  return enter.object()->GetDataBuffer();
-}
-
-uint32_t GetDataBufferSize(PP_Resource frame) {
-  VLOG(4) << "PPB_VideoFrame::GetDataBufferSize()";
-  EnterResource<PPB_VideoFrame_API> enter(frame, true);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetDataBufferSize();
-}
-
-const PPB_VideoFrame_0_1 g_ppb_videoframe_thunk_0_1 = {
-    &IsVideoFrame, &GetTimestamp,  &SetTimestamp,     &GetFormat,
-    &GetSize,      &GetDataBuffer, &GetDataBufferSize};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_VideoFrame_0_1* GetPPB_VideoFrame_0_1_Thunk() {
-  return &g_ppb_videoframe_thunk_0_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_view_api.h b/thunk/ppb_view_api.h
deleted file mode 100644
index 50ba73f..0000000
--- a/thunk/ppb_view_api.h
+++ /dev/null
@@ -1,36 +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_THUNK_PPB_VIEW_API_H_
-#define PPAPI_THUNK_PPB_VIEW_API_H_
-
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-struct ViewData;
-
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_View_API {
- public:
-  virtual ~PPB_View_API() {}
-
-  // Returns the view data struct.
-  virtual const ViewData& GetData() const = 0;
-
-  virtual PP_Bool GetRect(PP_Rect* viewport) const = 0;
-  virtual PP_Bool IsFullscreen() const = 0;
-  virtual PP_Bool IsVisible() const = 0;
-  virtual PP_Bool IsPageVisible() const = 0;
-  virtual PP_Bool GetClipRect(PP_Rect* clip) const = 0;
-  virtual float GetDeviceScale() const = 0;
-  virtual float GetCSSScale() const = 0;
-  virtual PP_Bool GetScrollOffset(PP_Point* offset) const = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif // PPAPI_THUNK_PPB_VIEW_API_H_
diff --git a/thunk/ppb_view_dev_thunk.cc b/thunk/ppb_view_dev_thunk.cc
deleted file mode 100644
index 4eddceb..0000000
--- a/thunk/ppb_view_dev_thunk.cc
+++ /dev/null
@@ -1,48 +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.
-
-// From dev/ppb_view_dev.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/dev/ppb_view_dev.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_view_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-float GetDeviceScale(PP_Resource resource) {
-  VLOG(4) << "PPB_View_Dev::GetDeviceScale()";
-  EnterResource<PPB_View_API> enter(resource, true);
-  if (enter.failed())
-    return 0.0f;
-  return enter.object()->GetDeviceScale();
-}
-
-float GetCSSScale(PP_Resource resource) {
-  VLOG(4) << "PPB_View_Dev::GetCSSScale()";
-  EnterResource<PPB_View_API> enter(resource, true);
-  if (enter.failed())
-    return 0.0f;
-  return enter.object()->GetCSSScale();
-}
-
-const PPB_View_Dev_0_1 g_ppb_view_dev_thunk_0_1 = {&GetDeviceScale,
-                                                   &GetCSSScale};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_View_Dev_0_1* GetPPB_View_Dev_0_1_Thunk() {
-  return &g_ppb_view_dev_thunk_0_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_view_thunk.cc b/thunk/ppb_view_thunk.cc
deleted file mode 100644
index 730e673..0000000
--- a/thunk/ppb_view_thunk.cc
+++ /dev/null
@@ -1,119 +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.
-
-// From ppb_view.idl modified Wed Jan 27 17:10:16 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_view.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_view_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Bool IsView(PP_Resource resource) {
-  VLOG(4) << "PPB_View::IsView()";
-  EnterResource<PPB_View_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-PP_Bool GetRect(PP_Resource resource, struct PP_Rect* rect) {
-  VLOG(4) << "PPB_View::GetRect()";
-  EnterResource<PPB_View_API> enter(resource, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->GetRect(rect);
-}
-
-PP_Bool IsFullscreen(PP_Resource resource) {
-  VLOG(4) << "PPB_View::IsFullscreen()";
-  EnterResource<PPB_View_API> enter(resource, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->IsFullscreen();
-}
-
-PP_Bool IsVisible(PP_Resource resource) {
-  VLOG(4) << "PPB_View::IsVisible()";
-  EnterResource<PPB_View_API> enter(resource, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->IsVisible();
-}
-
-PP_Bool IsPageVisible(PP_Resource resource) {
-  VLOG(4) << "PPB_View::IsPageVisible()";
-  EnterResource<PPB_View_API> enter(resource, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->IsPageVisible();
-}
-
-PP_Bool GetClipRect(PP_Resource resource, struct PP_Rect* clip) {
-  VLOG(4) << "PPB_View::GetClipRect()";
-  EnterResource<PPB_View_API> enter(resource, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->GetClipRect(clip);
-}
-
-float GetDeviceScale(PP_Resource resource) {
-  VLOG(4) << "PPB_View::GetDeviceScale()";
-  EnterResource<PPB_View_API> enter(resource, true);
-  if (enter.failed())
-    return 0.0f;
-  return enter.object()->GetDeviceScale();
-}
-
-float GetCSSScale(PP_Resource resource) {
-  VLOG(4) << "PPB_View::GetCSSScale()";
-  EnterResource<PPB_View_API> enter(resource, true);
-  if (enter.failed())
-    return 0.0f;
-  return enter.object()->GetCSSScale();
-}
-
-PP_Bool GetScrollOffset(PP_Resource resource, struct PP_Point* offset) {
-  VLOG(4) << "PPB_View::GetScrollOffset()";
-  EnterResource<PPB_View_API> enter(resource, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->GetScrollOffset(offset);
-}
-
-const PPB_View_1_0 g_ppb_view_thunk_1_0 = {
-    &IsView, &GetRect, &IsFullscreen, &IsVisible, &IsPageVisible, &GetClipRect};
-
-const PPB_View_1_1 g_ppb_view_thunk_1_1 = {
-    &IsView,        &GetRect,     &IsFullscreen,   &IsVisible,
-    &IsPageVisible, &GetClipRect, &GetDeviceScale, &GetCSSScale};
-
-const PPB_View_1_2 g_ppb_view_thunk_1_2 = {
-    &IsView,         &GetRect,       &IsFullscreen,
-    &IsVisible,      &IsPageVisible, &GetClipRect,
-    &GetDeviceScale, &GetCSSScale,   &GetScrollOffset};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_View_1_0* GetPPB_View_1_0_Thunk() {
-  return &g_ppb_view_thunk_1_0;
-}
-
-PPAPI_THUNK_EXPORT const PPB_View_1_1* GetPPB_View_1_1_Thunk() {
-  return &g_ppb_view_thunk_1_1;
-}
-
-PPAPI_THUNK_EXPORT const PPB_View_1_2* GetPPB_View_1_2_Thunk() {
-  return &g_ppb_view_thunk_1_2;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_vpn_provider_api.h b/thunk/ppb_vpn_provider_api.h
deleted file mode 100644
index fa01ac3..0000000
--- a/thunk/ppb_vpn_provider_api.h
+++ /dev/null
@@ -1,31 +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_THUNK_PPB_VPN_PROVIDER_API_H_
-#define PPAPI_THUNK_PPB_VPN_PROVIDER_API_H_
-
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_VpnProvider_API {
- public:
-  virtual ~PPB_VpnProvider_API() {}
-
-  virtual int32_t Bind(const PP_Var& configuration_id,
-                       const PP_Var& configuration_name,
-                       const scoped_refptr<TrackedCallback>& callback) = 0;
-  virtual int32_t SendPacket(
-      const PP_Var& packet,
-      const scoped_refptr<TrackedCallback>& callback) = 0;
-  virtual int32_t ReceivePacket(
-      PP_Var* packet,
-      const scoped_refptr<TrackedCallback>& callback) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_VPN_PROVIDER_API_H_
diff --git a/thunk/ppb_vpn_provider_thunk.cc b/thunk/ppb_vpn_provider_thunk.cc
deleted file mode 100644
index 6b497cf..0000000
--- a/thunk/ppb_vpn_provider_thunk.cc
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// From ppb_vpn_provider.idl modified Fri May  6 20:38:30 2016.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_vpn_provider.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_vpn_provider_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_VpnProvider::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateVpnProvider(instance);
-}
-
-PP_Bool IsVpnProvider(PP_Resource resource) {
-  VLOG(4) << "PPB_VpnProvider::IsVpnProvider()";
-  EnterResource<PPB_VpnProvider_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Bind(PP_Resource vpn_provider,
-             struct PP_Var configuration_id,
-             struct PP_Var configuration_name,
-             struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VpnProvider::Bind()";
-  EnterResource<PPB_VpnProvider_API> enter(vpn_provider, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Bind(
-      configuration_id, configuration_name, enter.callback()));
-}
-
-int32_t SendPacket(PP_Resource vpn_provider,
-                   struct PP_Var packet,
-                   struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VpnProvider::SendPacket()";
-  EnterResource<PPB_VpnProvider_API> enter(vpn_provider, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->SendPacket(packet, enter.callback()));
-}
-
-int32_t ReceivePacket(PP_Resource vpn_provider,
-                      struct PP_Var* packet,
-                      struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_VpnProvider::ReceivePacket()";
-  EnterResource<PPB_VpnProvider_API> enter(vpn_provider, callback, true);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->ReceivePacket(packet, enter.callback()));
-}
-
-const PPB_VpnProvider_0_1 g_ppb_vpnprovider_thunk_0_1 = {
-    &Create, &IsVpnProvider, &Bind, &SendPacket, &ReceivePacket};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_VpnProvider_0_1* GetPPB_VpnProvider_0_1_Thunk() {
-  return &g_ppb_vpnprovider_thunk_0_1;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_websocket_api.h b/thunk/ppb_websocket_api.h
deleted file mode 100644
index 586a0dc..0000000
--- a/thunk/ppb_websocket_api.h
+++ /dev/null
@@ -1,86 +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_THUNK_PPB_WEBSOCKET_API_H_
-#define PPAPI_THUNK_PPB_WEBSOCKET_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/scoped_refptr.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/ppb_websocket.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-
-class TrackedCallback;
-
-namespace thunk {
-
-// Some arguments and attributes are based on The WebSocket Protocol and The
-// WebSocket API. See also following official specifications.
-//  - The WebSocket Protocol http://tools.ietf.org/html/rfc6455
-//  - The WebSocket API      http://dev.w3.org/html5/websockets/
-class PPAPI_THUNK_EXPORT PPB_WebSocket_API {
- public:
-  virtual ~PPB_WebSocket_API() {}
-
-  // Connects to the specified WebSocket server with |protocols| argument
-  // defined by the WebSocket API. Returns an int32_t error code from
-  // pp_errors.h.
-  virtual int32_t Connect(const PP_Var& url,
-                          const PP_Var protocols[],
-                          uint32_t protocol_count,
-                          scoped_refptr<TrackedCallback> callback) = 0;
-
-  // Closes the established connection with specified |code| and |reason|.
-  // Returns an int32_t error code from pp_errors.h.
-  virtual int32_t Close(uint16_t code,
-                        const PP_Var& reason,
-                        scoped_refptr<TrackedCallback> callback) = 0;
-
-  // Receives a message from the WebSocket server. Caller must keep specified
-  // |message| object as valid until completion callback is invoked. Returns an
-  // int32_t error code from pp_errors.h.
-  virtual int32_t ReceiveMessage(PP_Var* message,
-                                 scoped_refptr<TrackedCallback> callback) = 0;
-
-  // Sends a message to the WebSocket server. Returns an int32_t error code
-  // from pp_errors.h.
-  virtual int32_t SendMessage(const PP_Var& message) = 0;
-
-  // Returns the bufferedAmount attribute of The WebSocket API.
-  virtual uint64_t GetBufferedAmount() = 0;
-
-  // Returns the CloseEvent code attribute of The WebSocket API. Returned code
-  // is valid if the connection is already closed and wasClean attribute is
-  // true.
-  virtual uint16_t GetCloseCode() = 0;
-
-  // Returns the CloseEvent reason attribute of The WebSocket API. Returned
-  // code is valid if the connection is already closed and wasClean attribute
-  // is true.
-  virtual PP_Var GetCloseReason() = 0;
-
-  // Returns the CloseEvent wasClean attribute of The WebSocket API. Returned
-  // code is valid if the connection is already closed.
-  virtual PP_Bool GetCloseWasClean() = 0;
-
-  // Returns the extensions attribute of The WebSocket API.
-  virtual PP_Var GetExtensions() = 0;
-
-  // Returns the protocol attribute of The WebSocket API.
-  virtual PP_Var GetProtocol() = 0;
-
-  // Returns the readState attribute of The WebSocket API.
-  virtual PP_WebSocketReadyState GetReadyState() = 0;
-
-  // Returns the url attribute of The WebSocket API.
-  virtual PP_Var GetURL() = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_WEBSOCKET_API_H_
diff --git a/thunk/ppb_websocket_thunk.cc b/thunk/ppb_websocket_thunk.cc
deleted file mode 100644
index dce8786..0000000
--- a/thunk/ppb_websocket_thunk.cc
+++ /dev/null
@@ -1,166 +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.
-
-// From ppb_websocket.idl modified Mon May  6 10:11:29 2013.
-
-#include <stdint.h>
-
-#include "base/logging.h"
-#include "ppapi/c/pp_completion_callback.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/ppb_websocket.h"
-#include "ppapi/shared_impl/tracked_callback.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-#include "ppapi/thunk/ppb_websocket_api.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-PP_Resource Create(PP_Instance instance) {
-  VLOG(4) << "PPB_WebSocket::Create()";
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateWebSocket(instance);
-}
-
-PP_Bool IsWebSocket(PP_Resource resource) {
-  VLOG(4) << "PPB_WebSocket::IsWebSocket()";
-  EnterResource<PPB_WebSocket_API> enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-int32_t Connect(PP_Resource web_socket,
-                struct PP_Var url,
-                const struct PP_Var protocols[],
-                uint32_t protocol_count,
-                struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_WebSocket::Connect()";
-  EnterResource<PPB_WebSocket_API> enter(web_socket, callback, false);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Connect(url, protocols, protocol_count,
-                                                 enter.callback()));
-}
-
-int32_t Close(PP_Resource web_socket,
-              uint16_t code,
-              struct PP_Var reason,
-              struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_WebSocket::Close()";
-  EnterResource<PPB_WebSocket_API> enter(web_socket, callback, false);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(enter.object()->Close(code, reason, enter.callback()));
-}
-
-int32_t ReceiveMessage(PP_Resource web_socket,
-                       struct PP_Var* message,
-                       struct PP_CompletionCallback callback) {
-  VLOG(4) << "PPB_WebSocket::ReceiveMessage()";
-  EnterResource<PPB_WebSocket_API> enter(web_socket, callback, false);
-  if (enter.failed())
-    return enter.retval();
-  return enter.SetResult(
-      enter.object()->ReceiveMessage(message, enter.callback()));
-}
-
-int32_t SendMessage(PP_Resource web_socket, struct PP_Var message) {
-  VLOG(4) << "PPB_WebSocket::SendMessage()";
-  EnterResource<PPB_WebSocket_API> enter(web_socket, false);
-  if (enter.failed())
-    return enter.retval();
-  return enter.object()->SendMessage(message);
-}
-
-uint64_t GetBufferedAmount(PP_Resource web_socket) {
-  VLOG(4) << "PPB_WebSocket::GetBufferedAmount()";
-  EnterResource<PPB_WebSocket_API> enter(web_socket, false);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetBufferedAmount();
-}
-
-uint16_t GetCloseCode(PP_Resource web_socket) {
-  VLOG(4) << "PPB_WebSocket::GetCloseCode()";
-  EnterResource<PPB_WebSocket_API> enter(web_socket, false);
-  if (enter.failed())
-    return 0;
-  return enter.object()->GetCloseCode();
-}
-
-struct PP_Var GetCloseReason(PP_Resource web_socket) {
-  VLOG(4) << "PPB_WebSocket::GetCloseReason()";
-  EnterResource<PPB_WebSocket_API> enter(web_socket, false);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetCloseReason();
-}
-
-PP_Bool GetCloseWasClean(PP_Resource web_socket) {
-  VLOG(4) << "PPB_WebSocket::GetCloseWasClean()";
-  EnterResource<PPB_WebSocket_API> enter(web_socket, false);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->GetCloseWasClean();
-}
-
-struct PP_Var GetExtensions(PP_Resource web_socket) {
-  VLOG(4) << "PPB_WebSocket::GetExtensions()";
-  EnterResource<PPB_WebSocket_API> enter(web_socket, false);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetExtensions();
-}
-
-struct PP_Var GetProtocol(PP_Resource web_socket) {
-  VLOG(4) << "PPB_WebSocket::GetProtocol()";
-  EnterResource<PPB_WebSocket_API> enter(web_socket, false);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetProtocol();
-}
-
-PP_WebSocketReadyState GetReadyState(PP_Resource web_socket) {
-  VLOG(4) << "PPB_WebSocket::GetReadyState()";
-  EnterResource<PPB_WebSocket_API> enter(web_socket, false);
-  if (enter.failed())
-    return PP_WEBSOCKETREADYSTATE_INVALID;
-  return enter.object()->GetReadyState();
-}
-
-struct PP_Var GetURL(PP_Resource web_socket) {
-  VLOG(4) << "PPB_WebSocket::GetURL()";
-  EnterResource<PPB_WebSocket_API> enter(web_socket, false);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetURL();
-}
-
-const PPB_WebSocket_1_0 g_ppb_websocket_thunk_1_0 = {&Create,
-                                                     &IsWebSocket,
-                                                     &Connect,
-                                                     &Close,
-                                                     &ReceiveMessage,
-                                                     &SendMessage,
-                                                     &GetBufferedAmount,
-                                                     &GetCloseCode,
-                                                     &GetCloseReason,
-                                                     &GetCloseWasClean,
-                                                     &GetExtensions,
-                                                     &GetProtocol,
-                                                     &GetReadyState,
-                                                     &GetURL};
-
-}  // namespace
-
-PPAPI_THUNK_EXPORT const PPB_WebSocket_1_0* GetPPB_WebSocket_1_0_Thunk() {
-  return &g_ppb_websocket_thunk_1_0;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/ppb_x509_certificate_private_api.h b/thunk/ppb_x509_certificate_private_api.h
deleted file mode 100644
index 379eca7..0000000
--- a/thunk/ppb_x509_certificate_private_api.h
+++ /dev/null
@@ -1,27 +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_THUNK_PPB_X509_CERTIFICATE_PRIVATE_API_H_
-#define PPAPI_THUNK_PPB_X509_CERTIFICATE_PRIVATE_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/private/ppb_x509_certificate_private.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-namespace ppapi {
-namespace thunk {
-
-class PPAPI_THUNK_EXPORT PPB_X509Certificate_Private_API {
- public:
-  virtual ~PPB_X509Certificate_Private_API() {}
-
-  virtual PP_Bool Initialize(const char* bytes, uint32_t length) = 0;
-  virtual PP_Var GetField(PP_X509Certificate_Private_Field field) = 0;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_PPB_X509_CERTIFICATE_PRIVATE_API_H_
diff --git a/thunk/ppb_x509_certificate_private_thunk.cc b/thunk/ppb_x509_certificate_private_thunk.cc
deleted file mode 100644
index efc21c8..0000000
--- a/thunk/ppb_x509_certificate_private_thunk.cc
+++ /dev/null
@@ -1,65 +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 "ppapi/c/private/ppb_x509_certificate_private.h"
-#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/ppb_x509_certificate_private_api.h"
-#include "ppapi/thunk/resource_creation_api.h"
-#include "ppapi/thunk/thunk.h"
-
-namespace ppapi {
-namespace thunk {
-
-namespace {
-
-typedef EnterResource<PPB_X509Certificate_Private_API>
-    EnterX509CertificatePrivate;
-
-PP_Resource Create(PP_Instance instance) {
-  EnterResourceCreation enter(instance);
-  if (enter.failed())
-    return 0;
-  return enter.functions()->CreateX509CertificatePrivate(instance);
-}
-
-PP_Bool IsX509CertificatePrivate(PP_Resource resource) {
-  EnterX509CertificatePrivate enter(resource, false);
-  return PP_FromBool(enter.succeeded());
-}
-
-PP_Bool Initialize(PP_Resource certificate,
-                   const char *bytes,
-                   uint32_t length) {
-  EnterX509CertificatePrivate enter(certificate, true);
-  if (enter.failed())
-    return PP_FALSE;
-  return enter.object()->Initialize(bytes, length);
-}
-
-PP_Var GetField(PP_Resource certificate,
-                PP_X509Certificate_Private_Field field) {
-  EnterX509CertificatePrivate enter(certificate, true);
-  if (enter.failed())
-    return PP_MakeUndefined();
-  return enter.object()->GetField(field);
-}
-
-const PPB_X509Certificate_Private g_ppb_x509_certificate_thunk = {
-  &Create,
-  &IsX509CertificatePrivate,
-  &Initialize,
-  &GetField
-};
-
-}  // namespace
-
-const PPB_X509Certificate_Private_0_1*
-GetPPB_X509Certificate_Private_0_1_Thunk() {
-  return &g_ppb_x509_certificate_thunk;
-}
-
-}  // namespace thunk
-}  // namespace ppapi
diff --git a/thunk/resource_creation_api.h b/thunk/resource_creation_api.h
deleted file mode 100644
index 61b0e03..0000000
--- a/thunk/resource_creation_api.h
+++ /dev/null
@@ -1,200 +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_THUNK_RESOURCE_CREATION_API_H_
-#define PPAPI_THUNK_RESOURCE_CREATION_API_H_
-
-#include <stdint.h>
-
-#include "base/memory/unsafe_shared_memory_region.h"
-#include "build/build_config.h"
-#include "gpu/command_buffer/common/command_buffer_id.h"
-#include "ppapi/c/dev/pp_video_dev.h"
-#include "ppapi/c/dev/ppb_file_chooser_dev.h"
-#include "ppapi/c/pp_bool.h"
-#include "ppapi/c/pp_instance.h"
-#include "ppapi/c/pp_resource.h"
-#include "ppapi/c/ppb_audio.h"
-#include "ppapi/c/ppb_audio_config.h"
-#include "ppapi/c/ppb_file_system.h"
-#include "ppapi/c/ppb_graphics_3d.h"
-#include "ppapi/c/ppb_image_data.h"
-#include "ppapi/c/ppb_input_event.h"
-#include "ppapi/c/ppb_network_monitor.h"
-#include "ppapi/c/ppb_websocket.h"
-#include "ppapi/c/private/pp_private_font_charset.h"
-#include "ppapi/shared_impl/api_id.h"
-
-// Windows defines 'PostMessage', so we have to undef it.
-#ifdef PostMessage
-#undef PostMessage
-#endif
-
-struct PP_BrowserFont_Trusted_Description;
-struct PP_NetAddress_IPv4;
-struct PP_NetAddress_IPv6;
-struct PP_NetAddress_Private;
-struct PP_Size;
-
-namespace gpu {
-struct Capabilities;
-struct GLCapabilities;
-}
-
-namespace ppapi {
-
-struct FileRefCreateInfo;
-struct Graphics3DContextAttribs;
-
-namespace thunk {
-
-// A functional API for creating resource types. Separating out the creation
-// functions here allows us to implement most resources as a pure "resource
-// API", meaning all calls are routed on a per-resource-object basis. The
-// creation functions are not per-object (since there's no object during
-// creation) so need functional routing based on the instance ID.
-class ResourceCreationAPI {
- public:
-  virtual ~ResourceCreationAPI() {}
-
-  virtual PP_Resource CreateFileIO(PP_Instance instance) = 0;
-  virtual PP_Resource CreateFileRef(
-      PP_Instance instance,
-      const FileRefCreateInfo& serialized) = 0;
-  virtual PP_Resource CreateFileSystem(PP_Instance instance,
-                                       PP_FileSystemType type) = 0;
-  virtual PP_Resource CreateIMEInputEvent(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) = 0;
-  virtual PP_Resource CreateKeyboardInputEvent_1_0(
-      PP_Instance instance,
-      PP_InputEvent_Type type,
-      PP_TimeTicks time_stamp,
-      uint32_t modifiers,
-      uint32_t key_code,
-      struct PP_Var character_text) = 0;
-  virtual PP_Resource CreateKeyboardInputEvent_1_2(
-      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) = 0;
-  virtual PP_Resource CreateMouseInputEvent(
-      PP_Instance instance,
-      PP_InputEvent_Type type,
-      PP_TimeTicks time_stamp,
-      uint32_t modifiers,
-      PP_InputEvent_MouseButton mouse_button,
-      const PP_Point* mouse_position,
-      int32_t click_count,
-      const PP_Point* mouse_movement) = 0;
-  virtual PP_Resource CreateTouchInputEvent(
-      PP_Instance instance,
-      PP_InputEvent_Type type,
-      PP_TimeTicks time_stamp,
-      uint32_t modifiers) = 0;
-  virtual PP_Resource CreateURLLoader(PP_Instance instance) = 0;
-  virtual PP_Resource CreateURLRequestInfo(
-      PP_Instance instance) = 0;
-
-  virtual PP_Resource CreateWheelInputEvent(
-      PP_Instance instance,
-      PP_TimeTicks time_stamp,
-      uint32_t modifiers,
-      const PP_FloatPoint* wheel_delta,
-      const PP_FloatPoint* wheel_ticks,
-      PP_Bool scroll_by_page) = 0;
-
-  virtual PP_Resource CreateAudio1_0(PP_Instance instance,
-                                     PP_Resource config_id,
-                                     PPB_Audio_Callback_1_0 audio_callback,
-                                     void* user_data) = 0;
-  virtual PP_Resource CreateAudio(PP_Instance instance,
-                                  PP_Resource config_id,
-                                  PPB_Audio_Callback audio_callback,
-                                  void* user_data) = 0;
-  virtual PP_Resource CreateAudioTrusted(PP_Instance instance) = 0;
-  virtual PP_Resource CreateAudioConfig(PP_Instance instance,
-                                        PP_AudioSampleRate sample_rate,
-                                        uint32_t sample_frame_count) = 0;
-  virtual PP_Resource CreateCameraDevicePrivate(PP_Instance instance) = 0;
-  virtual PP_Resource CreateFileChooser(PP_Instance instance,
-                                        PP_FileChooserMode_Dev mode,
-                                        const PP_Var& accept_types) = 0;
-  virtual PP_Resource CreateGraphics2D(PP_Instance instance,
-                                       const PP_Size* size,
-                                       PP_Bool is_always_opaque) = 0;
-  virtual PP_Resource CreateGraphics3D(PP_Instance instance,
-                                       PP_Resource share_context,
-                                       const int32_t* attrib_list) = 0;
-  virtual PP_Resource CreateGraphics3DRaw(
-      PP_Instance instance,
-      PP_Resource share_context,
-      const Graphics3DContextAttribs& attrib_helper,
-      gpu::Capabilities* capabilities,
-      gpu::GLCapabilities* gl_capabilities,
-      const base::UnsafeSharedMemoryRegion** shared_state,
-      gpu::CommandBufferId* command_buffer_id) = 0;
-  virtual PP_Resource CreateHostResolver(PP_Instance instance) = 0;
-  virtual PP_Resource CreateHostResolverPrivate(PP_Instance instance) = 0;
-  virtual PP_Resource CreateImageData(PP_Instance instance,
-                                      PP_ImageDataFormat format,
-                                      const PP_Size* size,
-                                      PP_Bool init_to_zero) = 0;
-  virtual PP_Resource CreateImageDataSimple(PP_Instance instance,
-                                            PP_ImageDataFormat format,
-                                            const PP_Size* size,
-                                            PP_Bool init_to_zero) = 0;
-  virtual PP_Resource CreateMediaStreamVideoTrack(PP_Instance instance) = 0;
-  virtual PP_Resource CreateNetAddressFromIPv4Address(
-      PP_Instance instance,
-      const PP_NetAddress_IPv4* ipv4_addr) = 0;
-  virtual PP_Resource CreateNetAddressFromIPv6Address(
-      PP_Instance instance,
-      const PP_NetAddress_IPv6* ipv6_addr) = 0;
-  virtual PP_Resource CreateNetAddressFromNetAddressPrivate(
-      PP_Instance instance,
-      const PP_NetAddress_Private& private_addr) = 0;
-  virtual PP_Resource CreateNetworkMonitor(PP_Instance instance) = 0;
-  virtual PP_Resource CreatePrinting(PP_Instance instance) = 0;
-  virtual PP_Resource CreateTCPServerSocketPrivate(PP_Instance instance) = 0;
-  virtual PP_Resource CreateTCPSocket1_0(PP_Instance instace) = 0;
-  virtual PP_Resource CreateTCPSocket(PP_Instance instance) = 0;
-  virtual PP_Resource CreateTCPSocketPrivate(PP_Instance instace) = 0;
-  virtual PP_Resource CreateUDPSocket(PP_Instance instace) = 0;
-  virtual PP_Resource CreateUDPSocketPrivate(PP_Instance instace) = 0;
-  virtual PP_Resource CreateVideoDecoder(PP_Instance instance) = 0;
-  virtual PP_Resource CreateVideoEncoder(PP_Instance instance) = 0;
-  virtual PP_Resource CreateVpnProvider(PP_Instance instance) = 0;
-  virtual PP_Resource CreateWebSocket(PP_Instance instance) = 0;
-#if !BUILDFLAG(IS_NACL)
-  virtual PP_Resource CreateX509CertificatePrivate(PP_Instance instance) = 0;
-  virtual PP_Resource CreateAudioInput(PP_Instance instance) = 0;
-  virtual PP_Resource CreateAudioOutput(PP_Instance instance) = 0;
-  virtual PP_Resource CreateBrowserFont(
-      PP_Instance instance,
-      const PP_BrowserFont_Trusted_Description* description) = 0;
-  virtual PP_Resource CreateBuffer(PP_Instance instance, uint32_t size) = 0;
-  virtual PP_Resource CreateVideoCapture(PP_Instance instance) = 0;
-  virtual PP_Resource CreateVideoDecoderDev(
-      PP_Instance instance,
-      PP_Resource context3d_id,
-      PP_VideoDecoder_Profile profile) = 0;
-#endif  // !BUILDFLAG(IS_NACL)
-
-  static const ApiID kApiID = API_ID_RESOURCE_CREATION;
-};
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_RESOURCE_CREATION_API_H_
diff --git a/thunk/thunk.h b/thunk/thunk.h
deleted file mode 100644
index aa7f1c4..0000000
--- a/thunk/thunk.h
+++ /dev/null
@@ -1,41 +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_THUNK_THUNK_H_
-#define PPAPI_THUNK_THUNK_H_
-
-#include "ppapi/c/private/ppb_instance_private.h"
-#include "ppapi/thunk/ppapi_thunk_export.h"
-
-// Declares a getter for the interface thunk of the form:
-//
-//   const PPB_Foo* ppapi::thunk::GetPPB_Foo_Thunk();
-//
-#define PROXIED_IFACE(interface_name, InterfaceType) \
-  struct InterfaceType; \
-  namespace ppapi { namespace thunk { \
-  PPAPI_THUNK_EXPORT const InterfaceType* Get##InterfaceType##_Thunk(); \
-  } }
-
-#include "ppapi/thunk/interfaces_ppb_private.h"
-#include "ppapi/thunk/interfaces_ppb_private_no_permissions.h"
-#include "ppapi/thunk/interfaces_ppb_public_dev.h"
-#include "ppapi/thunk/interfaces_ppb_public_dev_channel.h"
-#include "ppapi/thunk/interfaces_ppb_public_socket.h"
-#include "ppapi/thunk/interfaces_ppb_public_stable.h"
-#undef PROXIED_IFACE
-
-namespace ppapi {
-namespace thunk {
-
-// Old-style thunk getters. Only put trusted/private stuff here (it hasn't
-// yet been converted to the new system). Otherwise, add the declaration to
-// the appropriate interfaces_*.h file.
-PPAPI_THUNK_EXPORT const PPB_Instance_Private_0_1*
-    GetPPB_Instance_Private_0_1_Thunk();
-
-}  // namespace thunk
-}  // namespace ppapi
-
-#endif  // PPAPI_THUNK_THUNK_H_
diff --git a/tools/pepper_hash_for_uma.cc b/tools/pepper_hash_for_uma.cc
deleted file mode 100644
index c246544..0000000
--- a/tools/pepper_hash_for_uma.cc
+++ /dev/null
@@ -1,58 +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.
-//
-// This is a utility executable used for generating hashes for pepper
-// interfaces for inclusion in tools/metrics/histograms/histograms.xml. Every
-// interface-version pair must have a corresponding entry in the enum there.
-//
-// The hashing logic here must match the hashing logic at
-// ppapi/proxy/interface_list.cc.
-//
-// This utility can be used to generate a sorted list of hashes for all current
-// PPB* interfaces by running a script to generate the interface names, e.g.
-// $ grep -r "PPB_" ppapi/c | grep -o "\".*;[0-9]*\.[0-9]*\"" | tr '\n' ' '
-// and then invoking pepper_hash_for_uma on the list. The sorted output hashes
-// can be compared to tools/metrics/histograms/histograms.xml to determine if
-// any interfaces have been left out.
-
-#ifdef UNSAFE_BUFFERS_BUILD
-// TODO(crbug.com/351564777): Remove this and convert code to safer constructs.
-#pragma allow_unsafe_buffers
-#endif
-
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <algorithm>
-#include <vector>
-
-#include "base/hash/hash.h"
-
-int main(int argc, char **argv) {
-  if (argc < 2) {
-    fprintf(stderr, "Usage: %s <interface1> <interface2> <...>\n", argv[0]);
-    fprintf(stderr, "\n");
-    fprintf(stderr, "Prints hashes for interface names.\n");
-    fprintf(stderr, "Example: %s \"PPB_Var;1.1\" \"PPB_FileIO;1.2\"\n",
-            argv[0]);
-    return 1;
-  }
-  std::vector<std::pair<uint32_t, char*>> hashes;
-  for (int i = 1; i < argc; i++) {
-    uint32_t data = base::PersistentHash(argv[i]);
-
-    // Strip off the signed bit because UMA doesn't support negative values,
-    // but takes a signed int as input.
-    int hash = static_cast<int>(data & 0x7fffffff);
-    hashes.push_back(std::make_pair(hash, argv[i]));
-  }
-  std::sort(hashes.begin(), hashes.end());
-  for (const auto& hash : hashes) {
-    printf("<int value=\"%d\" label=\"%s\"/>\n", hash.first, hash.second);
-  }
-
-  return 0;
-}
diff --git a/utility/DEPS b/utility/DEPS
deleted file mode 100644
index 768eadb..0000000
--- a/utility/DEPS
+++ /dev/null
@@ -1,15 +0,0 @@
-# ppapi/cpp should not be dependent on other parts of chromium; it should stay
-# browser-neutral as much as possible.
-include_rules = [
-  "-base",
-  "-build",
-  "-ipc",
-  "-ppapi",
-  "+ppapi/c",
-  "-ppapi/c/private",
-  "-ppapi/c/trusted",
-  "+ppapi/cpp",
-  "-ppapi/cpp/private",
-  "-ppapi/cpp/trusted",
-  "+ppapi/utility",
-]
diff --git a/utility/README.txt b/utility/README.txt
deleted file mode 100644
index f2bb80d..0000000
--- a/utility/README.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-The classes in ppapi/utility are helper classes that provide higher-level
-features on top of the C++ wrappers. Using these classes is optional.
diff --git a/utility/completion_callback_factory.h b/utility/completion_callback_factory.h
deleted file mode 100644
index 9da7091..0000000
--- a/utility/completion_callback_factory.h
+++ /dev/null
@@ -1,895 +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_UTILITY_COMPLETION_CALLBACK_FACTORY_H_
-#define PPAPI_UTILITY_COMPLETION_CALLBACK_FACTORY_H_
-
-#include <stdint.h>
-
-#include "ppapi/cpp/completion_callback.h"
-#include "ppapi/utility/completion_callback_factory_thread_traits.h"  // nogncheck http://crbug.com/1228394
-
-/// @file
-/// This file defines the API to create CompletionCallback objects that are
-/// bound to member functions.
-namespace pp {
-
-// TypeUnwrapper --------------------------------------------------------------
-
-namespace internal {
-
-// The TypeUnwrapper converts references and const references to the
-// underlying type used for storage and passing as an argument. It is for
-// internal use only.
-template <typename T> struct TypeUnwrapper {
-  typedef T StorageType;
-};
-template <typename T> struct TypeUnwrapper<T&> {
-  typedef T StorageType;
-};
-template <typename T> struct TypeUnwrapper<const T&> {
-  typedef T StorageType;
-};
-
-}  // namespace internal
-
-// ----------------------------------------------------------------------------
-
-/// CompletionCallbackFactory<T> may be used to create CompletionCallback
-/// objects that are bound to member functions.
-///
-/// If a factory is destroyed, then any pending callbacks will be cancelled
-/// preventing any bound member functions from being called.  The CancelAll()
-/// method allows pending callbacks to be cancelled without destroying the
-/// factory.
-///
-/// <strong>Note: </strong><code>CompletionCallbackFactory<T></code> isn't
-/// thread safe, but it is somewhat thread-friendly when used with a
-/// thread-safe traits class as the second template element. However, it
-/// only guarantees safety for creating a callback from another thread, the
-/// callback itself needs to execute on the same thread as the thread that
-/// creates/destroys the factory. With this restriction, it is safe to create
-/// the <code>CompletionCallbackFactory</code> on the main thread, create
-/// callbacks from any thread and pass them to CallOnMainThread().
-///
-/// <strong>Example: </strong>
-///
-/// @code
-///   class MyClass {
-///    public:
-///     // If an compiler warns on following using |this| in the initializer
-///     // list, use PP_ALLOW_THIS_IN_INITIALIZER_LIST macro.
-///     MyClass() : factory_(this) {
-///     }
-///
-///     void OpenFile(const pp::FileRef& file) {
-///       pp::CompletionCallback cc = factory_.NewCallback(&MyClass::DidOpen);
-///       int32_t rv = file_io_.Open(file, PP_FileOpenFlag_Read, cc);
-///       CHECK(rv == PP_OK_COMPLETIONPENDING);
-///     }
-///
-///    private:
-///     void DidOpen(int32_t result) {
-///       if (result == PP_OK) {
-///         // The file is open, and we can begin reading.
-///         // ...
-///       } else {
-///         // Failed to open the file with error given by 'result'.
-///       }
-///     }
-///
-///     pp::CompletionCallbackFactory<MyClass> factory_;
-///   };
-/// @endcode
-///
-/// <strong>Passing additional parameters to your callback</strong>
-///
-/// As a convenience, the <code>CompletionCallbackFactory</code> can optionally
-/// create a closure with up to three bound parameters that it will pass to
-/// your callback function. This can be useful for passing information about
-/// the request to your callback function, which is especially useful if your
-/// class has multiple asynchronous callbacks pending.
-///
-/// For the above example, of opening a file, let's say you want to keep some
-/// description associated with your request, you might implement your OpenFile
-/// and DidOpen callback as follows:
-///
-/// @code
-///   void OpenFile(const pp::FileRef& file) {
-///     std::string message = "Opening file!";
-///     pp::CompletionCallback cc = factory_.NewCallback(&MyClass::DidOpen,
-///                                                      message);
-///     int32_t rv = file_io_.Open(file, PP_FileOpenFlag_Read, cc);
-///     CHECK(rv == PP_OK_COMPLETIONPENDING);
-///   }
-///   void DidOpen(int32_t result, const std::string& message) {
-///     // "message" will be "Opening file!".
-///     ...
-///   }
-/// @endcode
-///
-/// <strong>Optional versus required callbacks</strong>
-///
-/// When you create an "optional" callback, the browser may return the results
-/// synchronously if they are available. This can allow for higher performance
-/// in some cases if data is available quickly (for example, for network loads
-/// where there may be a lot of data coming quickly). In this case, the
-/// callback will never be run.
-///
-/// When creating a new callback with the factory, there will be data allocated
-/// on the heap that tracks the callback information and any bound arguments.
-/// This data is freed when the callback executes. In the case of optional
-/// callbacks, since the browser will never issue the callback, the internal
-/// tracking data will be leaked.
-///
-/// Therefore, if you use optional callbacks, it's important to manually
-/// issue the callback to free up this data. The typical pattern is:
-///
-/// @code
-///   pp::CompletionCallback callback = callback_factory.NewOptionalCallback(
-///       &MyClass::OnDataReady);
-///   int32_t result = interface->GetData(callback);
-///   if (result != PP_OK_COMPLETIONPENDING)
-///      callback.Run(result);
-/// @endcode
-///
-/// Because of this additional complexity, it's generally recommended that
-/// you not use optional callbacks except when performance is more important
-/// (such as loading large resources from the network). In most other cases,
-/// the performance difference will not be worth the additional complexity,
-/// and most functions may never actually have the ability to complete
-/// synchronously.
-///
-/// <strong>Completion callbacks with output</strong>
-///
-/// For some API calls, the browser returns data to the caller via an output
-/// parameter. These can be difficult to manage since the output parameter
-/// must remain valid for as long as the callback is pending. Note also that
-/// CancelAll (or destroying the callback factory) does <i>not</i> cancel the
-/// callback from the browser's perspective, only the execution of the callback
-/// in the plugin code, and the output parameter will still be written to!
-/// This means that you can't use class members as output parameters without
-/// risking crashes.
-///
-/// To make this case easier, the CompletionCallbackFactory can allocate and
-/// manage the output data for you and pass it to your callback function. This
-/// makes such calls more natural and less error-prone.
-///
-/// To create such a callback, use NewCallbackWithOutput and specify a callback
-/// function that takes the output parameter as its second argument. Let's say
-/// you're calling a function GetFile which asynchronously returns a
-/// pp::FileRef. GetFile's signature will be <code>int32_t GetFile(const
-/// CompletionCallbackWithOutput<pp::FileRef>& callback);</code> and your
-/// calling code would look like this:
-///
-/// @code
-///   void RequestFile() {
-///     file_interface->GetFile(callback_factory_.NewCallbackWithOutput(
-///         &MyClass::GotFile));
-///   }
-///   void GotFile(int32_t result, const pp::FileRef& file) {
-///     if (result == PP_OK) {
-///       ...use file...
-///     } else {
-///       ...handle error...
-///     }
-///   }
-/// @endcode
-///
-/// As with regular completion callbacks, you can optionally add up to three
-/// bound arguments. These are passed following the output argument.
-///
-/// Your callback may take the output argument as a copy (common for small
-/// types like integers, a const reference (common for structures and
-/// resources to avoid an extra copy), or as a non-const reference. One
-/// optimization you can do if your callback function may take large arrays
-/// is to accept your output argument as a non-const reference and to swap()
-/// the argument with a vector of your own to store it. This means you don't
-/// have to copy the buffer to consume it.
-template <typename T, typename ThreadTraits = ThreadSafeThreadTraits>
-class CompletionCallbackFactory {
- public:
-
-  /// This constructor creates a <code>CompletionCallbackFactory</code>
-  /// bound to an object. If the constructor is called without an argument,
-  /// the default value of <code>NULL</code> is used. The user then must call
-  /// Initialize() to initialize the object.
-  ///
-  /// param[in] object Optional parameter. An object whose member functions
-  /// are to be bound to CompletionCallbacks created by this
-  /// <code>CompletionCallbackFactory</code>. The default value of this
-  /// parameter is <code>NULL</code>.
-  explicit CompletionCallbackFactory(T* object = NULL)
-      : object_(object) {
-    // Assume that we don't need to lock since construction should be complete
-    // before the pointer is used on another thread.
-    InitBackPointer();
-  }
-
-  /// Destructor.
-  ~CompletionCallbackFactory() {
-    // Assume that we don't need to lock since this object should not be used
-    // from multiple threads during destruction.
-    ResetBackPointer();
-  }
-
-  /// CancelAll() cancels all <code>CompletionCallbacks</code> allocated from
-  /// this factory.
-  void CancelAll() {
-    typename ThreadTraits::AutoLock lock(lock_);
-
-    ResetBackPointer();
-    InitBackPointer();
-  }
-
-  /// Initialize() binds the <code>CallbackFactory</code> to a particular
-  /// object. Use this when the object is not available at
-  /// <code>CallbackFactory</code> creation, and the <code>NULL</code> default
-  /// is passed to the constructor. The object may only be initialized once,
-  /// either by the constructor, or by a call to Initialize().
-  ///
-  /// This class may not be used on any thread until initialization is complete.
-  ///
-  /// @param[in] object The object whose member functions are to be bound to
-  /// the <code>CompletionCallback</code> created by this
-  /// <code>CompletionCallbackFactory</code>.
-  void Initialize(T* object) {
-    PP_DCHECK(object);
-    PP_DCHECK(!object_);  // May only initialize once!
-    object_ = object;
-  }
-
-  /// GetObject() returns the object that was passed at initialization to
-  /// Intialize().
-  ///
-  /// @return the object passed to the constructor or Intialize().
-  T* GetObject() {
-    return object_;
-  }
-
-  /// NewCallback allocates a new, single-use <code>CompletionCallback</code>.
-  /// The <code>CompletionCallback</code> must be run in order for the memory
-  /// allocated by the methods to be freed.
-  ///
-  /// @param[in] method The method to be invoked upon completion of the
-  /// operation.
-  ///
-  /// @return A <code>CompletionCallback</code>.
-  template <typename Method>
-  CompletionCallback NewCallback(Method method) {
-    return NewCallbackHelper(new Dispatcher0<Method>(method));
-  }
-
-  /// NewOptionalCallback() allocates a new, single-use
-  /// <code>CompletionCallback</code> that might not run if the method
-  /// taking it can complete synchronously. Thus, if after passing the
-  /// CompletionCallback to a Pepper method, the method does not return
-  /// PP_OK_COMPLETIONPENDING, then you should manually call the
-  /// CompletionCallback's Run method, or memory will be leaked.
-  ///
-  /// @param[in] method The method to be invoked upon completion of the
-  /// operation.
-  ///
-  /// @return A <code>CompletionCallback</code>.
-  template <typename Method>
-  CompletionCallback NewOptionalCallback(Method method) {
-    CompletionCallback cc = NewCallback(method);
-    cc.set_flags(cc.flags() | PP_COMPLETIONCALLBACK_FLAG_OPTIONAL);
-    return cc;
-  }
-
-  /// NewCallbackWithOutput() allocates a new, single-use
-  /// <code>CompletionCallback</code> where the browser will pass an additional
-  /// parameter containing the result of the request. The
-  /// <code>CompletionCallback</code> must be run in order for the memory
-  /// allocated by the methods to be freed.
-  ///
-  /// @param[in] method The method to be invoked upon completion of the
-  /// operation.
-  ///
-  /// @return A <code>CompletionCallback</code>.
-  template <typename Output>
-  CompletionCallbackWithOutput<
-      typename internal::TypeUnwrapper<Output>::StorageType>
-  NewCallbackWithOutput(void (T::*method)(int32_t, Output)) {
-    return NewCallbackWithOutputHelper(new DispatcherWithOutput0<
-        typename internal::TypeUnwrapper<Output>::StorageType,
-        void (T::*)(int32_t, Output)>(method));
-  }
-
-  /// NewCallback() allocates a new, single-use <code>CompletionCallback</code>.
-  /// The <code>CompletionCallback</code> must be run in order for the memory
-  /// allocated by the methods to be freed.
-  ///
-  /// @param[in] method The method to be invoked upon completion of the
-  /// operation. Method should be of type:
-  /// <code>void (T::*)(int32_t result, const A& a)</code>
-  ///
-  /// @param[in] a Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @return A <code>CompletionCallback</code>.
-  template <typename Method, typename A>
-  CompletionCallback NewCallback(Method method, const A& a) {
-    return NewCallbackHelper(new Dispatcher1<Method, A>(method, a));
-  }
-
-  /// NewOptionalCallback() allocates a new, single-use
-  /// <code>CompletionCallback</code> that might not run if the method
-  /// taking it can complete synchronously. Thus, if after passing the
-  /// CompletionCallback to a Pepper method, the method does not return
-  /// PP_OK_COMPLETIONPENDING, then you should manually call the
-  /// CompletionCallback's Run method, or memory will be leaked.
-  ///
-  /// @param[in] method The method to be invoked upon completion of the
-  /// operation. Method should be of type:
-  /// <code>void (T::*)(int32_t result, const A& a)</code>
-  ///
-  /// @param[in] a Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @return A <code>CompletionCallback</code>.
-  template <typename Method, typename A>
-  CompletionCallback NewOptionalCallback(Method method, const A& a) {
-    CompletionCallback cc = NewCallback(method, a);
-    cc.set_flags(cc.flags() | PP_COMPLETIONCALLBACK_FLAG_OPTIONAL);
-    return cc;
-  }
-
-  /// NewCallbackWithOutput() allocates a new, single-use
-  /// <code>CompletionCallback</code> where the browser will pass an additional
-  /// parameter containing the result of the request. The
-  /// <code>CompletionCallback</code> must be run in order for the memory
-  /// allocated by the methods to be freed.
-  ///
-  /// @param[in] method The method to be invoked upon completion of the
-  /// operation.
-  ///
-  /// @param[in] a Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @return A <code>CompletionCallback</code>.
-  template <typename Output, typename A>
-  CompletionCallbackWithOutput<
-      typename internal::TypeUnwrapper<Output>::StorageType>
-  NewCallbackWithOutput(void (T::*method)(int32_t, Output, A),
-                        const A& a) {
-    return NewCallbackWithOutputHelper(new DispatcherWithOutput1<
-        typename internal::TypeUnwrapper<Output>::StorageType,
-        void (T::*)(int32_t, Output, A),
-        typename internal::TypeUnwrapper<A>::StorageType>(method, a));
-  }
-
-  /// NewCallback() allocates a new, single-use
-  /// <code>CompletionCallback</code>.
-  /// The <code>CompletionCallback</code> must be run in order for the memory
-  /// allocated by the methods to be freed.
-  ///
-  /// @param method The method taking the callback. Method should be of type:
-  /// <code>void (T::*)(int32_t result, const A& a, const B& b)</code>
-  ///
-  /// @param[in] a Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @param[in] b Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @return A <code>CompletionCallback</code>.
-  template <typename Method, typename A, typename B>
-  CompletionCallback NewCallback(Method method, const A& a, const B& b) {
-    return NewCallbackHelper(new Dispatcher2<Method, A, B>(method, a, b));
-  }
-
-  /// NewOptionalCallback() allocates a new, single-use
-  /// <code>CompletionCallback</code> that might not run if the method
-  /// taking it can complete synchronously. Thus, if after passing the
-  /// CompletionCallback to a Pepper method, the method does not return
-  /// PP_OK_COMPLETIONPENDING, then you should manually call the
-  /// CompletionCallback's Run method, or memory will be leaked.
-  ///
-  /// @param[in] method The method taking the callback. Method should be of
-  /// type:
-  /// <code>void (T::*)(int32_t result, const A& a, const B& b)</code>
-  ///
-  /// @param[in] a Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @param[in] b Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @return A <code>CompletionCallback</code>.
-  template <typename Method, typename A, typename B>
-  CompletionCallback NewOptionalCallback(Method method, const A& a,
-                                         const B& b) {
-    CompletionCallback cc = NewCallback(method, a, b);
-    cc.set_flags(cc.flags() | PP_COMPLETIONCALLBACK_FLAG_OPTIONAL);
-    return cc;
-  }
-
-  /// NewCallbackWithOutput() allocates a new, single-use
-  /// <code>CompletionCallback</code> where the browser will pass an additional
-  /// parameter containing the result of the request. The
-  /// <code>CompletionCallback</code> must be run in order for the memory
-  /// allocated by the methods to be freed.
-  ///
-  /// @param[in] method The method to be invoked upon completion of the
-  /// operation.
-  ///
-  /// @param[in] a Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @param[in] b Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @return A <code>CompletionCallback</code>.
-  template <typename Output, typename A, typename B>
-  CompletionCallbackWithOutput<
-      typename internal::TypeUnwrapper<Output>::StorageType>
-  NewCallbackWithOutput(void (T::*method)(int32_t, Output, A, B),
-                        const A& a,
-                        const B& b) {
-    return NewCallbackWithOutputHelper(new DispatcherWithOutput2<
-        typename internal::TypeUnwrapper<Output>::StorageType,
-        void (T::*)(int32_t, Output, A, B),
-        typename internal::TypeUnwrapper<A>::StorageType,
-        typename internal::TypeUnwrapper<B>::StorageType>(method, a, b));
-  }
-
-  /// NewCallback() allocates a new, single-use
-  /// <code>CompletionCallback</code>.
-  /// The <code>CompletionCallback</code> must be run in order for the memory
-  /// allocated by the methods to be freed.
-  ///
-  /// @param method The method taking the callback. Method should be of type:
-  /// <code>
-  /// void (T::*)(int32_t result, const A& a, const B& b, const C& c)
-  /// </code>
-  ///
-  /// @param[in] a Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @param[in] b Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @param[in] c Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @return A <code>CompletionCallback</code>.
-  template <typename Method, typename A, typename B, typename C>
-  CompletionCallback NewCallback(Method method, const A& a, const B& b,
-                                 const C& c) {
-    return NewCallbackHelper(new Dispatcher3<Method, A, B, C>(method, a, b, c));
-  }
-
-  /// NewOptionalCallback() allocates a new, single-use
-  /// <code>CompletionCallback</code> that might not run if the method
-  /// taking it can complete synchronously. Thus, if after passing the
-  /// CompletionCallback to a Pepper method, the method does not return
-  /// PP_OK_COMPLETIONPENDING, then you should manually call the
-  /// CompletionCallback's Run method, or memory will be leaked.
-  ///
-  /// @param[in] method The method taking the callback. Method should be of
-  /// type:
-  /// <code>
-  /// void (T::*)(int32_t result, const A& a, const B& b, const C& c)
-  /// </code>
-  ///
-  /// @param[in] a Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @param[in] b Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @param[in] c Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @return A <code>CompletionCallback</code>.
-  template <typename Method, typename A, typename B, typename C>
-  CompletionCallback NewOptionalCallback(Method method, const A& a,
-                                         const B& b, const C& c) {
-    CompletionCallback cc = NewCallback(method, a, b, c);
-    cc.set_flags(cc.flags() | PP_COMPLETIONCALLBACK_FLAG_OPTIONAL);
-    return cc;
-  }
-
-  /// NewCallbackWithOutput() allocates a new, single-use
-  /// <code>CompletionCallback</code> where the browser will pass an additional
-  /// parameter containing the result of the request. The
-  /// <code>CompletionCallback</code> must be run in order for the memory
-  /// allocated by the methods to be freed.
-  ///
-  /// @param method The method to be run.
-  ///
-  /// @param[in] a Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @param[in] b Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @param[in] c Passed to <code>method</code> when the completion callback
-  /// runs.
-  ///
-  /// @return A <code>CompletionCallback</code>.
-  template <typename Output, typename A, typename B, typename C>
-  CompletionCallbackWithOutput<
-      typename internal::TypeUnwrapper<Output>::StorageType>
-  NewCallbackWithOutput(void (T::*method)(int32_t, Output, A, B, C),
-                        const A& a,
-                        const B& b,
-                        const C& c) {
-    return NewCallbackWithOutputHelper(new DispatcherWithOutput3<
-        typename internal::TypeUnwrapper<Output>::StorageType,
-        void (T::*)(int32_t, Output, A, B, C),
-        typename internal::TypeUnwrapper<A>::StorageType,
-        typename internal::TypeUnwrapper<B>::StorageType,
-        typename internal::TypeUnwrapper<C>::StorageType>(method, a, b, c));
-  }
-
- private:
-  class BackPointer {
-   public:
-    typedef CompletionCallbackFactory<T, ThreadTraits> FactoryType;
-
-    explicit BackPointer(FactoryType* factory)
-        : factory_(factory) {
-    }
-
-    void AddRef() {
-      ref_.AddRef();
-    }
-
-    void Release() {
-      if (ref_.Release() == 0)
-        delete this;
-    }
-
-    void DropFactory() {
-      factory_ = NULL;
-    }
-
-    T* GetObject() {
-      return factory_ ? factory_->GetObject() : NULL;
-    }
-
-   private:
-    typename ThreadTraits::RefCount ref_;
-    FactoryType* factory_;
-  };
-
-  template <typename Dispatcher>
-  class CallbackData {
-   public:
-    // Takes ownership of the given dispatcher pointer.
-    CallbackData(BackPointer* back_pointer, Dispatcher* dispatcher)
-        : back_pointer_(back_pointer),
-          dispatcher_(dispatcher) {
-      back_pointer_->AddRef();
-    }
-
-    ~CallbackData() {
-      back_pointer_->Release();
-      delete dispatcher_;
-    }
-
-    Dispatcher* dispatcher() { return dispatcher_; }
-
-    static void Thunk(void* user_data, int32_t result) {
-      Self* self = static_cast<Self*>(user_data);
-      T* object = self->back_pointer_->GetObject();
-
-      // Please note that |object| may be NULL at this point. But we still need
-      // to call into Dispatcher::operator() in that case, so that it can do
-      // necessary cleanup.
-      (*self->dispatcher_)(object, result);
-
-      delete self;
-    }
-
-   private:
-    typedef CallbackData<Dispatcher> Self;
-    BackPointer* back_pointer_;  // We own a ref to this refcounted object.
-    Dispatcher* dispatcher_;  // We own this pointer.
-
-    // Disallow copying & assignment.
-    CallbackData(const CallbackData<Dispatcher>&);
-    CallbackData<Dispatcher>& operator=(const CallbackData<Dispatcher>&);
-  };
-
-  template <typename Method>
-  class Dispatcher0 {
-   public:
-    Dispatcher0() : method_(NULL) {}
-    explicit Dispatcher0(Method method) : method_(method) {
-    }
-    void operator()(T* object, int32_t result) {
-      if (object)
-        (object->*method_)(result);
-    }
-   private:
-    Method method_;
-  };
-
-  template <typename Output, typename Method>
-  class DispatcherWithOutput0 {
-   public:
-    typedef Output OutputType;
-    typedef internal::CallbackOutputTraits<Output> Traits;
-
-    DispatcherWithOutput0()
-        : method_(NULL),
-          output_() {
-      Traits::Initialize(&output_);
-    }
-    DispatcherWithOutput0(Method method)
-        : method_(method),
-          output_() {
-      Traits::Initialize(&output_);
-    }
-    void operator()(T* object, int32_t result) {
-      // We must call Traits::StorageToPluginArg() even if we don't need to call
-      // the callback anymore, otherwise we may leak resource or var references.
-      if (object)
-        (object->*method_)(result, Traits::StorageToPluginArg(output_));
-      else
-        Traits::StorageToPluginArg(output_);
-    }
-    typename Traits::StorageType* output() {
-      return &output_;
-    }
-   private:
-    Method method_;
-
-    typename Traits::StorageType output_;
-  };
-
-  template <typename Method, typename A>
-  class Dispatcher1 {
-   public:
-    Dispatcher1()
-        : method_(NULL),
-          a_() {
-    }
-    Dispatcher1(Method method, const A& a)
-        : method_(method),
-          a_(a) {
-    }
-    void operator()(T* object, int32_t result) {
-      if (object)
-        (object->*method_)(result, a_);
-    }
-   private:
-    Method method_;
-    A a_;
-  };
-
-  template <typename Output, typename Method, typename A>
-  class DispatcherWithOutput1 {
-   public:
-    typedef Output OutputType;
-    typedef internal::CallbackOutputTraits<Output> Traits;
-
-    DispatcherWithOutput1()
-        : method_(NULL),
-          a_(),
-          output_() {
-      Traits::Initialize(&output_);
-    }
-    DispatcherWithOutput1(Method method, const A& a)
-        : method_(method),
-          a_(a),
-          output_() {
-      Traits::Initialize(&output_);
-    }
-    void operator()(T* object, int32_t result) {
-      // We must call Traits::StorageToPluginArg() even if we don't need to call
-      // the callback anymore, otherwise we may leak resource or var references.
-      if (object)
-        (object->*method_)(result, Traits::StorageToPluginArg(output_), a_);
-      else
-        Traits::StorageToPluginArg(output_);
-    }
-    typename Traits::StorageType* output() {
-      return &output_;
-    }
-   private:
-    Method method_;
-    A a_;
-
-    typename Traits::StorageType output_;
-  };
-
-  template <typename Method, typename A, typename B>
-  class Dispatcher2 {
-   public:
-    Dispatcher2()
-        : method_(NULL),
-          a_(),
-          b_() {
-    }
-    Dispatcher2(Method method, const A& a, const B& b)
-        : method_(method),
-          a_(a),
-          b_(b) {
-    }
-    void operator()(T* object, int32_t result) {
-      if (object)
-        (object->*method_)(result, a_, b_);
-    }
-   private:
-    Method method_;
-    A a_;
-    B b_;
-  };
-
-  template <typename Output, typename Method, typename A, typename B>
-  class DispatcherWithOutput2 {
-   public:
-    typedef Output OutputType;
-    typedef internal::CallbackOutputTraits<Output> Traits;
-
-    DispatcherWithOutput2()
-        : method_(NULL),
-          a_(),
-          b_(),
-          output_() {
-      Traits::Initialize(&output_);
-    }
-    DispatcherWithOutput2(Method method, const A& a, const B& b)
-        : method_(method),
-          a_(a),
-          b_(b),
-          output_() {
-      Traits::Initialize(&output_);
-    }
-    void operator()(T* object, int32_t result) {
-      // We must call Traits::StorageToPluginArg() even if we don't need to call
-      // the callback anymore, otherwise we may leak resource or var references.
-      if (object)
-        (object->*method_)(result, Traits::StorageToPluginArg(output_), a_, b_);
-      else
-        Traits::StorageToPluginArg(output_);
-    }
-    typename Traits::StorageType* output() {
-      return &output_;
-    }
-   private:
-    Method method_;
-    A a_;
-    B b_;
-
-    typename Traits::StorageType output_;
-  };
-
-  template <typename Method, typename A, typename B, typename C>
-  class Dispatcher3 {
-   public:
-    Dispatcher3()
-        : method_(NULL),
-          a_(),
-          b_(),
-          c_() {
-    }
-    Dispatcher3(Method method, const A& a, const B& b, const C& c)
-        : method_(method),
-          a_(a),
-          b_(b),
-          c_(c) {
-    }
-    void operator()(T* object, int32_t result) {
-      if (object)
-        (object->*method_)(result, a_, b_, c_);
-    }
-   private:
-    Method method_;
-    A a_;
-    B b_;
-    C c_;
-  };
-
-  template <typename Output, typename Method, typename A, typename B,
-            typename C>
-  class DispatcherWithOutput3 {
-   public:
-    typedef Output OutputType;
-    typedef internal::CallbackOutputTraits<Output> Traits;
-
-    DispatcherWithOutput3()
-        : method_(NULL),
-          a_(),
-          b_(),
-          c_(),
-          output_() {
-      Traits::Initialize(&output_);
-    }
-    DispatcherWithOutput3(Method method, const A& a, const B& b, const C& c)
-        : method_(method),
-          a_(a),
-          b_(b),
-          c_(c),
-          output_() {
-      Traits::Initialize(&output_);
-    }
-    void operator()(T* object, int32_t result) {
-      // We must call Traits::StorageToPluginArg() even if we don't need to call
-      // the callback anymore, otherwise we may leak resource or var references.
-      if (object) {
-        (object->*method_)(result, Traits::StorageToPluginArg(output_),
-                           a_, b_, c_);
-      } else {
-        Traits::StorageToPluginArg(output_);
-      }
-    }
-    typename Traits::StorageType* output() {
-      return &output_;
-    }
-   private:
-    Method method_;
-    A a_;
-    B b_;
-    C c_;
-
-    typename Traits::StorageType output_;
-  };
-
-  // Creates the back pointer object and takes a reference to it. This assumes
-  // either that the lock is held or that it is not needed.
-  void InitBackPointer() {
-    back_pointer_ = new BackPointer(this);
-    back_pointer_->AddRef();
-  }
-
-  // Releases our reference to the back pointer object and clears the pointer.
-  // This assumes either that the lock is held or that it is not needed.
-  void ResetBackPointer() {
-    back_pointer_->DropFactory();
-    back_pointer_->Release();
-    back_pointer_ = NULL;
-  }
-
-  // Takes ownership of the dispatcher pointer, which should be heap allocated.
-  template <typename Dispatcher>
-  CompletionCallback NewCallbackHelper(Dispatcher* dispatcher) {
-    typename ThreadTraits::AutoLock lock(lock_);
-
-    PP_DCHECK(object_);  // Expects a non-null object!
-    return CompletionCallback(
-        &CallbackData<Dispatcher>::Thunk,
-        new CallbackData<Dispatcher>(back_pointer_, dispatcher));
-  }
-
-  // Takes ownership of the dispatcher pointer, which should be heap allocated.
-  template <typename Dispatcher> CompletionCallbackWithOutput<
-      typename internal::TypeUnwrapper<
-          typename Dispatcher::OutputType>::StorageType>
-  NewCallbackWithOutputHelper(Dispatcher* dispatcher) {
-    typename ThreadTraits::AutoLock lock(lock_);
-
-    PP_DCHECK(object_);  // Expects a non-null object!
-    CallbackData<Dispatcher>* data =
-        new CallbackData<Dispatcher>(back_pointer_, dispatcher);
-
-    return CompletionCallbackWithOutput<typename Dispatcher::OutputType>(
-        &CallbackData<Dispatcher>::Thunk,
-        data,
-        data->dispatcher()->output());
-  }
-
-  // Disallowed:
-  CompletionCallbackFactory(const CompletionCallbackFactory&);
-  CompletionCallbackFactory& operator=(const CompletionCallbackFactory&);
-
-  // Never changed once initialized so does not need protection by the lock.
-  T* object_;
-
-  // Protects the back pointer.
-  typename ThreadTraits::Lock lock_;
-
-  // Protected by the lock. This will get reset when you do CancelAll, for
-  // example.
-  BackPointer* back_pointer_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_UTILITY_COMPLETION_CALLBACK_FACTORY_H_
diff --git a/utility/completion_callback_factory_thread_traits.h b/utility/completion_callback_factory_thread_traits.h
deleted file mode 100644
index 7c0dcde..0000000
--- a/utility/completion_callback_factory_thread_traits.h
+++ /dev/null
@@ -1,180 +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_UTILITY_COMPLETION_CALLBACK_FACTORY_THREAD_TRAITS_H_
-#define PPAPI_UTILITY_COMPLETION_CALLBACK_FACTORY_THREAD_TRAITS_H_
-
-#include <stdint.h>
-
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/utility/threading/lock.h"
-
-/// @file
-/// Defines the traits structures for thread-safety of a completion callback
-/// factory. We provide thread-safe and non-thread-safe version. The thread-safe
-/// version is always correct (if you follow the thread usage rules of the
-/// callback factory), but if you know your object will only be used on one
-/// thread, you can uses the non-thread-safe version.
-///
-/// The traits defines three nested classes to perform reference counting,
-/// locks, and scoped locking.
-
-namespace pp {
-
-/// The thread-safe version of thread traits. Using this class as the "traits"
-/// template argument to a completion callback factory will make it "somewhat
-/// thread-friendly." It will allow you to create completion callbacks from
-/// background threads and post them to another thread to run.
-///
-/// Care still must be taken to ensure that the completion callbacks are
-/// executed on the same thread that the factory is destroyed on to avoid a
-/// race on destruction.
-///
-/// Implementation note: this uses a lock instead of atomic add instructions.
-/// The number of platforms we need to support right now makes atomic
-/// operations unwieldy for this case that we don't actually use that often.
-/// As a further optimization, we can add support for this later.
-class ThreadSafeThreadTraits {
- public:
-  class RefCount {
-   public:
-    /// Default constructor. In debug mode, this checks that the object is being
-    /// created on the main thread.
-    RefCount() : ref_(0) {
-    }
-
-    /// AddRef() increments the reference counter.
-    ///
-    /// @return An int32_t with the incremented reference counter.
-    int32_t AddRef() {
-      AutoLock lock(lock_);
-      return ++ref_;
-    }
-
-    /// Release() decrements the reference counter.
-    ///
-    /// @return An int32_t with the decremeneted reference counter.
-    int32_t Release() {
-      AutoLock lock(lock_);
-      PP_DCHECK(ref_ > 0);
-      return --ref_;
-    }
-
-   private:
-    Lock lock_;
-    int32_t ref_;
-  };
-
-  typedef pp::Lock Lock;
-  typedef pp::AutoLock AutoLock;
-};
-
-/// The non-thread-safe version of thread traits. Using this class as the
-/// "traits" template argument to a completion callback factory will make it
-/// not thread-safe but with potential extra performance.
-class NonThreadSafeThreadTraits {
- public:
-  /// A simple reference counter that is not thread-safe.
-  ///
-  /// <strong>Note:</strong> in Debug mode, it checks that it is either called
-  /// on the main thread, or always called on another thread.
-  class RefCount {
-   public:
-    /// Default constructor. In debug mode, this checks that the object is being
-    /// created on the main thread.
-    RefCount() : ref_(0) {
-#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
-      is_main_thread_ = Module::Get()->core()->IsMainThread();
-#endif
-    }
-
-    /// Destructor.
-    ~RefCount() {
-      PP_DCHECK(is_main_thread_ == Module::Get()->core()->IsMainThread());
-    }
-
-    /// AddRef() increments the reference counter.
-    ///
-    /// @return An int32_t with the incremented reference counter.
-    int32_t AddRef() {
-      PP_DCHECK(is_main_thread_ == Module::Get()->core()->IsMainThread());
-      return ++ref_;
-    }
-
-    /// Release() decrements the reference counter.
-    ///
-    /// @return An int32_t with the decremeneted reference counter.
-    int32_t Release() {
-      PP_DCHECK(is_main_thread_ == Module::Get()->core()->IsMainThread());
-      return --ref_;
-    }
-
-   private:
-    int32_t ref_;
-#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
-    bool is_main_thread_;
-#endif
-  };
-
-  /// A simple object that acts like a lock but does nothing.
-  ///
-  /// <strong>Note:</strong> in Debug mode, it checks that it is either
-  /// called on the main thread, or always called on another thread. It also
-  /// asserts that the caller does not recursively lock.
-  class Lock {
-   public:
-    Lock() {
-#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
-      is_main_thread_ = Module::Get()->core()->IsMainThread();
-      lock_held_ = false;
-#endif
-    }
-
-    ~Lock() {
-      PP_DCHECK(is_main_thread_ == Module::Get()->core()->IsMainThread());
-    }
-
-    /// Acquires the fake "lock". This does nothing except perform checks in
-    /// debug mode.
-    void Acquire() {
-#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
-      PP_DCHECK(!lock_held_);
-      lock_held_ = true;
-#endif
-    }
-
-    /// Releases the fake "lock". This does nothing except perform checks in
-    /// debug mode.
-    void Release() {
-#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
-      PP_DCHECK(lock_held_);
-      lock_held_ = false;
-#endif
-    }
-
-   private:
-#if !defined(NDEBUG) || defined(DCHECK_ALWAYS_ON)
-    bool is_main_thread_;
-    bool lock_held_;
-#endif
-  };
-
-  class AutoLock {
-   public:
-    explicit AutoLock(Lock& lock) : lock_(lock) {
-      lock_.Acquire();
-    }
-    ~AutoLock() {
-      lock_.Release();
-    }
-
-   private:
-    Lock& lock_;
-  };
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_UTILITY_COMPLETION_CALLBACK_FACTORY_THREAD_TRAITS_H_
diff --git a/utility/graphics/paint_aggregator.cc b/utility/graphics/paint_aggregator.cc
deleted file mode 100644
index 2e9ffcc..0000000
--- a/utility/graphics/paint_aggregator.cc
+++ /dev/null
@@ -1,278 +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/utility/graphics/paint_aggregator.h"
-
-#include <stdint.h>
-
-#include <algorithm>
-
-#include "ppapi/cpp/logging.h"
-
-// ----------------------------------------------------------------------------
-// ALGORITHM NOTES
-//
-// We attempt to maintain a scroll rect in the presence of invalidations that
-// are contained within the scroll rect.  If an invalidation crosses a scroll
-// rect, then we just treat the scroll rect as an invalidation rect.
-//
-// For invalidations performed prior to scrolling and contained within the
-// scroll rect, we offset the invalidation rects to account for the fact that
-// the consumer will perform scrolling before painting.
-//
-// We only support scrolling along one axis at a time.  A diagonal scroll will
-// therefore be treated as an invalidation.
-// ----------------------------------------------------------------------------
-
-namespace pp {
-
-PaintAggregator::PaintUpdate::PaintUpdate() : has_scroll(false) {}
-
-PaintAggregator::PaintUpdate::~PaintUpdate() {}
-
-PaintAggregator::InternalPaintUpdate::InternalPaintUpdate() {}
-
-PaintAggregator::InternalPaintUpdate::~InternalPaintUpdate() {}
-
-Rect PaintAggregator::InternalPaintUpdate::GetScrollDamage() const {
-  // Should only be scrolling in one direction at a time.
-  PP_DCHECK(!(scroll_delta.x() && scroll_delta.y()));
-
-  Rect damaged_rect;
-
-  // Compute the region we will expose by scrolling, and paint that into a
-  // shared memory section.
-  if (scroll_delta.x()) {
-    int32_t dx = scroll_delta.x();
-    damaged_rect.set_y(scroll_rect.y());
-    damaged_rect.set_height(scroll_rect.height());
-    if (dx > 0) {
-      damaged_rect.set_x(scroll_rect.x());
-      damaged_rect.set_width(dx);
-    } else {
-      damaged_rect.set_x(scroll_rect.right() + dx);
-      damaged_rect.set_width(-dx);
-    }
-  } else {
-    int32_t dy = scroll_delta.y();
-    damaged_rect.set_x(scroll_rect.x());
-    damaged_rect.set_width(scroll_rect.width());
-    if (dy > 0) {
-      damaged_rect.set_y(scroll_rect.y());
-      damaged_rect.set_height(dy);
-    } else {
-      damaged_rect.set_y(scroll_rect.bottom() + dy);
-      damaged_rect.set_height(-dy);
-    }
-  }
-
-  // In case the scroll offset exceeds the width/height of the scroll rect
-  return scroll_rect.Intersect(damaged_rect);
-}
-
-Rect PaintAggregator::InternalPaintUpdate::GetPaintBounds() const {
-  Rect bounds;
-  for (size_t i = 0; i < paint_rects.size(); ++i)
-    bounds = bounds.Union(paint_rects[i]);
-  return bounds;
-}
-
-PaintAggregator::PaintAggregator()
-    : max_redundant_paint_to_scroll_area_(0.8f),
-      max_paint_rects_(10) {
-}
-
-bool PaintAggregator::HasPendingUpdate() const {
-  return !update_.scroll_rect.IsEmpty() || !update_.paint_rects.empty();
-}
-
-void PaintAggregator::ClearPendingUpdate() {
-  update_ = InternalPaintUpdate();
-}
-
-PaintAggregator::PaintUpdate PaintAggregator::GetPendingUpdate() const {
-  // Convert the internal paint update to the external one, which includes a
-  // bit more precomputed info for the caller.
-  PaintUpdate ret;
-  ret.scroll_delta = update_.scroll_delta;
-  ret.scroll_rect = update_.scroll_rect;
-  ret.has_scroll = ret.scroll_delta.x() != 0 || ret.scroll_delta.y() != 0;
-
-  ret.paint_rects.reserve(update_.paint_rects.size() + 1);
-  for (size_t i = 0; i < update_.paint_rects.size(); i++)
-    ret.paint_rects.push_back(update_.paint_rects[i]);
-
-  ret.paint_bounds = update_.GetPaintBounds();
-
-  // Also include the scroll damage (if any) in the paint rects.
-  if (ret.has_scroll) {
-    PP_Rect scroll_damage = update_.GetScrollDamage();
-    ret.paint_rects.push_back(scroll_damage);
-    ret.paint_bounds = ret.paint_bounds.Union(scroll_damage);
-  }
-
-  return ret;
-}
-
-void PaintAggregator::InvalidateRect(const Rect& rect) {
-  // Combine overlapping paints using smallest bounding box.
-  for (size_t i = 0; i < update_.paint_rects.size(); ++i) {
-    const Rect& existing_rect = update_.paint_rects[i];
-    if (existing_rect.Contains(rect))  // Optimize out redundancy.
-      return;
-    if (rect.Intersects(existing_rect) || rect.SharesEdgeWith(existing_rect)) {
-      // Re-invalidate in case the union intersects other paint rects.
-      Rect combined_rect = existing_rect.Union(rect);
-      update_.paint_rects.erase(update_.paint_rects.begin() + i);
-      InvalidateRect(combined_rect);
-      return;
-    }
-  }
-
-  // Add a non-overlapping paint.
-  update_.paint_rects.push_back(rect);
-
-  // If the new paint overlaps with a scroll, then it forces an invalidation of
-  // the scroll.  If the new paint is contained by a scroll, then trim off the
-  // scroll damage to avoid redundant painting.
-  if (!update_.scroll_rect.IsEmpty()) {
-    if (ShouldInvalidateScrollRect(rect)) {
-      InvalidateScrollRect();
-    } else if (update_.scroll_rect.Contains(rect)) {
-      update_.paint_rects.back() = rect.Subtract(update_.GetScrollDamage());
-      if (update_.paint_rects.back().IsEmpty())
-        update_.paint_rects.pop_back();
-    }
-  }
-
-  if (update_.paint_rects.size() > max_paint_rects_)
-    CombinePaintRects();
-}
-
-void PaintAggregator::ScrollRect(const Rect& clip_rect, const Point& amount) {
-  // We only support scrolling along one axis at a time.
-  if (amount.x() != 0 && amount.y() != 0) {
-    InvalidateRect(clip_rect);
-    return;
-  }
-
-  // We can only scroll one rect at a time.
-  if (!update_.scroll_rect.IsEmpty() && update_.scroll_rect != clip_rect) {
-    InvalidateRect(clip_rect);
-    return;
-  }
-
-  // Again, we only support scrolling along one axis at a time.  Make sure this
-  // update doesn't scroll on a different axis than any existing one.
-  if ((amount.x() && update_.scroll_delta.y()) ||
-      (amount.y() && update_.scroll_delta.x())) {
-    InvalidateRect(clip_rect);
-    return;
-  }
-
-  // The scroll rect is new or isn't changing (though the scroll amount may
-  // be changing).
-  update_.scroll_rect = clip_rect;
-  update_.scroll_delta += amount;
-
-  // We might have just wiped out a pre-existing scroll.
-  if (update_.scroll_delta == Point()) {
-    update_.scroll_rect = Rect();
-    return;
-  }
-
-  // Adjust any contained paint rects and check for any overlapping paints.
-  for (size_t i = 0; i < update_.paint_rects.size(); ++i) {
-    if (update_.scroll_rect.Contains(update_.paint_rects[i])) {
-      update_.paint_rects[i] = ScrollPaintRect(update_.paint_rects[i], amount);
-      // The rect may have been scrolled out of view.
-      if (update_.paint_rects[i].IsEmpty()) {
-        update_.paint_rects.erase(update_.paint_rects.begin() + i);
-        i--;
-      }
-    } else if (update_.scroll_rect.Intersects(update_.paint_rects[i])) {
-      InvalidateScrollRect();
-      return;
-    }
-  }
-
-  // If the new scroll overlaps too much with contained paint rects, then force
-  // an invalidation of the scroll.
-  if (ShouldInvalidateScrollRect(Rect()))
-    InvalidateScrollRect();
-}
-
-Rect PaintAggregator::ScrollPaintRect(const Rect& paint_rect,
-                                      const Point& amount) const {
-  Rect result = paint_rect;
-
-  result.Offset(amount);
-  result = update_.scroll_rect.Intersect(result);
-
-  // Subtract out the scroll damage rect to avoid redundant painting.
-  return result.Subtract(update_.GetScrollDamage());
-}
-
-bool PaintAggregator::ShouldInvalidateScrollRect(const Rect& rect) const {
-  if (!rect.IsEmpty()) {
-    if (!update_.scroll_rect.Intersects(rect))
-      return false;
-
-    if (!update_.scroll_rect.Contains(rect))
-      return true;
-  }
-
-  // Check if the combined area of all contained paint rects plus this new
-  // rect comes too close to the area of the scroll_rect.  If so, then we
-  // might as well invalidate the scroll rect.
-
-  int paint_area = rect.size().GetArea();
-  for (size_t i = 0; i < update_.paint_rects.size(); ++i) {
-    const Rect& existing_rect = update_.paint_rects[i];
-    if (update_.scroll_rect.Contains(existing_rect))
-      paint_area += existing_rect.size().GetArea();
-  }
-  int scroll_area = update_.scroll_rect.size().GetArea();
-  return static_cast<float>(paint_area) / static_cast<float>(scroll_area) >
-         max_redundant_paint_to_scroll_area_;
-}
-
-void PaintAggregator::InvalidateScrollRect() {
-  Rect scroll_rect = update_.scroll_rect;
-  update_.scroll_rect = Rect();
-  update_.scroll_delta = Point();
-  InvalidateRect(scroll_rect);
-}
-
-void PaintAggregator::CombinePaintRects() {
-  // Combine paint rects down to at most two rects: one inside the scroll_rect
-  // and one outside the scroll_rect.  If there is no scroll_rect, then just
-  // use the smallest bounding box for all paint rects.
-  //
-  // NOTE: This is a fairly simple algorithm.  We could get fancier by only
-  // combining two rects to get us under the max_paint_rects limit, but if we
-  // reach this method then it means we're hitting a rare case, so there's no
-  // need to over-optimize it.
-  //
-  if (update_.scroll_rect.IsEmpty()) {
-    Rect bounds = update_.GetPaintBounds();
-    update_.paint_rects.clear();
-    update_.paint_rects.push_back(bounds);
-  } else {
-    Rect inner, outer;
-    for (size_t i = 0; i < update_.paint_rects.size(); ++i) {
-      const Rect& existing_rect = update_.paint_rects[i];
-      if (update_.scroll_rect.Contains(existing_rect)) {
-        inner = inner.Union(existing_rect);
-      } else {
-        outer = outer.Union(existing_rect);
-      }
-    }
-    update_.paint_rects.clear();
-    update_.paint_rects.push_back(inner);
-    update_.paint_rects.push_back(outer);
-  }
-}
-
-}  // namespace pp
diff --git a/utility/graphics/paint_aggregator.h b/utility/graphics/paint_aggregator.h
deleted file mode 100644
index a8ae258..0000000
--- a/utility/graphics/paint_aggregator.h
+++ /dev/null
@@ -1,174 +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_UTILITY_GRAPHICS_PAINT_AGGREGATOR_H_
-#define PPAPI_UTILITY_GRAPHICS_PAINT_AGGREGATOR_H_
-
-#include <stddef.h>
-#include <vector>
-
-#include "ppapi/cpp/point.h"
-#include "ppapi/cpp/rect.h"
-
-/// @file
-/// This file defines the API to aggregate multiple invalidation and scroll
-/// commands to produce a scroll and repaint sequence.
-namespace pp {
-
-/// This class is responsible for aggregating multiple invalidation and scroll
-/// commands to produce a scroll and repaint sequence. You can use this manually
-/// to track your updates, but most applications will use the PaintManager to
-/// additionally handle the necessary callbacks on top of the PaintAggregator
-/// functionality.
-///
-/// Refer to <code>http://code.google.com/p/ppapi/wiki/2DPaintingModel</code>
-/// for further information.
-class PaintAggregator {
- public:
-  struct PaintUpdate {
-    /// Default constructor for creating an is_null() <code>PaintUpdate</code>
-    /// object.
-    PaintUpdate();
-
-    /// Destructor.
-    ~PaintUpdate();
-
-    /// True if there is a scroll applied. This indicates that the scroll delta
-    /// and scroll_rect are nonzero (just as a convenience).
-    bool has_scroll;
-
-    /// The amount to scroll by. Either the X or Y may be nonzero to indicate a
-    /// scroll in that direction, but there will never be a scroll in both
-    /// directions at the same time (this will be converted to a paint of the
-    /// region instead).
-    ///
-    /// If there is no scroll, this will be (0, 0).
-    Point scroll_delta;
-
-    /// The rectangle that should be scrolled by the scroll_delta. If there is
-    /// no scroll, this will be (0, 0, 0, 0). We only track one scroll command
-    /// at once. If there are multiple ones, they will be converted to
-    /// invalidates.
-    Rect scroll_rect;
-
-    /// A list of all the individual dirty rectangles. This is an aggregated
-    /// list of all invalidate calls. Different rectangles may be unified to
-    /// produce a minimal list with no overlap that is more efficient to paint.
-    /// This list also contains the region exposed by any scroll command.
-    std::vector<Rect> paint_rects;
-
-    /// The union of all paint_rects.
-    Rect paint_bounds;
-  };
-
-  /// Default constructor.
-  PaintAggregator();
-
-  /// Setter function setting the max ratio of paint rect area to scroll rect
-  /// area that we will tolerate before downgrading the scroll into a repaint.
-  ///
-  /// If the combined area of paint rects contained within the scroll
-  /// rect grows too large, then we might as well just treat
-  /// the scroll rect as a paint rect.
-  ///
-  /// @param[in] area The max ratio of paint rect area to scroll rect area that
-  /// we will tolerate before downgrading the scroll into a repaint.
-  void set_max_redundant_paint_to_scroll_area(float area) {
-    max_redundant_paint_to_scroll_area_ = area;
-  }
-
-  /// Setter function for setting the maximum number of paint rects. If we
-  /// exceed this limit, then we'll start combining paint rects (see
-  /// CombinePaintRects). This limiting can be important since there is
-  /// typically some overhead in deciding what to paint. If your module is fast
-  /// at doing these computations, raise this threshold, if your module is
-  /// slow, lower it (probably requires some tuning to find the right value).
-  ///
-  /// @param[in] max_rects The maximum number of paint rects.
-  void set_max_paint_rects(size_t max_rects) {
-    max_paint_rects_ = max_rects;
-  }
-
-  /// This function determines if there is a pending update. There is a
-  /// PendingUpdate if InvalidateRect or ScrollRect were called and
-  /// ClearPendingUpdate was not called.
-  ///
-  /// @return true if there is a pending update, otherwise false.
-  bool HasPendingUpdate() const;
-
-  /// This function clears a pending update.
-  void ClearPendingUpdate();
-
-  /// This function gets a pending update.
-  ///
-  /// @return A PaintUpdate containing the pending update.
-  PaintUpdate GetPendingUpdate() const;
-
-  /// This function invalidates the rect so it will be repainted.
-  ///
-  /// @param[in] rect A rect to be repainted.
-  void InvalidateRect(const Rect& rect);
-
-  /// This function adds a pending scroll update.
-  ///
-  /// @param[in] clip_rect The rect to scroll.
-  /// @param[in] amount A Point amount to scroll <code>rect</code>.
-  void ScrollRect(const Rect& clip_rect, const Point& amount);
-
- private:
-  // This structure is an internal version of PaintUpdate. It's different in
-  // two respects:
-  //
-  //  - The scroll damange (area exposed by the scroll operation, if any) is
-  //    maintained separately from the dirty rects generated by calling
-  //    InvalidateRect. We need to know this distinction for some operations.
-  //
-  //  - The paint bounds union is computed on the fly so we don't have to keep
-  //    a rectangle up to date as we do different operations.
-  class InternalPaintUpdate {
-   public:
-    InternalPaintUpdate();
-    ~InternalPaintUpdate();
-
-    // Computes the rect damaged by scrolling within |scroll_rect| by
-    // |scroll_delta|. This rect must be repainted. It is not included in
-    // paint_rects or in the rect returned by GetPaintBounds.
-    Rect GetScrollDamage() const;
-
-    // Returns the smallest rect containing all paint rects, not including the
-    // scroll damage rect.
-    Rect GetPaintBounds() const;
-
-    Point scroll_delta;
-    Rect scroll_rect;
-
-    // Does not include the scroll damage rect.
-    std::vector<Rect> paint_rects;
-  };
-
-  Rect ScrollPaintRect(const Rect& paint_rect, const Point& amount) const;
-  bool ShouldInvalidateScrollRect(const Rect& rect) const;
-  void InvalidateScrollRect();
-  void CombinePaintRects();
-
-  InternalPaintUpdate update_;
-
-  // If the combined area of paint rects contained within the scroll rect grows
-  // too large, then we might as well just treat the scroll rect as a paint
-  // rect. This constant sets the max ratio of paint rect area to scroll rect
-  // area that we will tolerate before downgrading the scroll into a repaint.
-  float max_redundant_paint_to_scroll_area_;
-
-  // The maximum number of paint rects. If we exceed this limit, then we'll
-  // start combining paint rects (see CombinePaintRects). This limiting can be
-  // important since there is typically some overhead in deciding what to
-  // paint. If your plugin is fast at doing these computations, raise this
-  // threshold, if your plugin is slow, lower it (probably requires some
-  // tuning to find the right value).
-  size_t max_paint_rects_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_UTILITY_GRAPHICS_PAINT_AGGREGATOR_H_
diff --git a/utility/graphics/paint_manager.cc b/utility/graphics/paint_manager.cc
deleted file mode 100644
index e4546dd..0000000
--- a/utility/graphics/paint_manager.cc
+++ /dev/null
@@ -1,209 +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/utility/graphics/paint_manager.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/logging.h"
-#include "ppapi/cpp/module.h"
-
-namespace pp {
-
-PaintManager::PaintManager()
-    : instance_(NULL),
-      client_(NULL),
-      is_always_opaque_(false),
-      callback_factory_(NULL),
-      manual_callback_pending_(false),
-      flush_pending_(false),
-      has_pending_resize_(false) {
-  // Set the callback object outside of the initializer list to avoid a
-  // compiler warning about using "this" in an initializer list.
-  callback_factory_.Initialize(this);
-}
-
-PaintManager::PaintManager(Instance* instance,
-                           Client* client,
-                           bool is_always_opaque)
-    : instance_(instance),
-      client_(client),
-      is_always_opaque_(is_always_opaque),
-      callback_factory_(NULL),
-      manual_callback_pending_(false),
-      flush_pending_(false),
-      has_pending_resize_(false) {
-  // Set the callback object outside of the initializer list to avoid a
-  // compiler warning about using "this" in an initializer list.
-  callback_factory_.Initialize(this);
-
-  // You can not use a NULL client pointer.
-  PP_DCHECK(client);
-}
-
-PaintManager::~PaintManager() {
-}
-
-void PaintManager::Initialize(Instance* instance,
-                              Client* client,
-                              bool is_always_opaque) {
-  PP_DCHECK(!instance_ && !client_);  // Can't initialize twice.
-  instance_ = instance;
-  client_ = client;
-  is_always_opaque_ = is_always_opaque;
-}
-
-void PaintManager::SetSize(const Size& new_size) {
-  if (GetEffectiveSize() == new_size)
-    return;
-
-  has_pending_resize_ = true;
-  pending_size_ = new_size;
-
-  Invalidate();
-}
-
-void PaintManager::Invalidate() {
-  // You must call SetSize before using.
-  PP_DCHECK(!graphics_.is_null() || has_pending_resize_);
-
-  EnsureCallbackPending();
-  aggregator_.InvalidateRect(Rect(GetEffectiveSize()));
-}
-
-void PaintManager::InvalidateRect(const Rect& rect) {
-  // You must call SetSize before using.
-  PP_DCHECK(!graphics_.is_null() || has_pending_resize_);
-
-  // Clip the rect to the device area.
-  Rect clipped_rect = rect.Intersect(Rect(GetEffectiveSize()));
-  if (clipped_rect.IsEmpty())
-    return;  // Nothing to do.
-
-  EnsureCallbackPending();
-  aggregator_.InvalidateRect(clipped_rect);
-}
-
-void PaintManager::ScrollRect(const Rect& clip_rect, const Point& amount) {
-  // You must call SetSize before using.
-  PP_DCHECK(!graphics_.is_null() || has_pending_resize_);
-
-  EnsureCallbackPending();
-  aggregator_.ScrollRect(clip_rect, amount);
-}
-
-Size PaintManager::GetEffectiveSize() const {
-  return has_pending_resize_ ? pending_size_ : graphics_.size();
-}
-
-void PaintManager::EnsureCallbackPending() {
-  // The best way for us to do the next update is to get a notification that
-  // a previous one has completed. So if we're already waiting for one, we
-  // don't have to do anything differently now.
-  if (flush_pending_)
-    return;
-
-  // If no flush is pending, we need to do a manual call to get back to the
-  // main thread. We may have one already pending, or we may need to schedule.
-  if (manual_callback_pending_)
-    return;
-
-  Module::Get()->core()->CallOnMainThread(
-      0,
-      callback_factory_.NewCallback(&PaintManager::OnManualCallbackComplete),
-      0);
-  manual_callback_pending_ = true;
-}
-
-void PaintManager::DoPaint() {
-  PP_DCHECK(aggregator_.HasPendingUpdate());
-
-  // Make a copy of the pending update and clear the pending update flag before
-  // actually painting. A plugin might cause invalidates in its Paint code, and
-  // we want those to go to the *next* paint.
-  PaintAggregator::PaintUpdate update = aggregator_.GetPendingUpdate();
-  aggregator_.ClearPendingUpdate();
-
-  // Apply any pending resize. Setting the graphics to this class must happen
-  // before asking the plugin to paint in case it requests the Graphics2D during
-  // painting. However, the bind must not happen until afterward since we don't
-  // want to have an unpainted device bound. The needs_binding flag tells us
-  // whether to do this later.
-  bool needs_binding = false;
-  if (has_pending_resize_) {
-    graphics_ = Graphics2D(instance_, pending_size_, is_always_opaque_);
-    needs_binding = true;
-
-    // Since we're binding a new one, all of the callbacks have been canceled.
-    manual_callback_pending_ = false;
-    flush_pending_ = false;
-    callback_factory_.CancelAll();
-
-    // This must be cleared before calling into the plugin since it may do
-    // additional invalidation or sizing operations.
-    has_pending_resize_ = false;
-    pending_size_ = Size();
-  }
-
-  // Apply any scroll before asking the client to paint.
-  if (update.has_scroll)
-    graphics_.Scroll(update.scroll_rect, update.scroll_delta);
-
-  if (client_->OnPaint(graphics_, update.paint_rects, update.paint_bounds)) {
-    // Something was painted, schedule a flush.
-    int32_t result = graphics_.Flush(
-        callback_factory_.NewOptionalCallback(&PaintManager::OnFlushComplete));
-
-    // If you trigger this assertion, then your plugin has called Flush()
-    // manually. When using the PaintManager, you should not call Flush, it
-    // will handle that for you because it needs to know when it can do the
-    // next paint by implementing the flush callback.
-    //
-    // Another possible cause of this assertion is re-using devices. If you
-    // use one device, swap it with another, then swap it back, we won't know
-    // that we've already scheduled a Flush on the first device. It's best to
-    // not re-use devices in this way.
-    PP_DCHECK(result != PP_ERROR_INPROGRESS);
-
-    if (result == PP_OK_COMPLETIONPENDING) {
-      flush_pending_ = true;
-    } else {
-      PP_DCHECK(result == PP_OK);  // Catch all other errors in debug mode.
-    }
-  }
-
-  if (needs_binding)
-    instance_->BindGraphics(graphics_);
-}
-
-void PaintManager::OnFlushComplete(int32_t result) {
-  PP_DCHECK(flush_pending_);
-  flush_pending_ = false;
-
-  // Theoretically this shouldn't fail unless we've made an error, but don't
-  // want to call into the client code to do more painting if something bad
-  // did happen.
-  if (result != PP_OK)
-    return;
-
-  // If more paints were enqueued while we were waiting for the flush to
-  // complete, execute them now.
-  if (aggregator_.HasPendingUpdate())
-    DoPaint();
-}
-
-void PaintManager::OnManualCallbackComplete(int32_t) {
-  PP_DCHECK(manual_callback_pending_);
-  manual_callback_pending_ = false;
-
-  // Just because we have a manual callback doesn't mean there are actually any
-  // invalid regions. Even though we only schedule this callback when something
-  // is pending, a Flush callback could have come in before this callback was
-  // executed and that could have cleared the queue.
-  if (aggregator_.HasPendingUpdate() && !flush_pending_)
-    DoPaint();
-}
-
-
-}  // namespace pp
diff --git a/utility/graphics/paint_manager.h b/utility/graphics/paint_manager.h
deleted file mode 100644
index 3a3fac1..0000000
--- a/utility/graphics/paint_manager.h
+++ /dev/null
@@ -1,300 +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_UTILITY_GRAPHICS_PAINT_MANAGER_H_
-#define PPAPI_UTILITY_GRAPHICS_PAINT_MANAGER_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <vector>
-
-#include "ppapi/cpp/graphics_2d.h"
-#include "ppapi/utility/completion_callback_factory.h"
-#include "ppapi/utility/graphics/paint_aggregator.h"
-
-/// @file
-/// This file defines the API to convert the "plugin push" model of painting
-/// in PPAPI to a paint request at a later time.
-
-namespace pp {
-
-class Graphics2D;
-class Instance;
-class Point;
-class Rect;
-
-/// This class converts the "instance push" model of painting in PPAPI to a
-/// paint request at a later time. Usage is that you call Invalidate and
-/// Scroll, and implement the Client interface. Your OnPaint handler will
-/// then get called with coalesced paint events.
-///
-/// This class is basically a <code>PaintAggregator</code> that groups updates,
-/// plus management of callbacks for scheduling paints.
-///
-/// <strong>Example:</strong>
-///
-/// <code>
-///
-///  class MyClass : public pp::Instance, public PaintManager::Client {
-///   public:
-///    MyClass() {
-///      paint_manager_.Initialize(this, this, false);
-///    }
-///
-///    void ViewChanged(const pp::Rect& position, const pp::Rect& clip) {
-///      paint_manager_.SetSize(position.size());
-///    }
-///
-///    void DoSomething() {
-///      // This function does something like respond to an event that causes
-///      // the screen to need updating.
-///      paint_manager_.InvalidateRect(some_rect);
-///    }
-///
-///    // Implementation of PaintManager::Client
-///    virtual bool OnPaint(pp::Graphics2D& device,
-///                         const pp::PaintUpdate& update) {
-///      // If our app needed scrolling, we would apply that first here.
-///
-///      // Then we would either repaint the area returned by GetPaintBounds or
-///      // iterate through all the paint_rects.
-///
-///      // The caller will call Flush() for us, so don't do that here.
-///      return true;
-///    }
-///
-///   private:
-///    pp::PaintManager paint_manager_;
-///  };
-/// </code>
-class PaintManager {
- public:
-  class Client {
-   public:
-    /// OnPaint() paints the given invalid area of the instance to the given
-    /// graphics device. Returns true if anything was painted.
-    ///
-    /// You are given the list of rects to paint in <code>paint_rects</code>,
-    /// and the union of all of these rects in <code>paint_bounds</code>. You
-    /// only have to paint the area inside each of the
-    /// <code>paint_rects</code>, but can paint more if you want (some apps may
-    /// just want to paint the union).
-    ///
-    /// Do not call Flush() on the graphics device, this will be done
-    /// automatically if you return true from this function since the
-    /// <code>PaintManager</code> needs to handle the callback.
-    ///
-    /// It is legal for you to cause invalidates inside of Paint which will
-    /// then get executed as soon as the Flush for this update has completed.
-    /// However, this is not very nice to the host system since it will spin the
-    /// CPU, possibly updating much faster than necessary. It is best to have a
-    /// 1/60 second timer to do an invalidate instead. This will limit your
-    /// animation to the slower of 60Hz or "however fast Flush can complete."
-    ///
-    /// @param[in] graphics A <code>Graphics2D</code> to be painted.
-    /// @param[in] paint_rects A list of rects to paint.
-    /// @param[in] paint_bounds A union of the rects to paint.
-    ///
-    /// @return true if successful, otherwise false.
-    virtual bool OnPaint(Graphics2D& graphics,
-                         const std::vector<Rect>& paint_rects,
-                         const Rect& paint_bounds) = 0;
-
-   protected:
-    // You shouldn't be doing deleting through this interface.
-    virtual ~Client() {}
-  };
-
-  /// Default constructor for creating an is_null() <code>PaintManager</code>
-  /// object. If you use this version of the constructor, you must call
-  /// Initialize() below.
-  PaintManager();
-
-  /// A constructor to create a new <code>PaintManager</code> with an instance
-  /// and client.
-  ///
-  /// <strong>Note:</strong> You will need to call SetSize() before this class
-  /// will do anything. Normally you do this from the <code>ViewChanged</code>
-  /// method of your instance.
-  ///
-  /// @param instance The instance using this paint manager to do its
-  /// painting. Painting will automatically go to this instance and you don't
-  /// have to manually bind any device context (this is all handled by the
-  /// paint manager).
-  ///
-  /// @param client A non-owning pointer and must remain valid (normally the
-  /// object implementing the Client interface will own the paint manager).
-  ///
-  /// @param is_always_opaque A flag passed to the device contexts that this
-  /// class creates. Set this to true if your instance always draws an opaque
-  /// image to the device. This is used as a hint to the browser that it does
-  /// not need to do alpha blending, which speeds up painting. If you generate
-  /// non-opqaue pixels or aren't sure, set this to false for more general
-  /// blending.
-  ///
-  /// If you set is_always_opaque, your alpha channel should always be set to
-  /// 0xFF or there may be painting artifacts. Being opaque will allow the
-  /// browser to do a memcpy rather than a blend to paint the plugin, and this
-  /// means your alpha values will get set on the page backing store. If these
-  /// values are incorrect, it could mess up future blending. If you aren't
-  /// sure, it is always correct to specify that it it not opaque.
-  PaintManager(Instance* instance, Client* client, bool is_always_opaque);
-
-  /// Destructor.
-  ~PaintManager();
-
-  /// Initialize() must be called if you are using the 0-arg constructor.
-  ///
-  /// @param instance The instance using this paint manager to do its
-  /// painting. Painting will automatically go to this instance and you don't
-  /// have to manually bind any device context (this is all handled by the
-  /// paint manager).
-  /// @param client A non-owning pointer and must remain valid (normally the
-  /// object implementing the Client interface will own the paint manager).
-  /// @param is_always_opaque A flag passed to the device contexts that this
-  /// class creates. Set this to true if your instance always draws an opaque
-  /// image to the device. This is used as a hint to the browser that it does
-  /// not need to do alpha blending, which speeds up painting. If you generate
-  /// non-opqaue pixels or aren't sure, set this to false for more general
-  /// blending.
-  ///
-  /// If you set <code>is_always_opaque</code>, your alpha channel should
-  /// always be set to <code>0xFF</code> or there may be painting artifacts.
-  /// Being opaque will allow the browser to do a memcpy rather than a blend
-  /// to paint the plugin, and this means your alpha values will get set on the
-  /// page backing store. If these values are incorrect, it could mess up
-  /// future blending. If you aren't sure, it is always correct to specify that
-  /// it it not opaque.
-  void Initialize(Instance* instance, Client* client, bool is_always_opaque);
-
-  /// Setter function setting the max ratio of paint rect area to scroll rect
-  /// area that we will tolerate before downgrading the scroll into a repaint.
-  ///
-  /// If the combined area of paint rects contained within the scroll
-  /// rect grows too large, then we might as well just treat
-  /// the scroll rect as a paint rect.
-  ///
-  /// @param[in] area The max ratio of paint rect area to scroll rect area that
-  /// we will tolerate before downgrading the scroll into a repaint.
-  void set_max_redundant_paint_to_scroll_area(float area) {
-    aggregator_.set_max_redundant_paint_to_scroll_area(area);
-  }
-
-  /// Setter function for setting the maximum number of paint rects. If we
-  /// exceed this limit, then we'll start combining paint rects (refer to
-  /// CombinePaintRects() for further information). This limiting can be
-  /// important since there is typically some overhead in deciding what to
-  /// paint. If your module is fast at doing these computations, raise this
-  /// threshold, if your module is slow, lower it (probably requires some
-  /// tuning to find the right value).
-  ///
-  /// @param[in] max_rects The maximum number of paint rects.
-  void set_max_paint_rects(size_t max_rects) {
-    aggregator_.set_max_paint_rects(max_rects);
-  }
-
-  /// SetSize() sets the size of the instance. If the size is the same as the
-  /// previous call, this will be a NOP. If the size has changed, a new device
-  /// will be allocated to the given size and a paint to that device will be
-  /// scheduled.
-  ///
-  /// This function is intended to be called from <code>ViewChanged</code> with
-  /// the size of the instance. Since it tracks the old size and only allocates
-  /// when the size changes, you can always call this function without worrying
-  /// about whether the size changed or ViewChanged() is called for another
-  /// reason (like the position changed).
-  ///
-  /// @param new_size The new size for the instance.
-  void SetSize(const Size& new_size);
-
-  /// This function provides access to the underlying device in case you need
-  /// it. If you have done a SetSize(), note that the graphics context won't be
-  /// updated until right before the next call to OnPaint().
-  ///
-  /// <strong>Note:</strong> If you call Flush on this device the paint manager
-  /// will get very confused, don't do this!
-  const Graphics2D& graphics() const { return graphics_; }
-
-  /// This function provides access to the underlying device in case you need
-  /// it. If you have done a SetSize(), note that the graphics context won't be
-  /// updated until right before the next call to OnPaint().
-  ///
-  /// <strong>Note:</strong> If you call Flush on this device the paint manager
-  /// will get very confused, don't do this!
-  Graphics2D& graphics() { return graphics_; }
-
-  /// Invalidate() invalidate the entire instance.
-  void Invalidate();
-
-  /// InvalidateRect() Invalidate the provided rect.
-  ///
-  /// @param[in] rect The <code>Rect</code> to be invalidated.
-  void InvalidateRect(const Rect& rect);
-
-  /// ScrollRect() scrolls the provided <code>clip_rect</code> by the
-  /// <code>amount</code> argument.
-  ///
-  /// @param clip_rect The clip rectangle to scroll.
-  /// @param amount The amount to scroll <code>clip_rect</code>.
-  void ScrollRect(const Rect& clip_rect, const Point& amount);
-
-  /// GetEffectiveSize() returns the size of the graphics context for the
-  /// next paint operation. This is the pending size if a resize is pending
-  /// (the instance has called SetSize() but we haven't actually painted it
-  /// yet), or the current size of no resize is pending.
-  ///
-  /// @return The effective size.
-  Size GetEffectiveSize() const;
-
- private:
-  // Disallow copy and assign (these are unimplemented).
-  PaintManager(const PaintManager&);
-  PaintManager& operator=(const PaintManager&);
-
-  // Makes sure there is a callback that will trigger a paint at a later time.
-  // This will be either a Flush callback telling us we're allowed to generate
-  // more data, or, if there's no flush callback pending, a manual call back
-  // to the message loop via ExecuteOnMainThread.
-  void EnsureCallbackPending();
-
-  // Does the client paint and executes a Flush if necessary.
-  void DoPaint();
-
-  // Callback for asynchronous completion of Flush.
-  void OnFlushComplete(int32_t result);
-
-  // Callback for manual scheduling of paints when there is no flush callback
-  // pending.
-  void OnManualCallbackComplete(int32_t);
-
-  Instance* instance_;
-
-  // Non-owning pointer. See the constructor.
-  Client* client_;
-
-  bool is_always_opaque_;
-
-  CompletionCallbackFactory<PaintManager> callback_factory_;
-
-  // This graphics device will be is_null() if no graphics has been manually
-  // set yet.
-  Graphics2D graphics_;
-
-  PaintAggregator aggregator_;
-
-  // See comment for EnsureCallbackPending for more on how these work.
-  bool manual_callback_pending_;
-  bool flush_pending_;
-
-  // When we get a resize, we don't bind right away (see SetSize). The
-  // has_pending_resize_ tells us that we need to do a resize for the next
-  // paint operation. When true, the new size is in pending_size_.
-  bool has_pending_resize_;
-  Size pending_size_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_UTILITY_GRAPHICS_PAINT_MANAGER_H_
diff --git a/utility/threading/lock.cc b/utility/threading/lock.cc
deleted file mode 100644
index a9b693a..0000000
--- a/utility/threading/lock.cc
+++ /dev/null
@@ -1,49 +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/utility/threading/lock.h"
-
-namespace pp {
-
-#ifdef WIN32  // Windows implementation for native plugins.
-
-Lock::Lock() {
-  // The second parameter is the spin count; for short-held locks it avoids the
-  // contending thread from going to sleep which helps performance greatly.
-  ::InitializeCriticalSectionAndSpinCount(&os_lock_, 2000);
-}
-
-Lock::~Lock() {
-  ::DeleteCriticalSection(&os_lock_);
-}
-
-void Lock::Acquire() {
-  ::EnterCriticalSection(&os_lock_);
-}
-
-void Lock::Release() {
-  ::LeaveCriticalSection(&os_lock_);
-}
-
-#else  // Posix implementation.
-
-Lock::Lock() {
-  pthread_mutex_init(&os_lock_, NULL);
-}
-
-Lock::~Lock() {
-  pthread_mutex_destroy(&os_lock_);
-}
-
-void Lock::Acquire() {
-  pthread_mutex_lock(&os_lock_);
-}
-
-void Lock::Release() {
-  pthread_mutex_unlock(&os_lock_);
-}
-
-#endif
-
-}  // namespace pp
diff --git a/utility/threading/lock.h b/utility/threading/lock.h
deleted file mode 100644
index 7aa21cc..0000000
--- a/utility/threading/lock.h
+++ /dev/null
@@ -1,87 +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_UTILITY_THREADING_LOCK_H_
-#define PPAPI_UTILITY_THREADING_LOCK_H_
-
-#ifdef WIN32
-#include <windows.h>
-// MemoryBarrier is a Win32 macro that clashes with MemoryBarrier in
-// base/atomicops.h.
-#undef MemoryBarrier
-#else
-#include <pthread.h>
-#endif
-
-namespace pp {
-
-/// A simple wrapper around a platform-specific lock. See also AutoLock.
-class Lock {
- public:
-  /// Creates a lock in the "not held" state.
-  Lock();
-
-  /// Destroys the lock.
-  ~Lock();
-
-  /// Acquires the lock, blocking if it's already held by a different thread.
-  /// The lock must not already be held on the current thread (i.e. recursive
-  /// locks are not supported).
-  ///
-  /// Most callers should consider using an AutoLock instead to automatically
-  /// acquire and release the lock.
-  void Acquire();
-
-  /// Releases the lock. This must be paired with a call to Acquire().
-  void Release();
-
- private:
-#if defined(WIN32)
-  typedef CRITICAL_SECTION OSLockType;
-#else
-  typedef pthread_mutex_t OSLockType;
-#endif
-
-  OSLockType os_lock_;
-
-  // Copy and assign not supported.
-  Lock(const Lock&);
-  Lock& operator=(const Lock&);
-};
-
-/// A helper class that scopes holding a lock.
-///
-/// @code
-///   class MyClass {
-///    public:
-///     void DoSomething() {
-///       pp::AutoLock lock(lock_);
-///       ...do something with the lock held...
-///     }
-///
-///    private:
-///     pp::Lock lock_;
-///   };
-/// @endcode
-class AutoLock {
- public:
-  explicit AutoLock(Lock& lock) : lock_(lock) {
-    lock_.Acquire();
-  }
-
-  ~AutoLock() {
-    lock_.Release();
-  }
-
- private:
-  Lock& lock_;
-
-  // Copy and assign not supported.
-  AutoLock(const AutoLock&);
-  AutoLock& operator=(const AutoLock&);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_UTILITY_THREADING_LOCK_H_
diff --git a/utility/threading/simple_thread.cc b/utility/threading/simple_thread.cc
deleted file mode 100644
index 5bef2cd..0000000
--- a/utility/threading/simple_thread.cc
+++ /dev/null
@@ -1,118 +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/utility/threading/simple_thread.h"
-
-#ifdef WIN32
-#include <windows.h>
-#endif
-
-namespace pp {
-
-namespace {
-
-// Use 2MB default stack size for Native Client, otherwise use system default.
-#if defined(__native_client__)
-const size_t kDefaultStackSize = 2 * 1024 * 1024;
-#else
-const size_t kDefaultStackSize = 0;
-#endif
-
-
-struct ThreadData {
-  MessageLoop message_loop;
-
-  SimpleThread::ThreadFunc func;
-  void* user_data;
-};
-
-#ifdef WIN32
-DWORD WINAPI RunThread(void* void_data) {
-#else
-void* RunThread(void* void_data) {
-#endif
-  ThreadData* data = static_cast<ThreadData*>(void_data);
-  data->message_loop.AttachToCurrentThread();
-
-  if (data->func)
-    data->func(data->message_loop, data->user_data);
-  else
-    data->message_loop.Run();
-
-  delete data;
-  return NULL;
-}
-
-}   // namespace
-
-SimpleThread::SimpleThread(const InstanceHandle& instance)
-    : instance_(instance),
-      message_loop_(instance),
-      stacksize_(kDefaultStackSize),
-      thread_(0) {
-}
-
-SimpleThread::SimpleThread(const InstanceHandle& instance,
-                           size_t stacksize)
-    : instance_(instance),
-      message_loop_(instance),
-      stacksize_(stacksize),
-      thread_(0) {
-}
-
-SimpleThread::~SimpleThread() {
-  Join();
-}
-
-bool SimpleThread::Start() {
-  return StartWithFunction(NULL, NULL);
-}
-
-bool SimpleThread::Join() {
-  if (!thread_)
-    return false;
-
-  message_loop_.PostQuit(true);
-
-#ifdef WIN32
-  DWORD result = WaitForSingleObject(thread_, INFINITE);
-  CloseHandle(thread_);
-  thread_ = 0;
-  return result == WAIT_OBJECT_0;
-
-#else
-  void* retval;
-  int result = pthread_join(thread_, &retval);
-  thread_ = 0;
-  return result == 0;
-#endif
-}
-
-bool SimpleThread::StartWithFunction(ThreadFunc func, void* user_data) {
-  if (thread_)
-    return false;
-
-  ThreadData* data = new ThreadData;
-  data->message_loop = message_loop_;
-  data->func = func;
-  data->user_data = user_data;
-
-#ifdef WIN32
-  thread_ = CreateThread(NULL, stacksize_, &RunThread, data, 0, NULL);
-  if (!thread_) {
-#else
-  pthread_attr_t attr;
-  pthread_attr_init(&attr);
-  int setval = 0;
-  if (stacksize_ > 0)
-    setval = pthread_attr_setstacksize(&attr, stacksize_);
-  if (setval != 0 || pthread_create(&thread_, &attr, &RunThread, data) != 0) {
-#endif
-    delete data;
-    return false;
-  }
-  return true;
-}
-
-}  // namespace pp
diff --git a/utility/threading/simple_thread.h b/utility/threading/simple_thread.h
deleted file mode 100644
index f9faeb6..0000000
--- a/utility/threading/simple_thread.h
+++ /dev/null
@@ -1,72 +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_UTILITY_THREADING_SIMPLE_THREAD_H_
-#define PPAPI_UTILITY_THREADING_SIMPLE_THREAD_H_
-
-#include <stddef.h>
-#ifdef WIN32
-#include <windows.h>
-// MemoryBarrier is a Win32 macro that clashes with MemoryBarrier in
-// base/atomicops.h.
-#undef MemoryBarrier
-#else
-#include <pthread.h>
-#endif
-
-#include "ppapi/cpp/instance_handle.h"
-#include "ppapi/cpp/message_loop.h"
-
-namespace pp {
-
-// This class is a simple wrapper around a pthread/Windows thread that creates
-// and runs a PPAPI message loop on that thread.
-class SimpleThread {
- public:
-#ifdef WIN32
-  typedef HANDLE ThreadHandle;
-#else
-  typedef pthread_t ThreadHandle;
-#endif
-
-  typedef void (*ThreadFunc)(MessageLoop&, void* user_data);
-
-  explicit SimpleThread(const InstanceHandle& instance);
-  explicit SimpleThread(const InstanceHandle& instance, size_t stacksize);
-  ~SimpleThread();
-
-  // Starts a thread and runs a message loop in it. If you need control over
-  // how the message loop is run, use StartWithFunction. Returns true on
-  // success, false if the thread is already running or couldn't be started.
-  bool Start();
-
-  // Posts a quit message to the message loop and blocks until the thread
-  // exits. Returns true on success. If the thread is not running, returns
-  // false.
-  bool Join();
-
-  // Normally you can just use Start() to start a thread, and then post work to
-  // it. In some cases you will want control over the message. If ThreadFunc
-  // is NULL, this acts the same as Start().
-  bool StartWithFunction(ThreadFunc func, void* user_data);
-
-  MessageLoop& message_loop() { return message_loop_; }
-  ThreadHandle thread() const { return thread_; }
-
- private:
-  InstanceHandle instance_;
-  MessageLoop message_loop_;
-  const size_t stacksize_;
-  ThreadHandle thread_;
-
-  // Disallow (not implemented).
-  SimpleThread(const SimpleThread&);
-  SimpleThread(const SimpleThread&, size_t stacksize);
-  SimpleThread& operator=(const SimpleThread&);
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_UTILITY_THREADING_SIMPLE_THREAD_H_
-
diff --git a/utility/websocket/websocket_api.cc b/utility/websocket/websocket_api.cc
deleted file mode 100644
index fc86f96..0000000
--- a/utility/websocket/websocket_api.cc
+++ /dev/null
@@ -1,147 +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/utility/websocket/websocket_api.h"
-
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/c/pp_macros.h"
-#include "ppapi/cpp/instance.h"
-#include "ppapi/cpp/module.h"
-#include "ppapi/cpp/module_impl.h"
-#include "ppapi/cpp/var.h"
-#include "ppapi/cpp/websocket.h"
-#include "ppapi/utility/completion_callback_factory.h"
-
-#ifdef SendMessage
-#undef SendMessage
-#endif
-
-namespace pp {
-
-class WebSocketAPI::Implement : public WebSocket {
- public:
-  Implement(Instance* instance, WebSocketAPI* api)
-      : WebSocket(instance),
-        api_(api),
-        callback_factory_(this) {
-  }
-
-  virtual ~Implement() {}
-
-  int32_t Connect(const Var& url, const Var protocols[],
-                  uint32_t protocol_count) {
-    CompletionCallback callback =
-        callback_factory_.NewOptionalCallback(&Implement::DidConnect);
-    int32_t result =
-        WebSocket::Connect(url, protocols, protocol_count, callback);
-    if (result != PP_OK_COMPLETIONPENDING) {
-      // In synchronous cases, consumes callback here and invokes callback
-      // with PP_ERROR_ABORTED instead of result in order to avoid side effects
-      // in DidConnect. DidConnect ignores this invocation and doesn't call
-      // any delegate virtual method.
-      callback.Run(PP_ERROR_ABORTED);
-    }
-    return result;
-  }
-
-  int32_t Close(uint16_t code, const Var& reason) {
-    CompletionCallback callback =
-        callback_factory_.NewOptionalCallback(&Implement::DidClose);
-    int32_t result = WebSocket::Close(code, reason, callback);
-    if (result != PP_OK_COMPLETIONPENDING) {
-      // In synchronous cases, consumes callback here and invokes callback
-      // with PP_ERROR_ABORTED instead of result in order to avoid side effects
-      // in DidConnect. DidConnect ignores this invocation and doesn't call
-      // any delegate virtual method.
-      callback.Run(PP_ERROR_ABORTED);
-    }
-    return result;
-  }
-
-  void Receive() {
-    int32_t result;
-    do {
-      CompletionCallback callback =
-          callback_factory_.NewOptionalCallback(&Implement::DidReceive);
-      result = WebSocket::ReceiveMessage(&receive_message_var_, callback);
-      if (result != PP_OK_COMPLETIONPENDING)
-        callback.Run(result);
-    } while (result == PP_OK);
-  }
-
-  void DidConnect(int32_t result) {
-    if (result == PP_OK) {
-      api_->WebSocketDidOpen();
-      Receive();
-    } else if (result != PP_ERROR_ABORTED) {
-      DidClose(result);
-    }
-  }
-
-  void DidReceive(int32_t result) {
-    if (result == PP_OK) {
-      api_->HandleWebSocketMessage(receive_message_var_);
-      Receive();
-    } else if (result != PP_ERROR_ABORTED) {
-      DidClose(result);
-    }
-  }
-
-  void DidClose(int32_t result) {
-    if (result == PP_ERROR_ABORTED)
-      return;
-    bool was_clean = GetCloseWasClean();
-    if (!was_clean)
-      api_->HandleWebSocketError();
-    api_->WebSocketDidClose(was_clean, GetCloseCode(), GetCloseReason());
-  }
-
- private:
-  WebSocketAPI* api_;
-  CompletionCallbackFactory<Implement> callback_factory_;
-  Var receive_message_var_;
-};
-
-WebSocketAPI::WebSocketAPI(Instance* instance)
-    : impl_(new Implement(instance, this)) {
-}
-
-WebSocketAPI::~WebSocketAPI() {
-  delete impl_;
-}
-
-int32_t WebSocketAPI::Connect(const Var& url, const Var protocols[],
-                              uint32_t protocol_count) {
-  return impl_->Connect(url, protocols, protocol_count);
-}
-
-int32_t WebSocketAPI::Close(uint16_t code, const Var& reason) {
-  return impl_->Close(code, reason);
-}
-
-int32_t WebSocketAPI::Send(const Var& data) {
-  return impl_->SendMessage(data);
-}
-
-uint64_t WebSocketAPI::GetBufferedAmount() {
-  return impl_->GetBufferedAmount();
-}
-
-Var WebSocketAPI::GetExtensions() {
-  return impl_->GetExtensions();
-}
-
-Var WebSocketAPI::GetProtocol() {
-  return impl_->GetProtocol();
-}
-
-PP_WebSocketReadyState WebSocketAPI::GetReadyState() {
-  return impl_->GetReadyState();
-}
-
-Var WebSocketAPI::GetURL() {
-  return impl_->GetURL();
-}
-
-}  // namespace pp
diff --git a/utility/websocket/websocket_api.h b/utility/websocket/websocket_api.h
deleted file mode 100644
index 5e51486..0000000
--- a/utility/websocket/websocket_api.h
+++ /dev/null
@@ -1,131 +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_UTILITY_WEBSOCKET_WEBSOCKET_API_H_
-#define PPAPI_UTILITY_WEBSOCKET_WEBSOCKET_API_H_
-
-#include <stdint.h>
-
-#include "ppapi/c/ppb_websocket.h"
-
-/// @file
-/// This file defines the WebSocketAPI interface.
-
-namespace pp {
-
-class Instance;
-class Var;
-
-/// The <code>WebSocketAPI</code> class
-class WebSocketAPI {
- public:
-  /// Constructs a WebSocketAPI object.
-  explicit WebSocketAPI(Instance* instance);
-
-  /// Destructs a WebSocketAPI object.
-  virtual ~WebSocketAPI();
-
-  /// Connect() connects to the specified WebSocket server. Caller can call
-  /// this method at most once.
-  ///
-  /// @param[in] url A <code>Var</code> of string type representing a WebSocket
-  /// server URL.
-  /// @param[in] protocols A pointer to an array of string type
-  /// <code>Var</code> specifying sub-protocols. Each <code>Var</code>
-  /// represents one sub-protocol and its <code>PP_VarType</code> must be
-  /// <code>PP_VARTYPE_STRING</code>. This argument can be null only if
-  /// <code>protocol_count</code> is 0.
-  /// @param[in] protocol_count The number of sub-protocols in
-  /// <code>protocols</code>.
-  ///
-  /// @return An int32_t containing an error code from
-  /// <code>pp_errors.h</code>.
-  /// See also <code>pp::WebSocket::Connect</code>.
-  int32_t Connect(const Var& url, const Var protocols[],
-                  uint32_t protocol_count);
-
-  /// Close() closes the specified WebSocket connection by specifying
-  /// <code>code</code> and <code>reason</code>.
-  ///
-  /// @param[in] code The WebSocket close code. Ignored if it is 0.
-  /// @param[in] reason A <code>Var</code> of string type which represents the
-  /// WebSocket close reason. Ignored if it is undefined type.
-  ///
-  /// @return An int32_t containing an error code from
-  /// <code>pp_errors.h</code>.
-  /// See also <code>pp::WebSocket::Close</code>.
-  int32_t Close(uint16_t code, const Var& reason);
-
-  /// Send() sends a message to the WebSocket server.
-  ///
-  /// @param[in] data A message to send. The message is copied to internal
-  /// buffer. So caller can free <code>data</code> safely after returning
-  /// from the function.
-  ///
-  /// @return An int32_t containing an error code from
-  /// <code>pp_errors.h</code>.
-  /// See also <code>pp::WebSocket::SendMessage</code>.
-  int32_t Send(const Var& data);
-
-  /// GetBufferedAmount() returns the number of bytes of text and binary
-  /// messages that have been queued for the WebSocket connection to send but
-  /// have not been transmitted to the network yet.
-  ///
-  /// @return Returns the number of bytes.
-  uint64_t GetBufferedAmount();
-
-  /// GetExtensions() returns the extensions selected by the server for the
-  /// specified WebSocket connection.
-  ///
-  /// @return Returns a <code>Var</code> of string type. If called before the
-  /// connection is established, its data is empty string.
-  /// Currently its data is always an empty string.
-  Var GetExtensions();
-
-  /// GetProtocol() returns the sub-protocol chosen by the server for the
-  /// specified WebSocket connection.
-  ///
-  /// @return Returns a <code>Var</code> of string type. If called before the
-  /// connection is established, it contains the empty string.
-  Var GetProtocol();
-
-  /// GetReadyState() returns the ready state of the specified WebSocket
-  /// connection.
-  ///
-  /// @return Returns <code>PP_WEBSOCKETREADYSTATE_INVALID</code> if called
-  /// before connect() is called.
-  PP_WebSocketReadyState GetReadyState();
-
-  /// GetURL() returns the URL associated with specified WebSocket connection.
-  ///
-  /// @return Returns a <code>Var</code> of string type. If called before the
-  /// connection is established, it contains the empty string.
-  Var GetURL();
-
-  /// WebSocketDidOpen() is invoked when the connection is established by
-  /// Connect().
-  virtual void WebSocketDidOpen() = 0;
-
-  /// WebSocketDidClose() is invoked when the connection is closed by errors or
-  /// Close().
-  virtual void WebSocketDidClose(bool wasClean,
-                                 uint16_t code,
-                                 const Var& reason) = 0;
-
-  /// HandleWebSocketMessage() is invoked when a message is received.
-  virtual void HandleWebSocketMessage(const Var& message) = 0;
-
-  /// HandleWebSocketError() is invoked if the user agent was required to fail
-  /// the WebSocket connection or the WebSocket connection is closed with
-  /// prejudice. DidClose() always follows HandleError().
-  virtual void HandleWebSocketError() = 0;
-
- private:
-  class Implement;
-  Implement* impl_;
-};
-
-}  // namespace pp
-
-#endif  // PPAPI_UTILITY_WEBSOCKET_WEBSOCKET_API_H_