Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | - | - | ||||
xfa/ | 03-May-2024 | - | 19,541 | 15,832 | ||
Android.bp | D | 03-May-2024 | 944 | 40 | 33 | |
BUILD.gn | D | 03-May-2024 | 6.6 KiB | 253 | 245 | |
DEPS | D | 03-May-2024 | 151 | 11 | 10 | |
README | D | 03-May-2024 | 2 KiB | 42 | 36 | |
cfx_globaldata.cpp | D | 03-May-2024 | 11.6 KiB | 400 | 325 | |
cfx_globaldata.h | D | 03-May-2024 | 2.4 KiB | 85 | 59 | |
cfx_globaldata_unittest.cpp | D | 03-May-2024 | 5.5 KiB | 164 | 126 | |
cfx_keyvalue.cpp | D | 03-May-2024 | 427 | 16 | 5 | |
cfx_keyvalue.h | D | 03-May-2024 | 846 | 46 | 30 | |
cfx_v8.cpp | D | 03-May-2024 | 6.9 KiB | 218 | 173 | |
cfx_v8.h | D | 03-May-2024 | 2.7 KiB | 80 | 57 | |
cfx_v8_unittest.cpp | D | 03-May-2024 | 10.4 KiB | 270 | 224 | |
cfx_v8_unittest.h | D | 03-May-2024 | 924 | 40 | 25 | |
cfxjs_engine.cpp | D | 03-May-2024 | 24.1 KiB | 668 | 550 | |
cfxjs_engine.h | D | 03-May-2024 | 5 KiB | 144 | 93 | |
cfxjs_engine_embeddertest.cpp | D | 03-May-2024 | 3.5 KiB | 107 | 83 | |
cfxjs_engine_unittest.cpp | D | 03-May-2024 | 2.8 KiB | 101 | 75 | |
cjs_annot.cpp | D | 03-May-2024 | 3.6 KiB | 115 | 82 | |
cjs_annot.h | D | 03-May-2024 | 1.3 KiB | 47 | 28 | |
cjs_app.cpp | D | 03-May-2024 | 19.3 KiB | 572 | 444 | |
cjs_app.h | D | 03-May-2024 | 6.7 KiB | 164 | 131 | |
cjs_border.cpp | D | 03-May-2024 | 787 | 24 | 13 | |
cjs_border.h | D | 03-May-2024 | 571 | 24 | 12 | |
cjs_color.cpp | D | 03-May-2024 | 10.8 KiB | 320 | 254 | |
cjs_color.h | D | 03-May-2024 | 3.8 KiB | 110 | 80 | |
cjs_console.cpp | D | 03-May-2024 | 1.9 KiB | 61 | 40 | |
cjs_console.h | D | 03-May-2024 | 1.3 KiB | 44 | 29 | |
cjs_delaydata.cpp | D | 03-May-2024 | 449 | 13 | 4 | |
cjs_delaydata.h | D | 03-May-2024 | 866 | 35 | 23 | |
cjs_display.cpp | D | 03-May-2024 | 739 | 23 | 12 | |
cjs_display.h | D | 03-May-2024 | 576 | 24 | 12 | |
cjs_document.cpp | D | 03-May-2024 | 48.2 KiB | 1,422 | 1,141 | |
cjs_document.h | D | 03-May-2024 | 14.3 KiB | 322 | 268 | |
cjs_event.cpp | D | 03-May-2024 | 11.2 KiB | 324 | 255 | |
cjs_event.h | D | 03-May-2024 | 4.1 KiB | 109 | 76 | |
cjs_event_context.cpp | D | 03-May-2024 | 11.6 KiB | 327 | 263 | |
cjs_event_context.h | D | 03-May-2024 | 5.7 KiB | 137 | 121 | |
cjs_event_context_stub.cpp | D | 03-May-2024 | 456 | 13 | 5 | |
cjs_event_context_stub.h | D | 03-May-2024 | 5.2 KiB | 117 | 104 | |
cjs_eventrecorder.cpp | D | 03-May-2024 | 15.4 KiB | 559 | 479 | |
cjs_eventrecorder.h | D | 03-May-2024 | 7 KiB | 202 | 178 | |
cjs_field.cpp | D | 03-May-2024 | 91.1 KiB | 2,664 | 2,234 | |
cjs_field.h | D | 03-May-2024 | 16 KiB | 376 | 301 | |
cjs_font.cpp | D | 03-May-2024 | 1.3 KiB | 32 | 21 | |
cjs_font.h | D | 03-May-2024 | 561 | 24 | 12 | |
cjs_global.cpp | D | 03-May-2024 | 20 KiB | 579 | 505 | |
cjs_global.h | D | 03-May-2024 | 3.1 KiB | 89 | 67 | |
cjs_globalarrays.cpp | D | 03-May-2024 | 3.5 KiB | 76 | 49 | |
cjs_globalarrays.h | D | 03-May-2024 | 493 | 18 | 8 | |
cjs_globalconsts.cpp | D | 03-May-2024 | 2.2 KiB | 50 | 34 | |
cjs_globalconsts.h | D | 03-May-2024 | 493 | 18 | 8 | |
cjs_highlight.cpp | D | 03-May-2024 | 752 | 23 | 12 | |
cjs_highlight.h | D | 03-May-2024 | 586 | 24 | 12 | |
cjs_icon.cpp | D | 03-May-2024 | 1.2 KiB | 39 | 22 | |
cjs_icon.h | D | 03-May-2024 | 1 KiB | 38 | 22 | |
cjs_object.cpp | D | 03-May-2024 | 1.5 KiB | 46 | 30 | |
cjs_object.h | D | 03-May-2024 | 1.7 KiB | 62 | 44 | |
cjs_position.cpp | D | 03-May-2024 | 888 | 26 | 15 | |
cjs_position.h | D | 03-May-2024 | 581 | 24 | 12 | |
cjs_publicmethods.cpp | D | 03-May-2024 | 45.2 KiB | 1,454 | 1,220 | |
cjs_publicmethods.h | D | 03-May-2024 | 6.1 KiB | 152 | 133 | |
cjs_publicmethods_embeddertest.cpp | D | 03-May-2024 | 8.6 KiB | 260 | 190 | |
cjs_publicmethods_unittest.cpp | D | 03-May-2024 | 1.3 KiB | 51 | 34 | |
cjs_result.cpp | D | 03-May-2024 | 601 | 20 | 7 | |
cjs_result.h | D | 03-May-2024 | 1.8 KiB | 58 | 32 | |
cjs_runtime.cpp | D | 03-May-2024 | 7.2 KiB | 238 | 186 | |
cjs_runtime.h | D | 03-May-2024 | 2.4 KiB | 73 | 48 | |
cjs_runtimestub.cpp | D | 03-May-2024 | 1 KiB | 37 | 22 | |
cjs_runtimestub.h | D | 03-May-2024 | 1.1 KiB | 39 | 23 | |
cjs_scalehow.cpp | D | 03-May-2024 | 666 | 21 | 10 | |
cjs_scalehow.h | D | 03-May-2024 | 581 | 24 | 12 | |
cjs_scalewhen.cpp | D | 03-May-2024 | 748 | 23 | 12 | |
cjs_scalewhen.h | D | 03-May-2024 | 586 | 24 | 12 | |
cjs_style.cpp | D | 03-May-2024 | 822 | 24 | 13 | |
cjs_style.h | D | 03-May-2024 | 566 | 24 | 12 | |
cjs_timerobj.cpp | D | 03-May-2024 | 906 | 33 | 17 | |
cjs_timerobj.h | D | 03-May-2024 | 824 | 32 | 17 | |
cjs_util.cpp | D | 03-May-2024 | 14 KiB | 475 | 395 | |
cjs_util.h | D | 03-May-2024 | 2.1 KiB | 66 | 39 | |
cjs_util_unittest.cpp | D | 03-May-2024 | 2.8 KiB | 113 | 59 | |
cjs_zoomtype.cpp | D | 03-May-2024 | 929 | 26 | 15 | |
cjs_zoomtype.h | D | 03-May-2024 | 581 | 24 | 12 | |
fx_date_helpers.cpp | D | 03-May-2024 | 14.3 KiB | 552 | 471 | |
fx_date_helpers.h | D | 03-May-2024 | 2 KiB | 69 | 51 | |
fx_date_helpers_unittest.cpp | D | 03-May-2024 | 3.8 KiB | 109 | 92 | |
global_timer.cpp | D | 03-May-2024 | 2.3 KiB | 89 | 62 | |
global_timer.h | D | 03-May-2024 | 1.3 KiB | 51 | 35 | |
ijs_event_context.h | D | 03-May-2024 | 6 KiB | 133 | 111 | |
ijs_runtime.cpp | D | 03-May-2024 | 1.4 KiB | 52 | 35 | |
ijs_runtime.h | D | 03-May-2024 | 1.8 KiB | 66 | 43 | |
js_define.cpp | D | 03-May-2024 | 3.3 KiB | 102 | 82 | |
js_define.h | D | 03-May-2024 | 5.6 KiB | 161 | 114 | |
js_resources.cpp | D | 03-May-2024 | 3.5 KiB | 109 | 100 | |
js_resources.h | D | 03-May-2024 | 1.1 KiB | 46 | 35 |
README
1There are two separate wrappers for V8 here. One is called FXJS, and 2it is used by the non-XFA code. The other is called FXJSE, and it is 3used only by the XFA code. Additionally FXJSE may request services 4from FXJS to bridge the two. 5 6Both the FXJS and FXJSE binding code needs to be replaced by something 7saner, perhaps Gin or perhaps some IDL. See 8 https://bugs.chromium.org/p/pdfium/issues/detail?id=716 9for progress on the issue. 10 11FXJS binds objects by sticking a pointer to a CFXJS_PerObjectData in 12the V8 object's internal slot. FXJSE binds objects by sticking a 13pointer to either an actual v8 function object or a CFXJSE_HostObject 14in the V8 object's internal slot, depending upon whether the object 15represents (in some notion) a "class" or an "instance". Also, V8 objects 16bound in one library may unexpectedly arrive at the other given a script 17that's trying to mess with us. 18 19To distinguish these cases, we use two internal slots for all bound 20objects, regardless of the FXJS/FXJSE distinction. Slot 0 is the 21tag and contains either: 22 kPerObjectDataTag for FXJS objects, or 23 g_FXJSEHostObjectTag for FXJSE Host objects, or 24 g_FXJSEProxyObjectTag for a global proxy object under FXJSE, or 25 One of 4 specific FXJSE_CLASS_DESCRIPTOR globals for FXJSE classes: 26 GlobalClassDescriptor 27 NormalClassDescriptor 28 VariablesClassDescriptor 29 formcalc_fm2js_descriptor 30 31Slot 1's contents are determined by these tags: 32 kPerObjectDataTag means an aligned pointer to CFXJS_PerObjectData. 33 g_FXJSEHostObjectTag means an aligned pointer to CFXJSE_HostObject. 34 g_FXJSEProxyObjectTag means nullptr, and to check the prototype instead. 35 A FXJSE_CLASS_DESCRIPTOR pointer means to expect an actual v8 function 36 object (or a string naming that function), and not an aligned pointer. 37 38Because PDFium uses V8 for various unrelated purposes, there may be up to 39four v8::Contexts (JS Global Objects) associated with each document. One is 40used by FXJS and holds objects as described by the js_api_reference.pdf 41specification. The others are used by FXJSE. 42