OLD | NEW |
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 Simon Hausmann <hausmann@kde.org> | 5 * 2000 Simon Hausmann <hausmann@kde.org> |
6 * 2000 Stefan Schimanski <1Stein@gmx.de> | 6 * 2000 Stefan Schimanski <1Stein@gmx.de> |
7 * 2001 George Staikos <staikos@kde.org> | 7 * 2001 George Staikos <staikos@kde.org> |
8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. | 8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. |
9 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> | 9 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> |
10 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 10 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 #include "core/page/ChromeClient.h" | 62 #include "core/page/ChromeClient.h" |
63 #include "core/page/FocusController.h" | 63 #include "core/page/FocusController.h" |
64 #include "core/page/Page.h" | 64 #include "core/page/Page.h" |
65 #include "core/page/scrolling/ScrollingCoordinator.h" | 65 #include "core/page/scrolling/ScrollingCoordinator.h" |
66 #include "core/paint/ObjectPainter.h" | 66 #include "core/paint/ObjectPainter.h" |
67 #include "core/paint/PaintInfo.h" | 67 #include "core/paint/PaintInfo.h" |
68 #include "core/paint/PaintLayer.h" | 68 #include "core/paint/PaintLayer.h" |
69 #include "core/paint/TransformRecorder.h" | 69 #include "core/paint/TransformRecorder.h" |
70 #include "core/svg/SVGDocumentExtensions.h" | 70 #include "core/svg/SVGDocumentExtensions.h" |
71 #include "platform/DragImage.h" | 71 #include "platform/DragImage.h" |
| 72 #include "platform/Histogram.h" |
72 #include "platform/JSONValues.h" | 73 #include "platform/JSONValues.h" |
73 #include "platform/PluginScriptForbiddenScope.h" | 74 #include "platform/PluginScriptForbiddenScope.h" |
74 #include "platform/RuntimeEnabledFeatures.h" | 75 #include "platform/RuntimeEnabledFeatures.h" |
75 #include "platform/ScriptForbiddenScope.h" | 76 #include "platform/ScriptForbiddenScope.h" |
76 #include "platform/graphics/GraphicsContext.h" | 77 #include "platform/graphics/GraphicsContext.h" |
77 #include "platform/graphics/StaticBitmapImage.h" | 78 #include "platform/graphics/StaticBitmapImage.h" |
78 #include "platform/graphics/paint/ClipRecorder.h" | 79 #include "platform/graphics/paint/ClipRecorder.h" |
79 #include "platform/graphics/paint/PaintController.h" | 80 #include "platform/graphics/paint/PaintController.h" |
80 #include "platform/graphics/paint/SkPictureBuilder.h" | 81 #include "platform/graphics/paint/SkPictureBuilder.h" |
81 #include "platform/graphics/paint/TransformDisplayItem.h" | 82 #include "platform/graphics/paint/TransformDisplayItem.h" |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 } | 211 } |
211 | 212 |
212 inline float parentTextZoomFactor(LocalFrame* frame) | 213 inline float parentTextZoomFactor(LocalFrame* frame) |
213 { | 214 { |
214 Frame* parent = frame->tree().parent(); | 215 Frame* parent = frame->tree().parent(); |
215 if (!parent || !parent->isLocalFrame()) | 216 if (!parent || !parent->isLocalFrame()) |
216 return 1; | 217 return 1; |
217 return toLocalFrame(parent)->textZoomFactor(); | 218 return toLocalFrame(parent)->textZoomFactor(); |
218 } | 219 } |
219 | 220 |
| 221 // These are logged to UMA, so don't re-arrange them without creating a new hist
ogram. |
| 222 enum FrameStateForDeferredLoading { |
| 223 Created, |
| 224 WouldLoadBecauseVisible, |
| 225 // TODO(dgrogan): Add WouldLoadBecauseTopOrLeft, WouldLoadBecauseDisplayNone
, etc |
| 226 |
| 227 FrameStateForDeferredLoadingEnd |
| 228 }; |
| 229 |
| 230 void RecordStateToHistogram(FrameStateForDeferredLoading state) |
| 231 { |
| 232 DEFINE_STATIC_LOCAL(EnumerationHistogram, unseenFrameHistogram, ("DeferredFr
ameLoading.StatesV1", FrameStateForDeferredLoadingEnd)); |
| 233 unseenFrameHistogram.count(state); |
| 234 } |
| 235 |
220 } // namespace | 236 } // namespace |
221 | 237 |
222 template class CORE_TEMPLATE_EXPORT Supplement<LocalFrame>; | 238 template class CORE_TEMPLATE_EXPORT Supplement<LocalFrame>; |
223 | 239 |
224 LocalFrame* LocalFrame::create(FrameLoaderClient* client, FrameHost* host, Frame
Owner* owner, InterfaceProvider* interfaceProvider) | 240 LocalFrame* LocalFrame::create(FrameLoaderClient* client, FrameHost* host, Frame
Owner* owner, InterfaceProvider* interfaceProvider) |
225 { | 241 { |
226 LocalFrame* frame = new LocalFrame(client, host, owner, interfaceProvider ?
interfaceProvider : InterfaceProvider::getEmptyInterfaceProvider()); | 242 LocalFrame* frame = new LocalFrame(client, host, owner, interfaceProvider ?
interfaceProvider : InterfaceProvider::getEmptyInterfaceProvider()); |
227 InspectorInstrumentation::frameAttachedToParent(frame); | 243 InspectorInstrumentation::frameAttachedToParent(frame); |
228 return frame; | 244 return frame; |
229 } | 245 } |
(...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
799 , m_spellChecker(SpellChecker::create(*this)) | 815 , m_spellChecker(SpellChecker::create(*this)) |
800 , m_selection(FrameSelection::create(this)) | 816 , m_selection(FrameSelection::create(this)) |
801 , m_eventHandler(new EventHandler(this)) | 817 , m_eventHandler(new EventHandler(this)) |
802 , m_console(FrameConsole::create(*this)) | 818 , m_console(FrameConsole::create(*this)) |
803 , m_inputMethodController(InputMethodController::create(*this)) | 819 , m_inputMethodController(InputMethodController::create(*this)) |
804 , m_navigationDisableCount(0) | 820 , m_navigationDisableCount(0) |
805 , m_pageZoomFactor(parentPageZoomFactor(this)) | 821 , m_pageZoomFactor(parentPageZoomFactor(this)) |
806 , m_textZoomFactor(parentTextZoomFactor(this)) | 822 , m_textZoomFactor(parentTextZoomFactor(this)) |
807 , m_inViewSourceMode(false) | 823 , m_inViewSourceMode(false) |
808 , m_interfaceProvider(interfaceProvider) | 824 , m_interfaceProvider(interfaceProvider) |
| 825 , m_visibilityWasLogged(false) |
| 826 , m_creationWasLogged(false) |
809 { | 827 { |
810 if (isLocalRoot()) | 828 if (isLocalRoot()) |
811 m_instrumentingAgents = new InstrumentingAgents(); | 829 m_instrumentingAgents = new InstrumentingAgents(); |
812 else | 830 else |
813 m_instrumentingAgents = localFrameRoot()->m_instrumentingAgents; | 831 m_instrumentingAgents = localFrameRoot()->m_instrumentingAgents; |
814 } | 832 } |
815 | 833 |
816 WebFrameScheduler* LocalFrame::frameScheduler() | 834 WebFrameScheduler* LocalFrame::frameScheduler() |
817 { | 835 { |
818 return m_frameScheduler.get(); | 836 return m_frameScheduler.get(); |
(...skipping 11 matching lines...) Expand all Loading... |
830 return static_cast<FrameLoaderClient*>(Frame::client()); | 848 return static_cast<FrameLoaderClient*>(Frame::client()); |
831 } | 849 } |
832 | 850 |
833 PluginData* LocalFrame::pluginData() const | 851 PluginData* LocalFrame::pluginData() const |
834 { | 852 { |
835 if (!loader().allowPlugins(NotAboutToInstantiatePlugin)) | 853 if (!loader().allowPlugins(NotAboutToInstantiatePlugin)) |
836 return nullptr; | 854 return nullptr; |
837 return page()->pluginData(); | 855 return page()->pluginData(); |
838 } | 856 } |
839 | 857 |
| 858 void LocalFrame::didInstallNewRealDocument() |
| 859 { |
| 860 if (!m_creationWasLogged && isCrossOriginSubframe()) { |
| 861 m_creationWasLogged = true; |
| 862 RecordStateToHistogram(Created); |
| 863 } |
| 864 } |
| 865 |
| 866 void LocalFrame::onVisibilityMaybeChanged(bool visible) |
| 867 { |
| 868 if (visible && !m_visibilityWasLogged && isCrossOriginSubframe()) { |
| 869 m_visibilityWasLogged = true; |
| 870 RecordStateToHistogram(WouldLoadBecauseVisible); |
| 871 } |
| 872 } |
| 873 |
840 DEFINE_WEAK_IDENTIFIER_MAP(LocalFrame); | 874 DEFINE_WEAK_IDENTIFIER_MAP(LocalFrame); |
841 | 875 |
842 FrameNavigationDisabler::FrameNavigationDisabler(LocalFrame& frame) | 876 FrameNavigationDisabler::FrameNavigationDisabler(LocalFrame& frame) |
843 : m_frame(&frame) | 877 : m_frame(&frame) |
844 { | 878 { |
845 m_frame->disableNavigation(); | 879 m_frame->disableNavigation(); |
846 } | 880 } |
847 | 881 |
848 FrameNavigationDisabler::~FrameNavigationDisabler() | 882 FrameNavigationDisabler::~FrameNavigationDisabler() |
849 { | 883 { |
850 m_frame->enableNavigation(); | 884 m_frame->enableNavigation(); |
851 } | 885 } |
852 | 886 |
853 ScopedFrameBlamer::ScopedFrameBlamer(LocalFrame* frame) | 887 ScopedFrameBlamer::ScopedFrameBlamer(LocalFrame* frame) |
854 : m_frame(frame) | 888 : m_frame(frame) |
855 { | 889 { |
856 if (m_frame && m_frame->client() && m_frame->client()->frameBlameContext()) | 890 if (m_frame && m_frame->client() && m_frame->client()->frameBlameContext()) |
857 m_frame->client()->frameBlameContext()->Enter(); | 891 m_frame->client()->frameBlameContext()->Enter(); |
858 } | 892 } |
859 | 893 |
860 ScopedFrameBlamer::~ScopedFrameBlamer() | 894 ScopedFrameBlamer::~ScopedFrameBlamer() |
861 { | 895 { |
862 if (m_frame && m_frame->client() && m_frame->client()->frameBlameContext()) | 896 if (m_frame && m_frame->client() && m_frame->client()->frameBlameContext()) |
863 m_frame->client()->frameBlameContext()->Leave(); | 897 m_frame->client()->frameBlameContext()->Leave(); |
864 } | 898 } |
865 | 899 |
866 } // namespace blink | 900 } // namespace blink |
OLD | NEW |