/*
 * Copyright (C) 2011 Igalia S.L.
 * Portions Copyright (c) 2011 Motorola Mobility, Inc.  All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public License
 * along with this library; see the file COPYING.LIB.  If not, write to
 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA 02110-1301, USA.
 */

#ifdef __WEBKIT_WEB_EXTENSION_H__
#error "Headers <webkit2/webkit2.h> and <webkit2/webkit-web-extension.h> cannot be included together."
#endif

#ifndef __WEBKIT_2_H__
#define __WEBKIT_2_H__

#define __WEBKIT2_H_INSIDE__

#include <webkit2/WebKitApplicationInfo.h>
#include <webkit2/WebKitAuthenticationRequest.h>
#include <webkit2/WebKitAutomationSession.h>
#include <webkit2/WebKitBackForwardList.h>
#include <webkit2/WebKitBackForwardListItem.h>
#include <webkit2/WebKitContextMenu.h>
#include <webkit2/WebKitContextMenuActions.h>
#include <webkit2/WebKitContextMenuItem.h>
#include <webkit2/WebKitCookieManager.h>
#include <webkit2/WebKitCredential.h>
#include <webkit2/WebKitDefines.h>
#include <webkit2/WebKitDeviceInfoPermissionRequest.h>
#include <webkit2/WebKitDownload.h>
#include <webkit2/WebKitEditingCommands.h>
#include <webkit2/WebKitEditorState.h>
#include <webkit2/WebKitEnumTypes.h>
#include <webkit2/WebKitError.h>
#include <webkit2/WebKitFaviconDatabase.h>
#include <webkit2/WebKitColorChooserRequest.h>
#include <webkit2/WebKitFileChooserRequest.h>
#include <webkit2/WebKitFindController.h>
#include <webkit2/WebKitFormSubmissionRequest.h>
#include <webkit2/WebKitGeolocationManager.h>
#include <webkit2/WebKitGeolocationPermissionRequest.h>
#include <webkit2/WebKitHitTestResult.h>
#include <webkit2/WebKitInstallMissingMediaPluginsPermissionRequest.h>
#include <webkit2/WebKitJavascriptResult.h>
#include <webkit2/WebKitMimeInfo.h>
#include <webkit2/WebKitNavigationAction.h>
#include <webkit2/WebKitNavigationPolicyDecision.h>
#include <webkit2/WebKitNetworkProxySettings.h>
#include <webkit2/WebKitNotification.h>
#include <webkit2/WebKitNotificationPermissionRequest.h>
#include <webkit2/WebKitOptionMenu.h>
#include <webkit2/WebKitOptionMenuItem.h>
#include <webkit2/WebKitPermissionRequest.h>
#include <webkit2/WebKitPlugin.h>
#include <webkit2/WebKitPointerLockPermissionRequest.h>
#include <webkit2/WebKitPrintCustomWidget.h>
#include <webkit2/WebKitPrintOperation.h>
#include <webkit2/WebKitResponsePolicyDecision.h>
#include <webkit2/WebKitScriptDialog.h>
#include <webkit2/WebKitSecurityManager.h>
#include <webkit2/WebKitSecurityOrigin.h>
#include <webkit2/WebKitSettings.h>
#include <webkit2/WebKitURIRequest.h>
#include <webkit2/WebKitURIResponse.h>
#include <webkit2/WebKitURISchemeRequest.h>
#include <webkit2/WebKitURIUtilities.h>
#include <webkit2/WebKitUserContent.h>
#include <webkit2/WebKitUserContentFilterStore.h>
#include <webkit2/WebKitUserContentManager.h>
#include <webkit2/WebKitUserMediaPermissionRequest.h>
#include <webkit2/WebKitUserMessage.h>
#include <webkit2/WebKitVersion.h>
#include <webkit2/WebKitWebContext.h>
#include <webkit2/WebKitWebInspector.h>
#include <webkit2/WebKitWebResource.h>
#include <webkit2/WebKitWebView.h>
#include <webkit2/WebKitWebViewBase.h>
#include <webkit2/WebKitWebViewSessionState.h>
#include <webkit2/WebKitWebsiteData.h>
#include <webkit2/WebKitWebsiteDataManager.h>
#include <webkit2/WebKitWindowProperties.h>

#include <webkit2/WebKitAutocleanups.h>

#undef __WEBKIT2_H_INSIDE__

#endif /* __WEBKIT2_H__ */
