Prove some calls in XFA to GetScriptContext() are redundant

Introduce CHECKS() to be sure before removing them.

Change-Id: Iadd48dab13b9238ac1c6c4bb7b780e56dc33ed8c
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/107550
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fxjs/xfa/cjx_eventpseudomodel.cpp b/fxjs/xfa/cjx_eventpseudomodel.cpp
index cd49642..d40d919 100644
--- a/fxjs/xfa/cjx_eventpseudomodel.cpp
+++ b/fxjs/xfa/cjx_eventpseudomodel.cpp
@@ -11,6 +11,7 @@
 
 #include "fxjs/fxv8.h"
 #include "fxjs/xfa/cfxjse_engine.h"
+#include "third_party/base/check_op.h"
 #include "third_party/base/notreached.h"
 #include "third_party/base/numerics/safe_conversions.h"
 #include "v8/include/v8-primitive.h"
@@ -217,6 +218,7 @@
 CJS_Result CJX_EventPseudoModel::reset(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   CFXJSE_Engine* pScriptContext = GetDocument()->GetScriptContext();
   CXFA_EventParam* pEventParam = pScriptContext->GetEventParam();
   if (pEventParam)
diff --git a/fxjs/xfa/cjx_exclgroup.cpp b/fxjs/xfa/cjx_exclgroup.cpp
index 11e6982..f27ece1 100644
--- a/fxjs/xfa/cjx_exclgroup.cpp
+++ b/fxjs/xfa/cjx_exclgroup.cpp
@@ -13,6 +13,7 @@
 #include "fxjs/xfa/cfxjse_engine.h"
 #include "v8/include/v8-object.h"
 #include "v8/include/v8-primitive.h"
+#include "third_party/base/check_op.h"
 #include "xfa/fxfa/cxfa_eventparam.h"
 #include "xfa/fxfa/cxfa_ffnotify.h"
 #include "xfa/fxfa/fxfa.h"
@@ -92,6 +93,7 @@
 CJS_Result CJX_ExclGroup::selectedMember(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   if (!params.empty())
     return CJS_Result::Failure(JSMessage::kParamError);
 
diff --git a/fxjs/xfa/cjx_form.cpp b/fxjs/xfa/cjx_form.cpp
index 4dab966..d4e0441 100644
--- a/fxjs/xfa/cjx_form.cpp
+++ b/fxjs/xfa/cjx_form.cpp
@@ -11,6 +11,7 @@
 #include "fxjs/fxv8.h"
 #include "fxjs/js_resources.h"
 #include "fxjs/xfa/cfxjse_engine.h"
+#include "third_party/base/check_op.h"
 #include "v8/include/cppgc/allocation.h"
 #include "v8/include/v8-object.h"
 #include "v8/include/v8-primitive.h"
@@ -82,6 +83,7 @@
 CJS_Result CJX_Form::recalculate(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   CXFA_EventParam* pEventParam =
       GetDocument()->GetScriptContext()->GetEventParam();
   if (pEventParam && (pEventParam->m_eType == XFA_EVENT_Calculate ||
diff --git a/fxjs/xfa/cjx_hostpseudomodel.cpp b/fxjs/xfa/cjx_hostpseudomodel.cpp
index 597db30..e549752 100644
--- a/fxjs/xfa/cjx_hostpseudomodel.cpp
+++ b/fxjs/xfa/cjx_hostpseudomodel.cpp
@@ -12,6 +12,7 @@
 #include "fxjs/js_resources.h"
 #include "fxjs/xfa/cfxjse_engine.h"
 #include "third_party/base/check.h"
+#include "third_party/base/check_op.h"
 #include "v8/include/v8-object.h"
 #include "xfa/fxfa/cxfa_ffdoc.h"
 #include "xfa/fxfa/cxfa_ffnotify.h"
@@ -259,6 +260,7 @@
 CJS_Result CJX_HostPseudoModel::gotoURL(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   if (!GetDocument()->GetScriptContext()->IsRunAtClient())
     return CJS_Result::Success();
 
@@ -276,6 +278,7 @@
 CJS_Result CJX_HostPseudoModel::openList(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   if (!GetDocument()->GetScriptContext()->IsRunAtClient())
     return CJS_Result::Success();
 
@@ -354,6 +357,7 @@
 CJS_Result CJX_HostPseudoModel::resetData(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   if (params.size() > 1)
     return CJS_Result::Failure(JSMessage::kParamError);
 
@@ -402,6 +406,7 @@
 CJS_Result CJX_HostPseudoModel::beep(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   if (!GetDocument()->GetScriptContext()->IsRunAtClient())
     return CJS_Result::Success();
 
@@ -423,6 +428,7 @@
 CJS_Result CJX_HostPseudoModel::setFocus(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   if (!GetDocument()->GetScriptContext()->IsRunAtClient())
     return CJS_Result::Success();
 
@@ -463,6 +469,7 @@
 CJS_Result CJX_HostPseudoModel::getFocus(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   CXFA_FFNotify* pNotify = GetDocument()->GetNotify();
   if (!pNotify)
     return CJS_Result::Success();
@@ -480,6 +487,7 @@
 CJS_Result CJX_HostPseudoModel::messageBox(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   if (!GetDocument()->GetScriptContext()->IsRunAtClient())
     return CJS_Result::Success();
 
@@ -526,6 +534,7 @@
 CJS_Result CJX_HostPseudoModel::print(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   if (!GetDocument()->GetScriptContext()->IsRunAtClient())
     return CJS_Result::Success();
 
diff --git a/fxjs/xfa/cjx_instancemanager.cpp b/fxjs/xfa/cjx_instancemanager.cpp
index 18faf93..8293de7 100644
--- a/fxjs/xfa/cjx_instancemanager.cpp
+++ b/fxjs/xfa/cjx_instancemanager.cpp
@@ -12,6 +12,7 @@
 #include "fxjs/fxv8.h"
 #include "fxjs/js_resources.h"
 #include "fxjs/xfa/cfxjse_engine.h"
+#include "third_party/base/check_op.h"
 #include "third_party/base/notreached.h"
 #include "v8/include/v8-object.h"
 #include "v8/include/v8-primitive.h"
@@ -220,6 +221,7 @@
 CJS_Result CJX_InstanceManager::addInstance(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   CXFA_Document* doc = runtime->GetDocument();
   if (doc->GetFormType() != FormType::kXFAFull)
     return CJS_Result::Failure(JSMessage::kNotSupportedError);
@@ -257,6 +259,7 @@
 CJS_Result CJX_InstanceManager::insertInstance(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   CXFA_Document* doc = runtime->GetDocument();
   if (doc->GetFormType() != FormType::kXFAFull)
     return CJS_Result::Failure(JSMessage::kNotSupportedError);
diff --git a/fxjs/xfa/cjx_model.cpp b/fxjs/xfa/cjx_model.cpp
index 21a767d..0d1141c 100644
--- a/fxjs/xfa/cjx_model.cpp
+++ b/fxjs/xfa/cjx_model.cpp
@@ -11,6 +11,7 @@
 #include "fxjs/js_resources.h"
 #include "fxjs/xfa/cfxjse_engine.h"
 #include "fxjs/xfa/cfxjse_value.h"
+#include "third_party/base/check_op.h"
 #include "v8/include/v8-object.h"
 #include "xfa/fxfa/parser/cxfa_delta.h"
 #include "xfa/fxfa/parser/cxfa_document.h"
@@ -40,6 +41,7 @@
 CJS_Result CJX_Model::createNode(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   if (params.empty() || params.size() > 3)
     return CJS_Result::Failure(JSMessage::kParamError);
 
diff --git a/fxjs/xfa/cjx_node.cpp b/fxjs/xfa/cjx_node.cpp
index 0685107..2eea6f0 100644
--- a/fxjs/xfa/cjx_node.cpp
+++ b/fxjs/xfa/cjx_node.cpp
@@ -19,6 +19,7 @@
 #include "fxjs/fxv8.h"
 #include "fxjs/js_resources.h"
 #include "fxjs/xfa/cfxjse_engine.h"
+#include "third_party/base/check_op.h"
 #include "v8/include/v8-object.h"
 #include "xfa/fxfa/cxfa_eventparam.h"
 #include "xfa/fxfa/cxfa_ffdoc.h"
@@ -133,6 +134,7 @@
 
 CJS_Result CJX_Node::clone(CFXJSE_Engine* runtime,
                            const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   if (params.size() != 1)
     return CJS_Result::Failure(JSMessage::kParamError);
 
@@ -156,6 +158,7 @@
 CJS_Result CJX_Node::getElement(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   if (params.empty() || params.size() > 2)
     return CJS_Result::Failure(JSMessage::kParamError);
 
diff --git a/fxjs/xfa/cjx_tree.cpp b/fxjs/xfa/cjx_tree.cpp
index ec562ce..a356973 100644
--- a/fxjs/xfa/cjx_tree.cpp
+++ b/fxjs/xfa/cjx_tree.cpp
@@ -12,6 +12,7 @@
 #include "fxjs/js_resources.h"
 #include "fxjs/xfa/cfxjse_class.h"
 #include "fxjs/xfa/cfxjse_engine.h"
+#include "third_party/base/check_op.h"
 #include "third_party/base/numerics/safe_conversions.h"
 #include "v8/include/cppgc/allocation.h"
 #include "v8/include/v8-object.h"
@@ -39,6 +40,7 @@
 CJS_Result CJX_Tree::resolveNode(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   if (params.size() != 1)
     return CJS_Result::Failure(JSMessage::kParamError);
 
@@ -81,6 +83,7 @@
 CJS_Result CJX_Tree::resolveNodes(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   if (params.size() != 1)
     return CJS_Result::Failure(JSMessage::kParamError);
 
diff --git a/fxjs/xfa/cjx_treelist.cpp b/fxjs/xfa/cjx_treelist.cpp
index e2e4a21..1bfde7d 100644
--- a/fxjs/xfa/cjx_treelist.cpp
+++ b/fxjs/xfa/cjx_treelist.cpp
@@ -11,6 +11,7 @@
 #include "fxjs/js_resources.h"
 #include "fxjs/xfa/cfxjse_engine.h"
 #include "fxjs/xfa/cfxjse_value.h"
+#include "third_party/base/check_op.h"
 #include "v8/include/v8-object.h"
 #include "xfa/fxfa/parser/cxfa_document.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
@@ -36,6 +37,7 @@
 CJS_Result CJX_TreeList::namedItem(
     CFXJSE_Engine* runtime,
     const std::vector<v8::Local<v8::Value>>& params) {
+  CHECK_EQ(runtime, GetDocument()->GetScriptContext());
   if (params.size() != 1)
     return CJS_Result::Failure(JSMessage::kParamError);