Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/fsdk_actionhandler.h" | 7 #include "fpdfsdk/fsdk_actionhandler.h" |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 148 | 148 |
| 149 visited->insert(pDict); | 149 visited->insert(pDict); |
| 150 | 150 |
| 151 CPDFSDK_FormFillEnvironment* pFormFillEnv = pDocument->GetEnv(); | 151 CPDFSDK_FormFillEnvironment* pFormFillEnv = pDocument->GetEnv(); |
| 152 ASSERT(pFormFillEnv); | 152 ASSERT(pFormFillEnv); |
| 153 if (action.GetType() == CPDF_Action::JavaScript) { | 153 if (action.GetType() == CPDF_Action::JavaScript) { |
| 154 if (pFormFillEnv->IsJSInitiated()) { | 154 if (pFormFillEnv->IsJSInitiated()) { |
| 155 CFX_WideString swJS = action.GetJavaScript(); | 155 CFX_WideString swJS = action.GetJavaScript(); |
| 156 if (!swJS.IsEmpty()) { | 156 if (!swJS.IsEmpty()) { |
| 157 IJS_Runtime* pRuntime = pFormFillEnv->GetJSRuntime(); | 157 IJS_Runtime* pRuntime = pFormFillEnv->GetJSRuntime(); |
| 158 pRuntime->SetReaderDocument(pDocument); | |
|
dsinclair
2016/10/11 17:37:45
We got the env from the Document, then get the run
| |
| 159 | |
| 160 IJS_Context* pContext = pRuntime->NewContext(); | 158 IJS_Context* pContext = pRuntime->NewContext(); |
| 161 pContext->OnLink_MouseUp(pFormFillEnv); | 159 pContext->OnLink_MouseUp(pFormFillEnv); |
| 162 | 160 |
| 163 CFX_WideString csInfo; | 161 CFX_WideString csInfo; |
| 164 FX_BOOL bRet = pContext->RunScript(swJS, &csInfo); | 162 FX_BOOL bRet = pContext->RunScript(swJS, &csInfo); |
| 165 if (!bRet) { | 163 if (!bRet) { |
| 166 // FIXME: return error. | 164 // FIXME: return error. |
| 167 } | 165 } |
| 168 | 166 |
| 169 pRuntime->ReleaseContext(pContext); | 167 pRuntime->ReleaseContext(pContext); |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 277 | 275 |
| 278 visited->insert(pDict); | 276 visited->insert(pDict); |
| 279 | 277 |
| 280 CPDFSDK_FormFillEnvironment* pEnv = pDocument->GetEnv(); | 278 CPDFSDK_FormFillEnvironment* pEnv = pDocument->GetEnv(); |
| 281 ASSERT(pEnv); | 279 ASSERT(pEnv); |
| 282 if (action.GetType() == CPDF_Action::JavaScript) { | 280 if (action.GetType() == CPDF_Action::JavaScript) { |
| 283 if (pEnv->IsJSInitiated()) { | 281 if (pEnv->IsJSInitiated()) { |
| 284 CFX_WideString swJS = action.GetJavaScript(); | 282 CFX_WideString swJS = action.GetJavaScript(); |
| 285 if (!swJS.IsEmpty()) { | 283 if (!swJS.IsEmpty()) { |
| 286 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); | 284 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); |
| 287 pRuntime->SetReaderDocument(pDocument); | |
| 288 | |
| 289 IJS_Context* pContext = pRuntime->NewContext(); | 285 IJS_Context* pContext = pRuntime->NewContext(); |
| 290 CFX_WideString csInfo; | 286 CFX_WideString csInfo; |
| 291 FX_BOOL bRet = pContext->RunScript(swJS, &csInfo); | 287 FX_BOOL bRet = pContext->RunScript(swJS, &csInfo); |
| 292 if (!bRet) { | 288 if (!bRet) { |
| 293 // FIXME: return error. | 289 // FIXME: return error. |
| 294 } | 290 } |
| 295 | 291 |
| 296 pRuntime->ReleaseContext(pContext); | 292 pRuntime->ReleaseContext(pContext); |
| 297 } | 293 } |
| 298 } | 294 } |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 320 | 316 |
| 321 visited->insert(pDict); | 317 visited->insert(pDict); |
| 322 | 318 |
| 323 CPDFSDK_FormFillEnvironment* pEnv = pDocument->GetEnv(); | 319 CPDFSDK_FormFillEnvironment* pEnv = pDocument->GetEnv(); |
| 324 ASSERT(pEnv); | 320 ASSERT(pEnv); |
| 325 if (action.GetType() == CPDF_Action::JavaScript) { | 321 if (action.GetType() == CPDF_Action::JavaScript) { |
| 326 if (pEnv->IsJSInitiated()) { | 322 if (pEnv->IsJSInitiated()) { |
| 327 CFX_WideString swJS = action.GetJavaScript(); | 323 CFX_WideString swJS = action.GetJavaScript(); |
| 328 if (!swJS.IsEmpty()) { | 324 if (!swJS.IsEmpty()) { |
| 329 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); | 325 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); |
| 330 pRuntime->SetReaderDocument(pDocument); | |
| 331 | |
| 332 IJS_Context* pContext = pRuntime->NewContext(); | 326 IJS_Context* pContext = pRuntime->NewContext(); |
| 333 pContext->OnBookmark_MouseUp(pBookmark); | 327 pContext->OnBookmark_MouseUp(pBookmark); |
| 334 | 328 |
| 335 CFX_WideString csInfo; | 329 CFX_WideString csInfo; |
| 336 FX_BOOL bRet = pContext->RunScript(swJS, &csInfo); | 330 FX_BOOL bRet = pContext->RunScript(swJS, &csInfo); |
| 337 if (!bRet) { | 331 if (!bRet) { |
| 338 // FIXME: return error. | 332 // FIXME: return error. |
| 339 } | 333 } |
| 340 | 334 |
| 341 pRuntime->ReleaseContext(pContext); | 335 pRuntime->ReleaseContext(pContext); |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 471 | 465 |
| 472 void CPDFSDK_ActionHandler::RunFieldJavaScript(CPDFSDK_Document* pDocument, | 466 void CPDFSDK_ActionHandler::RunFieldJavaScript(CPDFSDK_Document* pDocument, |
| 473 CPDF_FormField* pFormField, | 467 CPDF_FormField* pFormField, |
| 474 CPDF_AAction::AActionType type, | 468 CPDF_AAction::AActionType type, |
| 475 PDFSDK_FieldAction& data, | 469 PDFSDK_FieldAction& data, |
| 476 const CFX_WideString& script) { | 470 const CFX_WideString& script) { |
| 477 ASSERT(type != CPDF_AAction::Calculate); | 471 ASSERT(type != CPDF_AAction::Calculate); |
| 478 ASSERT(type != CPDF_AAction::Format); | 472 ASSERT(type != CPDF_AAction::Format); |
| 479 | 473 |
| 480 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); | 474 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); |
| 481 pRuntime->SetReaderDocument(pDocument); | |
| 482 | |
| 483 IJS_Context* pContext = pRuntime->NewContext(); | 475 IJS_Context* pContext = pRuntime->NewContext(); |
| 484 switch (type) { | 476 switch (type) { |
| 485 case CPDF_AAction::CursorEnter: | 477 case CPDF_AAction::CursorEnter: |
| 486 pContext->OnField_MouseEnter(data.bModifier, data.bShift, pFormField); | 478 pContext->OnField_MouseEnter(data.bModifier, data.bShift, pFormField); |
| 487 break; | 479 break; |
| 488 case CPDF_AAction::CursorExit: | 480 case CPDF_AAction::CursorExit: |
| 489 pContext->OnField_MouseExit(data.bModifier, data.bShift, pFormField); | 481 pContext->OnField_MouseExit(data.bModifier, data.bShift, pFormField); |
| 490 break; | 482 break; |
| 491 case CPDF_AAction::ButtonDown: | 483 case CPDF_AAction::ButtonDown: |
| 492 pContext->OnField_MouseDown(data.bModifier, data.bShift, pFormField); | 484 pContext->OnField_MouseDown(data.bModifier, data.bShift, pFormField); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 525 } | 517 } |
| 526 | 518 |
| 527 pRuntime->ReleaseContext(pContext); | 519 pRuntime->ReleaseContext(pContext); |
| 528 } | 520 } |
| 529 | 521 |
| 530 void CPDFSDK_ActionHandler::RunDocumentOpenJavaScript( | 522 void CPDFSDK_ActionHandler::RunDocumentOpenJavaScript( |
| 531 CPDFSDK_Document* pDocument, | 523 CPDFSDK_Document* pDocument, |
| 532 const CFX_WideString& sScriptName, | 524 const CFX_WideString& sScriptName, |
| 533 const CFX_WideString& script) { | 525 const CFX_WideString& script) { |
| 534 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); | 526 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); |
| 535 pRuntime->SetReaderDocument(pDocument); | |
| 536 IJS_Context* pContext = pRuntime->NewContext(); | 527 IJS_Context* pContext = pRuntime->NewContext(); |
| 537 pContext->OnDoc_Open(pDocument->GetEnv(), sScriptName); | 528 pContext->OnDoc_Open(pDocument->GetEnv(), sScriptName); |
| 538 | 529 |
| 539 CFX_WideString csInfo; | 530 CFX_WideString csInfo; |
| 540 FX_BOOL bRet = pContext->RunScript(script, &csInfo); | 531 FX_BOOL bRet = pContext->RunScript(script, &csInfo); |
| 541 if (!bRet) { | 532 if (!bRet) { |
| 542 // FIXME: return error. | 533 // FIXME: return error. |
| 543 } | 534 } |
| 544 | 535 |
| 545 pRuntime->ReleaseContext(pContext); | 536 pRuntime->ReleaseContext(pContext); |
| 546 } | 537 } |
| 547 | 538 |
| 548 void CPDFSDK_ActionHandler::RunDocumentPageJavaScript( | 539 void CPDFSDK_ActionHandler::RunDocumentPageJavaScript( |
| 549 CPDFSDK_Document* pDocument, | 540 CPDFSDK_Document* pDocument, |
| 550 CPDF_AAction::AActionType type, | 541 CPDF_AAction::AActionType type, |
| 551 const CFX_WideString& script) { | 542 const CFX_WideString& script) { |
| 552 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); | 543 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); |
| 553 pRuntime->SetReaderDocument(pDocument); | |
| 554 | |
| 555 IJS_Context* pContext = pRuntime->NewContext(); | 544 IJS_Context* pContext = pRuntime->NewContext(); |
| 556 switch (type) { | 545 switch (type) { |
| 557 case CPDF_AAction::OpenPage: | 546 case CPDF_AAction::OpenPage: |
| 558 pContext->OnPage_Open(pDocument->GetEnv()); | 547 pContext->OnPage_Open(pDocument->GetEnv()); |
| 559 break; | 548 break; |
| 560 case CPDF_AAction::ClosePage: | 549 case CPDF_AAction::ClosePage: |
| 561 pContext->OnPage_Close(pDocument->GetEnv()); | 550 pContext->OnPage_Close(pDocument->GetEnv()); |
| 562 break; | 551 break; |
| 563 case CPDF_AAction::CloseDocument: | 552 case CPDF_AAction::CloseDocument: |
| 564 pContext->OnDoc_WillClose(pDocument->GetEnv()); | 553 pContext->OnDoc_WillClose(pDocument->GetEnv()); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 623 const CPDF_Action& action, | 612 const CPDF_Action& action, |
| 624 CPDFSDK_Document* pDocument) { | 613 CPDFSDK_Document* pDocument) { |
| 625 CPDFSDK_InterForm* pInterForm = pDocument->GetInterForm(); | 614 CPDFSDK_InterForm* pInterForm = pDocument->GetInterForm(); |
| 626 if (pInterForm->DoAction_ImportData(action)) { | 615 if (pInterForm->DoAction_ImportData(action)) { |
| 627 pDocument->SetChangeMark(); | 616 pDocument->SetChangeMark(); |
| 628 return TRUE; | 617 return TRUE; |
| 629 } | 618 } |
| 630 | 619 |
| 631 return FALSE; | 620 return FALSE; |
| 632 } | 621 } |
| OLD | NEW |