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

Side by Side Diff: fpdfsdk/src/fsdk_actionhandler.cpp

Issue 1394993006: Merge to XFA: Pass IJS_Runtime, not IJS_Context, to native object constructors. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 5 years, 2 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/include/jsapi/fxjs_v8.h ('k') | fpdfsdk/src/fsdk_baseform.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 "../include/fsdk_define.h" 7 #include "../include/fsdk_define.h"
8 #include "../include/fpdfxfa/fpdfxfa_doc.h" 8 #include "../include/fpdfxfa/fpdfxfa_doc.h"
9 #include "../include/fsdk_mgr.h" 9 #include "../include/fsdk_mgr.h"
10 #include "../include/fsdk_actionhandler.h" 10 #include "../include/fsdk_actionhandler.h"
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 return FALSE; 142 return FALSE;
143 143
144 list.AddTail(pDict); 144 list.AddTail(pDict);
145 145
146 CPDFDoc_Environment* pEnv = pDocument->GetEnv(); 146 CPDFDoc_Environment* pEnv = pDocument->GetEnv();
147 ASSERT(pEnv); 147 ASSERT(pEnv);
148 if (action.GetType() == CPDF_Action::JavaScript) { 148 if (action.GetType() == CPDF_Action::JavaScript) {
149 if (pEnv->IsJSInitiated()) { 149 if (pEnv->IsJSInitiated()) {
150 CFX_WideString swJS = action.GetJavaScript(); 150 CFX_WideString swJS = action.GetJavaScript();
151 if (!swJS.IsEmpty()) { 151 if (!swJS.IsEmpty()) {
152 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); //???? 152 IJS_Runtime* pRuntime = pDocument->GetJsRuntime();
153 ASSERT(pRuntime != NULL);
154
155 pRuntime->SetReaderDocument(pDocument); 153 pRuntime->SetReaderDocument(pDocument);
156 154
157 IJS_Context* pContext = pRuntime->NewContext(); 155 IJS_Context* pContext = pRuntime->NewContext();
158 ASSERT(pContext != NULL);
159
160 pContext->OnLink_MouseUp(pDocument); 156 pContext->OnLink_MouseUp(pDocument);
161 157
162 CFX_WideString csInfo; 158 CFX_WideString csInfo;
163 FX_BOOL bRet = pContext->RunScript(swJS, csInfo); 159 FX_BOOL bRet = pContext->RunScript(swJS, &csInfo);
164 if (!bRet) { 160 if (!bRet) {
165 // FIXME: return error. 161 // FIXME: return error.
166 } 162 }
167 163
168 pRuntime->ReleaseContext(pContext); 164 pRuntime->ReleaseContext(pContext);
169 } 165 }
170 } 166 }
171 } else { 167 } else {
172 DoAction_NoJs(action, pDocument); 168 DoAction_NoJs(action, pDocument);
173 } 169 }
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 282
287 list.AddTail(pDict); 283 list.AddTail(pDict);
288 284
289 CPDFDoc_Environment* pEnv = pDocument->GetEnv(); 285 CPDFDoc_Environment* pEnv = pDocument->GetEnv();
290 ASSERT(pEnv); 286 ASSERT(pEnv);
291 if (action.GetType() == CPDF_Action::JavaScript) { 287 if (action.GetType() == CPDF_Action::JavaScript) {
292 if (pEnv->IsJSInitiated()) { 288 if (pEnv->IsJSInitiated()) {
293 CFX_WideString swJS = action.GetJavaScript(); 289 CFX_WideString swJS = action.GetJavaScript();
294 if (!swJS.IsEmpty()) { 290 if (!swJS.IsEmpty()) {
295 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); 291 IJS_Runtime* pRuntime = pDocument->GetJsRuntime();
296 ASSERT(pRuntime != NULL);
297
298 pRuntime->SetReaderDocument(pDocument); 292 pRuntime->SetReaderDocument(pDocument);
299 293
300 IJS_Context* pContext = pRuntime->NewContext(); 294 IJS_Context* pContext = pRuntime->NewContext();
301 ASSERT(pContext != NULL);
302
303 // switch (type)
304 // {
305 // case CPDF_AAction::CursorEnter:
306 // pContext->OnScreen_MouseEnter(IsCTRLpres sed(),
307 // IsSHIFTpressed(), pScreen);
308 // break;
309 // case CPDF_AAction::CursorExit:
310 // pContext->OnScreen_MouseExit(IsCTRLpress ed(),
311 // IsSHIFTpressed(), pScreen);
312 // break;
313 // case CPDF_AAction::ButtonDown:
314 // pContext->OnScreen_MouseDown(IsCTRLpress ed(),
315 // IsSHIFTpressed(), pScreen);
316 // break;
317 // case CPDF_AAction::ButtonUp:
318 // pContext->OnScreen_MouseUp(IsCTRLpressed (),
319 // IsSHIFTpressed(), pScreen);
320 // break;
321 // case CPDF_AAction::GetFocus:
322 // pContext->OnScreen_Focus(IsCTRLpressed() ,
323 // IsSHIFTpressed(), pScreen);
324 // break;
325 // case CPDF_AAction::LoseFocus:
326 // pContext->OnScreen_Blur(IsCTRLpressed(),
327 // IsSHIFTpressed(), pScreen);
328 // break;
329 // case CPDF_AAction::PageOpen:
330 // pContext->OnScreen_Open(IsCTRLpressed(),
331 // IsSHIFTpressed(), pScreen);
332 // break;
333 // case CPDF_AAction::PageClose:
334 // pContext->OnScreen_Close(IsCTRLpressed() ,
335 // IsSHIFTpressed(), pScreen);
336 // break;
337 // case CPDF_AAction::PageVisible:
338 // pContext->OnScreen_InView(IsCTRLpressed( ),
339 // IsSHIFTpressed(), pScreen);
340 // break;
341 // case CPDF_AAction::PageInvisible:
342 // pContext->OnScreen_OutView(IsCTRLpressed (),
343 // IsSHIFTpressed(), pScreen);
344 // break;
345 // default:
346 // ASSERT(FALSE);
347 // break;
348 // }
349
350 CFX_WideString csInfo; 295 CFX_WideString csInfo;
351 FX_BOOL bRet = pContext->RunScript(swJS, csInfo); 296 FX_BOOL bRet = pContext->RunScript(swJS, &csInfo);
352 if (!bRet) { 297 if (!bRet) {
353 // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), 298 // FIXME: return error.
354 // csInfo);
355 } 299 }
356 300
357 pRuntime->ReleaseContext(pContext); 301 pRuntime->ReleaseContext(pContext);
358 } 302 }
359 } 303 }
360 } else { 304 } else {
361 DoAction_NoJs(action, pDocument); 305 DoAction_NoJs(action, pDocument);
362 } 306 }
363 307
364 for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) { 308 for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) {
(...skipping 17 matching lines...) Expand all
382 326
383 list.AddTail(pDict); 327 list.AddTail(pDict);
384 328
385 CPDFDoc_Environment* pEnv = pDocument->GetEnv(); 329 CPDFDoc_Environment* pEnv = pDocument->GetEnv();
386 ASSERT(pEnv); 330 ASSERT(pEnv);
387 if (action.GetType() == CPDF_Action::JavaScript) { 331 if (action.GetType() == CPDF_Action::JavaScript) {
388 if (pEnv->IsJSInitiated()) { 332 if (pEnv->IsJSInitiated()) {
389 CFX_WideString swJS = action.GetJavaScript(); 333 CFX_WideString swJS = action.GetJavaScript();
390 if (!swJS.IsEmpty()) { 334 if (!swJS.IsEmpty()) {
391 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); 335 IJS_Runtime* pRuntime = pDocument->GetJsRuntime();
392 ASSERT(pRuntime != NULL);
393
394 pRuntime->SetReaderDocument(pDocument); 336 pRuntime->SetReaderDocument(pDocument);
395 337
396 IJS_Context* pContext = pRuntime->NewContext(); 338 IJS_Context* pContext = pRuntime->NewContext();
397 ASSERT(pContext != NULL);
398
399 pContext->OnBookmark_MouseUp(pBookmark); 339 pContext->OnBookmark_MouseUp(pBookmark);
400 340
401 CFX_WideString csInfo; 341 CFX_WideString csInfo;
402 FX_BOOL bRet = pContext->RunScript(swJS, csInfo); 342 FX_BOOL bRet = pContext->RunScript(swJS, &csInfo);
403 if (!bRet) { 343 if (!bRet) {
404 // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), 344 // FIXME: return error.
405 // csInfo);
406 } 345 }
407 346
408 pRuntime->ReleaseContext(pContext); 347 pRuntime->ReleaseContext(pContext);
409 } 348 }
410 } 349 }
411 } else { 350 } else {
412 DoAction_NoJs(action, pDocument); 351 DoAction_NoJs(action, pDocument);
413 } 352 }
414 353
415 for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) { 354 for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) {
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
595 pContext->OnField_Validate(data.sChange, data.sChangeEx, data.bKeyDown, 534 pContext->OnField_Validate(data.sChange, data.sChangeEx, data.bKeyDown,
596 data.bModifier, data.bShift, pFormField, 535 data.bModifier, data.bShift, pFormField,
597 data.sValue, data.bRC); 536 data.sValue, data.bRC);
598 break; 537 break;
599 default: 538 default:
600 ASSERT(FALSE); 539 ASSERT(FALSE);
601 break; 540 break;
602 } 541 }
603 542
604 CFX_WideString csInfo; 543 CFX_WideString csInfo;
605 FX_BOOL bRet = pContext->RunScript(script, csInfo); 544 FX_BOOL bRet = pContext->RunScript(script, &csInfo);
606 if (!bRet) { 545 if (!bRet) {
607 // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo); 546 // FIXME: return error.
608 } 547 }
609 548
610 pRuntime->ReleaseContext(pContext); 549 pRuntime->ReleaseContext(pContext);
611 } 550 }
612 551
613 void CPDFSDK_ActionHandler::RunDocumentOpenJavaScript( 552 void CPDFSDK_ActionHandler::RunDocumentOpenJavaScript(
614 CPDFSDK_Document* pDocument, 553 CPDFSDK_Document* pDocument,
615 const CFX_WideString& sScriptName, 554 const CFX_WideString& sScriptName,
616 const CFX_WideString& script) { 555 const CFX_WideString& script) {
617 ASSERT(pDocument != NULL); 556 ASSERT(pDocument != NULL);
618 557
619 IJS_Runtime* pRuntime = pDocument->GetJsRuntime(); 558 IJS_Runtime* pRuntime = pDocument->GetJsRuntime();
620 ASSERT(pRuntime != NULL); 559 ASSERT(pRuntime != NULL);
621 560
622 pRuntime->SetReaderDocument(pDocument); 561 pRuntime->SetReaderDocument(pDocument);
623 562
624 IJS_Context* pContext = pRuntime->NewContext(); 563 IJS_Context* pContext = pRuntime->NewContext();
625 ASSERT(pContext != NULL); 564 ASSERT(pContext != NULL);
626 565
627 pContext->OnDoc_Open(pDocument, sScriptName); 566 pContext->OnDoc_Open(pDocument, sScriptName);
628 567
629 CFX_WideString csInfo; 568 CFX_WideString csInfo;
630 FX_BOOL bRet = pContext->RunScript(script, csInfo); 569 FX_BOOL bRet = pContext->RunScript(script, &csInfo);
631 if (!bRet) { 570 if (!bRet) {
632 // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo); 571 // FIXME: return error.
633 } 572 }
634 573
635 pRuntime->ReleaseContext(pContext); 574 pRuntime->ReleaseContext(pContext);
636 } 575 }
637 576
638 void CPDFSDK_ActionHandler::RunDocumentPageJavaScript( 577 void CPDFSDK_ActionHandler::RunDocumentPageJavaScript(
639 CPDFSDK_Document* pDocument, 578 CPDFSDK_Document* pDocument,
640 CPDF_AAction::AActionType type, 579 CPDF_AAction::AActionType type,
641 const CFX_WideString& script) { 580 const CFX_WideString& script) {
642 ASSERT(pDocument != NULL); 581 ASSERT(pDocument != NULL);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 break; 615 break;
677 case CPDF_AAction::PageInvisible: 616 case CPDF_AAction::PageInvisible:
678 pContext->OnPage_OutView(pDocument); 617 pContext->OnPage_OutView(pDocument);
679 break; 618 break;
680 default: 619 default:
681 ASSERT(FALSE); 620 ASSERT(FALSE);
682 break; 621 break;
683 } 622 }
684 623
685 CFX_WideString csInfo; 624 CFX_WideString csInfo;
686 FX_BOOL bRet = pContext->RunScript(script, csInfo); 625 FX_BOOL bRet = pContext->RunScript(script, &csInfo);
687 if (!bRet) { 626 if (!bRet) {
688 // CBCL_FormNotify::MsgBoxJSError(pPageView->GetPageViewWnd(), csInfo); 627 // FIXME: return error.
689 } 628 }
690 629
691 pRuntime->ReleaseContext(pContext); 630 pRuntime->ReleaseContext(pContext);
692 } 631 }
693 632
694 FX_BOOL CPDFSDK_FormActionHandler::DoAction_Hide(const CPDF_Action& action, 633 FX_BOOL CPDFSDK_FormActionHandler::DoAction_Hide(const CPDF_Action& action,
695 CPDFSDK_Document* pDocument) { 634 CPDFSDK_Document* pDocument) {
696 ASSERT(pDocument != NULL); 635 ASSERT(pDocument != NULL);
697 636
698 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm(); 637 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm(); 679 CPDFSDK_InterForm* pInterForm = (CPDFSDK_InterForm*)pDocument->GetInterForm();
741 ASSERT(pInterForm != NULL); 680 ASSERT(pInterForm != NULL);
742 681
743 if (pInterForm->DoAction_ImportData(action)) { 682 if (pInterForm->DoAction_ImportData(action)) {
744 pDocument->SetChangeMark(); 683 pDocument->SetChangeMark();
745 return TRUE; 684 return TRUE;
746 } 685 }
747 686
748 return FALSE; 687 return FALSE;
749 } 688 }
OLDNEW
« no previous file with comments | « fpdfsdk/include/jsapi/fxjs_v8.h ('k') | fpdfsdk/src/fsdk_baseform.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698