summaryrefslogtreecommitdiff
path: root/fpdfsdk
AgeCommit message (Collapse)Author
2017-07-13Remove unused CPDF_RenderOptions membersDan Sinclair
Remove members from CPDF_RenderOptions which are set but never read. Change-Id: I9598478bbc63c94af1c4693907abf66503138eb5 Reviewed-on: https://pdfium-review.googlesource.com/7750 Reviewed-by: Nicolás Peña <npm@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-13Changed CPDF_FileSpec::GetFileName() to directly return CFX_WideStringJane Liu
Changed CPDF_FileSpec::GetFileName() to directly return CFX_WideString, instead of taking in a CFX_WideString* and returning a bool. Also fixed test calls in the unit test. Bug=pdfium:808 Change-Id: Ie081fc9f4f1c15d23c86d7222d8480ab9cb56056 Reviewed-on: https://pdfium-review.googlesource.com/7671 Commit-Queue: Jane Liu <janeliulwq@google.com> Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-07-13Basic APIs and test for retrieving embedded attachment count and nameJane Liu
1. Added APIs for retrieving embedded attachment count and file name. * Added an embedder test testing them. Bug=pdfium:174 Change-Id: I181b8e0b81495d8a7fd8c3f79dbbc0f907f5e3fd Reviewed-on: https://pdfium-review.googlesource.com/7490 Commit-Queue: Jane Liu <janeliulwq@google.com> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-07-11Added API for removing objects from annotationsJane Liu
Bug=pdfium:737 Change-Id: Ia485219b9288b9fe7e1ae226035b37dde2bc3abd Reviewed-on: https://pdfium-review.googlesource.com/7213 Commit-Queue: Jane Liu <janeliulwq@google.com> Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-07-11Add Windows generic / text only printer driver support.rbpotter
BUG=chromium:734850 Change-Id: Icc0947e2e99e77a36d8963fcf0b6d3deea161d3e Reviewed-on: https://pdfium-review.googlesource.com/7194 Commit-Queue: Rebekah Potter <rbpotter@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-07-10Roll FreeType to c56d8851ea987023cc73981a70d261b3f6427545chromium/3156chromium/3155chromium/3154Nicolas Pena
Bug: chromium:738919 Change-Id: I2ea99a47f45e2e68650bd1fa9ad7554d8df79874 Reviewed-on: https://pdfium-review.googlesource.com/7351 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Nicolás Peña <npm@chromium.org>
2017-07-10Fix nits in CFFL_FormFillerDan Sinclair
Cleanup nits in CFFL_FormFiller. Split CFFL_Button into own files. Change-Id: I41fa7118a46aa1f495c15f90a4c4b77b309a10d3 Reviewed-on: https://pdfium-review.googlesource.com/7339 Reviewed-by: Nicolás Peña <npm@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-10Force unicodes into valid rangesNicolas Pena
U+D800 to U+DFFF should not be encoded in UTF-16. However, FreeType may have charcodes in that range, so in that case we just say that the corresponding unicode is U+0000, NULL. Bug: chromium:732272 Change-Id: I64e82856bab7f69545a307da1fef4df7f9df1f00 Reviewed-on: https://pdfium-review.googlesource.com/7312 Commit-Queue: Nicolás Peña <npm@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-07-10Change parameter type to IPWL_FocusHandler::OnSetFocus().Lei Zhang
The parameter is a CPWL_Wnd* but the only caller passes in a CPWL_Edit*, so change it to CPWL_Edit* and remove the type checks / casting. Change-Id: Ic2c85427bea5bf3d257b63c1e2ce9db5bee22136 Reviewed-on: https://pdfium-review.googlesource.com/7430 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-07-06Rename OnNotifySelChanged to OnNotifySelectionChangedDan Sinclair
Change-Id: I346bfb986754e7530bbfa5be0057422d968e0631 Reviewed-on: https://pdfium-review.googlesource.com/7338 Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Nicolás Peña <npm@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-06Convert OnBeforeKeyStoke to remove in-out paramDan Sinclair
This CL removes the in-out params from OnBeforeKeyStroke and instead returns a std::pair<bool, bool>. Change-Id: I246cf51652da7e05ea71f582b523aa428cbbd3b8 Reviewed-on: https://pdfium-review.googlesource.com/7337 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-06Remove in-out param from OnNotifySelChangedchromium/3151Dan Sinclair
This CL converts OnNotifySelChanged to return instead of accepting an in-out parameter. Change-Id: I42ab220b1f3af304493496ada5624677652bf10f Reviewed-on: https://pdfium-review.googlesource.com/7336 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-06Remove in-out param from OnCharWithExitDan Sinclair
This CL splits the OnCharWithExit method into IsChar and OnCharNotify and changes the in-out parameter to a return. Change-Id: Ifd5aafc6facf7a4d9acfe56118331b3935691965 Reviewed-on: https://pdfium-review.googlesource.com/7335 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-06Remove in-out param from OnKeyDownWithExitDan Sinclair
This CL splits OnKeyDownWithExit into IsMovementKey and OnMovementKeyDown and removes the in-out param in favour of returning a bool. Change-Id: If8a83acec2d424ebd338d93445f366428940fbca Reviewed-on: https://pdfium-review.googlesource.com/7334 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-06Convert OnButtonUp to not have in-out paramsDan Sinclair
This CL removes the in-out param from OnButtonUp in favour of a single bool return. Change-Id: I2d91466677adcb366ed1c2d0721ce5e2949ed074 Reviewed-on: https://pdfium-review.googlesource.com/7333 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-06Remove in-out from OnPopup{Pre|Post}OpenDan Sinclair
This CL removes the bExit param from OnPopup{Pre|Post}Open in favour of using a return value. Change-Id: Icc99b137455343482fc1f60947c3b1f4246aeda1 Reviewed-on: https://pdfium-review.googlesource.com/7332 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-06Cleanup more in-out params in CFFL_InteractiveFormFiller.Dan Sinclair
This CL removes some in-out params which are always initialized with the same value and we only case if either is true afterwards. Change-Id: If164b1b50963958b931fb64d0f62f9170b27475b Reviewed-on: https://pdfium-review.googlesource.com/7330 Reviewed-by: Nicolás Peña <npm@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-06Remove some in/out params from CFFL_InteractiveFormFillerDan Sinclair
This CL removes the bExit and bReset in-out params from CFFL_InteractiveFormFiller and switches to using returns. Change-Id: I1617afa3598c02fe56ef02adfb0b1443b5fd0e4a Reviewed-on: https://pdfium-review.googlesource.com/7311 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-06Added APIs for getting/setting string pairs in annotation dictionariesJane Liu
1. Added APIs for getting/setting arbitary key + value string pairs in annotation dictionaries. * Added an embedder test testing all the new functions. Bug=pdfium:737 Change-Id: I93c9ca6fccf787028e106607ef8cf549ebca95d8 Reviewed-on: https://pdfium-review.googlesource.com/7150 Commit-Queue: Jane Liu <janeliulwq@google.com> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-07-06Generalized annotation APIs to support image and text objectsJane Liu
Generalized the following annotation APIs to support working with image and text objects: FPDFAnnot_AppendPathObject() -> FPDFAnnot_AppendObject() FPDFAnnot_UpdatePathObject() -> FPDFAnnot_UpdateObject() FPDFAnnot_GetPathObjectCount() -> FPDFAnnot_GetObjectCount() FPDFAnnot_GetPathObject() -> FPDFAnnot_GetObject() Also added two embeddertests to test appending, retrieving, editting, and updating image and text objects in annotations. Bug=pdfium:737 Change-Id: If3ea5846d5abec7dc195291bb1a0ef4b17f0d604 Reviewed-on: https://pdfium-review.googlesource.com/7210 Commit-Queue: Jane Liu <janeliulwq@google.com> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-07-06Cleanup CPWL_SBButton::DrawThisAppearanceDan Sinclair
Change-Id: Id3acb0495da7650e42413f69d325bf404eae9ac0 Reviewed-on: https://pdfium-review.googlesource.com/7290 Reviewed-by: Nicolás Peña <npm@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-06Added APIs for setting annotation flag valuesJane Liu
1. Added APIs for getting/setting/unsetting annotation flag values in annotation dictionaries. * Added an embedder test testing all the new functions. Bug=pdfium:737 Change-Id: Ib6bbcf05d6e93c43ec4dcd7120db71bc244afdbf Reviewed-on: https://pdfium-review.googlesource.com/7154 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-05Converting CFX_ByteTextBuf to ostringstream in fpdfedittext.cpp.Henrique Nakashima
Bug: pdfium:731 Change-Id: I8005ca2c2d4a65ad2197ba6f71ee37f1c1e5b5d8 Reviewed-on: https://pdfium-review.googlesource.com/6833 Reviewed-by: Nicolás Peña <npm@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2017-07-05Cleanup IOn* methods and CPWL_CBEditDan Sinclair
This CL removes various IOn* methods and consolidates code where possible. The CPWL_CBEdit class is also removed as it was a subclass of CPWL_Edit which added no extra functionality. Change-Id: Ifac579ab252b7ca64f8c9b3caeac443683a39c58 Reviewed-on: https://pdfium-review.googlesource.com/7279 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2017-07-05Cleanup some CPWL_Wnd definesDan Sinclair
This CL removes unused #define's and moves ones that are only used in a single .cpp class to that file. Change-Id: I6c503d5d4c031a870b7a1362086205a810d31478 Reviewed-on: https://pdfium-review.googlesource.com/7256 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-05Remove PNM_ mouse methods and OnNotifyDan Sinclair
This CL removes the remaining PNM_* messages and converts them to individual methods. Change-Id: I44791a35bc720f29f8f5d4d7c26a8c899b54132d Reviewed-on: https://pdfium-review.googlesource.com/7255 Reviewed-by: Nicolás Peña <npm@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-05Remove PNM_SETCARETINFO and call SetCaret directlyDan Sinclair
The PNM_SETCARETINFO message is only sent inside CPWL_EditCtrl and is only handled in that class. This CL removes the message from OnNotify and calls SetCaret directly. Change-Id: I7d48f4b9fcd9fe8e828163c957e7d46f369edb06 Reviewed-on: https://pdfium-review.googlesource.com/7254 Reviewed-by: Nicolás Peña <npm@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-05Remove PNM_SCROLLWINDOW and replace with direct methodDan Sinclair
This CL removes PNM_SCROLLWINDOW from OnNotify and replaces it with a call to ScrollWindowVerticallyTo. Change-Id: I62f6da60cdcd4926b0c74b980b3855a28a834411 Reviewed-on: https://pdfium-review.googlesource.com/7253 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Nicolás Peña <npm@chromium.org>
2017-07-05Move PNM_SETSCROLLPOS to custom methodDan Sinclair
This CL splits PNM_SETSCROLLPOS out of OnNotify and places into a method which is called as needed. Change-Id: Ic144bc30bca57869f0679bef40e07b6a130e944c Reviewed-on: https://pdfium-review.googlesource.com/7252 Reviewed-by: Nicolás Peña <npm@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-05Allow EmbedderTest to test savingNicolas Pena
This CL adds helper methods for EmbedderTest to save. This means that TestSaver is no longer needed and all the methods it uses are moved to the EmbedderTest. Change-Id: I740f29699bfd8c6b570cb1fd85e7aab9bc1d3f6f Reviewed-on: https://pdfium-review.googlesource.com/7171 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Nicolás Peña <npm@chromium.org>
2017-07-05Move PNM_SETSCROLLINFO out of OnNotifyDan Sinclair
This CL moves the SETSCROLLINFO from a OnNotify message to a method which is called directly. Change-Id: I5d793c1c7a54c0fa3bdadffac72aae934cb9da57 Reviewed-on: https://pdfium-review.googlesource.com/7251 Reviewed-by: Nicolás Peña <npm@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-07-05Remove PNM_{ADD|REMOVE}ChildDan Sinclair
This OnNotify message is only handled in CPWL_Wnd and it is only emited in CPWL_Wnd. This CL inlines the resulting calls into the original OnNotify callsites and removes the messages. Change-Id: If419f0f51db00dbecc960d80bb10b17ad8bec7e1 Reviewed-on: https://pdfium-review.googlesource.com/7232 Reviewed-by: Nicolás Peña <npm@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-06-30Add embedder tests for form combobox text selection.chromium/3149chromium/3148chromium/3147Diana Gage
These tests verify that CPWL_ComboBox::GetSelectedText() and FORM_GetSelectedText() behave as expected when selecting text in form combobox textfields. Text can be selected in both regular comboboxes and user-editable comboboxes. BUG=chromium:59266 Change-Id: I1a5e48baf8aa767283dc478b0872877a52c5b869 Reviewed-on: https://pdfium-review.googlesource.com/6971 Commit-Queue: Diana Gage <drgage@google.com> Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-06-30Remove pointless CFX_FloatRect construction.Lei Zhang
Also just call CFX_FloatRect() instead of explicitly writing out all zeros. Change-Id: I7574e64791d0c9ba613b14d0a613737dfbf39b12 Reviewed-on: https://pdfium-review.googlesource.com/7172 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-06-30Use early returns in CFFL_FormFiller.Lei Zhang
Change-Id: Ib7062d46c74d1e2fcfa3699a9db50bc3c930b674 Reviewed-on: https://pdfium-review.googlesource.com/7192 Reviewed-by: Nicolás Peña <npm@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-06-30Replaced static casts with CPDFPageObjectFromFPDFPageObject()Jane Liu
Change-Id: I6296928a1dbd5a8dffaf949ac4c8d7e8336c4448 Reviewed-on: https://pdfium-review.googlesource.com/7170 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2017-06-29Basic APIs and tests for extracting and setting annotation pathsJane Liu
1. Added APIs for retrieving existing annotation paths and setting annotation paths. * Added an embedder test testing all the new functions. Bug=pdfium:737 Change-Id: Ic451bcd3be488261baf2182549c4238b887b219e Reviewed-on: https://pdfium-review.googlesource.com/6676 Commit-Queue: Jane Liu <janeliulwq@google.com> Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-06-29Change SetReverse to GetInverse in CFX_MatrixNicolas Pena
CFX_Matrix::GetInverse is much clearer. Change-Id: Id10ab1723735332e1a78de853f28415ec3a4d834 Reviewed-on: https://pdfium-review.googlesource.com/7090 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Nicolás Peña <npm@chromium.org>
2017-06-29Added FPDFAnnot_RemoveAnnot()Jane Liu
Added an API for removing annotation and an embedder test for it. Bug=pdfium:737 Change-Id: I6f01625e8103078b83967a57a5c1a7a26bc0c70a Reviewed-on: https://pdfium-review.googlesource.com/7039 Commit-Queue: Jane Liu <janeliulwq@google.com> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-06-29Converted low-hanging cpwl classes in CFX_ByteTextBuf to ostringstream.Henrique Nakashima
Bug: pdfium:731 Change-Id: I3faf5a4ec4b2af6145348e526f39ccbc2055e62e Reviewed-on: https://pdfium-review.googlesource.com/7050 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-06-29Add TestSaved helper method in FPDFEditEmbeddertestNicolas Pena
The saving testing is used in multiple methods. This CL adds a helper to reduce duplicated code. Change-Id: I5a36d41b5fc03a63092eaf642c3461695b5b9805 Reviewed-on: https://pdfium-review.googlesource.com/7091 Commit-Queue: Nicolás Peña <npm@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2017-06-28Set default graphics before generating page contentsNicolas Pena
In this CL, the content generator sets some default graphics states before processing the page objects. In particular, a default ExtGState is now set before processing, and the last CTM is now stored right after parsing finishes: the only command to change matrix is ctm, and it concatenates, so inverting requires knowing the current value. Bug: pdfium:779 Change-Id: I35b1c07550ce91839fb0e20fbf717e3e80c9b9d6 Reviewed-on: https://pdfium-review.googlesource.com/7070 Commit-Queue: Nicolás Peña <npm@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-06-27Made existing annotation APIs to work with APchromium/3143Jane Liu
1. Modified some existing annotation APIs to take into account the effect of annotation's appearance streams. * Added an embedder test testing annotations with APs. This CL is refactored out of https://pdfium-review.googlesource.com/c/6676/. Bug=pdfium:737 Change-Id: I27d5e66dfdb90038d147cab1a26e0bf86b324982 Reviewed-on: https://pdfium-review.googlesource.com/7030 Commit-Queue: Jane Liu <janeliulwq@google.com> Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-06-27Converting CFX_ByteTextBuf to ostringstream in fpdf_transformpage.cpp.Henrique Nakashima
Bug: pdfium:731 Change-Id: I52165fda5f94a4d29e707ea1619b1ad80423b436 Reviewed-on: https://pdfium-review.googlesource.com/7036 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-06-27Converting CFX_ByteTextBuf to ostringstream in fxet_edit.cpp.Henrique Nakashima
Bug: pdfium:731 Change-Id: I64e37ee1673d46e6e550d44503c0ccc1015243e1 Reviewed-on: https://pdfium-review.googlesource.com/7012 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2017-06-27Changed the return type for annotation APIsJane Liu
Before: When returning FPDF_ANNOTATION, the APIs would take in a FPDF_ANNTOATION* and write the handle of the annotation to it, while returning a boolean as status. This CL: This CL changes the APIs to directly return FPDF_ANNOTATION, which would be null on failure. Also adds more null checks within the annotation APIs. Bug=pdfium:737 Change-Id: I4f77dd1b16d43eab3f16c303598b76591da0dcab Reviewed-on: https://pdfium-review.googlesource.com/6952 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Jane Liu <janeliulwq@google.com>
2017-06-27Adding overload for ostream << CFX_ByteStringHenrique Nakashima
Bug: pdfium:731 Change-Id: I285332c8f9d988327e8633cb0746af2b76c401e5 Reviewed-on: https://pdfium-review.googlesource.com/6911 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2017-06-23Cleaning up fx_string_testhelpers.Henrique Nakashima
This is unused except for being a pathway for indirect deps. Change-Id: I717290235ccbc59429ad24231033382958e2a086 Reviewed-on: https://pdfium-review.googlesource.com/6910 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2017-06-22Minor change to AP generation logicJane Liu
Current behavior: Our CPVT_GenerateAP::Generate*AP() functions do not get called as long as the annotation dictionary has an "AP" entry. Problem: We always need the "N" entry in AP dictionary to display an annotation. Even though the spec requires "AP" dictionary to have an "N" entry for normal mode appearance, in case of a malformed pdf with "AP" but without "N" in "AP", we won't be able to display the annotation at all. Fix: Always check if "AP" has "N" entry to decide whether AP needs to be generated. If not, then we still need to generate AP, and add to the AP dictionary under the key "N". Bug=pdfium:778 Change-Id: Icf0c6a681b3c8c22b0b67bf8d16ce6fefdc2c45b Reviewed-on: https://pdfium-review.googlesource.com/6692 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Jane Liu <janeliulwq@google.com>
2017-06-21Fix typos that meant to say handler instead of hander.Lei Zhang
Change-Id: I60f556f107f740b854237bc89184b09e4f1d2585 Reviewed-on: https://pdfium-review.googlesource.com/6790 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>