PaintLayerCompositor::PaintLayerCompositor(LayoutView& layoutView) : m_layoutView(layoutView) , m_compositingReasonFinder(layoutView) , m_pendingUpdateType(CompositingUpdateNone) , m_hasAcceleratedCompositing(true) , m_compositing(false) , m_rootShouldAlwaysCompositeDirty(true) , m_needsUpdateFixedBackground(false) , m_isTrackingPaintInvalidations(layoutView.frameView()->isTrackingPaintInvalidations()) , m_inOverlayFullscreenVideo(false) , m_needsUpdateDescendantDependentFlags(false) , m_rootLayerAttachment(RootLayerUnattached) { updateAcceleratedCompositingSettings(); }
void Page::settingsChanged(SettingsDelegate::ChangeType changeType) { switch (changeType) { case SettingsDelegate::StyleChange: setNeedsRecalcStyleInAllFrames(); break; case SettingsDelegate::ViewportDescriptionChange: if (mainFrame() && mainFrame()->isLocalFrame()) deprecatedLocalMainFrame()->document()->updateViewportDescription(); break; case SettingsDelegate::MediaTypeChange: if (m_mainFrame->isLocalFrame()) { deprecatedLocalMainFrame()->view()->setMediaType(AtomicString(settings().mediaTypeOverride())); setNeedsRecalcStyleInAllFrames(); } break; case SettingsDelegate::DNSPrefetchingChange: for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) { if (frame->isLocalFrame()) toLocalFrame(frame)->document()->initDNSPrefetch(); } break; case SettingsDelegate::MultisamplingChange: { WillBeHeapHashSet<RawPtrWillBeWeakMember<MultisamplingChangedObserver> >::iterator stop = m_multisamplingChangedObservers.end(); for (WillBeHeapHashSet<RawPtrWillBeWeakMember<MultisamplingChangedObserver> >::iterator it = m_multisamplingChangedObservers.begin(); it != stop; ++it) (*it)->multisamplingChanged(m_settings->openGLMultisamplingEnabled()); break; } case SettingsDelegate::ImageLoadingChange: for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) { if (frame->isLocalFrame()) { toLocalFrame(frame)->document()->fetcher()->setImagesEnabled(settings().imagesEnabled()); toLocalFrame(frame)->document()->fetcher()->setAutoLoadImages(settings().loadsImagesAutomatically()); } } break; case SettingsDelegate::TextAutosizingChange: if (!mainFrame() || !mainFrame()->isLocalFrame()) break; if (FastTextAutosizer* textAutosizer = deprecatedLocalMainFrame()->document()->fastTextAutosizer()) { textAutosizer->updatePageInfoInAllFrames(); } else { for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) { if (!frame->isLocalFrame()) continue; if (TextAutosizer* textAutosizer = toLocalFrame(frame)->document()->textAutosizer()) textAutosizer->recalculateMultipliers(); } // TextAutosizing updates RenderStyle during layout phase (via TextAutosizer::processSubtree). // We should invoke setNeedsLayout here. setNeedsLayoutInAllFrames(); } break; case SettingsDelegate::ScriptEnableChange: m_inspectorController->scriptsEnabled(settings().scriptEnabled()); break; case SettingsDelegate::FontFamilyChange: for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) { if (frame->isLocalFrame()) toLocalFrame(frame)->document()->styleEngine()->updateGenericFontFamilySettings(); } setNeedsRecalcStyleInAllFrames(); break; case SettingsDelegate::AcceleratedCompositingChange: updateAcceleratedCompositingSettings(); break; } }