[Presentation API] Enforce sandboxing flags for presentations.

This enforces sandboxing flags for pages loaded as presentations via the
Presentation API, following step 3 of the steps to create a receiving browsing
context [1].

Although top navigation is blocked in the implementation of OffscreenTab [2],
we also set the kTopNavigation flag to be inherited by iframes.

This patch adds layout tests.  Web Platform Tests are available as well, but
require manually starting a presentation.

This patch also updates WebSandboxFlags to reflect the current set of sandboxing
flags.

[1] https://w3c.github.io/presentation-api/#creating-a-receiving-browsing-context
[2] https://chromium-review.googlesource.com/c/538975/

Bug: 697526
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation
Change-Id: Idb0b8c51c03ef504767a7fc6c483c0909dc240fc
Reviewed-on: https://chromium-review.googlesource.com/540498
Commit-Queue: mark a. foltz <mfoltz@chromium.org>
Reviewed-by: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Derek Cheng <imcheng@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#510675}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ef394fce1aedb8db58821242eadd70720b125153
6 files changed
tree: ee4199b02f7a74b99a2309d64ec6f8262f4fba54
  1. accessibility-audit/
  2. accessibility_test_framework/
  3. adobe/
  4. afl/
  5. analytics/
  6. android_async_task/
  7. android_crazy_linker/
  8. android_data_chart/
  9. android_media/
  10. android_opengl/
  11. android_platform/
  12. android_protobuf/
  13. android_support_test_runner/
  14. android_swipe_refresh/
  15. android_system_sdk/
  16. apache-portable-runtime/
  17. apache-win32/
  18. apache_velocity/
  19. apk-patch-size-estimator/
  20. apple_apsl/
  21. apple_sample_code/
  22. ashmem/
  23. axe-core/
  24. bazel/
  25. binutils/
  26. blanketjs/
  27. blink/
  28. boringssl/
  29. bouncycastle/
  30. breakpad/
  31. brotli/
  32. bspatch/
  33. byte_buddy/
  34. cacheinvalidation/
  35. ced/
  36. chaijs/
  37. checkstyle/
  38. cld/
  39. cld_2/
  40. cld_3/
  41. closure_compiler/
  42. colorama/
  43. crashpad/
  44. crc32c/
  45. custom_tabs_client/
  46. d3/
  47. decklink/
  48. deqp/
  49. devscripts/
  50. dom_distiller_js/
  51. elfutils/
  52. errorprone/
  53. espresso/
  54. eu-strip/
  55. expat/
  56. fips181/
  57. flatbuffers/
  58. flot/
  59. fontconfig/
  60. freetype/
  61. gardiner_mod/
  62. gestures/
  63. gif_player/
  64. glslang/
  65. glslang-angle/
  66. google_appengine_cloudstorage/
  67. google_input_tools/
  68. google_toolbox_for_mac/
  69. googletest/
  70. gson/
  71. guava/
  72. gvr-android-sdk/
  73. haha/
  74. hamcrest/
  75. harfbuzz-ng/
  76. hunspell/
  77. iaccessible2/
  78. iccjpeg/
  79. icu4j/
  80. ijar/
  81. inspector_protocol/
  82. instrumented_libraries/
  83. intellij/
  84. isimpledom/
  85. javax_inject/
  86. jinja2/
  87. jmake/
  88. jsoncpp/
  89. jsr-305/
  90. jstemplate/
  91. junit/
  92. khronos/
  93. lcov/
  94. leakcanary/
  95. leveldatabase/
  96. libaddressinput/
  97. libdrm/
  98. libevdev/
  99. libFuzzer/
  100. libjingle_xmpp/
  101. libjpeg/
  102. liblouis/
  103. libphonenumber/
  104. libpng/
  105. libprotobuf-mutator/
  106. libsecret/
  107. libsync/
  108. libudev/
  109. libusb/
  110. libvpx/
  111. libwebm/
  112. libwebp/
  113. libxml/
  114. libXNVCtrl/
  115. libxslt/
  116. logilab/
  117. lzma_sdk/
  118. mach_override/
  119. markdown/
  120. markupsafe/
  121. material_design_icons/
  122. mesa/
  123. metrics_proto/
  124. minigbm/
  125. minizip/
  126. mocha/
  127. mockito/
  128. modp_b64/
  129. molokocacao/
  130. motemplate/
  131. mozilla/
  132. mt19937ar/
  133. netty-tcnative/
  134. netty4/
  135. node/
  136. objenesis/
  137. ocmock/
  138. openh264/
  139. openvr/
  140. opus/
  141. ots/
  142. ow2_asm/
  143. pexpect/
  144. ply/
  145. polymer/
  146. proguard/
  147. protobuf/
  148. pycoverage/
  149. pyftpdlib/
  150. pylint/
  151. pymock/
  152. pystache/
  153. Python-Markdown/
  154. pywebsocket/
  155. qcms/
  156. qunit/
  157. re2/
  158. requests/
  159. robolectric/
  160. s2cellid/
  161. sfntly/
  162. shaderc/
  163. simplejson/
  164. sinonjs/
  165. smhasher/
  166. snappy/
  167. speech-dispatcher/
  168. spirv-headers/
  169. SPIRV-Tools/
  170. spirv-tools-angle/
  171. sqlite/
  172. sqlite4java/
  173. sudden_motion_sensor/
  174. tcmalloc/
  175. tlslite/
  176. typ/
  177. ub-uiautomator/
  178. usb_ids/
  179. usrsctp/
  180. v4l-utils/
  181. visualmetrics/
  182. vulkan/
  183. vulkan-validation-layers/
  184. wayland/
  185. wayland-protocols/
  186. wds/
  187. web-animations-js/
  188. webdriver/
  189. webgl/
  190. WebKit/
  191. webrtc_overrides/
  192. widevine/
  193. win_build_output/
  194. woff2/
  195. wtl/
  196. xstream/
  197. yara/
  198. yasm/
  199. zlib/
  200. .gitignore
  201. BUILD.gn
  202. DEPS
  203. OWNERS
  204. PRESUBMIT.py
  205. README.chromium
  206. README.chromium.template