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

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

Issue 1761633002: One accessibility tree per frame. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix is-richly-editable test Created 4 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) 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 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 function(*this); 243 function(*this);
244 244
245 for (Frame* child = m_frame->tree().firstChild(); child; child = child->tree ().nextSibling()) { 245 for (Frame* child = m_frame->tree().firstChild(); child; child = child->tree ().nextSibling()) {
246 if (!child->isLocalFrame()) 246 if (!child->isLocalFrame())
247 continue; 247 continue;
248 if (FrameView* childView = toLocalFrame(child)->view()) 248 if (FrameView* childView = toLocalFrame(child)->view())
249 childView->forAllNonThrottledFrameViews(function); 249 childView->forAllNonThrottledFrameViews(function);
250 } 250 }
251 } 251 }
252 252
253 void FrameView::removeFromAXObjectCache()
254 {
255 if (AXObjectCache* cache = axObjectCache())
256 cache->childrenChanged(m_frame->pagePopupOwner());
257 }
258
259 void FrameView::init() 253 void FrameView::init()
260 { 254 {
261 reset(); 255 reset();
262 256
263 m_size = LayoutSize(); 257 m_size = LayoutSize();
264 258
265 // Propagate the marginwidth/height and scrolling modes to the view. 259 // Propagate the marginwidth/height and scrolling modes to the view.
266 if (m_frame->owner() && m_frame->owner()->scrollingMode() == ScrollbarAlways Off) 260 if (m_frame->owner() && m_frame->owner()->scrollingMode() == ScrollbarAlways Off)
267 setCanHaveScrollbars(false); 261 setCanHaveScrollbars(false);
268 } 262 }
269 263
270 void FrameView::dispose() 264 void FrameView::dispose()
271 { 265 {
272 RELEASE_ASSERT(!isInPerformLayout()); 266 RELEASE_ASSERT(!isInPerformLayout());
273 267
274 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator()) 268 if (ScrollAnimatorBase* scrollAnimator = existingScrollAnimator())
275 scrollAnimator->cancelAnimation(); 269 scrollAnimator->cancelAnimation();
276 cancelProgrammaticScrollAnimation(); 270 cancelProgrammaticScrollAnimation();
277 271
278 detachScrollbars(); 272 detachScrollbars();
279 273
280 // When the view is no longer associated with a frame, it needs to be remove d from the ax object cache
281 // right now, otherwise it won't be able to reach the topDocument()'s axObje ct cache later.
282 removeFromAXObjectCache();
283
284 if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator( )) 274 if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator( ))
285 scrollingCoordinator->willDestroyScrollableArea(this); 275 scrollingCoordinator->willDestroyScrollableArea(this);
286 276
287 // We need to clear the RootFrameViewport's animator since it gets called 277 // We need to clear the RootFrameViewport's animator since it gets called
288 // from non-GC'd objects and RootFrameViewport will still have a pointer to 278 // from non-GC'd objects and RootFrameViewport will still have a pointer to
289 // this class. 279 // this class.
290 if (m_viewportScrollableArea) 280 if (m_viewportScrollableArea)
291 m_viewportScrollableArea->clearScrollAnimators(); 281 m_viewportScrollableArea->clearScrollAnimators();
292 282
293 clearScrollAnimators(); 283 clearScrollAnimators();
(...skipping 3825 matching lines...) Expand 10 before | Expand all | Expand 10 after
4119 return m_hiddenForThrottling && m_crossOriginForThrottling; 4109 return m_hiddenForThrottling && m_crossOriginForThrottling;
4120 } 4110 }
4121 4111
4122 LayoutBox& FrameView::boxForScrollControlPaintInvalidation() const 4112 LayoutBox& FrameView::boxForScrollControlPaintInvalidation() const
4123 { 4113 {
4124 ASSERT(layoutView()); 4114 ASSERT(layoutView());
4125 return *layoutView(); 4115 return *layoutView();
4126 } 4116 }
4127 4117
4128 } // namespace blink 4118 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/frame/FrameView.h ('k') | third_party/WebKit/Source/core/frame/LocalFrame.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698