summaryrefslogtreecommitdiff
path: root/xfa/fwl
AgeCommit message (Collapse)Author
2018-08-16Optimize rendering of two dimensional barcodes: deduplicate regions.Henrique Nakashima
Reduce the logical size of the barcode by removing unnecessary region duplication. As far as I can tell, the line thickness is useless and the aspect ratio causes arbitrary changes in rounding, but ultimately the dimensions of a barcode are defined by its width and height, rather than by this ratio. The improvement with this CL is from ~580ms to ~390ms per barcode, so about 1.5x. Combined with https://pdfium-review.googlesource.com/c/pdfium/+/40010 the improvement is to ~15ms, which is about 39x. This also fixes the rendering of the barcode in the pixel and corpus tests. You can verify this pointing a barcode reader app at the screen. It does not however fix every case, as the unit test is still unreadable. Bug: 872907, pdfium:1135 Change-Id: Ic28e60f54719552cfe69ace7ebc3f730c338a129 Reviewed-on: https://pdfium-review.googlesource.com/40030 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-08-16Do not set barcode module width and height in unittest.Henrique Nakashima
Setting these to anything outside of [1, 10] is non-op. Not sure why the test did that, but these lines have no effect. Bug: pdfium:1135 Change-Id: I175d07137674ab1b6b9c86b3bc68b4a128601b9f Reviewed-on: https://pdfium-review.googlesource.com/40250 Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-08-15Remove optional prepend argument from matrix transformations.Tom Sepez
Callers always want one form or the other, so split into separate methods. This may save some branching. Remove forms that are not used. Put more helpful helper function in .cpp file. Change-Id: I4e025de7f69ce3f323cd290a5dc8202dd4f8ca07 Reviewed-on: https://pdfium-review.googlesource.com/40270 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-08-10Kill some optional parameters that are always supplied.Tom Sepez
No need to even bring any .cpp files in line with these headers. Change-Id: I934169d77ae09adc11f02e5ea92b1f8b078c9477 Reviewed-on: https://pdfium-review.googlesource.com/39876 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-07-16Fix crash when typing letters into an XFA datetime field.Henrique Nakashima
The root of the issue is that CXFA_FFDateTimeEdit inherits from CXFA_FFTextEdit and methods in the former treat its widget as a CFWL_Edit, while it can be a CFWL_DateTimePicker. Bug: chromium:857521 Change-Id: I764b6c03095b16f6a9cf72ff36768ca4c57c4070 Reviewed-on: https://pdfium-review.googlesource.com/37910 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-07-03Use UnownedPtr<> in cfwl_notedriver.hTom Sepez
Re-order owned/unowned references to obey lifetime constraint. Change-Id: I589746b3c2e7d8c45d26d63d09eef977b095226d Reviewed-on: https://pdfium-review.googlesource.com/36970 Commit-Queue: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-07-03Use UnownedPtr<> in cfwl_messagekillfocus.hTom Sepez
Also make private member along the way. Change-Id: I08a006a1bcca4e8ca21834dfda695a2d77d0a431 Reviewed-on: https://pdfium-review.googlesource.com/36930 Commit-Queue: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-07-03Use UnownedPtr<> in cfwl_scrollbar.h and cfwl_themebackground.hTom Sepez
Change-Id: Ib65197a9cd9de173de8e77db168dcfbb43669022 Reviewed-on: https://pdfium-review.googlesource.com/36911 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-07-02Use UnownedPtr<> in cfwl_event.h and cfwl_message.hTom Sepez
Change-Id: I1981eb23006db203e845e954a7847cfa992d5e03 Reviewed-on: https://pdfium-review.googlesource.com/36710 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-06-19Move fxcrt::{Byte,Wide}Strings with std::move().chromium/3466Tom Sepez
Remove some string copies in barcode that were noticed whilst looking for moves. Change-Id: Ieda34d00f633576ba1f0dca283dcdabfb36f236c Reviewed-on: https://pdfium-review.googlesource.com/35410 Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-06-01Rename CPDFXFA_Context::GetTimerMgr() to NewTimerMgr()Tom Sepez
Because it returns an unique_ptr to a newly-created object. Also rename m_pTimeMgrAdapter to m_pAdapterTimerMgr, because in English, adjectives come first, and this is a TimerMgr obtained from an Adatper, not an Adapter for a TimerMgr. Also change TimeMgr to TimerMgr since the manager manages timers, not time itself. Follow-on from https://pdfium-review.googlesource.com/c/pdfium/+/33230 No functional change. Change-Id: I08d2b6cd8cc816f38326e87ee46060f091c74fdf Reviewed-on: https://pdfium-review.googlesource.com/33570 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2018-06-01Return unique_ptr from CPDFXFA_Context::GetTimerMgr()Tom Sepez
Proves ownership by avoiding a std::unique_ptr::reset() call. Change-Id: Ia6e11920d84dda49699736ef3189e58d240d409e Reviewed-on: https://pdfium-review.googlesource.com/33230 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-06-01Remove unused variable pDst from CFWL_Edit::OnValidateRyan Harrison
GetOuter is const, so the assignment has no side effects, and the value is never user in the method body. Issue found with Clang Static Analyzer. Change-Id: I0116726a3df38dbf611db75ed03a0a17b4449d09 Reviewed-on: https://pdfium-review.googlesource.com/33531 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2018-06-01Remove unneeded call to GetNextSiblingWidgetRyan Harrison
The value is stored in a local scope variable at the end of a loop, so is never used. The method is const, so is sideffect free, thus this line has no overall effect. Issue found with Clang Static Analyzer. Change-Id: Ib20c5c121c8464433c6ad6d8e1439b929033d6d6 Reviewed-on: https://pdfium-review.googlesource.com/33530 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2018-05-29[xfa] Propagate the xfa change data for text to JS and back.Dan Sinclair
This CL adds the necessary plumbing to propagate the change information for a text widget from FWL out to JS and handle the returned value as necessary. Bug: pdfium:1066 Change-Id: I78fd81761b90294f1836e9f09dba12ed238963cc Reviewed-on: https://pdfium-review.googlesource.com/33070 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-05-16Remove some more unused #definesTom Sepez
Bug: pdfium:1085 Change-Id: I62c526ae865f0cadfddd2e75a616bce73de0f88d Reviewed-on: https://pdfium-review.googlesource.com/32632 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-05-14Cleanup unused members of CFWL_MonthCalendar.Henrique Nakashima
Change-Id: Ia3a79aa7cc65aaecd1b0f0a5ea07df4e9d33a012 Reviewed-on: https://pdfium-review.googlesource.com/32396 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2018-05-14Remove dead code from CFWL_WidgetMgr.Henrique Nakashima
Change-Id: Ic39b843ab21e7eb738849511a5187822ad49d67a Reviewed-on: https://pdfium-review.googlesource.com/32413 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-05-12Remove unused CFWL_FormProxy.Henrique Nakashima
Change-Id: I952cf31cb2e3f5ca19ea3af5e9e4e11881f0a90d Reviewed-on: https://pdfium-review.googlesource.com/32395 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2018-05-11Rename last CFWL_ComboBox::DisForm* methods.chromium/3428Henrique Nakashima
Change-Id: Id70a0c068f565ab87d10d021803a29a56ea92d67 Reviewed-on: https://pdfium-review.googlesource.com/32411 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2018-05-11Remove more dead code from CFWL_ComboBox.Henrique Nakashima
The methods removed are not called anymore, and the members removed then become unused too. Change-Id: I5832f801a678f6907faf623ac678f9b3818c2af7 Reviewed-on: https://pdfium-review.googlesource.com/32394 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2018-05-11Remove CFWL_Widget::SetFocus(). It is non-op.Henrique Nakashima
Change-Id: I707273c81d51124cf6ca7ba43cf1a817f3c852ea Reviewed-on: https://pdfium-review.googlesource.com/32412 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2018-05-11Inline or renamed more CFWL_ComboBox::DisForm methods.Henrique Nakashima
Change-Id: I0247abb14a68cdb845f4c0060de9d30592a32d3d Reviewed-on: https://pdfium-review.googlesource.com/32392 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-05-11Remove CFWL_ComboBoxProxy.Henrique Nakashima
It is never instantiated. Change-Id: I6b97abbe4bd7013e8a540e788da6cea7d0ba978b Reviewed-on: https://pdfium-review.googlesource.com/32410 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2018-05-11Inline Disform_* methods.Henrique Nakashima
The non-Disform versions are gone, so inline the Disform_ versions to reduce indirection. Change-Id: Icf261795e5df6e5015055ec64f3dcdba56789a07 Reviewed-on: https://pdfium-review.googlesource.com/32373 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2018-05-11Remove CFWL_WidgetMgr::IsFormDisabled().Henrique Nakashima
This method always returns true, so make that assumption and clean up dead code. More cleanups will follow this one to remove the code that can now be inferred to be dead. Change-Id: I73f077561ab511a1c2c09ac6990ab5cdc5bfb055 Reviewed-on: https://pdfium-review.googlesource.com/32391 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-05-02Use pointers instead of refs for GetPopupPos() params.Henrique Nakashima
Change-Id: Ic19b91f91f08b1867437b22de04a2c54045ce8ae Reviewed-on: https://pdfium-review.googlesource.com/31992 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-05-02CFWL_MonthCalendar::GetTodayText() includes "Today" string.Henrique Nakashima
All usages were prepending the "Today" string, so move it inside GetTodayText(). Change-Id: I454fb683c9507e76b61bf69ca29a0ee9b49f1a58 Reviewed-on: https://pdfium-review.googlesource.com/31970 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-05-01Transform rect out param from reference to pointer in XFA code.Henrique Nakashima
Change-Id: Ib5f8b8754bca8198d9122700d7d876b45d1428da Reviewed-on: https://pdfium-review.googlesource.com/31852 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-05-01Start at today's date in XFA Month Calendar.chromium/3417Henrique Nakashima
Bug: pdfium:751 Change-Id: I125fbb0dd8ff4a382c4cec33a29c52a97e67de23 Reviewed-on: https://pdfium-review.googlesource.com/31851 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-04-27Update caret after changes that could move lines in XFA edit.Henrique Nakashima
This fixes issues when a line break is deleted and the caret remains where it was, now between two lines. Bug: chromium:836361 Change-Id: I6cd40402a97348bcfc4c9291e7acb044a1e68113 Reviewed-on: https://pdfium-review.googlesource.com/31391 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-04-27Fix backspace on 1st character of a line erases the line break.Henrique Nakashima
Bug: chromium:836361 Change-Id: I39a0a3f9cb59ceb81f944dd5d0d4fd38a2e18a6b Reviewed-on: https://pdfium-review.googlesource.com/31411 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-04-26Replace some c-style cast with static_cast<>Tom Sepez
Change-Id: I9dd6a36770f77f3df6c4395572785d37402eadc2 Reviewed-on: https://pdfium-review.googlesource.com/31350 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-04-25Make XFA Caret become immediately visible when moved.Henrique Nakashima
The timer resets when it moves, and the current starting state is not visible, so moving the caret around using keyboard keys, typing, the mouse, or switching focus has a 0.6s delay in showing its position. This change makes the form feel much more responsive. Change-Id: Iff38ade9be26d4c5283ee1268b3e2c307182738c Reviewed-on: https://pdfium-review.googlesource.com/31293 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-04-25Fix behavior of Delete key in XFA edit.Henrique Nakashima
Delete had two issues: it acted as a backspace that did not move the caret; delete was considered a valid char to insert in the character buffer. Bug: chromium:820104 Change-Id: I869eedcbf369b9b1df79f16285d991b8e630cd05 Reviewed-on: https://pdfium-review.googlesource.com/31291 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-04-19Fix caret not moving to click target in XFA edit.Henrique Nakashima
Bug: chromium:832293 Change-Id: Id7b90f7958e71350ecde31ef8891541eb4767ecf Reviewed-on: https://pdfium-review.googlesource.com/31010 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-04-18Do not show validation errors if PDF not yet loadedchromium/3400Ryan Harrison
This prevents display of confusing popups during the loading/initialization of the XFA document. The spec explicitly states that validation should be run at this point, but other viewers like Acrobat do not fire this spurious pop ups. BUG=pdfium:975 Change-Id: Ic00d8c767ae94f95c7455a58b77e0b7283e3307c Reviewed-on: https://pdfium-review.googlesource.com/30930 Commit-Queue: Lei Zhang <thestig@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-04-05Remove spellchecking code from XFAchromium/3390Ryan Harrison
The existing code for spellchecking is non-functional and we are not planning on fixing/finishing it, so removing it, since it currently is marking everything as misspelt. BUG=pdfium:1054 Change-Id: I23aaa13c09aed483376d7d06f47fdf31d890786b Reviewed-on: https://pdfium-review.googlesource.com/29790 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2018-04-04Caret blinks with lower frequency in XFA text field.Henrique Nakashima
Change-Id: I803f7816e2b2fecc5737a3ed26ff156bbff0ae2f Reviewed-on: https://pdfium-review.googlesource.com/29770 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-04-04[fwl] Restrict setting cursor outside text boundsDan Sinclair
This Cl updates CFWL_Edit to keep the cursor from extending pass the end of the text. If we set the cursor past the end it will trigger the ASSERT in the text edit engine as the edit engine assumes the caller does the right thing. Bug: pdfium:1023 Change-Id: Idfed4b240c13d666a686d0e09b78bcc9a1406794 Reviewed-on: https://pdfium-review.googlesource.com/29650 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-04-03Re-arrange so inline vectors come last in structs.Tom Sepez
This might make the memory tools more effective in finding OOBs. Change-Id: Id093bb0a88c37954c80d612ac00b5a168e75bdbf Reviewed-on: https://pdfium-review.googlesource.com/29550 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-03-08Unset timer in XFA scrollbar after stopping it.Henrique Nakashima
This fixes a crash that happens after interacting with the scrollbar a few times. Bug: chromium:820210 Change-Id: I458337f21c9322351474a1574ab596c600dcbbbf Reviewed-on: https://pdfium-review.googlesource.com/28290 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-03-08Move GetPopupPos from CFWL_Widget to subclasses that call it.Henrique Nakashima
Change-Id: I27118d2c8d0d7e4509b6a89cd32a7c9c906d19bc Reviewed-on: https://pdfium-review.googlesource.com/28270 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-03-06Remove axial gradients from XFA widgets.Henrique Nakashima
Most of the CPU time when moving around XFA forms is spent rendering these gradients. Bug: chromium:592748 Change-Id: I08c68c60996755a2be25243dfd2143b6cbb13af9 Reviewed-on: https://pdfium-review.googlesource.com/28090 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-03-05Cleanup CFWL_ScrollBar::Timer::Run.Henrique Nakashima
Change-Id: Icd76a6a98a66c977e45ed82663b68f6b05479e76 Reviewed-on: https://pdfium-review.googlesource.com/27891 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-03-05Fix crash when dragging scrollbar in XFA form.Henrique Nakashima
Bug: chromium:809612 Change-Id: I171d836927fc707388444726d3918b2cbbb39002 Reviewed-on: https://pdfium-review.googlesource.com/27890 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-02-26Get rid of some static variables.Tom Sepez
These are generally cheap enough to compute as needed, rather than keeping around in memory all the time (plus the memory for the static flag the compiler generates to check if initialized). Change-Id: If3a5365521f6a7781e66fb11f04883a5c673ee11 Reviewed-on: https://pdfium-review.googlesource.com/27150 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-02-20Fix typo in method name FillSoildRect().Nico Weber
No behavior change. Bug: none Change-Id: I59a40e5d38d561da1ebf20a40feb3933f7fef14a Reviewed-on: https://pdfium-review.googlesource.com/27390 Commit-Queue: Nico Weber <thakis@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-02-16Fix fallthroughs in XFA code.chromium/3350Henrique Nakashima
Change-Id: I1fd4bf85cd709de1c14ed2895d045018f79bc61f Reviewed-on: https://pdfium-review.googlesource.com/26950 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-02-07Restore assert when GetCharacterInfo is called on an empty edit.Henrique Nakashima
CFWL_Edit::UpdateCursorRect now checks if the edit is empty before getting the caret position. Bug: chromium:592750 Change-Id: I792e90537741a78141fa084a646380bfe7ce4637 Reviewed-on: https://pdfium-review.googlesource.com/25910 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>