1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef EXTENSIONS_SPELLCHECK_HUNSPELL_GLUE_RLBOXHUNSPELL_H_
7 #define EXTENSIONS_SPELLCHECK_HUNSPELL_GLUE_RLBOXHUNSPELL_H_
9 #include "RLBoxHunspellTypes.h"
11 // Load general firefox configuration of RLBox
12 #include "mozilla/rlbox/rlbox_config.h"
14 #ifdef MOZ_WASM_SANDBOXING_HUNSPELL
15 // Include the generated header file so that we are able to resolve the symbols
17 # include "rlbox.wasm.h"
18 # define RLBOX_USE_STATIC_CALLS() rlbox_wasm2c_sandbox_lookup_symbol
19 # include "mozilla/rlbox/rlbox_wasm2c_sandbox.hpp"
21 # define RLBOX_USE_STATIC_CALLS() rlbox_noop_sandbox_lookup_symbol
22 # include "mozilla/rlbox/rlbox_noop_sandbox.hpp"
25 #include "mozilla/rlbox/rlbox.hpp"
28 #include "mozHunspellRLBoxGlue.h"
32 static RLBoxHunspell
* Create(const nsCString
& affpath
,
33 const nsCString
& dpath
);
37 int spell(const std::string
& stdWord
);
38 const std::string
& get_dict_encoding() const;
40 std::vector
<std::string
> suggest(const std::string
& word
);
44 void operator()(rlbox_sandbox_hunspell
* sandbox
) {
45 sandbox
->destroy_sandbox();
51 mozilla::UniquePtr
<rlbox_sandbox_hunspell
, RLBoxDeleter
> aSandbox
,
52 const nsCString
& affpath
, const nsCString
& dpath
);
54 mozilla::UniquePtr
<rlbox_sandbox_hunspell
, RLBoxDeleter
> mSandbox
;
55 sandbox_callback_hunspell
<hunspell_create_filemgr_t
*> mCreateFilemgr
;
56 sandbox_callback_hunspell
<hunspell_get_line_t
*> mGetLine
;
57 sandbox_callback_hunspell
<hunspell_get_line_num_t
*> mGetLineNum
;
58 sandbox_callback_hunspell
<hunspell_destruct_filemgr_t
*> mDestructFilemgr
;
59 sandbox_callback_hunspell
<hunspell_ToUpperCase_t
*> mHunspellToUpperCase
;
60 sandbox_callback_hunspell
<hunspell_ToLowerCase_t
*> mHunspellToLowerCase
;
61 sandbox_callback_hunspell
<hunspell_get_current_cs_t
*> mHunspellGetCurrentCS
;
62 tainted_hunspell
<Hunhandle
*> mHandle
;
63 std::string mDicEncoding
;