chromium/extensions/browser/api/guest_view/web_view/web_view_internal_api.h

// 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 EXTENSIONS_BROWSER_API_GUEST_VIEW_WEB_VIEW_WEB_VIEW_INTERNAL_API_H_
#define EXTENSIONS_BROWSER_API_GUEST_VIEW_WEB_VIEW_WEB_VIEW_INTERNAL_API_H_

#include <stdint.h>

#include "base/memory/scoped_refptr.h"
#include "base/time/time.h"
#include "base/values.h"
#include "extensions/browser/api/execute_code_function.h"
#include "extensions/browser/api/web_contents_capture_client.h"
#include "extensions/browser/extension_function.h"
#include "extensions/browser/guest_view/web_view/web_ui/web_ui_url_fetcher.h"
#include "extensions/browser/guest_view/web_view/web_view_guest.h"
#include "extensions/browser/url_fetcher.h"

namespace base {
class TaskRunner;
}

// WARNING: WebViewInternal could be loaded in an unprivileged context, thus any
// new APIs must extend WebViewInternalExtensionFunction or
// WebViewInternalExecuteCodeFunction which do a process ID check to prevent
// abuse by normal renderer processes.
namespace extensions {

class WebViewInternalExtensionFunction : public ExtensionFunction {};

class WebViewInternalCaptureVisibleRegionFunction
    : public WebViewInternalExtensionFunction,
      public WebContentsCaptureClient {};

class WebViewInternalNavigateFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalExecuteCodeFunction
    : public extensions::ExecuteCodeFunction {};

class WebViewInternalExecuteScriptFunction
    : public WebViewInternalExecuteCodeFunction {};

class WebViewInternalInsertCSSFunction
    : public WebViewInternalExecuteCodeFunction {};

class WebViewInternalAddContentScriptsFunction : public ExtensionFunction {};

class WebViewInternalRemoveContentScriptsFunction : public ExtensionFunction {};

class WebViewInternalSetNameFunction : public WebViewInternalExtensionFunction {};

class WebViewInternalSetAllowTransparencyFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalSetAllowScalingFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalSetZoomFunction : public WebViewInternalExtensionFunction {};

class WebViewInternalGetZoomFunction : public WebViewInternalExtensionFunction {};

class WebViewInternalSetZoomModeFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalGetZoomModeFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalFindFunction : public WebViewInternalExtensionFunction {};

class WebViewInternalStopFindingFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalLoadDataWithBaseUrlFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalGoFunction : public WebViewInternalExtensionFunction {};

class WebViewInternalReloadFunction : public WebViewInternalExtensionFunction {};

class WebViewInternalSetPermissionFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalOverrideUserAgentFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalStopFunction : public WebViewInternalExtensionFunction {};

class WebViewInternalSetAudioMutedFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalIsAudioMutedFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalGetAudioStateFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalTerminateFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalClearDataFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalSetSpatialNavigationEnabledFunction
    : public WebViewInternalExtensionFunction {};

class WebViewInternalIsSpatialNavigationEnabledFunction
    : public WebViewInternalExtensionFunction {};

}  // namespace extensions

#endif  // EXTENSIONS_BROWSER_API_GUEST_VIEW_WEB_VIEW_WEB_VIEW_INTERNAL_API_H_