diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-06-08 18:23:05 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-06-08 18:23:05 +0000 |
commit | 1699982f45d01cb18585eba80cce5326a63d3b67 (patch) | |
tree | 537d81d989632bab75fda37f5b587e1309e60d5d /fxjs/cjs_document.cpp | |
parent | f29479d47156d180c0b71f6c98aa4de37c2a7ee2 (diff) | |
download | pdfium-1699982f45d01cb18585eba80cce5326a63d3b67.tar.xz |
Ensure CJS_Return() with error always includes a message.
Change the signature of the constructors to make it impossible to
do this otherwise.
Change-Id: I14e88d98a1128f2d599459ce9337cd6d079469fe
Reviewed-on: https://pdfium-review.googlesource.com/34531
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'fxjs/cjs_document.cpp')
-rw-r--r-- | fxjs/cjs_document.cpp | 312 |
1 files changed, 154 insertions, 158 deletions
diff --git a/fxjs/cjs_document.cpp b/fxjs/cjs_document.cpp index d6dc4d6020..a259767560 100644 --- a/fxjs/cjs_document.cpp +++ b/fxjs/cjs_document.cpp @@ -135,7 +135,7 @@ void CJS_Document::InitInstance() { // The total number of fields in document. CJS_Return CJS_Document::get_num_fields(CJS_Runtime* pRuntime) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm(); CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); @@ -145,23 +145,23 @@ CJS_Return CJS_Document::get_num_fields(CJS_Runtime* pRuntime) { CJS_Return CJS_Document::set_num_fields(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(JSGetStringFromID(JSMessage::kReadOnlyError)); + return CJS_Return(JSMessage::kReadOnlyError); } CJS_Return CJS_Document::get_dirty(CJS_Runtime* pRuntime) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); return CJS_Return(pRuntime->NewBoolean(!!m_pFormFillEnv->GetChangeMark())); } CJS_Return CJS_Document::set_dirty(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); pRuntime->ToBoolean(vp) ? m_pFormFillEnv->SetChangeMark() : m_pFormFillEnv->ClearChangeMark(); - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_ADBE(CJS_Runtime* pRuntime) { @@ -170,12 +170,12 @@ CJS_Return CJS_Document::get_ADBE(CJS_Runtime* pRuntime) { CJS_Return CJS_Document::set_ADBE(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_page_num(CJS_Runtime* pRuntime) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); CPDFSDK_PageView* pPageView = m_pFormFillEnv->GetCurrentView(); if (!pPageView) @@ -186,7 +186,7 @@ CJS_Return CJS_Document::get_page_num(CJS_Runtime* pRuntime) { CJS_Return CJS_Document::set_page_num(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); int iPageCount = m_pFormFillEnv->GetPageCount(); int iPageNum = pRuntime->ToInt32(vp); @@ -197,51 +197,51 @@ CJS_Return CJS_Document::set_page_num(CJS_Runtime* pRuntime, else if (iPageNum < 0) m_pFormFillEnv->JS_docgotoPage(0); - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::addAnnot( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Not supported. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::addField( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Not supported. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::exportAsText( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Unsafe, not supported. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::exportAsFDF( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Unsafe, not supported. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::exportAsXFDF( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Unsafe, not supported. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::getField( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (params.empty()) - return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); + return CJS_Return(JSMessage::kParamError); if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); WideString wideName = pRuntime->ToWideString(params[0]); CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm(); @@ -252,12 +252,12 @@ CJS_Return CJS_Document::getField( v8::Local<v8::Object> pFieldObj = pRuntime->NewFXJSBoundObject(CJS_Field::GetObjDefnID()); if (pFieldObj.IsEmpty()) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); auto* pJSField = static_cast<CJS_Field*>(CFXJS_Engine::GetObjectPrivate(pFieldObj)); if (!pJSField) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); pJSField->AttachField(this, wideName); return CJS_Return(pJSField->ToV8Object()); @@ -268,19 +268,19 @@ CJS_Return CJS_Document::getNthFieldName( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (params.size() != 1) - return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); + return CJS_Return(JSMessage::kParamError); if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); int nIndex = pRuntime->ToInt32(params[0]); if (nIndex < 0) - return CJS_Return(JSGetStringFromID(JSMessage::kValueError)); + return CJS_Return(JSMessage::kValueError); CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm(); CPDF_InterForm* pPDFForm = pInterForm->GetInterForm(); CPDF_FormField* pField = pPDFForm->GetField(nIndex, WideString()); if (!pField) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); return CJS_Return(pRuntime->NewString(pField->GetFullName().c_str())); } @@ -288,21 +288,21 @@ CJS_Return CJS_Document::importAnFDF( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Unsafe, not supported. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::importAnXFDF( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Unsafe, not supported. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::importTextData( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Unsafe, not supported. - return CJS_Return(true); + return CJS_Return(); } // exports the form data and mails the resulting fdf file as an attachment to @@ -312,14 +312,14 @@ CJS_Return CJS_Document::mailForm( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); if (!m_pFormFillEnv->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) - return CJS_Return(JSGetStringFromID(JSMessage::kPermissionError)); + return CJS_Return(JSMessage::kPermissionError); CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm(); ByteString sTextBuf = pInterForm->ExportFormToFDFTextBuf(); if (sTextBuf.GetLength() == 0) - return CJS_Return(false); + return CJS_Return(L"Bad FDF format."); size_t nLength = params.size(); bool bUI = nLength > 0 ? pRuntime->ToBoolean(params[0]) : true; @@ -338,14 +338,14 @@ CJS_Return CJS_Document::mailForm( pFormFillEnv->JS_docmailForm(pMutableBuf.get(), nBufSize, bUI, cTo, cSubject, cCc, cBcc, cMsg); pRuntime->EndBlock(); - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::print( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); bool bUI = true; int nStart = 0; @@ -397,11 +397,11 @@ CJS_Return CJS_Document::print( } if (!m_pFormFillEnv) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); m_pFormFillEnv->JS_docprint(bUI, nStart, nEnd, bSilent, bShrinkToFit, bPrintAsImage, bReverse, bAnnotations); - return CJS_Return(true); + return CJS_Return(); } // removes the specified field from the document. @@ -412,20 +412,20 @@ CJS_Return CJS_Document::removeField( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (params.size() != 1) - return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); + return CJS_Return(JSMessage::kParamError); if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); if (!(m_pFormFillEnv->GetPermissions(FPDFPERM_MODIFY) || m_pFormFillEnv->GetPermissions(FPDFPERM_ANNOT_FORM))) - return CJS_Return(JSGetStringFromID(JSMessage::kPermissionError)); + return CJS_Return(JSMessage::kPermissionError); WideString sFieldName = pRuntime->ToWideString(params[0]); CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm(); std::vector<CPDFSDK_Annot::ObservedPtr> widgets; pInterForm->GetWidgets(sFieldName, &widgets); if (widgets.empty()) - return CJS_Return(true); + return CJS_Return(); for (const auto& pAnnot : widgets) { CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot.Get()); @@ -455,7 +455,7 @@ CJS_Return CJS_Document::removeField( } m_pFormFillEnv->SetChangeMark(); - return CJS_Return(true); + return CJS_Return(); } // reset filed values within a document. @@ -466,11 +466,11 @@ CJS_Return CJS_Document::resetForm( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); if (!(m_pFormFillEnv->GetPermissions(FPDFPERM_MODIFY) || m_pFormFillEnv->GetPermissions(FPDFPERM_ANNOT_FORM) || m_pFormFillEnv->GetPermissions(FPDFPERM_FILL_FORM))) { - return CJS_Return(JSGetStringFromID(JSMessage::kPermissionError)); + return CJS_Return(JSMessage::kPermissionError); } CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm(); @@ -478,7 +478,7 @@ CJS_Return CJS_Document::resetForm( if (params.empty()) { pPDFForm->ResetForm(true); m_pFormFillEnv->SetChangeMark(); - return CJS_Return(true); + return CJS_Return(); } v8::Local<v8::Array> array; @@ -502,20 +502,20 @@ CJS_Return CJS_Document::resetForm( m_pFormFillEnv->SetChangeMark(); } - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::saveAs( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Unsafe, not supported. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::syncAnnotScan( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::submitForm( @@ -523,9 +523,9 @@ CJS_Return CJS_Document::submitForm( const std::vector<v8::Local<v8::Value>>& params) { size_t nSize = params.size(); if (nSize < 1) - return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); + return CJS_Return(JSMessage::kParamError); if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); v8::Local<v8::Array> aFields; WideString strURL; @@ -559,7 +559,7 @@ CJS_Return CJS_Document::submitForm( pInterForm->SubmitForm(strURL, false); pRuntime->EndBlock(); } - return CJS_Return(true); + return CJS_Return(); } std::vector<CPDF_FormField*> fieldObjects; @@ -581,7 +581,7 @@ CJS_Return CJS_Document::submitForm( pInterForm->SubmitFields(strURL, fieldObjects, true, !bFDF); pRuntime->EndBlock(); } - return CJS_Return(true); + return CJS_Return(); } void CJS_Document::SetFormFillEnv(CPDFSDK_FormFillEnvironment* pFormFillEnv) { @@ -589,12 +589,12 @@ void CJS_Document::SetFormFillEnv(CPDFSDK_FormFillEnvironment* pFormFillEnv) { } CJS_Return CJS_Document::get_bookmark_root(CJS_Runtime* pRuntime) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::set_bookmark_root(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::mailDoc( @@ -637,7 +637,7 @@ CJS_Return CJS_Document::mailDoc( CPDFSDK_FormFillEnvironment* pFormFillEnv = pRuntime->GetFormFillEnv(); pFormFillEnv->JS_docmailForm(nullptr, 0, bUI, cTo, cSubject, cCc, cBcc, cMsg); pRuntime->EndBlock(); - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_author(CJS_Runtime* pRuntime) { @@ -651,11 +651,11 @@ CJS_Return CJS_Document::set_author(CJS_Runtime* pRuntime, CJS_Return CJS_Document::get_info(CJS_Runtime* pRuntime) { if (!m_pFormFillEnv) - CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); const auto* pDictionary = m_pFormFillEnv->GetPDFDocument()->GetInfo(); if (!pDictionary) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); WideString cwAuthor = pDictionary->GetUnicodeTextFor("Author"); WideString cwTitle = pDictionary->GetUnicodeTextFor("Title"); @@ -710,17 +710,17 @@ CJS_Return CJS_Document::get_info(CJS_Runtime* pRuntime) { CJS_Return CJS_Document::set_info(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(JSGetStringFromID(JSMessage::kReadOnlyError)); + return CJS_Return(JSMessage::kReadOnlyError); } CJS_Return CJS_Document::getPropertyInternal(CJS_Runtime* pRuntime, const ByteString& propName) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); CPDF_Dictionary* pDictionary = m_pFormFillEnv->GetPDFDocument()->GetInfo(); if (!pDictionary) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); return CJS_Return( pRuntime->NewString(pDictionary->GetUnicodeTextFor(propName).c_str())); } @@ -729,20 +729,20 @@ CJS_Return CJS_Document::setPropertyInternal(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp, const ByteString& propName) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); CPDF_Dictionary* pDictionary = m_pFormFillEnv->GetPDFDocument()->GetInfo(); if (!pDictionary) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); if (!m_pFormFillEnv->GetPermissions(FPDFPERM_MODIFY)) - return CJS_Return(JSGetStringFromID(JSMessage::kPermissionError)); + return CJS_Return(JSMessage::kPermissionError); WideString csProperty = pRuntime->ToWideString(vp); pDictionary->SetNewFor<CPDF_String>(propName, PDF_EncodeText(csProperty), false); m_pFormFillEnv->SetChangeMark(); - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_creation_date(CJS_Runtime* pRuntime) { @@ -765,21 +765,21 @@ CJS_Return CJS_Document::set_creator(CJS_Runtime* pRuntime, CJS_Return CJS_Document::get_delay(CJS_Runtime* pRuntime) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); return CJS_Return(pRuntime->NewBoolean(m_bDelay)); } CJS_Return CJS_Document::set_delay(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); if (!m_pFormFillEnv->GetPermissions(FPDFPERM_MODIFY)) - return CJS_Return(JSGetStringFromID(JSMessage::kPermissionError)); + return CJS_Return(JSMessage::kPermissionError); m_bDelay = pRuntime->ToBoolean(vp); if (m_bDelay) { m_DelayData.clear(); - return CJS_Return(true); + return CJS_Return(); } std::list<std::unique_ptr<CJS_DelayData>> DelayDataToProcess; @@ -787,7 +787,7 @@ CJS_Return CJS_Document::set_delay(CJS_Runtime* pRuntime, for (const auto& pData : DelayDataToProcess) CJS_Field::DoDelay(m_pFormFillEnv.Get(), pData.get()); - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_keywords(CJS_Runtime* pRuntime) { @@ -828,26 +828,26 @@ CJS_Return CJS_Document::set_subject(CJS_Runtime* pRuntime, CJS_Return CJS_Document::get_title(CJS_Runtime* pRuntime) { if (!m_pFormFillEnv || !m_pFormFillEnv->GetPDFDocument()) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); return getPropertyInternal(pRuntime, "Title"); } CJS_Return CJS_Document::set_title(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { if (!m_pFormFillEnv || !m_pFormFillEnv->GetPDFDocument()) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); return setPropertyInternal(pRuntime, vp, "Title"); } CJS_Return CJS_Document::get_num_pages(CJS_Runtime* pRuntime) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); return CJS_Return(pRuntime->NewNumber(m_pFormFillEnv->GetPageCount())); } CJS_Return CJS_Document::set_num_pages(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(JSGetStringFromID(JSMessage::kReadOnlyError)); + return CJS_Return(JSMessage::kReadOnlyError); } CJS_Return CJS_Document::get_external(CJS_Runtime* pRuntime) { @@ -857,7 +857,7 @@ CJS_Return CJS_Document::get_external(CJS_Runtime* pRuntime) { CJS_Return CJS_Document::set_external(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_filesize(CJS_Runtime* pRuntime) { @@ -866,37 +866,37 @@ CJS_Return CJS_Document::get_filesize(CJS_Runtime* pRuntime) { CJS_Return CJS_Document::set_filesize(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(JSGetStringFromID(JSMessage::kReadOnlyError)); + return CJS_Return(JSMessage::kReadOnlyError); } CJS_Return CJS_Document::get_mouse_x(CJS_Runtime* pRuntime) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::set_mouse_x(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_mouse_y(CJS_Runtime* pRuntime) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::set_mouse_y(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_URL(CJS_Runtime* pRuntime) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); return CJS_Return( pRuntime->NewString(m_pFormFillEnv->JS_docGetFilePath().c_str())); } CJS_Return CJS_Document::set_URL(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(JSGetStringFromID(JSMessage::kReadOnlyError)); + return CJS_Return(JSMessage::kReadOnlyError); } CJS_Return CJS_Document::get_base_URL(CJS_Runtime* pRuntime) { @@ -906,12 +906,12 @@ CJS_Return CJS_Document::get_base_URL(CJS_Runtime* pRuntime) { CJS_Return CJS_Document::set_base_URL(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { m_cwBaseURL = pRuntime->ToWideString(vp); - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_calculate(CJS_Runtime* pRuntime) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm(); return CJS_Return(pRuntime->NewBoolean(!!pInterForm->IsCalculateEnabled())); @@ -920,16 +920,16 @@ CJS_Return CJS_Document::get_calculate(CJS_Runtime* pRuntime) { CJS_Return CJS_Document::set_calculate(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm(); pInterForm->EnableCalculate(pRuntime->ToBoolean(vp)); - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_document_file_name(CJS_Runtime* pRuntime) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); WideString wsFilePath = m_pFormFillEnv->JS_docGetFilePath(); size_t i = wsFilePath.GetLength(); @@ -945,70 +945,70 @@ CJS_Return CJS_Document::get_document_file_name(CJS_Runtime* pRuntime) { CJS_Return CJS_Document::set_document_file_name(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(JSGetStringFromID(JSMessage::kReadOnlyError)); + return CJS_Return(JSMessage::kReadOnlyError); } CJS_Return CJS_Document::get_path(CJS_Runtime* pRuntime) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); return CJS_Return(pRuntime->NewString( CJS_App::SysPathToPDFPath(m_pFormFillEnv->JS_docGetFilePath()).c_str())); } CJS_Return CJS_Document::set_path(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(JSGetStringFromID(JSMessage::kReadOnlyError)); + return CJS_Return(JSMessage::kReadOnlyError); } CJS_Return CJS_Document::get_page_window_rect(CJS_Runtime* pRuntime) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::set_page_window_rect(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_layout(CJS_Runtime* pRuntime) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::set_layout(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::addLink( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::closeDoc( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::getPageBox( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::getAnnot( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (params.size() != 2) - return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); + return CJS_Return(JSMessage::kParamError); if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); int nPageNo = pRuntime->ToInt32(params[0]); WideString swAnnotName = pRuntime->ToWideString(params[1]); CPDFSDK_PageView* pPageView = m_pFormFillEnv->GetPageView(nPageNo); if (!pPageView) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); CPDFSDK_AnnotIteration annotIteration(pPageView, false); CPDFSDK_BAAnnot* pSDKBAAnnot = nullptr; @@ -1020,17 +1020,17 @@ CJS_Return CJS_Document::getAnnot( } } if (!pSDKBAAnnot) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); v8::Local<v8::Object> pObj = pRuntime->NewFXJSBoundObject(CJS_Annot::GetObjDefnID()); if (pObj.IsEmpty()) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); auto* pJS_Annot = static_cast<CJS_Annot*>(CFXJS_Engine::GetObjectPrivate(pObj)); if (!pJS_Annot) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); pJS_Annot->SetSDKAnnot(pSDKBAAnnot); return CJS_Return(pJS_Annot->ToV8Object()); @@ -1040,7 +1040,7 @@ CJS_Return CJS_Document::getAnnots( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); // TODO(tonikitoo): Add support supported parameters as per // the PDF spec. @@ -1050,17 +1050,17 @@ CJS_Return CJS_Document::getAnnots( for (int i = 0; i < nPageNo; ++i) { CPDFSDK_PageView* pPageView = m_pFormFillEnv->GetPageView(i); if (!pPageView) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); CPDFSDK_AnnotIteration annotIteration(pPageView, false); for (const auto& pSDKAnnotCur : annotIteration) { if (!pSDKAnnotCur) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); v8::Local<v8::Object> pObj = pRuntime->NewFXJSBoundObject(CJS_Annot::GetObjDefnID()); if (pObj.IsEmpty()) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); auto* pJS_Annot = static_cast<CJS_Annot*>(CFXJS_Engine::GetObjectPrivate(pObj)); @@ -1083,19 +1083,19 @@ CJS_Return CJS_Document::getAnnot3D( CJS_Return CJS_Document::getAnnots3D( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::getOCGs( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::getLinks( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { - return CJS_Return(true); + return CJS_Return(); } bool CJS_Document::IsEnclosedInRect(CFX_FloatRect rect, @@ -1108,23 +1108,23 @@ CJS_Return CJS_Document::addIcon( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (params.size() != 2) - return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); + return CJS_Return(JSMessage::kParamError); if (!params[1]->IsObject()) - return CJS_Return(JSGetStringFromID(JSMessage::kTypeError)); + return CJS_Return(JSMessage::kTypeError); v8::Local<v8::Object> pJSIcon = pRuntime->ToObject(params[1]); if (CFXJS_Engine::GetObjDefnID(pJSIcon) != CJS_Icon::GetObjDefnID()) - return CJS_Return(JSGetStringFromID(JSMessage::kTypeError)); + return CJS_Return(JSMessage::kTypeError); v8::Local<v8::Object> pObj = pRuntime->ToObject(params[1]); CJS_Object* obj = CFXJS_Engine::GetObjectPrivate(pObj); if (!obj) - return CJS_Return(JSGetStringFromID(JSMessage::kTypeError)); + return CJS_Return(JSMessage::kTypeError); WideString swIconName = pRuntime->ToWideString(params[0]); m_IconNames.push_back(swIconName); - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_icons(CJS_Runtime* pRuntime) { @@ -1137,7 +1137,7 @@ CJS_Return CJS_Document::get_icons(CJS_Runtime* pRuntime) { v8::Local<v8::Object> pObj = pRuntime->NewFXJSBoundObject(CJS_Icon::GetObjDefnID()); if (pObj.IsEmpty()) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); auto* pJS_Icon = static_cast<CJS_Icon*>(CFXJS_Engine::GetObjectPrivate(pObj)); @@ -1152,28 +1152,28 @@ CJS_Return CJS_Document::get_icons(CJS_Runtime* pRuntime) { CJS_Return CJS_Document::set_icons(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(JSGetStringFromID(JSMessage::kReadOnlyError)); + return CJS_Return(JSMessage::kReadOnlyError); } CJS_Return CJS_Document::getIcon( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (params.size() != 1) - return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); + return CJS_Return(JSMessage::kParamError); WideString swIconName = pRuntime->ToWideString(params[0]); auto it = std::find(m_IconNames.begin(), m_IconNames.end(), swIconName); if (it == m_IconNames.end()) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); v8::Local<v8::Object> pObj = pRuntime->NewFXJSBoundObject(CJS_Icon::GetObjDefnID()); if (pObj.IsEmpty()) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); auto* pJSIcon = static_cast<CJS_Icon*>(CFXJS_Engine::GetObjectPrivate(pObj)); if (!pJSIcon) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); pJSIcon->SetIconName(*it); return CJS_Return(pJSIcon->ToV8Object()); @@ -1183,57 +1183,57 @@ CJS_Return CJS_Document::removeIcon( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Unsafe, no supported. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::createDataObject( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Unsafe, not implemented. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_media(CJS_Runtime* pRuntime) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::set_media(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::calculateNow( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); if (!(m_pFormFillEnv->GetPermissions(FPDFPERM_MODIFY) || m_pFormFillEnv->GetPermissions(FPDFPERM_ANNOT_FORM) || m_pFormFillEnv->GetPermissions(FPDFPERM_FILL_FORM))) { - return CJS_Return(JSGetStringFromID(JSMessage::kPermissionError)); + return CJS_Return(JSMessage::kPermissionError); } m_pFormFillEnv->GetInterForm()->OnCalculate(); - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_collab(CJS_Runtime* pRuntime) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::set_collab(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::getPageNthWord( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); if (!m_pFormFillEnv->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) - return CJS_Return(JSGetStringFromID(JSMessage::kPermissionError)); + return CJS_Return(JSMessage::kPermissionError); // TODO(tsepez): check maximum allowable params. @@ -1243,14 +1243,14 @@ CJS_Return CJS_Document::getPageNthWord( CPDF_Document* pDocument = m_pFormFillEnv->GetPDFDocument(); if (!pDocument) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) - return CJS_Return(JSGetStringFromID(JSMessage::kValueError)); + return CJS_Return(JSMessage::kValueError); CPDF_Dictionary* pPageDict = pDocument->GetPageDictionary(nPageNo); if (!pPageDict) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); auto page = pdfium::MakeRetain<CPDF_Page>(pDocument, pPageDict, true); page->ParseContent(); @@ -1278,28 +1278,28 @@ CJS_Return CJS_Document::getPageNthWordQuads( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); if (!m_pFormFillEnv->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); + return CJS_Return(JSMessage::kNotSupportedError); } CJS_Return CJS_Document::getPageNumWords( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); if (!m_pFormFillEnv->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) - return CJS_Return(JSGetStringFromID(JSMessage::kPermissionError)); + return CJS_Return(JSMessage::kPermissionError); int nPageNo = params.size() > 0 ? pRuntime->ToInt32(params[0]) : 0; CPDF_Document* pDocument = m_pFormFillEnv->GetPDFDocument(); if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) - return CJS_Return(JSGetStringFromID(JSMessage::kValueError)); + return CJS_Return(JSMessage::kValueError); CPDF_Dictionary* pPageDict = pDocument->GetPageDictionary(nPageNo); if (!pPageDict) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); auto page = pdfium::MakeRetain<CPDF_Page>(pDocument, pPageDict, true); page->ParseContent(); @@ -1319,11 +1319,8 @@ CJS_Return CJS_Document::getPrintParams( v8::Local<v8::Object> pRetObj = pRuntime->NewFXJSBoundObject(CJS_PrintParamsObj::GetObjDefnID()); if (pRetObj.IsEmpty()) - return CJS_Return(false); - - // Not implemented yet. - - return CJS_Return(pRetObj); + return CJS_Return(JSMessage::kBadObjectError); + return CJS_Return(JSMessage::kNotSupportedError); } #define ISLATINWORD(u) (u != 0x20 && u <= 0x28FF) @@ -1332,14 +1329,12 @@ int CJS_Document::CountWords(CPDF_TextObject* pTextObj) { if (!pTextObj) return 0; - int nWords = 0; - CPDF_Font* pFont = pTextObj->GetFont(); if (!pFont) return 0; bool bIsLatin = false; - + int nWords = 0; for (size_t i = 0, sz = pTextObj->CountChars(); i < sz; ++i) { uint32_t charcode = CPDF_Font::kInvalidCharCode; float kerning; @@ -1399,75 +1394,76 @@ WideString CJS_Document::GetObjWordStr(CPDF_TextObject* pTextObj, } CJS_Return CJS_Document::get_zoom(CJS_Runtime* pRuntime) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::set_zoom(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::get_zoom_type(CJS_Runtime* pRuntime) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::set_zoom_type(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::deletePages( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Unsafe, not supported. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::extractPages( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Unsafe, not supported. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::insertPages( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Unsafe, not supported. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::replacePages( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Unsafe, not supported. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::getURL( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { // Unsafe, not supported. - return CJS_Return(true); + return CJS_Return(); } CJS_Return CJS_Document::gotoNamedDest( CJS_Runtime* pRuntime, const std::vector<v8::Local<v8::Value>>& params) { if (params.size() != 1) - return CJS_Return(JSGetStringFromID(JSMessage::kParamError)); + return CJS_Return(JSMessage::kParamError); + if (!m_pFormFillEnv) - return CJS_Return(JSGetStringFromID(JSMessage::kBadObjectError)); + return CJS_Return(JSMessage::kBadObjectError); CPDF_Document* pDocument = m_pFormFillEnv->GetPDFDocument(); if (!pDocument) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); CPDF_NameTree nameTree(pDocument, "Dests"); CPDF_Array* destArray = nameTree.LookupNamedDest(pDocument, pRuntime->ToWideString(params[0])); if (!destArray) - return CJS_Return(false); + return CJS_Return(JSMessage::kBadObjectError); CPDF_Dest dest(destArray); const CPDF_Array* arrayObject = ToArray(dest.GetObject()); @@ -1481,7 +1477,7 @@ CJS_Return CJS_Document::gotoNamedDest( dest.GetZoomMode(), scrollPositionArray.data(), scrollPositionArray.size()); pRuntime->EndBlock(); - return CJS_Return(true); + return CJS_Return(); } void CJS_Document::AddDelayData(std::unique_ptr<CJS_DelayData> pData) { |