Pass ByteStrings to Form Fill Env actions.
Bug: pdfium:1706
Change-Id: If1ae0dc74b589503e37bbd75464fbdb5dd74d076
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/83564
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fpdfsdk/cpdfsdk_actionhandler.cpp b/fpdfsdk/cpdfsdk_actionhandler.cpp
index bbca1bc..c3693ac 100644
--- a/fpdfsdk/cpdfsdk_actionhandler.cpp
+++ b/fpdfsdk/cpdfsdk_actionhandler.cpp
@@ -308,18 +308,15 @@
const CPDF_Action& action,
int modifiers) {
DCHECK(action.GetDict());
-
- ByteString sURI = action.GetURI(pFormFillEnv->GetPDFDocument());
- pFormFillEnv->DoURIAction(sURI.c_str(), modifiers);
+ pFormFillEnv->DoURIAction(action.GetURI(pFormFillEnv->GetPDFDocument()),
+ modifiers);
}
void CPDFSDK_ActionHandler::DoAction_Named(
CPDFSDK_FormFillEnvironment* pFormFillEnv,
const CPDF_Action& action) {
DCHECK(action.GetDict());
-
- ByteString csName = action.GetNamedAction();
- pFormFillEnv->ExecuteNamedAction(csName.c_str());
+ pFormFillEnv->ExecuteNamedAction(action.GetNamedAction());
}
void CPDFSDK_ActionHandler::RunFieldJavaScript(
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.cpp b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
index d166826..572e1fa 100644
--- a/fpdfsdk/cpdfsdk_formfillenvironment.cpp
+++ b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
@@ -388,9 +388,10 @@
m_pInfo->FFI_OnChange(m_pInfo);
}
-void CPDFSDK_FormFillEnvironment::ExecuteNamedAction(const char* namedAction) {
+void CPDFSDK_FormFillEnvironment::ExecuteNamedAction(
+ const ByteString& namedAction) {
if (m_pInfo && m_pInfo->FFI_ExecuteNamedAction)
- m_pInfo->FFI_ExecuteNamedAction(m_pInfo, namedAction);
+ m_pInfo->FFI_ExecuteNamedAction(m_pInfo, namedAction.c_str());
}
void CPDFSDK_FormFillEnvironment::OnSetFieldInputFocus(
@@ -401,18 +402,19 @@
m_pInfo->FFI_SetTextFieldFocus(m_pInfo, focusText, nTextLen, bFocus);
}
-void CPDFSDK_FormFillEnvironment::DoURIAction(const char* bsURI,
+void CPDFSDK_FormFillEnvironment::DoURIAction(const ByteString& bsURI,
uint32_t modifiers) {
if (!m_pInfo)
return;
if (m_pInfo->version >= 2 && m_pInfo->FFI_DoURIActionWithKeyboardModifier) {
- m_pInfo->FFI_DoURIActionWithKeyboardModifier(m_pInfo, bsURI, modifiers);
+ m_pInfo->FFI_DoURIActionWithKeyboardModifier(m_pInfo, bsURI.c_str(),
+ modifiers);
return;
}
if (m_pInfo->FFI_DoURIAction)
- m_pInfo->FFI_DoURIAction(m_pInfo, bsURI);
+ m_pInfo->FFI_DoURIAction(m_pInfo, bsURI.c_str());
}
void CPDFSDK_FormFillEnvironment::DoGoToAction(int nPageIndex,
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.h b/fpdfsdk/cpdfsdk_formfillenvironment.h
index d713eed..bedbc37 100644
--- a/fpdfsdk/cpdfsdk_formfillenvironment.h
+++ b/fpdfsdk/cpdfsdk_formfillenvironment.h
@@ -92,11 +92,11 @@
void Invalidate(IPDF_Page* page, const FX_RECT& rect);
void OnChange();
- void ExecuteNamedAction(const char* namedAction);
+ void ExecuteNamedAction(const ByteString& namedAction);
void OnSetFieldInputFocus(FPDF_WIDESTRING focusText,
FPDF_DWORD nTextLen,
bool bFocus);
- void DoURIAction(const char* bsURI, uint32_t modifiers);
+ void DoURIAction(const ByteString& bsURI, uint32_t modifiers);
void DoGoToAction(int nPageIndex,
int zoomMode,
float* fPosArray,