Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(193)

Side by Side Diff: fpdfsdk/javascript/Document.cpp

Issue 2624933002: Annotation deleted while retriveing it in JS (Closed)
Patch Set: rebase, another case. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « fpdfsdk/cpdfsdk_interform.cpp ('k') | fpdfsdk/javascript/Field.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "fpdfsdk/javascript/Document.h" 7 #include "fpdfsdk/javascript/Document.h"
8 8
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 } 499 }
500 if (!(m_pFormFillEnv->GetPermissions(FPDFPERM_MODIFY) || 500 if (!(m_pFormFillEnv->GetPermissions(FPDFPERM_MODIFY) ||
501 m_pFormFillEnv->GetPermissions(FPDFPERM_ANNOT_FORM))) { 501 m_pFormFillEnv->GetPermissions(FPDFPERM_ANNOT_FORM))) {
502 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION); 502 sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION);
503 return false; 503 return false;
504 } 504 }
505 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 505 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
506 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 506 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
507 CFX_WideString sFieldName = params[0].ToCFXWideString(pRuntime); 507 CFX_WideString sFieldName = params[0].ToCFXWideString(pRuntime);
508 CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm(); 508 CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
509 std::vector<CPDFSDK_Widget*> widgets; 509 std::vector<CPDFSDK_Annot::ObservedPtr> widgets;
510 pInterForm->GetWidgets(sFieldName, &widgets); 510 pInterForm->GetWidgets(sFieldName, &widgets);
511 if (widgets.empty()) 511 if (widgets.empty())
512 return true; 512 return true;
513 513
514 for (CPDFSDK_Widget* pWidget : widgets) { 514 for (const auto& pAnnot : widgets) {
515 CPDFSDK_Widget* pWidget = static_cast<CPDFSDK_Widget*>(pAnnot.Get());
516 if (!pWidget)
517 continue;
518
515 CFX_FloatRect rcAnnot = pWidget->GetRect(); 519 CFX_FloatRect rcAnnot = pWidget->GetRect();
516 --rcAnnot.left; 520 --rcAnnot.left;
517 --rcAnnot.bottom; 521 --rcAnnot.bottom;
518 ++rcAnnot.right; 522 ++rcAnnot.right;
519 ++rcAnnot.top; 523 ++rcAnnot.top;
520 524
521 std::vector<CFX_FloatRect> aRefresh(1, rcAnnot); 525 std::vector<CFX_FloatRect> aRefresh(1, rcAnnot);
522 UnderlyingPageType* pPage = pWidget->GetUnderlyingPage(); 526 UnderlyingPageType* pPage = pWidget->GetUnderlyingPage();
523 ASSERT(pPage); 527 ASSERT(pPage);
524 528
(...skipping 1191 matching lines...) Expand 10 before | Expand all | Expand 10 after
1716 } 1720 }
1717 } 1721 }
1718 1722
1719 for (const auto& pData : DelayDataForFieldAndControlIndex) 1723 for (const auto& pData : DelayDataForFieldAndControlIndex)
1720 Field::DoDelay(m_pFormFillEnv.Get(), pData.get()); 1724 Field::DoDelay(m_pFormFillEnv.Get(), pData.get());
1721 } 1725 }
1722 1726
1723 CJS_Document* Document::GetCJSDoc() const { 1727 CJS_Document* Document::GetCJSDoc() const {
1724 return static_cast<CJS_Document*>(m_pJSObject); 1728 return static_cast<CJS_Document*>(m_pJSObject);
1725 } 1729 }
OLDNEW
« no previous file with comments | « fpdfsdk/cpdfsdk_interform.cpp ('k') | fpdfsdk/javascript/Field.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698