Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / page / Page.cpp
index 6b99bc7..2b1a695 100644 (file)
@@ -83,17 +83,16 @@ HashSet<Page*>& Page::ordinaryPages()
 
 void Page::networkStateChanged(bool online)
 {
-    WillBeHeapVector<RefPtrWillBeMember<LocalFrame> > frames;
+    WillBeHeapVector<RefPtrWillBeMember<LocalFrame>> frames;
 
     // Get all the frames of all the pages in all the page groups
-    HashSet<Page*>::iterator end = allPages().end();
-    for (HashSet<Page*>::iterator it = allPages().begin(); it != end; ++it) {
-        for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree().traverseNext()) {
+    for (Page* page : allPages()) {
+        for (Frame* frame = page->mainFrame(); frame; frame = frame->tree().traverseNext()) {
             // FIXME: There is currently no way to dispatch events to out-of-process frames.
             if (frame->isLocalFrame())
                 frames.append(toLocalFrame(frame));
         }
-        InspectorInstrumentation::networkStateChanged(*it, online);
+        InspectorInstrumentation::networkStateChanged(page, online);
     }
 
     AtomicString eventName = online ? EventTypeNames::online : EventTypeNames::offline;
@@ -124,11 +123,9 @@ Page::Page(PageClients& pageClients)
     , m_pointerLockController(PointerLockController::create(this))
     , m_undoStack(UndoStack::create())
     , m_mainFrame(nullptr)
-    , m_backForwardClient(pageClients.backForwardClient)
     , m_editorClient(pageClients.editorClient)
     , m_spellCheckerClient(pageClients.spellCheckerClient)
     , m_storageClient(pageClients.storageClient)
-    , m_subframeCount(0)
     , m_openedByDOM(false)
     , m_tabKeyCyclesThroughElements(true)
     , m_defersLoading(false)
@@ -230,11 +227,10 @@ void Page::setOpenedByDOM()
 
 void Page::scheduleForcedStyleRecalcForAllPages()
 {
-    HashSet<Page*>::iterator end = allPages().end();
-    for (HashSet<Page*>::iterator it = allPages().begin(); it != end; ++it)
-        for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree().traverseNext()) {
+    for (const Page* page : allPages())
+        for (Frame* frame = page->mainFrame(); frame; frame = frame->tree().traverseNext()) {
             if (frame->isLocalFrame())
-                toLocalFrame(frame)->document()->setNeedsStyleRecalc(SubtreeStyleChange);
+                toLocalFrame(frame)->document()->setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTracing::create(StyleChangeReason::PlatformColorChange));
         }
 }
 
@@ -265,12 +261,9 @@ void Page::refreshPlugins(bool reload)
 
     PluginData::refresh();
 
-    WillBeHeapVector<RefPtrWillBeMember<LocalFrame> > framesNeedingReload;
-
-    HashSet<Page*>::iterator end = allPages().end();
-    for (HashSet<Page*>::iterator it = allPages().begin(); it != end; ++it) {
-        Page* page = *it;
+    WillBeHeapVector<RefPtrWillBeMember<LocalFrame>> framesNeedingReload;
 
+    for (const Page* page : allPages()) {
         // Clear out the page's plug-in data.
         if (page->m_pluginData)
             page->m_pluginData = nullptr;
@@ -278,20 +271,21 @@ void Page::refreshPlugins(bool reload)
         if (!reload)
             continue;
 
-        for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree().traverseNext()) {
+        for (Frame* frame = page->mainFrame(); frame; frame = frame->tree().traverseNext()) {
             if (frame->isLocalFrame() && toLocalFrame(frame)->document()->containsPlugins())
                 framesNeedingReload.append(toLocalFrame(frame));
         }
     }
 
     for (size_t i = 0; i < framesNeedingReload.size(); ++i)
-        framesNeedingReload[i]->loader().reload();
+        framesNeedingReload[i]->loader().reload(NormalReload);
 }
 
 PluginData* Page::pluginData() const
 {
-    if (!deprecatedLocalMainFrame()->loader().allowPlugins(NotAboutToInstantiatePlugin))
-        return 0;
+    if (!mainFrame()->isLocalFrame()
+        || !deprecatedLocalMainFrame()->loader().allowPlugins(NotAboutToInstantiatePlugin))
+        return nullptr;
     if (!m_pluginData)
         m_pluginData = PluginData::create(this);
     return m_pluginData.get();
@@ -394,9 +388,7 @@ void Page::resetDeviceColorProfile()
 
 void Page::allVisitedStateChanged()
 {
-    HashSet<Page*>::iterator pagesEnd = ordinaryPages().end();
-    for (HashSet<Page*>::iterator it = ordinaryPages().begin(); it != pagesEnd; ++it) {
-        Page* page = *it;
+    for (const Page* page : ordinaryPages()) {
         for (Frame* frame = page->m_mainFrame; frame; frame = frame->tree().traverseNext()) {
             if (frame->isLocalFrame())
                 toLocalFrame(frame)->document()->visitedLinkState().invalidateStyleForAllLinks();
@@ -406,9 +398,7 @@ void Page::allVisitedStateChanged()
 
 void Page::visitedStateChanged(LinkHash linkHash)
 {
-    HashSet<Page*>::iterator pagesEnd = ordinaryPages().end();
-    for (HashSet<Page*>::iterator it = ordinaryPages().begin(); it != pagesEnd; ++it) {
-        Page* page = *it;
+    for (const Page* page : ordinaryPages()) {
         for (Frame* frame = page->m_mainFrame; frame; frame = frame->tree().traverseNext()) {
             if (frame->isLocalFrame())
                 toLocalFrame(frame)->document()->visitedLinkState().invalidateStyleForLink(linkHash);
@@ -440,19 +430,6 @@ double Page::timerAlignmentInterval() const
     return m_timerAlignmentInterval;
 }
 
-#if ENABLE(ASSERT)
-void Page::checkSubframeCountConsistency() const
-{
-    ASSERT(m_subframeCount >= 0);
-
-    int subframeCount = 0;
-    for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext())
-        ++subframeCount;
-
-    ASSERT(m_subframeCount + 1 == subframeCount);
-}
-#endif
-
 void Page::setVisibilityState(PageVisibilityState visibilityState, bool isInitialState)
 {
     if (m_visibilityState == visibilityState)
@@ -514,9 +491,8 @@ void Page::settingsChanged(SettingsDelegate::ChangeType changeType)
         }
         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());
+        for (MultisamplingChangedObserver* observer : m_multisamplingChangedObservers)
+            observer->multisamplingChanged(m_settings->openGLMultisamplingEnabled());
         break;
     }
     case SettingsDelegate::ImageLoadingChange:
@@ -553,6 +529,10 @@ void Page::settingsChanged(SettingsDelegate::ChangeType changeType)
         }
         setNeedsRecalcStyleInAllFrames();
         break;
+    case SettingsDelegate::AccessibilityStateChange:
+        if (!mainFrame() || !mainFrame()->isLocalFrame())
+            break;
+        deprecatedLocalMainFrame()->document()->axObjectCacheOwner().clearAXObjectCache();
     }
 }
 
@@ -579,7 +559,7 @@ void Page::didCommitLoad(LocalFrame* frame)
 
 void Page::acceptLanguagesChanged()
 {
-    WillBeHeapVector<RefPtrWillBeMember<LocalFrame> > frames;
+    WillBeHeapVector<RefPtrWillBeMember<LocalFrame>> frames;
 
     // Even though we don't fire an event from here, the LocalDOMWindow's will fire
     // an event so we keep the frames alive until we are done.
@@ -597,7 +577,7 @@ PageLifecycleNotifier& Page::lifecycleNotifier()
     return static_cast<PageLifecycleNotifier&>(LifecycleContext<Page>::lifecycleNotifier());
 }
 
-PassOwnPtr<LifecycleNotifier<Page> > Page::createLifecycleNotifier()
+PassOwnPtr<LifecycleNotifier<Page>> Page::createLifecycleNotifier()
 {
     return PageLifecycleNotifier::create(this);
 }
@@ -656,14 +636,13 @@ void Page::willBeDestroyed()
 }
 
 Page::PageClients::PageClients()
-    : chromeClient(0)
-    , contextMenuClient(0)
-    , editorClient(0)
-    , dragClient(0)
-    , inspectorClient(0)
-    , backForwardClient(0)
-    , spellCheckerClient(0)
-    , storageClient(0)
+    : chromeClient(nullptr)
+    , contextMenuClient(nullptr)
+    , editorClient(nullptr)
+    , dragClient(nullptr)
+    , inspectorClient(nullptr)
+    , spellCheckerClient(nullptr)
+    , storageClient(nullptr)
 {
 }