Skip to content

WebKit macOS xcode13.3 beta1

Alex Soto edited this page Mar 7, 2022 · 2 revisions

#WebKit.framework https://github.com/xamarin/xamarin-macios/pull/14325

diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMEventListener.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMEventListener.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMEventListener.h	2021-11-19 17:04:50.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMEventListener.h	2022-01-25 12:57:50.000000000 -0500
@@ -24,6 +24,7 @@
  */
 
 #import <WebKit/WebKitAvailability.h>
+#import <objc/NSObject.h>
 
 @class DOMEvent;
 
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMEventTarget.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMEventTarget.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMEventTarget.h	2021-11-19 17:04:43.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMEventTarget.h	2022-01-25 12:57:43.000000000 -0500
@@ -23,6 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#import <Foundation/Foundation.h>
 #import <WebKit/WebKitAvailability.h>
 
 @class DOMEvent;
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMNodeFilter.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMNodeFilter.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMNodeFilter.h	2021-11-19 17:04:52.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMNodeFilter.h	2022-01-25 12:57:52.000000000 -0500
@@ -24,6 +24,7 @@
  */
 
 #import <WebKit/WebKitAvailability.h>
+#import <objc/NSObject.h>
 
 @class DOMNode;
 
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMXPathNSResolver.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMXPathNSResolver.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMXPathNSResolver.h	2021-11-19 17:04:49.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/DOMXPathNSResolver.h	2022-01-25 12:57:49.000000000 -0500
@@ -24,6 +24,7 @@
  */
 
 #import <WebKit/WebKitAvailability.h>
+#import <objc/NSObject.h>
 
 @class NSString;
 
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKPreferences.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKPreferences.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKPreferences.h	2021-11-19 17:04:46.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKPreferences.h	2022-01-25 13:03:47.000000000 -0500
@@ -64,6 +64,17 @@
 */
 @property (nonatomic, getter=isTextInteractionEnabled) BOOL textInteractionEnabled API_AVAILABLE(macos(11.3), ios(14.5));
 
+/*! @abstract A Boolean value indicating whether WebKit will apply built-in workarounds (quirks)
+ to improve compatibility with certain known websites. You can disable site-specific quirks
+ to help test your website without these workarounds. Enabled by default.
+ */
+@property (nonatomic, getter=isSiteSpecificQuirksModeEnabled) BOOL siteSpecificQuirksModeEnabled API_AVAILABLE(macos(12.0), ios(15.0));
+
+/*! @abstract A Boolean value indicating whether Fullscreen API is enabled.
+ @discussion The default value is NO. We can set it to YES to enable support for the fullscreen API.
+ */
+@property (nonatomic, getter=isElementFullscreenEnabled) BOOL elementFullscreenEnabled API_AVAILABLE(macos(12.0), ios(15.0));
+
 @end
 
 @interface WKPreferences (WKDeprecated)
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h	2021-11-19 17:06:30.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebView.h	2022-01-25 13:03:48.000000000 -0500
@@ -74,6 +74,13 @@
     WKMediaCaptureStateMuted,
 } API_AVAILABLE(macos(12.0), ios(15.0));
 
+typedef NS_ENUM(NSInteger, WKFullscreenState) {
+    WKFullscreenStateNotInFullscreen,
+    WKFullscreenStateEnteringFullscreen,
+    WKFullscreenStateInFullscreen,
+    WKFullscreenStateExitingFullscreen,
+} NS_SWIFT_NAME(WKWebView.FullscreenState) API_AVAILABLE(macos(12.0), ios(15.0));
+
 /*! @abstract A copy of the configuration with which the web view was
  initialized. */
 @property (nonatomic, readonly, copy) WKWebViewConfiguration *configuration;
@@ -604,6 +611,16 @@
 @property (nonatomic, null_resettable, copy) NSColor *underPageBackgroundColor API_AVAILABLE(macos(12.0));
 #endif
 
+/*! @abstract A WKWebView's fullscreen state.
+ @discussion @link WKWebView @link is key-value observing (KVO) compliant for this property. When an element
+ in the WKWebView enters fullscreen, WebKit will replace the WKWebView in the application view hierarchy with
+ a "placeholder" view, and move the WKWebView into a fullscreen window. When the element exits fullscreen later,
+ the WKWebView will be moved back into the application view hierarchy. An application may need to adjust/restore
+ its native UI components when the fullscreen state changes. The application should observe the fullscreenState
+ property of WKWebView in order to receive notifications regarding the fullscreen state change.
+ */
+@property (nonatomic, readonly) WKFullscreenState fullscreenState API_AVAILABLE(macos(12.0), ios(15.0));
+
 @end
 
 #if !TARGET_OS_IPHONE
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebpagePreferences.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebpagePreferences.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebpagePreferences.h	2021-11-19 17:04:46.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WKWebpagePreferences.h	2022-01-25 12:57:47.000000000 -0500
@@ -71,4 +71,6 @@
 */
 @property (nonatomic) BOOL allowsContentJavaScript API_AVAILABLE(macos(11.0), ios(14.0));
 
+
+
 @end
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebDownload.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebDownload.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebDownload.h	2021-11-19 17:04:52.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebDownload.h	2022-01-25 12:57:53.000000000 -0500
@@ -26,13 +26,13 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#import <Foundation/Foundation.h>
-#import <WebKit/WebKitAvailability.h>
-
 #ifndef WebDownload_h
 #define WebDownload_h
 
-#if (defined TARGET_OS_MACCATALYST && TARGET_OS_MACCATALYST)
+#import <Foundation/Foundation.h>
+#import <WebKit/WebKitAvailability.h>
+
+#if defined(TARGET_OS_MACCATALYST) && TARGET_OS_MACCATALYST
 #import <CFNetwork/CFNSURLConnection.h>
 #else
 #import <Foundation/NSURLDownload.h>
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebPlugin.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebPlugin.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebPlugin.h	2021-11-19 17:04:45.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebPlugin.h	2022-01-25 12:57:45.000000000 -0500
@@ -26,6 +26,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#import <CoreGraphics/CoreGraphics.h>
 #import <Foundation/Foundation.h>
 #import <WebKit/WebKitAvailability.h>
 
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebPluginContainer.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebPluginContainer.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebPluginContainer.h	2021-11-19 01:23:01.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/WebPluginContainer.h	2022-01-25 01:13:23.000000000 -0500
@@ -29,6 +29,7 @@
 #import <Foundation/Foundation.h>
 
 #import <AppKit/AppKit.h>
