OLD | NEW |
(Empty) | |
| 1 /* Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 * Use of this source code is governed by a BSD-style license that can be |
| 3 * found in the LICENSE file. |
| 4 */ |
| 5 |
| 6 /** |
| 7 * This file contains interface functions used for unit testing. Do not use in |
| 8 * production code. They are not guaranteed to be available in normal plugin |
| 9 * environments so you should not depend on them. |
| 10 */ |
| 11 |
| 12 label Chrome { |
| 13 M14 = 0.7 |
| 14 }; |
| 15 |
| 16 interface PPB_Testing_Dev { |
| 17 /** |
| 18 * Reads the bitmap data out of the backing store for the given |
| 19 * DeviceContext2D and into the given image. If the data was successfully |
| 20 * read, it will return PP_TRUE. |
| 21 * |
| 22 * This function should not generally be necessary for normal plugin |
| 23 * operation. If you want to update portions of a device, the expectation is |
| 24 * that you will either regenerate the data, or maintain a backing store |
| 25 * pushing updates to the device from your backing store via PaintImageData. |
| 26 * Using this function will introduce an extra copy which will make your |
| 27 * plugin slower. In some cases, this may be a very expensive operation (it |
| 28 * may require slow cross-process transitions or graphics card readbacks). |
| 29 * |
| 30 * Data will be read into the image starting at |top_left| in the device |
| 31 * context, and proceeding down and to the right for as many pixels as the |
| 32 * image is large. If any part of the image bound would fall outside of the |
| 33 * backing store of the device if positioned at |top_left|, this function |
| 34 * will fail and return PP_FALSE. |
| 35 * |
| 36 * The image format must be of the format |
| 37 * PPB_ImageData.GetNativeImageDataFormat() or this function will fail and |
| 38 * return PP_FALSE. |
| 39 * |
| 40 * The returned image data will represent the current status of the backing |
| 41 * store. This will not include any paint, scroll, or replace operations |
| 42 * that have not yet been flushed; these operations are only reflected in |
| 43 * the backing store (and hence ReadImageData) until after a Flush() |
| 44 * operation has completed. |
| 45 */ |
| 46 PP_Bool ReadImageData([in] PP_Resource device_context_2d, |
| 47 [in] PP_Resource image, |
| 48 [in] PP_Point top_left); |
| 49 |
| 50 /** |
| 51 * Runs a nested message loop. The plugin will be reentered from this call. |
| 52 * This function is used for unit testing the API. The normal pattern is to |
| 53 * issue some asynchronous call that has a callback. Then you call |
| 54 * RunMessageLoop which will suspend the plugin and go back to processing |
| 55 * messages, giving the asynchronous operation time to complete. In your |
| 56 * callback, you save the data and call QuitMessageLoop, which will then |
| 57 * pop back up and continue with the test. This avoids having to write a |
| 58 * complicated state machine for simple tests for asynchronous APIs. |
| 59 */ |
| 60 void RunMessageLoop([in] PP_Instance instance); |
| 61 |
| 62 /** |
| 63 * Posts a quit message for the outermost nested message loop. Use this to |
| 64 * exit and return back to the caller after you call RunMessageLoop. |
| 65 */ |
| 66 void QuitMessageLoop([in] PP_Instance instance); |
| 67 |
| 68 /** |
| 69 * Returns the number of live objects (resources + strings + objects) |
| 70 * associated with this plugin instance. Used for detecting leaks. Returns |
| 71 * (uint32_t)-1 on failure. |
| 72 */ |
| 73 uint32_t GetLiveObjectsForInstance([in] PP_Instance instance); |
| 74 |
| 75 /** |
| 76 * Returns PP_TRUE if the plugin is running out-of-process, PP_FALSE |
| 77 * otherwise. |
| 78 */ |
| 79 PP_Bool IsOutOfProcess(); |
| 80 }; |
OLD | NEW |