Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Side by Side Diff: third_party/WebKit/Source/core/frame/FrameView.cpp

Issue 1773633003: [DO NOT COMMIT] Trace events for layout-based First Meaningful Paint detection (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
3 * 1999 Lars Knoll <knoll@kde.org> 3 * 1999 Lars Knoll <knoll@kde.org>
4 * 1999 Antti Koivisto <koivisto@kde.org> 4 * 1999 Antti Koivisto <koivisto@kde.org>
5 * 2000 Dirk Mueller <mueller@kde.org> 5 * 2000 Dirk Mueller <mueller@kde.org>
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com)
8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
9 * Copyright (C) 2009 Google Inc. All rights reserved. 9 * Copyright (C) 2009 Google Inc. All rights reserved.
10 * 10 *
(...skipping 805 matching lines...) Expand 10 before | Expand all | Expand 10 after
816 816
817 static inline void layoutFromRootObject(LayoutObject& root) 817 static inline void layoutFromRootObject(LayoutObject& root)
818 { 818 {
819 LayoutState layoutState(root); 819 LayoutState layoutState(root);
820 root.layout(); 820 root.layout();
821 } 821 }
822 822
823 void FrameView::prepareLayoutAnalyzer() 823 void FrameView::prepareLayoutAnalyzer()
824 { 824 {
825 bool isTracing = false; 825 bool isTracing = false;
826 TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT("blink.debug.la yout"), &isTracing); 826 TRACE_EVENT_CATEGORY_GROUP_ENABLED("blink.user_timing", &isTracing);
827 if (!isTracing) { 827 if (!isTracing) {
828 m_analyzer.clear(); 828 m_analyzer.clear();
829 return; 829 return;
830 } 830 }
831 if (!m_analyzer) 831 if (!m_analyzer)
832 m_analyzer = adoptPtr(new LayoutAnalyzer()); 832 m_analyzer = adoptPtr(new LayoutAnalyzer());
833 m_analyzer->reset(); 833 m_analyzer->reset();
834 } 834 }
835 835
836 PassOwnPtr<TracedValue> FrameView::analyzerCounters() 836 PassOwnPtr<TracedValue> FrameView::analyzerCounters()
837 { 837 {
838 if (!m_analyzer) 838 if (!m_analyzer)
839 return TracedValue::create(); 839 return TracedValue::create();
840 OwnPtr<TracedValue> value = m_analyzer->toTracedValue(); 840 OwnPtr<TracedValue> value = m_analyzer->toTracedValue();
841 value->setString("host", layoutView()->document().location()->host()); 841 value->setString("host", layoutView()->document().location()->host());
842 value->setInteger("visibleHeight", visibleHeight());
843 value->setInteger("contentsHeightBefore", contentsSize().height());
paulirish 2016/04/29 02:41:51 Are you submitting a CL for these non-font counter
Kunihiko Sakamoto 2016/05/09 07:33:42 Sorry for the delay, just sent out https://coderev
844 value->setInteger("contentsHeightAfter", layoutView()->documentRect().height ());
845 value->setBoolean("hasBlankText", FontFaceSet::hasBlankText(*m_frame->docume nt()));
842 return value.release(); 846 return value.release();
843 } 847 }
844 848
845 #define PERFORM_LAYOUT_TRACE_CATEGORIES "blink,benchmark," TRACE_DISABLED_BY_DEF AULT("blink.debug.layout") 849 #define PERFORM_LAYOUT_TRACE_CATEGORIES "blink,benchmark," TRACE_DISABLED_BY_DEF AULT("blink.debug.layout")
846 850
847 void FrameView::performLayout(bool inSubtreeLayout) 851 void FrameView::performLayout(bool inSubtreeLayout)
848 { 852 {
849 ASSERT(inSubtreeLayout || m_layoutSubtreeRootList.isEmpty()); 853 ASSERT(inSubtreeLayout || m_layoutSubtreeRootList.isEmpty());
850 854
851 TRACE_EVENT_BEGIN0(PERFORM_LAYOUT_TRACE_CATEGORIES, "FrameView::performLayou t"); 855 TRACE_EVENT_BEGIN0("blink.user_timing", "FrameView::performLayout");
852 prepareLayoutAnalyzer(); 856 prepareLayoutAnalyzer();
853 857
854 ScriptForbiddenScope forbidScript; 858 ScriptForbiddenScope forbidScript;
855 859
856 ASSERT(!isInPerformLayout()); 860 ASSERT(!isInPerformLayout());
857 lifecycle().advanceTo(DocumentLifecycle::InPerformLayout); 861 lifecycle().advanceTo(DocumentLifecycle::InPerformLayout);
858 862
859 // performLayout is the actual guts of layout(). 863 // performLayout is the actual guts of layout().
860 // FIXME: The 300 other lines in layout() probably belong in other helper fu nctions 864 // FIXME: The 300 other lines in layout() probably belong in other helper fu nctions
861 // so that a single human could understand what layout() is actually doing. 865 // so that a single human could understand what layout() is actually doing.
(...skipping 19 matching lines...) Expand all
881 } 885 }
882 m_layoutSubtreeRootList.clear(); 886 m_layoutSubtreeRootList.clear();
883 } else { 887 } else {
884 layoutFromRootObject(*layoutView()); 888 layoutFromRootObject(*layoutView());
885 } 889 }
886 890
887 m_frame->document()->fetcher()->updateAllImageResourcePriorities(); 891 m_frame->document()->fetcher()->updateAllImageResourcePriorities();
888 892
889 lifecycle().advanceTo(DocumentLifecycle::AfterPerformLayout); 893 lifecycle().advanceTo(DocumentLifecycle::AfterPerformLayout);
890 894
891 TRACE_EVENT_END1(PERFORM_LAYOUT_TRACE_CATEGORIES, "FrameView::performLayout" , 895 TRACE_EVENT_END2("blink.user_timing", "FrameView::performLayout",
892 "counters", analyzerCounters()); 896 "counters", analyzerCounters(), "frame", m_frame.get());
893 } 897 }
894 898
895 void FrameView::scheduleOrPerformPostLayoutTasks() 899 void FrameView::scheduleOrPerformPostLayoutTasks()
896 { 900 {
897 if (m_postLayoutTasksTimer.isActive()) 901 if (m_postLayoutTasksTimer.isActive())
898 return; 902 return;
899 903
900 if (!m_inSynchronousPostLayout) { 904 if (!m_inSynchronousPostLayout) {
901 m_inSynchronousPostLayout = true; 905 m_inSynchronousPostLayout = true;
902 // Calls resumeScheduledEvents() 906 // Calls resumeScheduledEvents()
(...skipping 3163 matching lines...) Expand 10 before | Expand all | Expand 10 after
4066 return m_hiddenForThrottling && m_crossOriginForThrottling; 4070 return m_hiddenForThrottling && m_crossOriginForThrottling;
4067 } 4071 }
4068 4072
4069 LayoutBox& FrameView::boxForScrollControlPaintInvalidation() const 4073 LayoutBox& FrameView::boxForScrollControlPaintInvalidation() const
4070 { 4074 {
4071 ASSERT(layoutView()); 4075 ASSERT(layoutView());
4072 return *layoutView(); 4076 return *layoutView();
4073 } 4077 }
4074 4078
4075 } // namespace blink 4079 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/RemoteFontFaceSource.h ('k') | third_party/WebKit/Source/core/layout/LayoutText.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698