| Index: third_party/WebKit/Source/web/WebFrameSerializer.cpp
|
| diff --git a/third_party/WebKit/Source/web/WebFrameSerializer.cpp b/third_party/WebKit/Source/web/WebFrameSerializer.cpp
|
| index 8dd4fd826ff07edc13d1bf0c8f2067da67d865fd..e5a0d1fce3f19fe0b1b51f532f1119134e0e52e5 100644
|
| --- a/third_party/WebKit/Source/web/WebFrameSerializer.cpp
|
| +++ b/third_party/WebKit/Source/web/WebFrameSerializer.cpp
|
| @@ -87,6 +87,7 @@ class MHTMLFrameSerializerDelegate final : public FrameSerializer::Delegate {
|
| public:
|
| explicit MHTMLFrameSerializerDelegate(
|
| WebFrameSerializer::MHTMLPartsGenerationDelegate&);
|
| + ~MHTMLFrameSerializerDelegate() override;
|
| bool ShouldIgnoreElement(const Element&) override;
|
| bool ShouldIgnoreAttribute(const Element&, const Attribute&) override;
|
| bool RewriteLink(const Element&, String& rewritten_link) override;
|
| @@ -105,11 +106,20 @@ class MHTMLFrameSerializerDelegate final : public FrameSerializer::Delegate {
|
| Vector<Attribute>*);
|
|
|
| WebFrameSerializer::MHTMLPartsGenerationDelegate& web_delegate_;
|
| + bool popup_overlays_skipped_;
|
| };
|
|
|
| MHTMLFrameSerializerDelegate::MHTMLFrameSerializerDelegate(
|
| WebFrameSerializer::MHTMLPartsGenerationDelegate& web_delegate)
|
| - : web_delegate_(web_delegate) {}
|
| + : web_delegate_(web_delegate), popup_overlays_skipped_(false) {}
|
| +
|
| +MHTMLFrameSerializerDelegate::~MHTMLFrameSerializerDelegate() {
|
| + if (web_delegate_.RemovePopupOverlay()) {
|
| + UMA_HISTOGRAM_BOOLEAN(
|
| + "PageSerialization.MhtmlGeneration.PopupOverlaySkipped",
|
| + popup_overlays_skipped_);
|
| + }
|
| +}
|
|
|
| bool MHTMLFrameSerializerDelegate::ShouldIgnoreElement(const Element& element) {
|
| if (ShouldIgnoreHiddenElement(element))
|
| @@ -170,6 +180,8 @@ bool MHTMLFrameSerializerDelegate::ShouldIgnorePopupOverlayElement(
|
| if (box->Style()->ZIndex() < kPopupOverlayZIndexThreshold)
|
| return false;
|
|
|
| + popup_overlays_skipped_ = true;
|
| +
|
| return true;
|
| }
|
|
|
|
|