1effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Copyright 2014 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)
5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// From private/ppb_find_private.idl modified Wed Mar 19 13:42:13 2014.
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/c/pp_errors.h"
8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "ppapi/c/private/ppb_find_private.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/shared_impl/tracked_callback.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/thunk/enter.h"
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "ppapi/thunk/ppapi_thunk_export.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ppapi {
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace thunk {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)void SetPluginToHandleFindRequests(PP_Instance instance) {
19effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  VLOG(4) << "PPB_Find_Private::SetPluginToHandleFindRequests()";
2023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  EnterInstance enter(instance);
2123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  if (enter.failed())
2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)    return;
2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  enter.functions()->SetPluginToHandleFindRequests(instance);
2423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}
2523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void NumberOfFindResultsChanged(PP_Instance instance,
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                int32_t total,
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                PP_Bool final_result) {
29effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  VLOG(4) << "PPB_Find_Private::NumberOfFindResultsChanged()";
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EnterInstance enter(instance);
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  if (enter.failed())
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    return;
33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  enter.functions()->NumberOfFindResultsChanged(instance, total, final_result);
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SelectedFindResultChanged(PP_Instance instance, int32_t index) {
37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  VLOG(4) << "PPB_Find_Private::SelectedFindResultChanged()";
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EnterInstance enter(instance);
39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  if (enter.failed())
40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    return;
41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  enter.functions()->SelectedFindResultChanged(instance, index);
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochvoid SetTickmarks(PP_Instance instance,
45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                  const struct PP_Rect tickmarks[],
46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                  uint32_t count) {
47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  VLOG(4) << "PPB_Find_Private::SetTickmarks()";
48effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  EnterInstance enter(instance);
49effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  if (enter.failed())
50effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    return;
51effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  enter.functions()->SetTickmarks(instance, tickmarks, count);
52effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}
53effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
54effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochconst PPB_Find_Private_0_3 g_ppb_find_private_thunk_0_3 = {
5523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  &SetPluginToHandleFindRequests,
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  &NumberOfFindResultsChanged,
57effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  &SelectedFindResultChanged,
58effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  &SetTickmarks
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
63effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochPPAPI_THUNK_EXPORT const PPB_Find_Private_0_3*
64effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    GetPPB_Find_Private_0_3_Thunk() {
65effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  return &g_ppb_find_private_thunk_0_3;
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace thunk
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ppapi
70