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

Side by Side Diff: Source/WebCore/rendering/RenderObject.cpp

Issue 12703031: Revert 146726 "AXObjectCache gets recreated during document tear..." (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1453/
Patch Set: Created 7 years, 9 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 1847 matching lines...) Expand 10 before | Expand all | Expand 10 after
1858 // If our z-index changes value or our visibility changes, 1858 // If our z-index changes value or our visibility changes,
1859 // we need to dirty our stacking context's z-order list. 1859 // we need to dirty our stacking context's z-order list.
1860 if (newStyle) { 1860 if (newStyle) {
1861 bool visibilityChanged = m_style->visibility() != newStyle->visibili ty() 1861 bool visibilityChanged = m_style->visibility() != newStyle->visibili ty()
1862 || m_style->zIndex() != newStyle->zIndex() 1862 || m_style->zIndex() != newStyle->zIndex()
1863 || m_style->hasAutoZIndex() != newStyle->hasAutoZIndex(); 1863 || m_style->hasAutoZIndex() != newStyle->hasAutoZIndex();
1864 #if ENABLE(DASHBOARD_SUPPORT) || ENABLE(DRAGGABLE_REGION) 1864 #if ENABLE(DASHBOARD_SUPPORT) || ENABLE(DRAGGABLE_REGION)
1865 if (visibilityChanged) 1865 if (visibilityChanged)
1866 document()->setAnnotatedRegionsDirty(true); 1866 document()->setAnnotatedRegionsDirty(true);
1867 #endif 1867 #endif
1868 if (visibilityChanged) { 1868 if (visibilityChanged && AXObjectCache::accessibilityEnabled())
1869 if (AXObjectCache* cache = document()->existingAXObjectCache()) 1869 document()->axObjectCache()->childrenChanged(parent());
1870 cache->childrenChanged(parent());
1871 }
1872 1870
1873 // Keep layer hierarchy visibility bits up to date if visibility cha nges. 1871 // Keep layer hierarchy visibility bits up to date if visibility cha nges.
1874 if (m_style->visibility() != newStyle->visibility()) { 1872 if (m_style->visibility() != newStyle->visibility()) {
1875 if (RenderLayer* l = enclosingLayer()) { 1873 if (RenderLayer* l = enclosingLayer()) {
1876 if (newStyle->visibility() == VISIBLE) 1874 if (newStyle->visibility() == VISIBLE)
1877 l->setHasVisibleContent(); 1875 l->setHasVisibleContent();
1878 else if (l->hasVisibleContent() && (this == l->renderer() || l->renderer()->style()->visibility() != VISIBLE)) { 1876 else if (l->hasVisibleContent() && (this == l->renderer() || l->renderer()->style()->visibility() != VISIBLE)) {
1879 l->dirtyVisibleContentStatus(); 1877 l->dirtyVisibleContentStatus();
1880 if (diff > StyleDifferenceRepaintLayer) 1878 if (diff > StyleDifferenceRepaintLayer)
1881 repaint(); 1879 repaint();
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
2404 // has a null frame, so we assert this. However, we don't want release build s to crash which is why we 2402 // has a null frame, so we assert this. However, we don't want release build s to crash which is why we
2405 // check that the frame is not null. 2403 // check that the frame is not null.
2406 ASSERT(frame()); 2404 ASSERT(frame());
2407 if (frame() && frame()->eventHandler()->autoscrollRenderer() == this) 2405 if (frame() && frame()->eventHandler()->autoscrollRenderer() == this)
2408 frame()->eventHandler()->stopAutoscrollTimer(true); 2406 frame()->eventHandler()->stopAutoscrollTimer(true);
2409 2407
2410 animation()->cancelAnimations(this); 2408 animation()->cancelAnimations(this);
2411 2409
2412 // For accessibility management, notify the parent of the imminent change to its child set. 2410 // For accessibility management, notify the parent of the imminent change to its child set.
2413 // We do it now, before remove(), while the parent pointer is still availabl e. 2411 // We do it now, before remove(), while the parent pointer is still availabl e.
2414 if (AXObjectCache* cache = document()->existingAXObjectCache()) 2412 if (AXObjectCache::accessibilityEnabled())
2415 cache->childrenChanged(this->parent()); 2413 document()->axObjectCache()->childrenChanged(this->parent());
2416 2414
2417 remove(); 2415 remove();
2418 2416
2419 // The remove() call above may invoke axObjectCache()->childrenChanged() on the parent, which may require the AX render 2417 // The remove() call above may invoke axObjectCache()->childrenChanged() on the parent, which may require the AX render
2420 // object for this renderer. So we remove the AX render object now, after th e renderer is removed. 2418 // object for this renderer. So we remove the AX render object now, after th e renderer is removed.
2421 if (AXObjectCache* cache = document()->existingAXObjectCache()) 2419 if (AXObjectCache::accessibilityEnabled())
2422 cache->remove(this); 2420 document()->axObjectCache()->remove(this);
2423 2421
2424 #ifndef NDEBUG 2422 #ifndef NDEBUG
2425 if (!documentBeingDestroyed() && view() && view()->hasRenderNamedFlowThreads ()) { 2423 if (!documentBeingDestroyed() && view() && view()->hasRenderNamedFlowThreads ()) {
2426 // After remove, the object and the associated information should not be in any flow thread. 2424 // After remove, the object and the associated information should not be in any flow thread.
2427 const RenderNamedFlowThreadList* flowThreadList = view()->flowThreadCont roller()->renderNamedFlowThreadList(); 2425 const RenderNamedFlowThreadList* flowThreadList = view()->flowThreadCont roller()->renderNamedFlowThreadList();
2428 for (RenderNamedFlowThreadList::const_iterator iter = flowThreadList->be gin(); iter != flowThreadList->end(); ++iter) { 2426 for (RenderNamedFlowThreadList::const_iterator iter = flowThreadList->be gin(); iter != flowThreadList->end(); ++iter) {
2429 const RenderNamedFlowThread* renderFlowThread = *iter; 2427 const RenderNamedFlowThread* renderFlowThread = *iter;
2430 ASSERT(!renderFlowThread->hasChild(this)); 2428 ASSERT(!renderFlowThread->hasChild(this));
2431 ASSERT(!renderFlowThread->hasChildInfo(this)); 2429 ASSERT(!renderFlowThread->hasChildInfo(this));
2432 } 2430 }
(...skipping 783 matching lines...) Expand 10 before | Expand all | Expand 10 after
3216 { 3214 {
3217 if (object1) { 3215 if (object1) {
3218 const WebCore::RenderObject* root = object1; 3216 const WebCore::RenderObject* root = object1;
3219 while (root->parent()) 3217 while (root->parent())
3220 root = root->parent(); 3218 root = root->parent();
3221 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); 3219 root->showRenderTreeAndMark(object1, "*", object2, "-", 0);
3222 } 3220 }
3223 } 3221 }
3224 3222
3225 #endif 3223 #endif
OLDNEW
« no previous file with comments | « Source/WebCore/rendering/RenderMenuList.cpp ('k') | Source/WebCore/rendering/RenderObjectChildList.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698