Add UMA histograms to MHTML save operations.

In the context of the Offline project we need more information on how
the MHTML save operation is performing, especially in regards to how
much it is interfering with the render process main thread.

This change adds UMA histograms to track the performance of the costlier
operations performed when a page is being saved to MHTML. One new
"PageSerialization" category was added to encompass serialization generically
and a "MhtmlGeneration" sub-category for the MHTML specific parts.

All histograms added in this batch are timing measurements and they map closely
to the tracing instrumentation under the "page-serialization" category.
Following is the list of them with indentation to indicate what encompasses
what:

For the complete page saving operation:

  PageSerialization.MhtmlGeneration.FullPageSavingTime
    PageSerialization.MhtmlGeneration.BrowserWaitForRendererTime.FrameTree
      PageSerialization.MhtmlGeneration.RendererMainThreadTime.FrameTree

For a single frame in a page saving operation:

  PageSerialization.MhtmlGeneration.BrowserWaitForRendererTime.SingleFrame
    PageSerialization.MhtmlGeneration.RendererMainThreadTime.SingleFrame
      PageSerialization.MhtmlGeneration.SerializationTime.SingleFrame
        PageSerialization.SerializationTime.Html
        *PageSerialization.SerializationTime.CSSElement
        *PageSerialization.SerializationTime.ImageElement
      PageSerialization.MhtmlGeneration.EncodingTime.SingleFrame
    PageSerialization.MhtmlGeneration.WriteToDiskTime.SingleFrame

*: may be executed many times under its parent.

BUG=645686
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2364923004
Cr-Commit-Position: refs/heads/master@{#421989}
10 files changed