+
 @class WebFrame;
 
 /*!
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/npapi.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/npapi.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/npapi.h	2021-11-19 17:04:51.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/npapi.h	1969-12-31 19:00:00.000000000 -0500
@@ -1,869 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#ifndef npapi_h_
-#define npapi_h_
-
-#if defined(__OS2__)
-#pragma pack(1)
-#endif
-
-#include "nptypes.h"
-
-#if defined(__OS2__) || defined(OS2)
-#ifndef XP_OS2
-#define XP_OS2 1
-#endif
-#endif
-
-#ifdef INCLUDE_JAVA
-#include "jri.h"                /* Java Runtime Interface */
-#else
-#define jref    void *
-#define JRIEnv  void
-#endif
-
-#ifdef _WIN32
-#include <windows.h>
-#ifndef XP_WIN
-#define XP_WIN 1
-#endif
-#endif
-
-#if defined(__APPLE_CC__) && !defined(XP_UNIX)
-#ifndef XP_MACOSX
-#define XP_MACOSX 1
-#endif
-#endif
-
-#if defined(XP_MACOSX) && defined(__LP64__)
-#define NP_NO_QUICKDRAW
-#define NP_NO_CARBON
-#endif
-
-#if defined(XP_MACOSX)
-#include <CoreGraphics/CoreGraphics.h>
-#include <OpenGL/OpenGL.h>
-#ifndef NP_NO_CARBON
-#include <Carbon/Carbon.h>
-#endif
-#endif
-
-#if defined(XP_UNIX)
-#include <stdio.h>
-#if defined(MOZ_X11)
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#endif
-#endif
-
-/*----------------------------------------------------------------------*/
-/*                        Plugin Version Constants                      */
-/*----------------------------------------------------------------------*/
-
-#define NP_VERSION_MAJOR 0
-#define NP_VERSION_MINOR 26
-
-
-/* The OS/2 version of Netscape uses RC_DATA to define the
-   mime types, file extensions, etc that are required.
-   Use a vertical bar to separate types, end types with \0.
-   FileVersion and ProductVersion are 32bit ints, all other
-   entries are strings that MUST be terminated with a \0.
-
-AN EXAMPLE:
-
-RCDATA NP_INFO_ProductVersion { 1,0,0,1,}
-
-RCDATA NP_INFO_MIMEType    { "video/x-video|",
-                             "video/x-flick\0" }
-RCDATA NP_INFO_FileExtents { "avi|",
-                             "flc\0" }
-RCDATA NP_INFO_FileOpenName{ "MMOS2 video player(*.avi)|",
-                             "MMOS2 Flc/Fli player(*.flc)\0" }
-
-RCDATA NP_INFO_FileVersion       { 1,0,0,1 }
-RCDATA NP_INFO_CompanyName       { "Netscape Communications\0" }
-RCDATA NP_INFO_FileDescription   { "NPAVI32 Extension DLL\0"
-RCDATA NP_INFO_InternalName      { "NPAVI32\0" )
-RCDATA NP_INFO_LegalCopyright    { "Copyright Netscape Communications \251 1996\0"
-RCDATA NP_INFO_OriginalFilename  { "NVAPI32.DLL" }
-RCDATA NP_INFO_ProductName       { "NPAVI32 Dynamic Link Library\0" }
-*/
-/* RC_DATA types for version info - required */
-#define NP_INFO_ProductVersion      1
-#define NP_INFO_MIMEType            2
-#define NP_INFO_FileOpenName        3
-#define NP_INFO_FileExtents         4
-/* RC_DATA types for version info - used if found */
-#define NP_INFO_FileDescription     5
-#define NP_INFO_ProductName         6
-/* RC_DATA types for version info - optional */
-#define NP_INFO_CompanyName         7
-#define NP_INFO_FileVersion         8
-#define NP_INFO_InternalName        9
-#define NP_INFO_LegalCopyright      10
-#define NP_INFO_OriginalFilename    11
-
-#ifndef RC_INVOKED
-
-/*----------------------------------------------------------------------*/
-/*                       Definition of Basic Types                      */
-/*----------------------------------------------------------------------*/
-
-#ifndef FALSE
-#define FALSE (0)
-#endif
-#ifndef TRUE
-#define TRUE (1)
-#endif
-#ifndef NULL
-#define NULL (0L)
-#endif
-
-typedef unsigned char NPBool;
-typedef int16_t       NPError;
-typedef int16_t       NPReason;
-typedef char*         NPMIMEType;
-
-/*----------------------------------------------------------------------*/
-/*                       Structures and definitions                     */
-/*----------------------------------------------------------------------*/
-
-#if !defined(__LP64__)
-#if defined(XP_MACOSX)
-#pragma options align=mac68k
-#endif
-#endif /* __LP64__ */
-
-/*
- *  NPP is a plug-in's opaque instance handle
- */
-typedef struct _NPP
-{
-  void* pdata;      /* plug-in private data */
-  void* ndata;      /* netscape private data */
-} NPP_t;
-
-typedef NPP_t*  NPP;
-
-typedef struct _NPStream
-{
-  void*    pdata; /* plug-in private data */
-  void*    ndata; /* netscape private data */
-  const    char* url;
-  uint32_t end;
-  uint32_t lastmodified;
-  void*    notifyData;
-  const    char* headers; /* Response headers from host.
-                           * Exists only for >= NPVERS_HAS_RESPONSE_HEADERS.
-                           * Used for HTTP only; NULL for non-HTTP.
-                           * Available from NPP_NewStream onwards.
-                           * Plugin should copy this data before storing it.
-                           * Includes HTTP status line and all headers,
-                           * preferably verbatim as received from server,
-                           * headers formatted as in HTTP ("Header: Value"),
-                           * and newlines (\n, NOT \r\n) separating lines.
-                           * Terminated by \n\0 (NOT \n\n\0). */
-} NPStream;
-
-typedef struct _NPByteRange
-{
-  int32_t  offset; /* negative offset means from the end */
-  uint32_t length;
-  struct _NPByteRange* next;
-} NPByteRange;
-
-typedef struct _NPSavedData
-{
-  int32_t len;
-  void*   buf;
-} NPSavedData;
-
-typedef struct _NPRect
-{
-  uint16_t top;
-  uint16_t left;
-  uint16_t bottom;
-  uint16_t right;
-} NPRect;
-
-typedef struct _NPSize
-{
-  int32_t width;
-  int32_t height;
-} NPSize;
-
-typedef enum {
-  NPFocusNext = 0,
-  NPFocusPrevious = 1
-} NPFocusDirection;
-
-/* Return values for NPP_HandleEvent */
-#define kNPEventNotHandled 0
-#define kNPEventHandled 1
-/* Exact meaning must be spec'd in event model. */
-#define kNPEventStartIME 2
-
-#if defined(XP_UNIX)
-/*
- * Unix specific structures and definitions
- */
-
-/*
- * Callback Structures.
- *
- * These are used to pass additional platform specific information.
- */
-enum {
-  NP_SETWINDOW = 1,
-  NP_PRINT
-};
-
-typedef struct
-{
-  int32_t type;
-} NPAnyCallbackStruct;
-
-typedef struct
-{
-  int32_t      type;
-#if defined(MOZ_X11)
-  Display*     display;
-  Visual*      visual;
-  Colormap     colormap;
-  unsigned int depth;
-#endif
-} NPSetWindowCallbackStruct;
-
-typedef struct
-{
-  int32_t type;
-  FILE* fp;
-} NPPrintCallbackStruct;
-
-#endif /* XP_UNIX */
-
-#if defined(XP_MACOSX)
-typedef enum {
-#ifndef NP_NO_QUICKDRAW
-  NPDrawingModelQuickDraw = 0,
-#endif
-  NPDrawingModelCoreGraphics = 1,
-  NPDrawingModelOpenGL = 2, // Note: This is not supported.
-  NPDrawingModelCoreAnimation = 3
-} NPDrawingModel;
-
-typedef enum {
-#ifndef NP_NO_CARBON
-  NPEventModelCarbon = 0,
-#endif
-  NPEventModelCocoa = 1
-} NPEventModel;
-#endif
-
-/*
- *   The following masks are applied on certain platforms to NPNV and
- *   NPPV selectors that pass around pointers to COM interfaces. Newer
- *   compilers on some platforms may generate vtables that are not
- *   compatible with older compilers. To prevent older plugins from
- *   not understanding a new browser's ABI, these masks change the
- *   values of those selectors on those platforms. To remain backwards
- *   compatible with different versions of the browser, plugins can
- *   use these masks to dynamically determine and use the correct C++
- *   ABI that the browser is expecting. This does not apply to Windows
- *   as Microsoft's COM ABI will likely not change.
- */
-
-#define NP_ABI_GCC3_MASK  0x10000000
-/*
- *   gcc 3.x generated vtables on UNIX and OSX are incompatible with
- *   previous compilers.
- */
-#if (defined(XP_UNIX) && defined(__GNUC__) && (__GNUC__ >= 3))
-#define _NP_ABI_MIXIN_FOR_GCC3 NP_ABI_GCC3_MASK
-#else
-#define _NP_ABI_MIXIN_FOR_GCC3 0
-#endif
-
-#if defined(XP_MACOSX)
-#define NP_ABI_MACHO_MASK 0x01000000
-#define _NP_ABI_MIXIN_FOR_MACHO NP_ABI_MACHO_MASK
-#else
-#define _NP_ABI_MIXIN_FOR_MACHO 0
-#endif
-
-#define NP_ABI_MASK (_NP_ABI_MIXIN_FOR_GCC3 | _NP_ABI_MIXIN_FOR_MACHO)
-
-/*
- * List of variable names for which NPP_GetValue shall be implemented
- */
-typedef enum {
-  NPPVpluginNameString = 1,
-  NPPVpluginDescriptionString,
-  NPPVpluginWindowBool,
-  NPPVpluginTransparentBool,
-  NPPVjavaClass,                /* Not implemented in WebKit */
-  NPPVpluginWindowSize,         /* Not implemented in WebKit */
-  NPPVpluginTimerInterval,      /* Not implemented in WebKit */
-  NPPVpluginScriptableInstance = (10 | NP_ABI_MASK), /* Not implemented in WebKit */
-  NPPVpluginScriptableIID = 11, /* Not implemented in WebKit */
-  NPPVjavascriptPushCallerBool = 12,  /* Not implemented in WebKit */
-  NPPVpluginKeepLibraryInMemory = 13, /* Not implemented in WebKit */
-  NPPVpluginNeedsXEmbed         = 14, /* Not implemented in WebKit */
-
-  /* Get the NPObject for scripting the plugin. Introduced in NPAPI minor version 14.
-   */
-  NPPVpluginScriptableNPObject  = 15,
-
-  /* Get the plugin value (as \0-terminated UTF-8 string data) for
-   * form submission if the plugin is part of a form. Use
-   * NPN_MemAlloc() to allocate memory for the string data. Introduced
-   * in NPAPI minor version 15.
-   */
-  NPPVformValue = 16,    /* Not implemented in WebKit */
-
-  NPPVpluginUrlRequestsDisplayedBool = 17, /* Not implemented in WebKit */
-
-  /* Checks if the plugin is interested in receiving the http body of
-   * all http requests (including failed ones, http status != 200).
-   */
-  NPPVpluginWantsAllNetworkStreams = 18,
-
-  /* Browsers can retrieve a native ATK accessibility plug ID via this variable. */
-  NPPVpluginNativeAccessibleAtkPlugId = 19,
-
-  /* Checks to see if the plug-in would like the browser to load the "src" attribute. */
-  NPPVpluginCancelSrcStream = 20
-
-#if defined(XP_MACOSX)
-  /* Used for negotiating drawing models */
-  , NPPVpluginDrawingModel = 1000
-  /* Used for negotiating event models */
-  , NPPVpluginEventModel = 1001
-  /* In the NPDrawingModelCoreAnimation drawing model, the browser asks the plug-in for a Core Animation layer. */
-  , NPPVpluginCoreAnimationLayer = 1003
-#endif
-
-  /* Used for figuring out whether a plug-in is playing audio. */
-  , NPPVpluginIsPlayingAudio = 4000
-
-} NPPVariable;
-
-/*
- * List of variable names for which NPN_GetValue should be implemented.
- */
-typedef enum {
-  NPNVxDisplay = 1,
-  NPNVxtAppContext,
-  NPNVnetscapeWindow,
-  NPNVjavascriptEnabledBool,
-  NPNVasdEnabledBool,
-  NPNVisOfflineBool,
-
-  NPNVserviceManager = (10 | NP_ABI_MASK),  /* Not implemented in WebKit */
-  NPNVDOMElement     = (11 | NP_ABI_MASK),  /* Not implemented in WebKit */
-  NPNVDOMWindow      = (12 | NP_ABI_MASK),  /* Not implemented in WebKit */
-  NPNVToolkit        = (13 | NP_ABI_MASK),  /* Not implemented in WebKit */
-  NPNVSupportsXEmbedBool = 14,              /* Not implemented in WebKit */
-
-  /* Get the NPObject wrapper for the browser window. */
-  NPNVWindowNPObject = 15,
-
-  /* Get the NPObject wrapper for the plugins DOM element. */
-  NPNVPluginElementNPObject = 16,
-
-  NPNVSupportsWindowless = 17,
-
-  NPNVprivateModeBool = 18,
-
-  NPNVsupportsAdvancedKeyHandling = 21
-
-#if defined(XP_MACOSX)
-  /* Used for negotiating drawing models */
-  , NPNVpluginDrawingModel = 1000
-  , NPNVcontentsScaleFactor = 1001
-#ifndef NP_NO_QUICKDRAW
-  , NPNVsupportsQuickDrawBool = 2000
-#endif
-  , NPNVsupportsCoreGraphicsBool = 2001
-  , NPNVsupportsOpenGLBool = 2002
-  , NPNVsupportsCoreAnimationBool = 2003
-#ifndef NP_NO_CARBON
-  , NPNVsupportsCarbonBool = 3000 /* TRUE if the browser supports the Carbon event model */
-#endif
-  , NPNVsupportsCocoaBool = 3001 /* TRUE if the browser supports the Cocoa event model */
-  , NPNVsupportsUpdatedCocoaTextInputBool = 3002 /* TRUE if the browser supports the updated
-                                                    Cocoa text input specification. */
-  , NPNVsupportsCompositingCoreAnimationPluginsBool = 74656 /* TRUE if the browser supports
-                                                               CA model compositing */
-#endif /* XP_MACOSX */
-
-  , NPNVmuteAudioBool = 4000
-
-} NPNVariable;
-
-typedef enum {
-  NPNURLVCookie = 501,
-  NPNURLVProxy
-} NPNURLVariable;
-
-/*
- * The type of Toolkit the widgets use
- */
-typedef enum {
-  NPNVGtk12 = 1,
-  NPNVGtk2
-} NPNToolkitType;
-
-/*
- * The type of a NPWindow - it specifies the type of the data structure
- * returned in the window field.
- */
-typedef enum {
-  NPWindowTypeWindow = 1,
-  NPWindowTypeDrawable
-} NPWindowType;
-
-typedef struct _NPWindow
-{
-  void* window;  /* Platform specific window handle */
-                 /* OS/2: x - Position of bottom left corner */
-                 /* OS/2: y - relative to visible netscape window */
-  int32_t  x;      /* Position of top left corner relative */
-  int32_t  y;      /* to a netscape page. */
-  uint32_t width;  /* Maximum window size */
-  uint32_t height;
-  NPRect   clipRect; /* Clipping rectangle in port coordinates */
-#if defined(XP_UNIX)
-  void * ws_info; /* Platform-dependent additonal data */
-#endif /* XP_UNIX */
-  NPWindowType type; /* Is this a window or a drawable? */
-} NPWindow;
-
-typedef struct _NPFullPrint
-{
-  NPBool pluginPrinted;/* Set TRUE if plugin handled fullscreen printing */
-  NPBool printOne;     /* TRUE if plugin should print one copy to default
-                          printer */
-  void* platformPrint; /* Platform-specific printing info */
-} NPFullPrint;
-
-typedef struct _NPEmbedPrint
-{
-  NPWindow window;
-  void* platformPrint; /* Platform-specific printing info */
-} NPEmbedPrint;
-
-typedef struct _NPPrint
-{
-  uint16_t mode;               /* NP_FULL or NP_EMBED */
-  union
-  {
-    NPFullPrint fullPrint;   /* if mode is NP_FULL */
-    NPEmbedPrint embedPrint; /* if mode is NP_EMBED */
-  } print;
-} NPPrint;
-
-#if defined(XP_MACOSX)
-#ifndef NP_NO_CARBON
-typedef EventRecord NPEvent;
-#else
-typedef void*  NPEvent;
-#endif
-#elif defined(XP_WIN)
-typedef struct _NPEvent
-{
-  uint16_t event;
-  uintptr_t wParam;
-  uintptr_t lParam;
-} NPEvent;
-#elif defined(XP_OS2)
-typedef struct _NPEvent
-{
-  uint32_t event;
-  uint32_t wParam;
-  uint32_t lParam;
-} NPEvent;
-#elif defined(XP_UNIX) && defined(MOZ_X11)
-typedef XEvent NPEvent;
-#else
-typedef void*  NPEvent;
-#endif
-
-#if defined(XP_MACOSX)
-typedef void* NPRegion;
-#ifndef NP_NO_QUICKDRAW
-typedef RgnHandle NPQDRegion;
-#endif
-typedef CGPathRef NPCGRegion;
-#elif defined(XP_WIN)
-typedef HRGN NPRegion;
-#elif defined(XP_UNIX) && defined(MOZ_X11)
-typedef Region NPRegion;
-#else
-typedef void *NPRegion;
-#endif
-
-typedef struct _NPNSString NPNSString;
-typedef struct _NPNSWindow NPNSWindow;
-typedef struct _NPNSMenu   NPNSMenu;
-
-#if defined(XP_MACOSX)
-typedef NPNSMenu NPMenu;
-#else
-typedef void *NPMenu;
-#endif
-
-typedef enum {
-  NPCoordinateSpacePlugin = 1,
-  NPCoordinateSpaceWindow,
-  NPCoordinateSpaceFlippedWindow,
-  NPCoordinateSpaceScreen,
-  NPCoordinateSpaceFlippedScreen
-} NPCoordinateSpace;
-
-#if defined(XP_MACOSX)
-
-#ifndef NP_NO_QUICKDRAW
-typedef struct NP_Port
-{
-  CGrafPtr port;
-  int32_t portx; /* position inside the topmost window */
-  int32_t porty;
-} NP_Port;
-#endif /* NP_NO_QUICKDRAW */
-
-/*
- * NP_CGContext is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelCoreGraphics
- * as its drawing model.
- */
-
-typedef struct NP_CGContext
-{
-  CGContextRef context;
-#ifdef NP_NO_CARBON
-  NPNSWindow *window;
-#else
-  void *window; /* A WindowRef or NULL for the Cocoa event model. */
-#endif
-} NP_CGContext;
-
-typedef enum {
-  NPCocoaEventDrawRect = 1,
-  NPCocoaEventMouseDown,
-  NPCocoaEventMouseUp,
-  NPCocoaEventMouseMoved,
-  NPCocoaEventMouseEntered,
-  NPCocoaEventMouseExited,
-  NPCocoaEventMouseDragged,
-  NPCocoaEventKeyDown,
-  NPCocoaEventKeyUp,
-  NPCocoaEventFlagsChanged,
-  NPCocoaEventFocusChanged,
-  NPCocoaEventWindowFocusChanged,
-  NPCocoaEventScrollWheel,
-  NPCocoaEventTextInput
-} NPCocoaEventType;
-
-typedef struct _NPCocoaEvent {
-  NPCocoaEventType type;
-  uint32_t version;
-  union {
-    struct {
-      uint32_t modifierFlags;
-      double   pluginX;
-      double   pluginY;
-      int32_t  buttonNumber;
-      int32_t  clickCount;
-      double   deltaX;
-      double   deltaY;
-      double   deltaZ;
-    } mouse;
-    struct {
-      uint32_t    modifierFlags;
-      NPNSString *characters;
-      NPNSString *charactersIgnoringModifiers;
-      NPBool      isARepeat;
-      uint16_t    keyCode;
-    } key;
-    struct {
-      CGContextRef context;
-      double x;
-      double y;
-      double width;
-      double height;
-    } draw;
-    struct {
-      NPBool hasFocus;
-    } focus;
-    struct {
-      NPNSString *text;
-    } text;
-  } data;
-} NPCocoaEvent;
-
-#ifndef NP_NO_CARBON
-/* Non-standard event types that can be passed to HandleEvent */
-enum NPEventType {
-  NPEventType_GetFocusEvent = (osEvt + 16),
-  NPEventType_LoseFocusEvent,
-  NPEventType_AdjustCursorEvent,
-  NPEventType_MenuCommandEvent,
-  NPEventType_ClippingChangedEvent,
-  NPEventType_ScrollingBeginsEvent = 1000,
-  NPEventType_ScrollingEndsEvent
-};
-#endif /* NP_NO_CARBON */
-
-#endif /* XP_MACOSX */
-
-/*
- * Values for mode passed to NPP_New:
- */
-#define NP_EMBED 1
-#define NP_FULL  2
-
-/*
- * Values for stream type passed to NPP_NewStream:
- */
-#define NP_NORMAL     1
-#define NP_SEEK       2
-#define NP_ASFILE     3
-#define NP_ASFILEONLY 4
-
-#define NP_MAXREADY (((unsigned)(~0)<<1)>>1)
-
-/*
- * Flags for NPP_ClearSiteData.
- */
-#define NP_CLEAR_ALL   0
-#define NP_CLEAR_CACHE (1 << 0)
-
-#if !defined(__LP64__)
-#if defined(XP_MACOSX)
-#pragma options align=reset
-#endif
-#endif /* __LP64__ */
-
-/*----------------------------------------------------------------------*/
-/*       Error and Reason Code definitions                              */
-/*----------------------------------------------------------------------*/
-
-/*
- * Values of type NPError:
- */
-#define NPERR_BASE                         0
-#define NPERR_NO_ERROR                    (NPERR_BASE + 0)
-#define NPERR_GENERIC_ERROR               (NPERR_BASE + 1)
-#define NPERR_INVALID_INSTANCE_ERROR      (NPERR_BASE + 2)
-#define NPERR_INVALID_FUNCTABLE_ERROR     (NPERR_BASE + 3)
-#define NPERR_MODULE_LOAD_FAILED_ERROR    (NPERR_BASE + 4)
-#define NPERR_OUT_OF_MEMORY_ERROR         (NPERR_BASE + 5)
-#define NPERR_INVALID_PLUGIN_ERROR        (NPERR_BASE + 6)
-#define NPERR_INVALID_PLUGIN_DIR_ERROR    (NPERR_BASE + 7)
-#define NPERR_INCOMPATIBLE_VERSION_ERROR  (NPERR_BASE + 8)
-#define NPERR_INVALID_PARAM               (NPERR_BASE + 9)
-#define NPERR_INVALID_URL                 (NPERR_BASE + 10)
-#define NPERR_FILE_NOT_FOUND              (NPERR_BASE + 11)
-#define NPERR_NO_DATA                     (NPERR_BASE + 12)
-#define NPERR_STREAM_NOT_SEEKABLE         (NPERR_BASE + 13)
-
-/*
- * Values of type NPReason:
- */
-#define NPRES_BASE          0
-#define NPRES_DONE         (NPRES_BASE + 0)
-#define NPRES_NETWORK_ERR  (NPRES_BASE + 1)
-#define NPRES_USER_BREAK   (NPRES_BASE + 2)
-
-/*
- * Don't use these obsolete error codes any more.
- */
-#define NP_NOERR  NP_NOERR_is_obsolete_use_NPERR_NO_ERROR
-#define NP_EINVAL NP_EINVAL_is_obsolete_use_NPERR_GENERIC_ERROR
-#define NP_EABORT NP_EABORT_is_obsolete_use_NPRES_USER_BREAK
-
-/*
- * Version feature information
- */
-#define NPVERS_HAS_STREAMOUTPUT             8
-#define NPVERS_HAS_NOTIFICATION             9
-#define NPVERS_HAS_LIVECONNECT              9
-#define NPVERS_WIN16_HAS_LIVECONNECT        9
-#define NPVERS_68K_HAS_LIVECONNECT          11
-#define NPVERS_HAS_WINDOWLESS               11
-#define NPVERS_HAS_XPCONNECT_SCRIPTING      13  /* Not implemented in WebKit */
-#define NPVERS_HAS_NPRUNTIME_SCRIPTING      14
-#define NPVERS_HAS_FORM_VALUES              15  /* Not implemented in WebKit; see bug 13061 */
-#define NPVERS_HAS_POPUPS_ENABLED_STATE     16  /* Not implemented in WebKit */
-#define NPVERS_HAS_RESPONSE_HEADERS         17
-#define NPVERS_HAS_NPOBJECT_ENUM            18
-#define NPVERS_HAS_PLUGIN_THREAD_ASYNC_CALL 19
-#define NPVERS_HAS_ALL_NETWORK_STREAMS      20
-#define NPVERS_HAS_URL_AND_AUTH_INFO        21
-#define NPVERS_HAS_PRIVATE_MODE             22
-#define NPVERS_MACOSX_HAS_EVENT_MODELS      23
-#define NPVERS_HAS_CANCEL_SRC_STREAM        24
-#define NPVERS_HAS_ADVANCED_KEY_HANDLING    25
-#define NPVERS_HAS_URL_REDIRECT_HANDLING    26
-#define NPVERS_HAS_CLEAR_SITE_DATA          27
-
-/*----------------------------------------------------------------------*/
-/*                        Function Prototypes                           */
-/*----------------------------------------------------------------------*/
-
-#if defined(__OS2__)
-#define NP_LOADDS _System
-#else
-#define NP_LOADDS
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* NPP_* functions are provided by the plugin and called by the navigator. */
-
-#if defined(XP_UNIX)
-const char* NPP_GetMIMEDescription(void);
-#endif
-
-NPError NP_LOADDS NPP_Initialize(void);
-void    NP_LOADDS NPP_Shutdown(void);
-NPError NP_LOADDS NPP_New(NPMIMEType pluginType, NPP instance,
-                          uint16_t mode, int16_t argc, char* argn[],
-                          char* argv[], NPSavedData* saved);
-NPError NP_LOADDS NPP_Destroy(NPP instance, NPSavedData** save);
-NPError NP_LOADDS NPP_SetWindow(NPP instance, NPWindow* window);
-NPError NP_LOADDS NPP_NewStream(NPP instance, NPMIMEType type,
-                                NPStream* stream, NPBool seekable,
-                                uint16_t* stype);
-NPError NP_LOADDS NPP_DestroyStream(NPP instance, NPStream* stream,
-                                    NPReason reason);
-int32_t NP_LOADDS NPP_WriteReady(NPP instance, NPStream* stream);
-int32_t NP_LOADDS NPP_Write(NPP instance, NPStream* stream, int32_t offset,
-                            int32_t len, void* buffer);
-void    NP_LOADDS NPP_StreamAsFile(NPP instance, NPStream* stream,
-                                   const char* fname);
-void    NP_LOADDS NPP_Print(NPP instance, NPPrint* platformPrint);
-int16_t NP_LOADDS NPP_HandleEvent(NPP instance, void* event);
-void    NP_LOADDS NPP_URLNotify(NPP instance, const char* url,
-                                NPReason reason, void* notifyData);
-jref    NP_LOADDS NPP_GetJavaClass(void);
-NPError NP_LOADDS NPP_GetValue(NPP instance, NPPVariable variable, void *value);
-NPError NP_LOADDS NPP_SetValue(NPP instance, NPNVariable variable, void *value);
-NPBool  NP_LOADDS NPP_GotFocus(NPP instance, NPFocusDirection direction);
-void    NP_LOADDS NPP_LostFocus(NPP instance);
-void    NP_LOADDS NPP_URLRedirectNotify(NPP instance, const char* url, int32_t status, void* notifyData);
-NPError NP_LOADDS NPP_ClearSiteData(const char* site, uint64_t flags, uint64_t maxAge);
-char**  NP_LOADDS NPP_GetSitesWithData(void);
-
-/* NPN_* functions are provided by the navigator and called by the plugin. */
-void        NP_LOADDS NPN_Version(int* plugin_major, int* plugin_minor,
-                                  int* netscape_major, int* netscape_minor);
-NPError     NP_LOADDS NPN_GetURLNotify(NPP instance, const char* url,
-                                       const char* target, void* notifyData);
-NPError     NP_LOADDS NPN_GetURL(NPP instance, const char* url,
-                                 const char* target);
-NPError     NP_LOADDS NPN_PostURLNotify(NPP instance, const char* url,
-                                        const char* target, uint32_t len,
-                                        const char* buf, NPBool file,
-                                        void* notifyData);
-NPError     NP_LOADDS NPN_PostURL(NPP instance, const char* url,
-                                  const char* target, uint32_t len,
-                                  const char* buf, NPBool file);
-NPError     NP_LOADDS NPN_RequestRead(NPStream* stream, NPByteRange* rangeList);
-NPError     NP_LOADDS NPN_NewStream(NPP instance, NPMIMEType type,
-                                    const char* target, NPStream** stream);
-int32_t     NP_LOADDS NPN_Write(NPP instance, NPStream* stream, int32_t len,
-                                void* buffer);
-NPError     NP_LOADDS NPN_DestroyStream(NPP instance, NPStream* stream,
-                                        NPReason reason);
-void        NP_LOADDS NPN_Status(NPP instance, const char* message);
-const char* NP_LOADDS NPN_UserAgent(NPP instance);
-void*       NP_LOADDS NPN_MemAlloc(uint32_t size);
-void        NP_LOADDS NPN_MemFree(void* ptr);
-uint32_t    NP_LOADDS NPN_MemFlush(uint32_t size);
-void        NP_LOADDS NPN_ReloadPlugins(NPBool reloadPages);
-JRIEnv*     NP_LOADDS NPN_GetJavaEnv(void);
-jref        NP_LOADDS NPN_GetJavaPeer(NPP instance);
-NPError     NP_LOADDS NPN_GetValue(NPP instance, NPNVariable variable,
-                                   void *value);
-NPError     NP_LOADDS NPN_SetValue(NPP instance, NPPVariable variable,
-                                   void *value);
-void        NP_LOADDS NPN_InvalidateRect(NPP instance, NPRect *invalidRect);
-void        NP_LOADDS NPN_InvalidateRegion(NPP instance,
-                                           NPRegion invalidRegion);
-void        NP_LOADDS NPN_ForceRedraw(NPP instance);
-void        NP_LOADDS NPN_PushPopupsEnabledState(NPP instance, NPBool enabled);
-void        NP_LOADDS NPN_PopPopupsEnabledState(NPP instance);
-void        NP_LOADDS NPN_PluginThreadAsyncCall(NPP instance,
-                                                void (*func) (void *),
-                                                void *userData);
-NPError     NP_LOADDS NPN_GetValueForURL(NPP instance, NPNURLVariable variable,
-                                         const char *url, char **value,
-                                         uint32_t *len);
-NPError     NP_LOADDS NPN_SetValueForURL(NPP instance, NPNURLVariable variable,
-                                         const char *url, const char *value,
-                                         uint32_t len);
-NPError     NP_LOADDS NPN_GetAuthenticationInfo(NPP instance,
-                                                const char *protocol,
-                                                const char *host, int32_t port,
-                                                const char *scheme,
-                                                const char *realm,
-                                                char **username, uint32_t *ulen,
-                                                char **password,
-                                                uint32_t *plen);
-uint32_t    NP_LOADDS NPN_ScheduleTimer(NPP instance, uint32_t interval, NPBool repeat, void (*timerFunc)(NPP npp, uint32_t timerID));
-void        NP_LOADDS NPN_UnscheduleTimer(NPP instance, uint32_t timerID);
-NPError     NP_LOADDS NPN_PopUpContextMenu(NPP instance, NPMenu* menu);
-NPBool      NP_LOADDS NPN_ConvertPoint(NPP instance, double sourceX, double sourceY, NPCoordinateSpace sourceSpace, double *destX, double *destY, NPCoordinateSpace destSpace);
-NPBool      NP_LOADDS NPN_HandleEvent(NPP instance, void *event, NPBool handled);
-NPBool      NP_LOADDS NPN_UnfocusInstance(NPP instance, NPFocusDirection direction);
-void        NP_LOADDS NPN_URLRedirectResponse(NPP instance, void* notifyData, NPBool allow);
-
-#ifdef __cplusplus
-}  /* end extern "C" */
-#endif
-
-#endif /* RC_INVOKED */
-#if defined(__OS2__)
-#pragma pack()
-#endif
-
-#endif /* npapi_h_ */
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/npfunctions.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/npfunctions.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/npfunctions.h	2021-11-19 17:04:48.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/npfunctions.h	1969-12-31 19:00:00.000000000 -0500
@@ -1,229 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-#ifndef NPFUNCTIONS_H
-#define NPFUNCTIONS_H
-
-
-#include "npruntime.h"
-#include "npapi.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined(XP_WIN)
-#define EXPORTED_CALLBACK(_type, _name) _type (__stdcall * _name)
-#else
-#define EXPORTED_CALLBACK(_type, _name) _type (* _name)
-#endif
-
-typedef NPError (*NPN_GetURLNotifyProcPtr)(NPP instance, const char* URL, const char* window, void* notifyData);
-typedef NPError (*NPN_PostURLNotifyProcPtr)(NPP instance, const char* URL, const char* window, uint32_t len, const char* buf, NPBool file, void* notifyData);
-typedef NPError (*NPN_RequestReadProcPtr)(NPStream* stream, NPByteRange* rangeList);
-typedef NPError (*NPN_NewStreamProcPtr)(NPP instance, NPMIMEType type, const char* window, NPStream** stream);
-typedef int32_t (*NPN_WriteProcPtr)(NPP instance, NPStream* stream, int32_t len, void* buffer);
-typedef NPError (*NPN_DestroyStreamProcPtr)(NPP instance, NPStream* stream, NPReason reason);
-typedef void (*NPN_StatusProcPtr)(NPP instance, const char* message);
-typedef const char*(*NPN_UserAgentProcPtr)(NPP instance);
-typedef void* (*NPN_MemAllocProcPtr)(uint32_t size);
-typedef void (*NPN_MemFreeProcPtr)(void* ptr);
-typedef uint32_t (*NPN_MemFlushProcPtr)(uint32_t size);
-typedef void (*NPN_ReloadPluginsProcPtr)(NPBool reloadPages);
-typedef NPError (*NPN_GetValueProcPtr)(NPP instance, NPNVariable variable, void *ret_value);
-typedef NPError (*NPN_SetValueProcPtr)(NPP instance, NPPVariable variable, void *value);
-typedef void (*NPN_InvalidateRectProcPtr)(NPP instance, NPRect *rect);
-typedef void (*NPN_InvalidateRegionProcPtr)(NPP instance, NPRegion region);
-typedef void (*NPN_ForceRedrawProcPtr)(NPP instance);
-typedef NPError (*NPN_GetURLProcPtr)(NPP instance, const char* URL, const char* window);
-typedef NPError (*NPN_PostURLProcPtr)(NPP instance, const char* URL, const char* window, uint32_t len, const char* buf, NPBool file);
-typedef void* (*NPN_GetJavaEnvProcPtr)(void);
-typedef void* (*NPN_GetJavaPeerProcPtr)(NPP instance);
-typedef void  (*NPN_PushPopupsEnabledStateProcPtr)(NPP instance, NPBool enabled);
-typedef void  (*NPN_PopPopupsEnabledStateProcPtr)(NPP instance);
-typedef void (*NPN_PluginThreadAsyncCallProcPtr)(NPP npp, void (*func)(void *), void *userData);
-typedef NPError (*NPN_GetValueForURLProcPtr)(NPP npp, NPNURLVariable variable, const char* url, char** value, uint32_t* len);
-typedef NPError (*NPN_SetValueForURLProcPtr)(NPP npp, NPNURLVariable variable, const char* url, const char* value, uint32_t len);
-typedef NPError (*NPN_GetAuthenticationInfoProcPtr)(NPP npp, const char* protocol, const char* host, int32_t port, const char* scheme, const char *realm, char** username, uint32_t* ulen, char** password, uint32_t* plen);
-
-typedef uint32_t (*NPN_ScheduleTimerProcPtr)(NPP npp, uint32_t interval, NPBool repeat, void (*timerFunc)(NPP npp, uint32_t timerID));
-typedef void (*NPN_UnscheduleTimerProcPtr)(NPP npp, uint32_t timerID);
-typedef NPError (*NPN_PopUpContextMenuProcPtr)(NPP instance, NPMenu* menu);
-typedef NPBool (*NPN_ConvertPointProcPtr)(NPP npp, double sourceX, double sourceY, NPCoordinateSpace sourceSpace, double *destX, double *destY, NPCoordinateSpace destSpace);
-typedef NPBool (*NPN_HandleEventPtr)(NPP instance, void *event, NPBool handled);
-typedef NPBool (*NPN_UnfocusInstancePtr)(NPP instance, NPFocusDirection direction);
-typedef void (*NPN_URLRedirectResponsePtr)(NPP instance, void* notifyData, NPBool allow);
-
-typedef void (*NPN_ReleaseVariantValueProcPtr) (NPVariant *variant);
-
-typedef NPIdentifier (*NPN_GetStringIdentifierProcPtr) (const NPUTF8 *name);
-typedef void (*NPN_GetStringIdentifiersProcPtr) (const NPUTF8 **names, int32_t nameCount, NPIdentifier *identifiers);
-typedef NPIdentifier (*NPN_GetIntIdentifierProcPtr) (int32_t intid);
-typedef int32_t (*NPN_IntFromIdentifierProcPtr) (NPIdentifier identifier);
-typedef bool (*NPN_IdentifierIsStringProcPtr) (NPIdentifier identifier);
-typedef NPUTF8 *(*NPN_UTF8FromIdentifierProcPtr) (NPIdentifier identifier);
-
-typedef NPObject* (*NPN_CreateObjectProcPtr) (NPP, NPClass *aClass);
-typedef NPObject* (*NPN_RetainObjectProcPtr) (NPObject *obj);
-typedef void (*NPN_ReleaseObjectProcPtr) (NPObject *obj);
-typedef bool (*NPN_InvokeProcPtr) (NPP npp, NPObject *obj, NPIdentifier methodName, const NPVariant *args, unsigned argCount, NPVariant *result);
-typedef bool (*NPN_InvokeDefaultProcPtr) (NPP npp, NPObject *obj, const NPVariant *args, unsigned argCount, NPVariant *result);
-typedef bool (*NPN_EvaluateProcPtr) (NPP npp, NPObject *obj, NPString *script, NPVariant *result);
-typedef bool (*NPN_GetPropertyProcPtr) (NPP npp, NPObject *obj, NPIdentifier  propertyName, NPVariant *result);
-typedef bool (*NPN_SetPropertyProcPtr) (NPP npp, NPObject *obj, NPIdentifier  propertyName, const NPVariant *value);
-typedef bool (*NPN_HasPropertyProcPtr) (NPP, NPObject *npobj, NPIdentifier propertyName);
-typedef bool (*NPN_HasMethodProcPtr) (NPP npp, NPObject *npobj, NPIdentifier methodName);
-typedef bool (*NPN_RemovePropertyProcPtr) (NPP npp, NPObject *obj, NPIdentifier propertyName);
-typedef void (*NPN_SetExceptionProcPtr) (NPObject *obj, const NPUTF8 *message);
-typedef bool (*NPN_EnumerateProcPtr) (NPP npp, NPObject *npobj, NPIdentifier **identifier, uint32_t *count);
-typedef bool (*NPN_ConstructProcPtr)(NPP npp, NPObject* obj, const NPVariant *args, uint32_t argCount, NPVariant *result);    
-
-typedef NPError (*NPP_NewProcPtr)(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc, char* argn[], char* argv[], NPSavedData* saved);
-typedef NPError (*NPP_DestroyProcPtr)(NPP instance, NPSavedData** save);
-typedef NPError (*NPP_SetWindowProcPtr)(NPP instance, NPWindow* window);
-typedef NPError (*NPP_NewStreamProcPtr)(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16_t* stype);
-typedef NPError (*NPP_DestroyStreamProcPtr)(NPP instance, NPStream* stream, NPReason reason);
-typedef void (*NPP_StreamAsFileProcPtr)(NPP instance, NPStream* stream, const char* fname);
-typedef int32_t (*NPP_WriteReadyProcPtr)(NPP instance, NPStream* stream);
-typedef int32_t (*NPP_WriteProcPtr)(NPP instance, NPStream* stream, int32_t offset, int32_t len, void* buffer);
-typedef void (*NPP_PrintProcPtr)(NPP instance, NPPrint* platformPrint);
-typedef int16_t (*NPP_HandleEventProcPtr)(NPP instance, void* event);
-typedef void (*NPP_URLNotifyProcPtr)(NPP instance, const char* URL, NPReason reason, void* notifyData);
-typedef NPError (*NPP_GetValueProcPtr)(NPP instance, NPPVariable variable, void *ret_value);
-typedef NPError (*NPP_SetValueProcPtr)(NPP instance, NPNVariable variable, void *value);
-typedef NPBool (*NPP_GotFocusPtr)(NPP instance, NPFocusDirection direction);
-typedef void (*NPP_LostFocusPtr)(NPP instance);
-typedef void (*NPP_URLRedirectNotifyPtr)(NPP instance, const char* url, int32_t status, void* notifyData);
-typedef NPError (*NPP_ClearSiteDataPtr)(const char* site, uint64_t flags, uint64_t maxAge);
-typedef char** (*NPP_GetSitesWithDataPtr)(void);
-
-typedef void *(*NPP_GetJavaClassProcPtr)(void);
-typedef void* JRIGlobalRef; //not using this right now
-
-typedef struct _NPNetscapeFuncs {
-    uint16_t size;
-    uint16_t version;
-    
-    NPN_GetURLProcPtr geturl;
-    NPN_PostURLProcPtr posturl;
-    NPN_RequestReadProcPtr requestread;
-    NPN_NewStreamProcPtr newstream;
-    NPN_WriteProcPtr write;
-    NPN_DestroyStreamProcPtr destroystream;
-    NPN_StatusProcPtr status;
-    NPN_UserAgentProcPtr uagent;
-    NPN_MemAllocProcPtr memalloc;
-    NPN_MemFreeProcPtr memfree;
-    NPN_MemFlushProcPtr memflush;
-    NPN_ReloadPluginsProcPtr reloadplugins;
-    NPN_GetJavaEnvProcPtr getJavaEnv;
-    NPN_GetJavaPeerProcPtr getJavaPeer;
-    NPN_GetURLNotifyProcPtr geturlnotify;
-    NPN_PostURLNotifyProcPtr posturlnotify;
-    NPN_GetValueProcPtr getvalue;
-    NPN_SetValueProcPtr setvalue;
-    NPN_InvalidateRectProcPtr invalidaterect;
-    NPN_InvalidateRegionProcPtr invalidateregion;
-    NPN_ForceRedrawProcPtr forceredraw;
-    
-    NPN_GetStringIdentifierProcPtr getstringidentifier;
-    NPN_GetStringIdentifiersProcPtr getstringidentifiers;
-    NPN_GetIntIdentifierProcPtr getintidentifier;
-    NPN_IdentifierIsStringProcPtr identifierisstring;
-    NPN_UTF8FromIdentifierProcPtr utf8fromidentifier;
-    NPN_IntFromIdentifierProcPtr intfromidentifier;
-    NPN_CreateObjectProcPtr createobject;
-    NPN_RetainObjectProcPtr retainobject;
-    NPN_ReleaseObjectProcPtr releaseobject;
-    NPN_InvokeProcPtr invoke;
-    NPN_InvokeDefaultProcPtr invokeDefault;
-    NPN_EvaluateProcPtr evaluate;
-    NPN_GetPropertyProcPtr getproperty;
-    NPN_SetPropertyProcPtr setproperty;
-    NPN_RemovePropertyProcPtr removeproperty;
-    NPN_HasPropertyProcPtr hasproperty;
-    NPN_HasMethodProcPtr hasmethod;
-    NPN_ReleaseVariantValueProcPtr releasevariantvalue;
-    NPN_SetExceptionProcPtr setexception;
-    NPN_PushPopupsEnabledStateProcPtr pushpopupsenabledstate;
-    NPN_PopPopupsEnabledStateProcPtr poppopupsenabledstate;
-    NPN_EnumerateProcPtr enumerate;
-    NPN_PluginThreadAsyncCallProcPtr pluginthreadasynccall;
-    NPN_ConstructProcPtr construct;
-    NPN_GetValueForURLProcPtr getvalueforurl;
-    NPN_SetValueForURLProcPtr setvalueforurl;
-    NPN_GetAuthenticationInfoProcPtr getauthenticationinfo;
-    NPN_ScheduleTimerProcPtr scheduletimer;
-    NPN_UnscheduleTimerProcPtr unscheduletimer;
-    NPN_PopUpContextMenuProcPtr popupcontextmenu;
-    NPN_ConvertPointProcPtr convertpoint;
-    NPN_HandleEventPtr handleevent;
-    NPN_UnfocusInstancePtr unfocusinstance;
-    NPN_URLRedirectResponsePtr urlredirectresponse;
-} NPNetscapeFuncs;
-
-typedef struct _NPPluginFuncs {
-    uint16_t size;
-    uint16_t version;
-    NPP_NewProcPtr newp;
-    NPP_DestroyProcPtr destroy;
-    NPP_SetWindowProcPtr setwindow;
-    NPP_NewStreamProcPtr newstream;
-    NPP_DestroyStreamProcPtr destroystream;
-    NPP_StreamAsFileProcPtr asfile;
-    NPP_WriteReadyProcPtr writeready;
-    NPP_WriteProcPtr write;
-    NPP_PrintProcPtr print;
-    NPP_HandleEventProcPtr event;
-    NPP_URLNotifyProcPtr urlnotify;
-    JRIGlobalRef javaClass;
-    NPP_GetValueProcPtr getvalue;
-    NPP_SetValueProcPtr setvalue;
-    NPP_GotFocusPtr gotfocus;
-    NPP_LostFocusPtr lostfocus;
-    NPP_URLRedirectNotifyPtr urlredirectnotify;
-    NPP_ClearSiteDataPtr clearsitedata;
-    NPP_GetSitesWithDataPtr getsiteswithdata;
-} NPPluginFuncs;
-
-typedef EXPORTED_CALLBACK(NPError, NP_GetEntryPointsFuncPtr)(NPPluginFuncs*);
-typedef EXPORTED_CALLBACK(void, NPP_ShutdownProcPtr)(void);    
-
-#if defined(XP_MACOSX)
-typedef void (*BP_CreatePluginMIMETypesPreferencesFuncPtr)(void);
-typedef NPError (*MainFuncPtr)(NPNetscapeFuncs*, NPPluginFuncs*, NPP_ShutdownProcPtr*);
-#endif
-
-#if defined(XP_UNIX)
-typedef EXPORTED_CALLBACK(NPError, NP_InitializeFuncPtr)(NPNetscapeFuncs*, NPPluginFuncs*);
-typedef EXPORTED_CALLBACK(const char*, NP_GetMIMEDescriptionFuncPtr)(void);
-#else
-typedef EXPORTED_CALLBACK(NPError, NP_InitializeFuncPtr)(NPNetscapeFuncs*);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/npruntime.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/npruntime.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/npruntime.h	2021-11-19 01:23:02.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/npruntime.h	1969-12-31 19:00:00.000000000 -0500
@@ -1,393 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * Copyright (c) 2004, Apple Inc. and The Mozilla Foundation. 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- * 
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the names of Apple Inc. ("Apple") or The Mozilla
- * Foundation ("Mozilla") nor the names of their contributors may be used
- * to endorse or promote products derived from this software without
- * specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY APPLE, MOZILLA AND THEIR CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE, MOZILLA OR
- * THEIR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-#ifndef _NP_RUNTIME_H_
-#define _NP_RUNTIME_H_
-
-#include "npapi.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-    This API is used to facilitate binding code written in C to script
-    objects.  The API in this header does not assume the presence of a
-    user agent.  That is, it can be used to bind C code to scripting
-    environments outside of the context of a user agent.
-    
-    However, the normal use of the this API is in the context of a
-    scripting environment running in a browser or other user agent.
-    In particular it is used to support the extended Netscape
-    script-ability API for plugins (NP-SAP).  NP-SAP is an extension
-    of the Netscape plugin API.  As such we have adopted the use of
-    the "NP" prefix for this API.
-
-    The following NP{N|P}Variables were added to the Netscape plugin
-    API (in npapi.h):
-
-    NPNVWindowNPObject
-    NPNVPluginElementNPObject
-    NPPVpluginScriptableNPObject
-
-    These variables are exposed through NPN_GetValue() and
-    NPP_GetValue() (respectively) and are used to establish the
-    initial binding between the user agent and native code.  The DOM
-    objects in the user agent can be examined and manipulated using
-    the NPN_ functions that operate on NPObjects described in this
-    header.
-
-    To the extent possible the assumptions about the scripting
-    language used by the scripting environment have been minimized.
-*/
-
-#define NP_BEGIN_MACRO  do {
-#define NP_END_MACRO    } while (0)
-
-/*
-    Objects (non-primitive data) passed between 'C' and script is
-    always wrapped in an NPObject.  The 'interface' of an NPObject is
-    described by an NPClass.
-*/
-typedef struct NPObject NPObject;
-typedef struct NPClass NPClass;
-
-typedef char NPUTF8;
-typedef struct _NPString {
-    const NPUTF8 *UTF8Characters;
-    uint32_t UTF8Length;
-} NPString;
-
-typedef enum {
-    NPVariantType_Void,
-    NPVariantType_Null,
-    NPVariantType_Bool,
-    NPVariantType_Int32,
-    NPVariantType_Double,
-    NPVariantType_String,
-    NPVariantType_Object
-} NPVariantType;
-
-typedef struct _NPVariant {
-    NPVariantType type;
-    union {
-        bool boolValue;
-        int32_t intValue;
-        double doubleValue;
-        NPString stringValue;
-        NPObject *objectValue;
-    } value;
-} NPVariant;
-
-/*
-    NPN_ReleaseVariantValue is called on all 'out' parameters
-    references.  Specifically it is to be called on variants that own
-    their value, as is the case with all non-const NPVariant*
-    arguments after a successful call to any methods (except this one)
-    in this API.
-
-    After calling NPN_ReleaseVariantValue, the type of the variant
-    will be NPVariantType_Void.
-*/
-void NPN_ReleaseVariantValue(NPVariant *variant);
-
-#define NPVARIANT_IS_VOID(_v)    ((_v).type == NPVariantType_Void)
-#define NPVARIANT_IS_NULL(_v)    ((_v).type == NPVariantType_Null)
-#define NPVARIANT_IS_BOOLEAN(_v) ((_v).type == NPVariantType_Bool)
-#define NPVARIANT_IS_INT32(_v)   ((_v).type == NPVariantType_Int32)
-#define NPVARIANT_IS_DOUBLE(_v)  ((_v).type == NPVariantType_Double)
-#define NPVARIANT_IS_STRING(_v)  ((_v).type == NPVariantType_String)
-#define NPVARIANT_IS_OBJECT(_v)  ((_v).type == NPVariantType_Object)
-
-#define NPVARIANT_TO_BOOLEAN(_v) ((_v).value.boolValue)
-#define NPVARIANT_TO_INT32(_v)   ((_v).value.intValue)
-#define NPVARIANT_TO_DOUBLE(_v)  ((_v).value.doubleValue)
-#define NPVARIANT_TO_STRING(_v)  ((_v).value.stringValue)
-#define NPVARIANT_TO_OBJECT(_v)  ((_v).value.objectValue)
-
-#define VOID_TO_NPVARIANT(_v)                                                 \
-NP_BEGIN_MACRO                                                                \
-    (_v).type = NPVariantType_Void;                                           \
-    (_v).value.objectValue = NULL;                                            \
-NP_END_MACRO
-
-#define NULL_TO_NPVARIANT(_v)                                                 \
-NP_BEGIN_MACRO                                                                \
-    (_v).type = NPVariantType_Null;                                           \
-    (_v).value.objectValue = NULL;                                            \
-NP_END_MACRO
-
-#define BOOLEAN_TO_NPVARIANT(_val, _v)                                        \
-NP_BEGIN_MACRO                                                                \
-    (_v).type = NPVariantType_Bool;                                           \
-    (_v).value.boolValue = !!(_val);                                          \
-NP_END_MACRO
-
-#define INT32_TO_NPVARIANT(_val, _v)                                          \
-NP_BEGIN_MACRO                                                                \
-    (_v).type = NPVariantType_Int32;                                          \
-    (_v).value.intValue = _val;                                               \
-NP_END_MACRO
-
-#define DOUBLE_TO_NPVARIANT(_val, _v)                                         \
-NP_BEGIN_MACRO                                                                \
-    (_v).type = NPVariantType_Double;                                         \
-    (_v).value.doubleValue = _val;                                            \
-NP_END_MACRO
-
-#define STRINGZ_TO_NPVARIANT(_val, _v)                                        \
-NP_BEGIN_MACRO                                                                \
-    (_v).type = NPVariantType_String;                                         \
-    NPString str = { _val, uint32_t(strlen(_val)) };                          \
-    (_v).value.stringValue = str;                                             \
-NP_END_MACRO
-
-#define STRINGN_TO_NPVARIANT(_val, _len, _v)                                  \
-NP_BEGIN_MACRO                                                                \
-    (_v).type = NPVariantType_String;                                         \
-    NPString str = { _val, uint32_t(_len) };                                  \
-    (_v).value.stringValue = str;                                             \
-NP_END_MACRO
-
-#define OBJECT_TO_NPVARIANT(_val, _v)                                         \
-NP_BEGIN_MACRO                                                                \
-    (_v).type = NPVariantType_Object;                                         \
-    (_v).value.objectValue = _val;                                            \
-NP_END_MACRO
-
-
-/*
-  Type mappings (JavaScript types have been used for illustration
-    purposes):
-
-  JavaScript       to             C (NPVariant with type:)
-  undefined                       NPVariantType_Void
-  null                            NPVariantType_Null
-  Boolean                         NPVariantType_Bool
-  Number                          NPVariantType_Double or NPVariantType_Int32
-  String                          NPVariantType_String
-  Object                          NPVariantType_Object
-
-  C (NPVariant with type:)   to   JavaScript
-  NPVariantType_Void              undefined
-  NPVariantType_Null              null
-  NPVariantType_Bool              Boolean
-  NPVariantType_Int32             Number
-  NPVariantType_Double            Number
-  NPVariantType_String            String
-  NPVariantType_Object            Object
-*/
-
-typedef void *NPIdentifier;
-
-/*
-    NPObjects have methods and properties.  Methods and properties are
-    identified with NPIdentifiers.  These identifiers may be reflected
-    in script.  NPIdentifiers can be either strings or integers, IOW,
-    methods and properties can be identified by either strings or
-    integers (i.e. foo["bar"] vs foo[1]). NPIdentifiers can be
-    compared using ==.  In case of any errors, the requested
-    NPIdentifier(s) will be NULL. NPIdentifier lifetime is controlled
-    by the browser. Plugins do not need to worry about memory management
-    with regards to NPIdentifiers.
-*/
-NPIdentifier NPN_GetStringIdentifier(const NPUTF8 *name);
-void NPN_GetStringIdentifiers(const NPUTF8 **names, int32_t nameCount,
-                              NPIdentifier *identifiers);
-NPIdentifier NPN_GetIntIdentifier(int32_t intid);
-bool NPN_IdentifierIsString(NPIdentifier identifier);
-
-/*
-    The NPUTF8 returned from NPN_UTF8FromIdentifier SHOULD be freed.
-*/
-NPUTF8 *NPN_UTF8FromIdentifier(NPIdentifier identifier);
-
-/*
-    Get the integer represented by identifier. If identifier is not an
-    integer identifier, the behaviour is undefined.
-*/
-int32_t NPN_IntFromIdentifier(NPIdentifier identifier);
-
-/*
-    NPObject behavior is implemented using the following set of
-    callback functions.
-
-    The NPVariant *result argument of these functions (where
-    applicable) should be released using NPN_ReleaseVariantValue().
-*/
-typedef NPObject *(*NPAllocateFunctionPtr)(NPP npp, NPClass *aClass);
-typedef void (*NPDeallocateFunctionPtr)(NPObject *npobj);
-typedef void (*NPInvalidateFunctionPtr)(NPObject *npobj);
-typedef bool (*NPHasMethodFunctionPtr)(NPObject *npobj, NPIdentifier name);
-typedef bool (*NPInvokeFunctionPtr)(NPObject *npobj, NPIdentifier name,
-                                    const NPVariant *args, uint32_t argCount,
-                                    NPVariant *result);
-typedef bool (*NPInvokeDefaultFunctionPtr)(NPObject *npobj,
-                                           const NPVariant *args,
-                                           uint32_t argCount,
-                                           NPVariant *result);
-typedef bool (*NPHasPropertyFunctionPtr)(NPObject *npobj, NPIdentifier name);
-typedef bool (*NPGetPropertyFunctionPtr)(NPObject *npobj, NPIdentifier name,
-                                         NPVariant *result);
-typedef bool (*NPSetPropertyFunctionPtr)(NPObject *npobj, NPIdentifier name,
-                                         const NPVariant *value);
-typedef bool (*NPRemovePropertyFunctionPtr)(NPObject *npobj,
-                                            NPIdentifier name);
-typedef bool (*NPEnumerationFunctionPtr)(NPObject *npobj, NPIdentifier **value,
-                                         uint32_t *count);
-typedef bool (*NPConstructFunctionPtr)(NPObject *npobj,
-                                       const NPVariant *args,
-                                       uint32_t argCount,
-                                       NPVariant *result);
-
-/*
-    NPObjects returned by create, retain, invoke, and getProperty pass
-    a reference count to the caller.  That is, the callee adds a
-    reference count which passes to the caller.  It is the caller's
-    responsibility to release the returned object.
-
-    NPInvokeFunctionPtr function may return 0 to indicate a void
-    result.
-
-    NPInvalidateFunctionPtr is called by the scripting environment
-    when the native code is shutdown.  Any attempt to message a
-    NPObject instance after the invalidate callback has been
-    called will result in undefined behavior, even if the native code
-    is still retaining those NPObject instances.  (The runtime
-    will typically return immediately, with 0 or NULL, from an attempt
-    to dispatch to a NPObject, but this behavior should not be
-    depended upon.)
-
-    The NPEnumerationFunctionPtr function may pass an array of
-    NPIdentifiers back to the caller. The callee allocs the memory of
-    the array using NPN_MemAlloc(), and it's the caller's responsibility
-    to release it using NPN_MemFree().
-*/
-struct NPClass
-{
-    uint32_t structVersion;
-    NPAllocateFunctionPtr allocate;
-    NPDeallocateFunctionPtr deallocate;
-    NPInvalidateFunctionPtr invalidate;
-    NPHasMethodFunctionPtr hasMethod;
-    NPInvokeFunctionPtr invoke;
-    NPInvokeDefaultFunctionPtr invokeDefault;
-    NPHasPropertyFunctionPtr hasProperty;
-    NPGetPropertyFunctionPtr getProperty;
-    NPSetPropertyFunctionPtr setProperty;
-    NPRemovePropertyFunctionPtr removeProperty;
-    NPEnumerationFunctionPtr enumerate;
-    NPConstructFunctionPtr construct;
-};
-
-#define NP_CLASS_STRUCT_VERSION      3
-
-#define NP_CLASS_STRUCT_VERSION_ENUM 2
-#define NP_CLASS_STRUCT_VERSION_CTOR 3
-
-#define NP_CLASS_STRUCT_VERSION_HAS_ENUM(npclass)   \
-        ((npclass)->structVersion >= NP_CLASS_STRUCT_VERSION_ENUM)
-
-#define NP_CLASS_STRUCT_VERSION_HAS_CTOR(npclass)   \
-        ((npclass)->structVersion >= NP_CLASS_STRUCT_VERSION_CTOR)
-
-struct NPObject {
-    NPClass *_class;
-    uint32_t referenceCount;
-    /*
-     * Additional space may be allocated here by types of NPObjects
-     */
-};
-
-/*
-    If the class has an allocate function, NPN_CreateObject invokes
-    that function, otherwise a NPObject is allocated and
-    returned. This method will initialize the referenceCount member of
-    the NPObject to 1.
-*/
-NPObject *NPN_CreateObject(NPP npp, NPClass *aClass);
-
-/*
-    Increment the NPObject's reference count.
-*/
-NPObject *NPN_RetainObject(NPObject *npobj);
-
-/*
-    Decremented the NPObject's reference count.  If the reference
-    count goes to zero, the class's destroy function is invoke if
-    specified, otherwise the object is freed directly.
-*/
-void NPN_ReleaseObject(NPObject *npobj);
-
-/*
-    Functions to access script objects represented by NPObject.
-
-    Calls to script objects are synchronous.  If a function returns a
-    value, it will be supplied via the result NPVariant
-    argument. Successful calls will return true, false will be
-    returned in case of an error.
-    
-    Calls made from plugin code to script must be made from the thread
-    on which the plugin was initialized.
-*/
-
-bool NPN_Invoke(NPP npp, NPObject *npobj, NPIdentifier methodName,
-                const NPVariant *args, uint32_t argCount, NPVariant *result);
-bool NPN_InvokeDefault(NPP npp, NPObject *npobj, const NPVariant *args,
-                       uint32_t argCount, NPVariant *result);
-bool NPN_Evaluate(NPP npp, NPObject *npobj, NPString *script,
-                  NPVariant *result);
-bool NPN_GetProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName,
-                     NPVariant *result);
-bool NPN_SetProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName,
-                     const NPVariant *value);
-bool NPN_RemoveProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName);
-bool NPN_HasProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName);
-bool NPN_HasMethod(NPP npp, NPObject *npobj, NPIdentifier methodName);
-bool NPN_Enumerate(NPP npp, NPObject *npobj, NPIdentifier **identifier,
-                   uint32_t *count);
-bool NPN_Construct(NPP npp, NPObject *npobj, const NPVariant *args,
-                   uint32_t argCount, NPVariant *result);
-
-/*
-    NPN_SetException may be called to trigger a script exception upon
-    return from entry points into NPObjects.  Typical usage:
-
-    NPN_SetException (npobj, message);
-*/
-void NPN_SetException(NPObject *npobj, const NPUTF8 *message);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/nptypes.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/nptypes.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/nptypes.h	2021-11-19 01:23:01.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/WebKit.framework/Headers/nptypes.h	1969-12-31 19:00:00.000000000 -0500
@@ -1,121 +0,0 @@
-/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * mozilla.org.
- * Portions created by the Initial Developer are Copyright (C) 2004
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Johnny Stenback <jst@mozilla.org> (Original author)
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#ifndef nptypes_h_
-#define nptypes_h_
-
-/*
- * Header file for ensuring that C99 types ([u]int32_t, [u]int64_t and bool) and
- * true/false macros are available.
- */
-
-#if defined(WIN32) || defined(OS2)
-  /*
-   * Win32 and OS/2 don't know C99, so define [u]int_16/32/64 here. The bool
-   * is predefined tho, both in C and C++.
-   */
-  typedef short int16_t;
-  typedef unsigned short uint16_t;
-  typedef int int32_t;
-  typedef unsigned int uint32_t;
-  typedef long long int64_t;
-  typedef unsigned long long uint64_t;
-#elif defined(_AIX) || defined(__sun) || defined(__osf__) || defined(IRIX) || defined(HPUX)
-  /*
-   * AIX and SunOS ship a inttypes.h header that defines [u]int32_t,
-   * but not bool for C.
-   */
-  #include <inttypes.h>
-
-  #ifndef __cplusplus
-    typedef int bool;
-    #define true   1
-    #define false  0
-  #endif
-#elif defined(bsdi) || defined(FREEBSD) || defined(OPENBSD)
-  /*
-   * BSD/OS, FreeBSD, and OpenBSD ship sys/types.h that define int32_t and 
-   * u_int32_t.
-   */
-  #include <sys/types.h>
-
-  /*
-   * BSD/OS ships no header that defines uint32_t, nor bool (for C)
-   */
-  #if defined(bsdi)
-  typedef u_int32_t uint32_t;
-  typedef u_int64_t uint64_t;
-
-  #if !defined(__cplusplus)
-    typedef int bool;
-    #define true   1
-    #define false  0
-  #endif
-  #else
-  /*
-   * FreeBSD and OpenBSD define uint32_t and bool.
-   */
-    #include <inttypes.h>
-    #include <stdbool.h>
-  #endif
-#elif defined(BEOS)
-  #include <inttypes.h>
-#else
-  /*
-   * For those that ship a standard C99 stdint.h header file, include
-   * it. Can't do the same for stdbool.h tho, since some systems ship
-   * with a stdbool.h file that doesn't compile!
-   */
-  #include <stdint.h>
-
-  #ifndef __cplusplus
-    #if !defined(__GNUC__) || (__GNUC__ > 2 || __GNUC_MINOR__ > 95)
-      #include <stdbool.h>
-    #else
-      /*
-       * GCC 2.91 can't deal with a typedef for bool, but a #define
-       * works.
-       */
-      #define bool int
-      #define true   1
-      #define false  0
-    #endif
-  #endif
-#endif
-
-#endif /* nptypes_h_ */
Clone this wiki locally