15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Defines helper functions for all interfaces supported by the Native Client
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// proxy.
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NATIVE_CLIENT_TESTS_PPAPI_TEST_PPB_TEMPLATE_GET_BROWSER_INTERFACE_H
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NATIVE_CLIENT_TESTS_PPAPI_TEST_PPB_TEMPLATE_GET_BROWSER_INTERFACE_H
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_audio.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_audio_config.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_core.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_file_io.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_file_ref.h"
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_file_system.h"
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_fullscreen.h"
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_graphics_2d.h"
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_graphics_3d.h"
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_image_data.h"
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_input_event.h"
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_instance.h"
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_messaging.h"
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_mouse_cursor.h"
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_opengles2.h"
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_url_loader.h"
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_url_request_info.h"
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_url_response_info.h"
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_var.h"
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_view.h"
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/dev/ppb_font_dev.h"
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/dev/ppb_memory_dev.h"
33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "ppapi/c/private/ppb_testing_private.h"
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Looks up the interface and returns its pointer or NULL.
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const void* GetBrowserInterface(const char* interface_name);
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Uses GetBrowserInterface() and CHECKs for NULL.
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const void* GetBrowserInterfaceSafe(const char* interface_name);
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Stable interfaces.
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Lookup guarantees that the interface is available by using NULL CHECKs.
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_Audio* PPBAudio();
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_AudioConfig* PPBAudioConfig();
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_Core* PPBCore();
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_FileIO* PPBFileIO();
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_FileRef* PPBFileRef();
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_FileSystem* PPBFileSystem();
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_Fullscreen* PPBFullscreen();
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_Graphics2D* PPBGraphics2D();
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_Graphics3D* PPBGraphics3D();
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_ImageData* PPBImageData();
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_InputEvent* PPBInputEvent();
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_Instance* PPBInstance();
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_KeyboardInputEvent* PPBKeyboardInputEvent();
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_Messaging* PPBMessaging();
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_MouseCursor* PPBMouseCursor();
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_MouseInputEvent* PPBMouseInputEvent();
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_OpenGLES2* PPBOpenGLES2();
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_URLLoader* PPBURLLoader();
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_URLRequestInfo* PPBURLRequestInfo();
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_URLResponseInfo* PPBURLResponseInfo();
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_Var* PPBVar();
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_View* PPBView();
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_WheelInputEvent* PPBWheelInputEvent();
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Experimental (aka Dev) interfaces.
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Lookup returns NULL if the interface is not available.
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_Font_Dev* PPBFontDev();
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const PPB_Memory_Dev* PPBMemoryDev();
76f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
77f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)//
78f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Private interfaces.
79f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Lookup returns NULL if the interface is not available.
80f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)//
81f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
82f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)const PPB_Testing_Private* PPBTestingPrivate();
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // NATIVE_CLIENT_TESTS_PPAPI_TEST_PPB_TEMPLATE_GET_BROWSER_INTERFACE_H
85