pdfium_assert_matching_enums.cc 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. // Copyright (c) 2010 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. #include "build/build_config.h"
  5. #include "pdf/accessibility_structs.h"
  6. #include "pdf/content_restriction.h"
  7. #include "pdf/document_metadata.h"
  8. #include "third_party/blink/public/common/input/web_input_event.h"
  9. #include "third_party/pdfium/public/fpdf_edit.h"
  10. #include "third_party/pdfium/public/fpdf_formfill.h"
  11. #include "third_party/pdfium/public/fpdf_fwlevent.h"
  12. #include "third_party/pdfium/public/fpdf_sysfontinfo.h"
  13. #include "third_party/pdfium/public/fpdfview.h"
  14. #include "ui/events/keycodes/keyboard_codes.h"
  15. #if BUILDFLAG(IS_WIN)
  16. #include "pdf/pdf.h"
  17. #endif
  18. namespace chrome_pdf {
  19. #define STATIC_ASSERT_ENUM(a, b) \
  20. static_assert(static_cast<int>(a) == static_cast<int>(b), \
  21. "mismatching enums: " #a)
  22. STATIC_ASSERT_ENUM(blink::WebInputEvent::Modifiers::kShiftKey,
  23. FWL_EVENTFLAG_ShiftKey);
  24. STATIC_ASSERT_ENUM(blink::WebInputEvent::Modifiers::kControlKey,
  25. FWL_EVENTFLAG_ControlKey);
  26. STATIC_ASSERT_ENUM(blink::WebInputEvent::Modifiers::kAltKey,
  27. FWL_EVENTFLAG_AltKey);
  28. STATIC_ASSERT_ENUM(blink::WebInputEvent::Modifiers::kMetaKey,
  29. FWL_EVENTFLAG_MetaKey);
  30. STATIC_ASSERT_ENUM(blink::WebInputEvent::Modifiers::kIsKeyPad,
  31. FWL_EVENTFLAG_KeyPad);
  32. STATIC_ASSERT_ENUM(blink::WebInputEvent::Modifiers::kIsAutoRepeat,
  33. FWL_EVENTFLAG_AutoRepeat);
  34. STATIC_ASSERT_ENUM(blink::WebInputEvent::Modifiers::kLeftButtonDown,
  35. FWL_EVENTFLAG_LeftButtonDown);
  36. STATIC_ASSERT_ENUM(blink::WebInputEvent::Modifiers::kMiddleButtonDown,
  37. FWL_EVENTFLAG_MiddleButtonDown);
  38. STATIC_ASSERT_ENUM(blink::WebInputEvent::Modifiers::kRightButtonDown,
  39. FWL_EVENTFLAG_RightButtonDown);
  40. STATIC_ASSERT_ENUM(ui::VKEY_BACK, FWL_VKEY_Back);
  41. STATIC_ASSERT_ENUM(ui::VKEY_TAB, FWL_VKEY_Tab);
  42. STATIC_ASSERT_ENUM(ui::VKEY_CLEAR, FWL_VKEY_Clear);
  43. STATIC_ASSERT_ENUM(ui::VKEY_RETURN, FWL_VKEY_Return);
  44. STATIC_ASSERT_ENUM(ui::VKEY_SHIFT, FWL_VKEY_Shift);
  45. STATIC_ASSERT_ENUM(ui::VKEY_CONTROL, FWL_VKEY_Control);
  46. STATIC_ASSERT_ENUM(ui::VKEY_MENU, FWL_VKEY_Menu);
  47. STATIC_ASSERT_ENUM(ui::VKEY_PAUSE, FWL_VKEY_Pause);
  48. STATIC_ASSERT_ENUM(ui::VKEY_CAPITAL, FWL_VKEY_Capital);
  49. STATIC_ASSERT_ENUM(ui::VKEY_KANA, FWL_VKEY_Kana);
  50. STATIC_ASSERT_ENUM(ui::VKEY_HANGUL, FWL_VKEY_Hangul);
  51. STATIC_ASSERT_ENUM(ui::VKEY_JUNJA, FWL_VKEY_Junja);
  52. STATIC_ASSERT_ENUM(ui::VKEY_FINAL, FWL_VKEY_Final);
  53. STATIC_ASSERT_ENUM(ui::VKEY_HANJA, FWL_VKEY_Hanja);
  54. STATIC_ASSERT_ENUM(ui::VKEY_KANJI, FWL_VKEY_Kanji);
  55. STATIC_ASSERT_ENUM(ui::VKEY_ESCAPE, FWL_VKEY_Escape);
  56. STATIC_ASSERT_ENUM(ui::VKEY_CONVERT, FWL_VKEY_Convert);
  57. STATIC_ASSERT_ENUM(ui::VKEY_NONCONVERT, FWL_VKEY_NonConvert);
  58. STATIC_ASSERT_ENUM(ui::VKEY_ACCEPT, FWL_VKEY_Accept);
  59. STATIC_ASSERT_ENUM(ui::VKEY_MODECHANGE, FWL_VKEY_ModeChange);
  60. STATIC_ASSERT_ENUM(ui::VKEY_SPACE, FWL_VKEY_Space);
  61. STATIC_ASSERT_ENUM(ui::VKEY_PRIOR, FWL_VKEY_Prior);
  62. STATIC_ASSERT_ENUM(ui::VKEY_NEXT, FWL_VKEY_Next);
  63. STATIC_ASSERT_ENUM(ui::VKEY_END, FWL_VKEY_End);
  64. STATIC_ASSERT_ENUM(ui::VKEY_HOME, FWL_VKEY_Home);
  65. STATIC_ASSERT_ENUM(ui::VKEY_LEFT, FWL_VKEY_Left);
  66. STATIC_ASSERT_ENUM(ui::VKEY_UP, FWL_VKEY_Up);
  67. STATIC_ASSERT_ENUM(ui::VKEY_RIGHT, FWL_VKEY_Right);
  68. STATIC_ASSERT_ENUM(ui::VKEY_DOWN, FWL_VKEY_Down);
  69. STATIC_ASSERT_ENUM(ui::VKEY_SELECT, FWL_VKEY_Select);
  70. STATIC_ASSERT_ENUM(ui::VKEY_PRINT, FWL_VKEY_Print);
  71. STATIC_ASSERT_ENUM(ui::VKEY_EXECUTE, FWL_VKEY_Execute);
  72. STATIC_ASSERT_ENUM(ui::VKEY_SNAPSHOT, FWL_VKEY_Snapshot);
  73. STATIC_ASSERT_ENUM(ui::VKEY_INSERT, FWL_VKEY_Insert);
  74. STATIC_ASSERT_ENUM(ui::VKEY_DELETE, FWL_VKEY_Delete);
  75. STATIC_ASSERT_ENUM(ui::VKEY_HELP, FWL_VKEY_Help);
  76. STATIC_ASSERT_ENUM(ui::VKEY_0, FWL_VKEY_0);
  77. STATIC_ASSERT_ENUM(ui::VKEY_1, FWL_VKEY_1);
  78. STATIC_ASSERT_ENUM(ui::VKEY_2, FWL_VKEY_2);
  79. STATIC_ASSERT_ENUM(ui::VKEY_3, FWL_VKEY_3);
  80. STATIC_ASSERT_ENUM(ui::VKEY_4, FWL_VKEY_4);
  81. STATIC_ASSERT_ENUM(ui::VKEY_5, FWL_VKEY_5);
  82. STATIC_ASSERT_ENUM(ui::VKEY_6, FWL_VKEY_6);
  83. STATIC_ASSERT_ENUM(ui::VKEY_7, FWL_VKEY_7);
  84. STATIC_ASSERT_ENUM(ui::VKEY_8, FWL_VKEY_8);
  85. STATIC_ASSERT_ENUM(ui::VKEY_9, FWL_VKEY_9);
  86. STATIC_ASSERT_ENUM(ui::VKEY_A, FWL_VKEY_A);
  87. STATIC_ASSERT_ENUM(ui::VKEY_B, FWL_VKEY_B);
  88. STATIC_ASSERT_ENUM(ui::VKEY_C, FWL_VKEY_C);
  89. STATIC_ASSERT_ENUM(ui::VKEY_D, FWL_VKEY_D);
  90. STATIC_ASSERT_ENUM(ui::VKEY_E, FWL_VKEY_E);
  91. STATIC_ASSERT_ENUM(ui::VKEY_F, FWL_VKEY_F);
  92. STATIC_ASSERT_ENUM(ui::VKEY_G, FWL_VKEY_G);
  93. STATIC_ASSERT_ENUM(ui::VKEY_H, FWL_VKEY_H);
  94. STATIC_ASSERT_ENUM(ui::VKEY_I, FWL_VKEY_I);
  95. STATIC_ASSERT_ENUM(ui::VKEY_J, FWL_VKEY_J);
  96. STATIC_ASSERT_ENUM(ui::VKEY_K, FWL_VKEY_K);
  97. STATIC_ASSERT_ENUM(ui::VKEY_L, FWL_VKEY_L);
  98. STATIC_ASSERT_ENUM(ui::VKEY_M, FWL_VKEY_M);
  99. STATIC_ASSERT_ENUM(ui::VKEY_N, FWL_VKEY_N);
  100. STATIC_ASSERT_ENUM(ui::VKEY_O, FWL_VKEY_O);
  101. STATIC_ASSERT_ENUM(ui::VKEY_P, FWL_VKEY_P);
  102. STATIC_ASSERT_ENUM(ui::VKEY_Q, FWL_VKEY_Q);
  103. STATIC_ASSERT_ENUM(ui::VKEY_R, FWL_VKEY_R);
  104. STATIC_ASSERT_ENUM(ui::VKEY_S, FWL_VKEY_S);
  105. STATIC_ASSERT_ENUM(ui::VKEY_T, FWL_VKEY_T);
  106. STATIC_ASSERT_ENUM(ui::VKEY_U, FWL_VKEY_U);
  107. STATIC_ASSERT_ENUM(ui::VKEY_V, FWL_VKEY_V);
  108. STATIC_ASSERT_ENUM(ui::VKEY_W, FWL_VKEY_W);
  109. STATIC_ASSERT_ENUM(ui::VKEY_X, FWL_VKEY_X);
  110. STATIC_ASSERT_ENUM(ui::VKEY_Y, FWL_VKEY_Y);
  111. STATIC_ASSERT_ENUM(ui::VKEY_Z, FWL_VKEY_Z);
  112. STATIC_ASSERT_ENUM(ui::VKEY_LWIN, FWL_VKEY_LWin);
  113. STATIC_ASSERT_ENUM(ui::VKEY_COMMAND, FWL_VKEY_Command);
  114. STATIC_ASSERT_ENUM(ui::VKEY_RWIN, FWL_VKEY_RWin);
  115. STATIC_ASSERT_ENUM(ui::VKEY_APPS, FWL_VKEY_Apps);
  116. STATIC_ASSERT_ENUM(ui::VKEY_SLEEP, FWL_VKEY_Sleep);
  117. STATIC_ASSERT_ENUM(ui::VKEY_NUMPAD0, FWL_VKEY_NumPad0);
  118. STATIC_ASSERT_ENUM(ui::VKEY_NUMPAD1, FWL_VKEY_NumPad1);
  119. STATIC_ASSERT_ENUM(ui::VKEY_NUMPAD2, FWL_VKEY_NumPad2);
  120. STATIC_ASSERT_ENUM(ui::VKEY_NUMPAD3, FWL_VKEY_NumPad3);
  121. STATIC_ASSERT_ENUM(ui::VKEY_NUMPAD4, FWL_VKEY_NumPad4);
  122. STATIC_ASSERT_ENUM(ui::VKEY_NUMPAD5, FWL_VKEY_NumPad5);
  123. STATIC_ASSERT_ENUM(ui::VKEY_NUMPAD6, FWL_VKEY_NumPad6);
  124. STATIC_ASSERT_ENUM(ui::VKEY_NUMPAD7, FWL_VKEY_NumPad7);
  125. STATIC_ASSERT_ENUM(ui::VKEY_NUMPAD8, FWL_VKEY_NumPad8);
  126. STATIC_ASSERT_ENUM(ui::VKEY_NUMPAD9, FWL_VKEY_NumPad9);
  127. STATIC_ASSERT_ENUM(ui::VKEY_MULTIPLY, FWL_VKEY_Multiply);
  128. STATIC_ASSERT_ENUM(ui::VKEY_ADD, FWL_VKEY_Add);
  129. STATIC_ASSERT_ENUM(ui::VKEY_SEPARATOR, FWL_VKEY_Separator);
  130. STATIC_ASSERT_ENUM(ui::VKEY_SUBTRACT, FWL_VKEY_Subtract);
  131. STATIC_ASSERT_ENUM(ui::VKEY_DECIMAL, FWL_VKEY_Decimal);
  132. STATIC_ASSERT_ENUM(ui::VKEY_DIVIDE, FWL_VKEY_Divide);
  133. STATIC_ASSERT_ENUM(ui::VKEY_F1, FWL_VKEY_F1);
  134. STATIC_ASSERT_ENUM(ui::VKEY_F2, FWL_VKEY_F2);
  135. STATIC_ASSERT_ENUM(ui::VKEY_F3, FWL_VKEY_F3);
  136. STATIC_ASSERT_ENUM(ui::VKEY_F4, FWL_VKEY_F4);
  137. STATIC_ASSERT_ENUM(ui::VKEY_F5, FWL_VKEY_F5);
  138. STATIC_ASSERT_ENUM(ui::VKEY_F6, FWL_VKEY_F6);
  139. STATIC_ASSERT_ENUM(ui::VKEY_F7, FWL_VKEY_F7);
  140. STATIC_ASSERT_ENUM(ui::VKEY_F8, FWL_VKEY_F8);
  141. STATIC_ASSERT_ENUM(ui::VKEY_F9, FWL_VKEY_F9);
  142. STATIC_ASSERT_ENUM(ui::VKEY_F10, FWL_VKEY_F10);
  143. STATIC_ASSERT_ENUM(ui::VKEY_F11, FWL_VKEY_F11);
  144. STATIC_ASSERT_ENUM(ui::VKEY_F12, FWL_VKEY_F12);
  145. STATIC_ASSERT_ENUM(ui::VKEY_F13, FWL_VKEY_F13);
  146. STATIC_ASSERT_ENUM(ui::VKEY_F14, FWL_VKEY_F14);
  147. STATIC_ASSERT_ENUM(ui::VKEY_F15, FWL_VKEY_F15);
  148. STATIC_ASSERT_ENUM(ui::VKEY_F16, FWL_VKEY_F16);
  149. STATIC_ASSERT_ENUM(ui::VKEY_F17, FWL_VKEY_F17);
  150. STATIC_ASSERT_ENUM(ui::VKEY_F18, FWL_VKEY_F18);
  151. STATIC_ASSERT_ENUM(ui::VKEY_F19, FWL_VKEY_F19);
  152. STATIC_ASSERT_ENUM(ui::VKEY_F20, FWL_VKEY_F20);
  153. STATIC_ASSERT_ENUM(ui::VKEY_F21, FWL_VKEY_F21);
  154. STATIC_ASSERT_ENUM(ui::VKEY_F22, FWL_VKEY_F22);
  155. STATIC_ASSERT_ENUM(ui::VKEY_F23, FWL_VKEY_F23);
  156. STATIC_ASSERT_ENUM(ui::VKEY_F24, FWL_VKEY_F24);
  157. STATIC_ASSERT_ENUM(ui::VKEY_NUMLOCK, FWL_VKEY_NunLock);
  158. STATIC_ASSERT_ENUM(ui::VKEY_SCROLL, FWL_VKEY_Scroll);
  159. STATIC_ASSERT_ENUM(ui::VKEY_LSHIFT, FWL_VKEY_LShift);
  160. STATIC_ASSERT_ENUM(ui::VKEY_RSHIFT, FWL_VKEY_RShift);
  161. STATIC_ASSERT_ENUM(ui::VKEY_LCONTROL, FWL_VKEY_LControl);
  162. STATIC_ASSERT_ENUM(ui::VKEY_RCONTROL, FWL_VKEY_RControl);
  163. STATIC_ASSERT_ENUM(ui::VKEY_LMENU, FWL_VKEY_LMenu);
  164. STATIC_ASSERT_ENUM(ui::VKEY_RMENU, FWL_VKEY_RMenu);
  165. STATIC_ASSERT_ENUM(ui::VKEY_BROWSER_BACK, FWL_VKEY_BROWSER_Back);
  166. STATIC_ASSERT_ENUM(ui::VKEY_BROWSER_FORWARD, FWL_VKEY_BROWSER_Forward);
  167. STATIC_ASSERT_ENUM(ui::VKEY_BROWSER_REFRESH, FWL_VKEY_BROWSER_Refresh);
  168. STATIC_ASSERT_ENUM(ui::VKEY_BROWSER_STOP, FWL_VKEY_BROWSER_Stop);
  169. STATIC_ASSERT_ENUM(ui::VKEY_BROWSER_SEARCH, FWL_VKEY_BROWSER_Search);
  170. STATIC_ASSERT_ENUM(ui::VKEY_BROWSER_FAVORITES, FWL_VKEY_BROWSER_Favorites);
  171. STATIC_ASSERT_ENUM(ui::VKEY_BROWSER_HOME, FWL_VKEY_BROWSER_Home);
  172. STATIC_ASSERT_ENUM(ui::VKEY_VOLUME_MUTE, FWL_VKEY_VOLUME_Mute);
  173. STATIC_ASSERT_ENUM(ui::VKEY_VOLUME_DOWN, FWL_VKEY_VOLUME_Down);
  174. STATIC_ASSERT_ENUM(ui::VKEY_VOLUME_UP, FWL_VKEY_VOLUME_Up);
  175. STATIC_ASSERT_ENUM(ui::VKEY_MEDIA_NEXT_TRACK, FWL_VKEY_MEDIA_NEXT_Track);
  176. STATIC_ASSERT_ENUM(ui::VKEY_MEDIA_PREV_TRACK, FWL_VKEY_MEDIA_PREV_Track);
  177. STATIC_ASSERT_ENUM(ui::VKEY_MEDIA_STOP, FWL_VKEY_MEDIA_Stop);
  178. STATIC_ASSERT_ENUM(ui::VKEY_MEDIA_PLAY_PAUSE, FWL_VKEY_MEDIA_PLAY_Pause);
  179. STATIC_ASSERT_ENUM(ui::VKEY_MEDIA_LAUNCH_MAIL, FWL_VKEY_MEDIA_LAUNCH_Mail);
  180. STATIC_ASSERT_ENUM(ui::VKEY_MEDIA_LAUNCH_MEDIA_SELECT,
  181. FWL_VKEY_MEDIA_LAUNCH_MEDIA_Select);
  182. STATIC_ASSERT_ENUM(ui::VKEY_MEDIA_LAUNCH_APP1, FWL_VKEY_MEDIA_LAUNCH_APP1);
  183. STATIC_ASSERT_ENUM(ui::VKEY_MEDIA_LAUNCH_APP2, FWL_VKEY_MEDIA_LAUNCH_APP2);
  184. STATIC_ASSERT_ENUM(ui::VKEY_OEM_1, FWL_VKEY_OEM_1);
  185. STATIC_ASSERT_ENUM(ui::VKEY_OEM_PLUS, FWL_VKEY_OEM_Plus);
  186. STATIC_ASSERT_ENUM(ui::VKEY_OEM_COMMA, FWL_VKEY_OEM_Comma);
  187. STATIC_ASSERT_ENUM(ui::VKEY_OEM_MINUS, FWL_VKEY_OEM_Minus);
  188. STATIC_ASSERT_ENUM(ui::VKEY_OEM_PERIOD, FWL_VKEY_OEM_Period);
  189. STATIC_ASSERT_ENUM(ui::VKEY_OEM_2, FWL_VKEY_OEM_2);
  190. STATIC_ASSERT_ENUM(ui::VKEY_OEM_3, FWL_VKEY_OEM_3);
  191. STATIC_ASSERT_ENUM(ui::VKEY_OEM_4, FWL_VKEY_OEM_4);
  192. STATIC_ASSERT_ENUM(ui::VKEY_OEM_5, FWL_VKEY_OEM_5);
  193. STATIC_ASSERT_ENUM(ui::VKEY_OEM_6, FWL_VKEY_OEM_6);
  194. STATIC_ASSERT_ENUM(ui::VKEY_OEM_7, FWL_VKEY_OEM_7);
  195. STATIC_ASSERT_ENUM(ui::VKEY_OEM_8, FWL_VKEY_OEM_8);
  196. STATIC_ASSERT_ENUM(ui::VKEY_OEM_102, FWL_VKEY_OEM_102);
  197. STATIC_ASSERT_ENUM(ui::VKEY_PROCESSKEY, FWL_VKEY_ProcessKey);
  198. STATIC_ASSERT_ENUM(ui::VKEY_PACKET, FWL_VKEY_Packet);
  199. STATIC_ASSERT_ENUM(ui::VKEY_ATTN, FWL_VKEY_Attn);
  200. STATIC_ASSERT_ENUM(ui::VKEY_CRSEL, FWL_VKEY_Crsel);
  201. STATIC_ASSERT_ENUM(ui::VKEY_EXSEL, FWL_VKEY_Exsel);
  202. STATIC_ASSERT_ENUM(ui::VKEY_EREOF, FWL_VKEY_Ereof);
  203. STATIC_ASSERT_ENUM(ui::VKEY_PLAY, FWL_VKEY_Play);
  204. STATIC_ASSERT_ENUM(ui::VKEY_ZOOM, FWL_VKEY_Zoom);
  205. STATIC_ASSERT_ENUM(ui::VKEY_NONAME, FWL_VKEY_NoName);
  206. STATIC_ASSERT_ENUM(ui::VKEY_PA1, FWL_VKEY_PA1);
  207. STATIC_ASSERT_ENUM(ui::VKEY_OEM_CLEAR, FWL_VKEY_OEM_Clear);
  208. STATIC_ASSERT_ENUM(ui::VKEY_UNKNOWN, FWL_VKEY_Unknown);
  209. STATIC_ASSERT_ENUM(FormType::kNone, FORMTYPE_NONE);
  210. STATIC_ASSERT_ENUM(FormType::kAcroForm, FORMTYPE_ACRO_FORM);
  211. STATIC_ASSERT_ENUM(FormType::kXFAFull, FORMTYPE_XFA_FULL);
  212. STATIC_ASSERT_ENUM(FormType::kXFAForeground, FORMTYPE_XFA_FOREGROUND);
  213. STATIC_ASSERT_ENUM(FormType::kMaxValue, FORMTYPE_COUNT - 1);
  214. #if BUILDFLAG(IS_WIN)
  215. STATIC_ASSERT_ENUM(kEmf, FPDF_PRINTMODE_EMF);
  216. STATIC_ASSERT_ENUM(kTextOnly, FPDF_PRINTMODE_TEXTONLY);
  217. STATIC_ASSERT_ENUM(kPostScript2, FPDF_PRINTMODE_POSTSCRIPT2);
  218. STATIC_ASSERT_ENUM(kPostScript3, FPDF_PRINTMODE_POSTSCRIPT3);
  219. STATIC_ASSERT_ENUM(kEmfWithReducedRasterization,
  220. FPDF_PRINTMODE_EMF_IMAGE_MASKS);
  221. STATIC_ASSERT_ENUM(kPostScript3WithType42Fonts,
  222. FPDF_PRINTMODE_POSTSCRIPT3_TYPE42);
  223. #endif
  224. } // namespace chrome_pdf