aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/PdfViewer/pdfparser
Commit message (Collapse)AuthorAge
* Remove experimental/PdfViewerGravatar halcanary2015-08-04
| | | | | | | | Motivation: maintaining this code doesn't seem worth the time, since no one seems to be using it. If someone wants to use it in the future, just revert this CL. Review URL: https://codereview.chromium.org/1266093003
* zlib/pdf: remove HaveFlate(), depend on preprocessor definesGravatar halcanary2015-02-17
| | | | Review URL: https://codereview.chromium.org/933523007
* Make SkStream *not* ref counted.Gravatar scroggo2015-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SkStream is a stateful object, so it does not make sense for it to have multiple owners. Make SkStream inherit directly from SkNoncopyable. Update methods which previously called SkStream::ref() (e.g. SkImageDecoder::buildTileIndex() and SkFrontBufferedStream::Create(), which required the existing owners to call SkStream::unref()) to take ownership of their SkStream parameters and delete when done (including on failure). Switch all SkAutoTUnref<SkStream>s to SkAutoTDelete<SkStream>s. In some cases this means heap allocating streams that were previously stack allocated. Respect ownership rules of SkTypeface::CreateFromStream() and SkImageDecoder::buildTileIndex(). Update the comments for exceptional methods which do not affect the ownership of their SkStream parameters (e.g. SkPicture::CreateFromStream() and SkTypeface::Deserialize()) to be explicit about ownership. Remove test_stream_life, which tested that buildTileIndex() behaved correctly when SkStream was a ref counted object. The test does not make sense now that it is not. In SkPDFStream, remove the SkMemoryStream member. Instead of using it, create a new SkMemoryStream to pass to fDataStream (which is now an SkAutoTDelete). Make other pdf rasterizers behave like SkPDFDocumentToBitmap. SkPDFDocumentToBitmap delete the SkStream, so do the same in the following pdf rasterizers: SkPopplerRasterizePDF SkNativeRasterizePDF SkNoRasterizePDF Requires a change to Android, which currently treats SkStreams as ref counted objects. Review URL: https://codereview.chromium.org/849103004
* fix last warnings on w64 and turn on w.a.e.Gravatar bsalomon2014-12-15
| | | | Review URL: https://codereview.chromium.org/801413002
* Remove SkPdfNativeDoc::tokenizerOfStream.Gravatar scroggo@google.com2013-12-03
| | | | | | | | | | | | Instead, initialize an SkPdfNativeTokenizer directly on the stack. Fixes a memory leak in SkPdfFont. R=mtklein@google.com Review URL: https://codereview.chromium.org/100323003 git-svn-id: http://skia.googlecode.com/svn/trunk@12462 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove some PdfViewer warnings.Gravatar scroggo@google.com2013-12-02
| | | | | | Fix build. git-svn-id: http://skia.googlecode.com/svn/trunk@12438 2bbb7eff-a529-9590-31e7-b0007b416f81
* Separate and update PDF_DIFF_TRACE_IN_PNGGravatar scroggo@google.com2013-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move its functionality out of readToken() and into its own class. Callers of the previous readToken() now call SkPdfNativeTokenizer::readToken(), which in turn calls a function for writing the diff to a file, if the caller requests it and PDF_TRACE_DIFF_IN_PNG is defined. Do not attempt to draw a diff for compatibility sections, which we do not draw. Use SkString to handle string manipulation. Hide globals only used by PDF_TRACE_DIFF_IN_PNG behind that flag. Remove hasVisualEffects, which always returns true. Rename gLastOpKeyword to gOpCounter for clarity. In SkPdfNativeTokenizer, set fEmpty to true when the entire stream has been read. Use SkBitmap::copyTo instead of manually copying an SkBitmap. Builds on https://codereview.chromium.org/79933003/ R=mtklein@google.com Review URL: https://codereview.chromium.org/80463005 git-svn-id: http://skia.googlecode.com/svn/trunk@12436 2bbb7eff-a529-9590-31e7-b0007b416f81
* Restructuring of PdfViewer code.Gravatar scroggo@google.com2013-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The only change in behavior is that SkPdfAllocator on SkPdfContext is no longer allocated on the heap. In general, I have just moved code. SkPdfContext: Inherit from SkNoncopyable. Make SkPdfContext directly own fTmpPageAllocator. fTmpPageAllocator is created when SkPdfContext is, and destroyed at the same time as well, so there is no reason for the extra allocation. Add the function parseStream. This eliminates code duplication, and allows making fTmpPageAllocator private. Move PdfMainLooper into the implementation file, since it is now only used by parseStream. Move SkTDictWithDefaultConstructor and render stats info here, in support of PdfMainLooper. SkPdfTokenLooper: Rename PdfTokenLooper to SkPdfTokenLooper. Move readToken here, unchanged. Remove tokenizer(), which is unused. SkPdfNativeDoc: Remove tokenizerOfPage and tokenizerOfBuffer, which are unused. SkPdfOps: Move gPdfOps and PdfOperatorRenderer into a header file (hidden for now), so they can be accessed by both SkPdfRenderer.cpp and SkPdfContext.cpp. SkPdfRenderer: Harvest things into other files: PdfMainLooper (and the code that calls it) -> SkPdfContext. readToken -> SkPdfTokenLooper. R=mtklein@google.com Review URL: https://codereview.chromium.org/79933003 git-svn-id: http://skia.googlecode.com/svn/trunk@12435 2bbb7eff-a529-9590-31e7-b0007b416f81
* Changes to SkTDStackNester.Gravatar scroggo@google.com2013-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SkTDStackNester is a class used by PdfViewer to assist in saving and restoring the PDF state. Clean up and test this class. Add some documentation. Add FIXME's where I have questions to resolve. Fix a bug where fNestingLevel was not initialized. Remove a commented out line of code copied over from SkTDStack. Rename SkTDStackNester::nests() to nestingLevel() and make it const. Remove unnecessary predeclaration and friend declaration. Remove index() (both const and non-const versions). They were unused, return something that may not be expected (index from the top, rather than from the bottom), and don't work to get any elements in earlier Recs once the first one is full. Report a warning if the nesting level goes above the maximum level, or if we attempt to bring it below zero. Prevent fNestingLevel from dropping below zero. Add kUnusedObject_SkPdfIssue, and use it where appropriate. Depends on https://codereview.chromium.org/64093009/ R=mtklein@google.com Review URL: https://codereview.chromium.org/68843006 git-svn-id: http://skia.googlecode.com/svn/trunk@12328 2bbb7eff-a529-9590-31e7-b0007b416f81
* Pdfviewer refactoring.Gravatar scroggo@google.com2013-11-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mostly superficial changes, to help me make sure I understand the code while making modifications. SkPdfRenderer: First class I'm modifying. Move it into include/ and src/ directories. Inherit from SkNoncopyable. Replace load() with factory function which returns NULL if the load fails. Remove unload() and loaded(), which no longer make sense, since the factory will return NULL on a failure to load, and unload() happens on destruction. Use a const char* for loading a PDF, following the convention of SkStream::NewFromFile. Remove unnecessary call to sqrt in SkPDFNativeRenderToBitmap. Also in SkPDFNativeRenderToBitmap, use an appropriate SkScalar macro to convert to an integer. Use this-> when calling member functions. pdf_viewer_main.cpp: Call the new interface for SkPdfRenderer. gyp files: Refer to the new location of SkPdfRenderer. R=edisonn@google.com Review URL: https://codereview.chromium.org/59493011 git-svn-id: http://skia.googlecode.com/svn/trunk@12296 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: readobject can return null, and catalog can be nullGravatar edisonn@google.com2013-11-13
| | | | | | Review URL: https://codereview.chromium.org/72053002 git-svn-id: http://skia.googlecode.com/svn/trunk@12276 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: (more code cleanup): class documentation and commentsGravatar edisonn@google.com2013-10-11
| | | | | | Review URL: https://codereview.chromium.org/27043002 git-svn-id: http://skia.googlecode.com/svn/trunk@11730 2bbb7eff-a529-9590-31e7-b0007b416f81
* code cleanupGravatar edisonn@google.com2013-10-09
| | | | | | Review URL: https://codereview.chromium.org/26613006 git-svn-id: http://skia.googlecode.com/svn/trunk@11687 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove tracking code, as it polutes the code readability. Should be added ↵Gravatar edisonn@google.com2013-10-09
| | | | | | | | back, in a less eficient way, by registering streams instead, so we don't have to pass arround the streams, and the code will be cleaner. Review URL: https://codereview.chromium.org/26700002 git-svn-id: http://skia.googlecode.com/svn/trunk@11671 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: do not submit, uploaded for backup, and will be done actually ↵Gravatar edisonn@google.com2013-09-13
| | | | | | | | after I refactor the params for functions, to put the char* params in a structure: report errors and warnings in pdf, infrastructure Review URL: https://codereview.chromium.org/23902018 git-svn-id: http://skia.googlecode.com/svn/trunk@11262 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: (part 1) store the offset of the location of object in ↵Gravatar edisonn@google.com2013-09-05
| | | | | | | | file/stream. In order to use the feature, enable the macro defined in SkPdfConfig.h Review URL: https://codereview.chromium.org/23456022 git-svn-id: http://skia.googlecode.com/svn/trunk@11117 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: track what objects have been used during rendering. It will be ↵Gravatar edisonn@google.com2013-09-05
| | | | | | | | the base of reporting unused objects to warn about ineficiencies in pdf generations, tests, and what features are not implemented fully. Review URL: https://codereview.chromium.org/23601017 git-svn-id: http://skia.googlecode.com/svn/trunk@11100 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: fix break, include the right header.Gravatar edisonn@google.com2013-09-04
| | | | | | Review URL: https://codereview.chromium.org/23493018 git-svn-id: http://skia.googlecode.com/svn/trunk@11083 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: when q start, and an operator is called, it should not be able to ↵Gravatar edisonn@google.com2013-08-22
| | | | | | | | see operands before q. nest/unnest are similar with pop/push - simulates a stack of stacks, in a single stack Review URL: https://codereview.chromium.org/23033022 git-svn-id: http://skia.googlecode.com/svn/trunk@10873 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-08-22
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@10871 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: code cleanup - add licence on files, make replace __DEFINE__foo ↵Gravatar edisonn@google.com2013-08-21
| | | | | | | | with foo_DEFINED to match skia project Review URL: https://codereview.chromium.org/23361009 git-svn-id: http://skia.googlecode.com/svn/trunk@10854 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-08-21
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@10842 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: check in pdfapi classesGravatar edisonn@google.com2013-08-20
| | | | | | Review URL: https://codereview.chromium.org/22900010 git-svn-id: http://skia.googlecode.com/svn/trunk@10834 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: code cleanup - remove STL usageGravatar edisonn@google.com2013-08-16
| | | | | | Review URL: https://codereview.chromium.org/23258004 git-svn-id: http://skia.googlecode.com/svn/trunk@10772 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: make pdfviewer compile on macGravatar edisonn@google.com2013-08-14
| | | | | | Review URL: https://codereview.chromium.org/23163007 git-svn-id: http://skia.googlecode.com/svn/trunk@10721 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: 1) debug code for drawText (show magenta background for text, to ↵Gravatar edisonn@google.com2013-08-14
| | | | | | | | show text even when we fail to load/show it), 2) some cleanup: refactor and rename classes and files Review URL: https://codereview.chromium.org/23020003 git-svn-id: http://skia.googlecode.com/svn/trunk@10716 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: absolute minimal; to al least render (even if poorly) ICC based ↵Gravatar edisonn@google.com2013-08-07
| | | | | | | | color spaces, based on RGB Review URL: https://codereview.chromium.org/22624002 git-svn-id: http://skia.googlecode.com/svn/trunk@10630 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: fix font rotation issuesGravatar edisonn@google.com2013-08-07
| | | | | | Review URL: https://codereview.chromium.org/22407005 git-svn-id: http://skia.googlecode.com/svn/trunk@10617 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: load image pain settings (like transparency), pass the page ↵Gravatar edisonn@google.com2013-08-06
| | | | | | | | number, report failure if at least one render fails, and check that xref section starts with xref keyword. Review URL: https://codereview.chromium.org/22465006 git-svn-id: http://skia.googlecode.com/svn/trunk@10588 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: remove debug tracesGravatar edisonn@google.com2013-08-05
| | | | | | Review URL: https://codereview.chromium.org/22284004 git-svn-id: http://skia.googlecode.com/svn/trunk@10551 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: debug code for crashGravatar edisonn@google.com2013-08-05
| | | | | | Review URL: https://codereview.chromium.org/22269002 git-svn-id: http://skia.googlecode.com/svn/trunk@10548 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: add indexed rbg image support, enhanche caching(setData) for ↵Gravatar edisonn@google.com2013-08-05
| | | | | | | | SkPdfObject Review URL: https://codereview.chromium.org/21738005 git-svn-id: http://skia.googlecode.com/svn/trunk@10534 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: implementation of one type of pattern - simple tile patern, ↵Gravatar edisonn@google.com2013-08-02
| | | | | | | | colored, with xstep and ystep positive. Review URL: https://codereview.chromium.org/21919003 git-svn-id: http://skia.googlecode.com/svn/trunk@10523 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: debug the parameters for snc, and for resolveReferenceGravatar edisonn@google.com2013-08-01
| | | | | | Review URL: https://codereview.chromium.org/21604003 git-svn-id: http://skia.googlecode.com/svn/trunk@10498 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: finish implementation of SkPdfObject.toString(), and include in ↵Gravatar edisonn@google.com2013-08-01
| | | | | | | | debugging traces we leave when rendering. Review URL: https://codereview.chromium.org/20628008 git-svn-id: http://skia.googlecode.com/svn/trunk@10494 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: transparency groups - implementation of non-isolated and ↵Gravatar edisonn@google.com2013-07-31
| | | | | | | | non-knockout flags Review URL: https://codereview.chromium.org/21288002 git-svn-id: http://skia.googlecode.com/svn/trunk@10467 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: more prerequired work to have examples working for transparency ↵Gravatar edisonn@google.com2013-07-30
| | | | | | | | work items. Review URL: https://codereview.chromium.org/21252003 git-svn-id: http://skia.googlecode.com/svn/trunk@10438 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: add doPage function, cet stream from ContentsGravatar edisonn@google.com2013-07-30
| | | | | | Review URL: https://codereview.chromium.org/21049009 git-svn-id: http://skia.googlecode.com/svn/trunk@10433 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: fix condition for element in array, reset back the default color ↵Gravatar edisonn@google.com2013-07-30
| | | | | | | | to white, and verify type before value in PDF API mapper Review URL: https://codereview.chromium.org/21017004 git-svn-id: http://skia.googlecode.com/svn/trunk@10427 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: load files with missing xref (we need in order to help with ↵Gravatar edisonn@google.com2013-07-29
| | | | | | | | testing, as most good pdfx in the whild miss the xref). add period as a valid character to start a real value. Review URL: https://codereview.chromium.org/21096006 git-svn-id: http://skia.googlecode.com/svn/trunk@10423 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: more plumming for soft masks, blend modes and transparency groupsGravatar edisonn@google.com2013-07-29
| | | | | | Review URL: https://codereview.chromium.org/21125002 git-svn-id: http://skia.googlecode.com/svn/trunk@10419 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: gs operator implementation: dashing and fontGravatar edisonn@google.com2013-07-28
| | | | | | Review URL: https://codereview.chromium.org/20810002 git-svn-id: http://skia.googlecode.com/svn/trunk@10403 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: limit the characters we support in ToUnicode, to 0xffffGravatar edisonn@google.com2013-07-25
| | | | | | Review URL: https://codereview.chromium.org/20538002 git-svn-id: http://skia.googlecode.com/svn/trunk@10377 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: remove dependency on picture_utils. add utility function to ↵Gravatar edisonn@google.com2013-07-24
| | | | | | | | render SkStream into bitmap. Review URL: https://codereview.chromium.org/20087003 git-svn-id: http://skia.googlecode.com/svn/trunk@10314 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: more simple fixed to prevent crashesGravatar edisonn@google.com2013-07-23
| | | | | | Review URL: https://codereview.chromium.org/19625008 git-svn-id: http://skia.googlecode.com/svn/trunk@10294 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: don't crash if the xref is corrupted.Gravatar edisonn@google.com2013-07-23
| | | | | | Review URL: https://codereview.chromium.org/20004007 git-svn-id: http://skia.googlecode.com/svn/trunk@10293 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: fix type3 font, make SkPdfObject::get parameter constGravatar edisonn@google.com2013-07-23
| | | | | | Review URL: https://codereview.chromium.org/19670019 git-svn-id: http://skia.googlecode.com/svn/trunk@10289 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: improve memory usage, improve parse time (by 30-50%) and don't ↵Gravatar edisonn@google.com2013-07-23
| | | | | | | | allocate extra buffers (more to do, but low priority now), and put the page specific memory in an allocator. Review URL: https://codereview.chromium.org/19793011 git-svn-id: http://skia.googlecode.com/svn/trunk@10282 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: SkTDict, does accept to pass the length of the key also. We will ↵Gravatar edisonn@google.com2013-07-22
| | | | | | | | use it, as this is a prerequirment for optimizing memory usage for pdf parser. Review URL: https://codereview.chromium.org/19964003 git-svn-id: http://skia.googlecode.com/svn/trunk@10242 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: fix typo (false != NULL)Gravatar edisonn@google.com2013-07-22
| | | | | | Review URL: https://codereview.chromium.org/19543016 git-svn-id: http://skia.googlecode.com/svn/trunk@10235 2bbb7eff-a529-9590-31e7-b0007b416f81