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

Side by Side Diff: Source/core/rendering/RenderLayerCompositor.cpp

Issue 23728003: Return Frame&, not Frame* from RenderView::frame() (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: fixed PopupMenuTest build Created 7 years, 3 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 // Avoid updating the layers with old values. Compositing layers will be upd ated after the layout is finished. 355 // Avoid updating the layers with old values. Compositing layers will be upd ated after the layout is finished.
356 if (m_renderView->needsLayout()) 356 if (m_renderView->needsLayout())
357 return; 357 return;
358 358
359 if (m_forceCompositingMode && !m_compositing) 359 if (m_forceCompositingMode && !m_compositing)
360 enableCompositingMode(true); 360 enableCompositingMode(true);
361 361
362 if (!m_reevaluateCompositingAfterLayout && !m_compositing) 362 if (!m_reevaluateCompositingAfterLayout && !m_compositing)
363 return; 363 return;
364 364
365 AnimationUpdateBlock animationUpdateBlock(m_renderView->frameView()->frame() ->animation()); 365 AnimationUpdateBlock animationUpdateBlock(m_renderView->frameView()->frame() .animation());
366 366
367 TemporaryChange<bool> postLayoutChange(m_inPostLayoutUpdate, true); 367 TemporaryChange<bool> postLayoutChange(m_inPostLayoutUpdate, true);
368 368
369 bool checkForHierarchyUpdate = m_reevaluateCompositingAfterLayout; 369 bool checkForHierarchyUpdate = m_reevaluateCompositingAfterLayout;
370 bool needGeometryUpdate = false; 370 bool needGeometryUpdate = false;
371 371
372 switch (updateType) { 372 switch (updateType) {
373 case CompositingUpdateAfterStyleChange: 373 case CompositingUpdateAfterStyleChange:
374 case CompositingUpdateAfterLayout: 374 case CompositingUpdateAfterLayout:
375 checkForHierarchyUpdate = true; 375 checkForHierarchyUpdate = true;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 needHierarchyUpdate |= layersChanged; 424 needHierarchyUpdate |= layersChanged;
425 } 425 }
426 426
427 #if !LOG_DISABLED 427 #if !LOG_DISABLED
428 if (compositingLogEnabled() && isFullUpdate && (needHierarchyUpdate || needG eometryUpdate)) { 428 if (compositingLogEnabled() && isFullUpdate && (needHierarchyUpdate || needG eometryUpdate)) {
429 m_obligateCompositedLayerCount = 0; 429 m_obligateCompositedLayerCount = 0;
430 m_secondaryCompositedLayerCount = 0; 430 m_secondaryCompositedLayerCount = 0;
431 m_obligatoryBackingStoreBytes = 0; 431 m_obligatoryBackingStoreBytes = 0;
432 m_secondaryBackingStoreBytes = 0; 432 m_secondaryBackingStoreBytes = 0;
433 433
434 Frame* frame = m_renderView->frameView()->frame(); 434 Frame& frame = m_renderView->frameView()->frame();
435 LOG(Compositing, "\nUpdate %d of %s.\n", m_rootLayerUpdateCount, isMainF rame() ? "main frame" : frame->tree()->uniqueName().string().utf8().data()); 435 LOG(Compositing, "\nUpdate %d of %s.\n", m_rootLayerUpdateCount, isMainF rame() ? "main frame" : frame.tree()->uniqueName().string().utf8().data());
436 } 436 }
437 #endif 437 #endif
438 438
439 if (needHierarchyUpdate) { 439 if (needHierarchyUpdate) {
440 // Update the hierarchy of the compositing layers. 440 // Update the hierarchy of the compositing layers.
441 Vector<GraphicsLayer*> childList; 441 Vector<GraphicsLayer*> childList;
442 { 442 {
443 TRACE_EVENT0("blink_rendering", "RenderLayerCompositor::rebuildCompo sitingLayerTree"); 443 TRACE_EVENT0("blink_rendering", "RenderLayerCompositor::rebuildCompo sitingLayerTree");
444 rebuildCompositingLayerTree(updateRoot, childList, 0); 444 rebuildCompositingLayerTree(updateRoot, childList, 0);
445 } 445 }
(...skipping 1784 matching lines...) Expand 10 before | Expand all | Expand 10 after
2230 return m_isTrackingRepaints; 2230 return m_isTrackingRepaints;
2231 } 2231 }
2232 2232
2233 void RenderLayerCompositor::didCommitChangesForLayer(const GraphicsLayer*) const 2233 void RenderLayerCompositor::didCommitChangesForLayer(const GraphicsLayer*) const
2234 { 2234 {
2235 // Nothing to do here yet. 2235 // Nothing to do here yet.
2236 } 2236 }
2237 2237
2238 static bool shouldCompositeOverflowControls(FrameView* view) 2238 static bool shouldCompositeOverflowControls(FrameView* view)
2239 { 2239 {
2240 if (Page* page = view->frame()->page()) { 2240 if (Page* page = view->frame().page()) {
2241 if (ScrollingCoordinator* scrollingCoordinator = page->scrollingCoordina tor()) 2241 if (ScrollingCoordinator* scrollingCoordinator = page->scrollingCoordina tor())
2242 if (scrollingCoordinator->coordinatesScrollingForFrameView(view)) 2242 if (scrollingCoordinator->coordinatesScrollingForFrameView(view))
2243 return true; 2243 return true;
2244 } 2244 }
2245 2245
2246 return true; 2246 return true;
2247 } 2247 }
2248 2248
2249 bool RenderLayerCompositor::requiresHorizontalScrollbarLayer() const 2249 bool RenderLayerCompositor::requiresHorizontalScrollbarLayer() const
2250 { 2250 {
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
2457 void RenderLayerCompositor::attachRootLayer(RootLayerAttachment attachment) 2457 void RenderLayerCompositor::attachRootLayer(RootLayerAttachment attachment)
2458 { 2458 {
2459 if (!m_rootContentLayer) 2459 if (!m_rootContentLayer)
2460 return; 2460 return;
2461 2461
2462 switch (attachment) { 2462 switch (attachment) {
2463 case RootLayerUnattached: 2463 case RootLayerUnattached:
2464 ASSERT_NOT_REACHED(); 2464 ASSERT_NOT_REACHED();
2465 break; 2465 break;
2466 case RootLayerAttachedViaChromeClient: { 2466 case RootLayerAttachedViaChromeClient: {
2467 Frame* frame = m_renderView->frameView()->frame(); 2467 Frame& frame = m_renderView->frameView()->frame();
2468 Page* page = frame ? frame->page() : 0; 2468 Page* page = frame.page();
2469 if (!page) 2469 if (!page)
2470 return; 2470 return;
2471 page->chrome().client().attachRootGraphicsLayer(frame, rootGraphicsL ayer()); 2471 page->chrome().client().attachRootGraphicsLayer(&frame, rootGraphics Layer());
2472 break; 2472 break;
2473 } 2473 }
2474 case RootLayerAttachedViaEnclosingFrame: { 2474 case RootLayerAttachedViaEnclosingFrame: {
2475 // The layer will get hooked up via RenderLayerBacking::updateGraphi csLayerConfiguration() 2475 // The layer will get hooked up via RenderLayerBacking::updateGraphi csLayerConfiguration()
2476 // for the frame's renderer in the parent document. 2476 // for the frame's renderer in the parent document.
2477 m_renderView->document().ownerElement()->scheduleLayerUpdate(); 2477 m_renderView->document().ownerElement()->scheduleLayerUpdate();
2478 break; 2478 break;
2479 } 2479 }
2480 } 2480 }
2481 2481
(...skipping 12 matching lines...) Expand all
2494 if (m_overflowControlsHostLayer) 2494 if (m_overflowControlsHostLayer)
2495 m_overflowControlsHostLayer->removeFromParent(); 2495 m_overflowControlsHostLayer->removeFromParent();
2496 else 2496 else
2497 m_rootContentLayer->removeFromParent(); 2497 m_rootContentLayer->removeFromParent();
2498 2498
2499 if (HTMLFrameOwnerElement* ownerElement = m_renderView->document().owner Element()) 2499 if (HTMLFrameOwnerElement* ownerElement = m_renderView->document().owner Element())
2500 ownerElement->scheduleLayerUpdate(); 2500 ownerElement->scheduleLayerUpdate();
2501 break; 2501 break;
2502 } 2502 }
2503 case RootLayerAttachedViaChromeClient: { 2503 case RootLayerAttachedViaChromeClient: {
2504 Frame* frame = m_renderView->frameView()->frame(); 2504 Frame& frame = m_renderView->frameView()->frame();
2505 Page* page = frame ? frame->page() : 0; 2505 Page* page = frame.page();
2506 if (!page) 2506 if (!page)
2507 return; 2507 return;
2508 page->chrome().client().attachRootGraphicsLayer(frame, 0); 2508 page->chrome().client().attachRootGraphicsLayer(&frame, 0);
2509 } 2509 }
2510 break; 2510 break;
2511 case RootLayerUnattached: 2511 case RootLayerUnattached:
2512 break; 2512 break;
2513 } 2513 }
2514 2514
2515 m_rootLayerAttachment = RootLayerUnattached; 2515 m_rootLayerAttachment = RootLayerUnattached;
2516 } 2516 }
2517 2517
2518 void RenderLayerCompositor::updateRootLayerAttachment() 2518 void RenderLayerCompositor::updateRootLayerAttachment()
2519 { 2519 {
2520 ensureRootLayer(); 2520 ensureRootLayer();
2521 } 2521 }
2522 2522
2523 bool RenderLayerCompositor::isMainFrame() const 2523 bool RenderLayerCompositor::isMainFrame() const
2524 { 2524 {
2525 return !m_renderView->document().ownerElement(); 2525 return !m_renderView->document().ownerElement();
2526 } 2526 }
2527 2527
2528 // IFrames are special, because we hook compositing layers together across ifram e boundaries 2528 // IFrames are special, because we hook compositing layers together across ifram e boundaries
2529 // when both parent and iframe content are composited. So when this frame become s composited, we have 2529 // when both parent and iframe content are composited. So when this frame become s composited, we have
2530 // to use a synthetic style change to get the iframes into RenderLayers in order to allow them to composite. 2530 // to use a synthetic style change to get the iframes into RenderLayers in order to allow them to composite.
2531 void RenderLayerCompositor::notifyIFramesOfCompositingChange() 2531 void RenderLayerCompositor::notifyIFramesOfCompositingChange()
2532 { 2532 {
2533 Frame* frame = m_renderView->frameView() ? m_renderView->frameView()->frame( ) : 0; 2533 if (!m_renderView->frameView())
2534 if (!frame)
2535 return; 2534 return;
2535 Frame& frame = m_renderView->frameView()->frame();
2536 2536
2537 for (Frame* child = frame->tree()->firstChild(); child; child = child->tree( )->traverseNext(frame)) { 2537 for (Frame* child = frame.tree()->firstChild(); child; child = child->tree() ->traverseNext(&frame)) {
2538 if (child->document() && child->document()->ownerElement()) 2538 if (child->document() && child->document()->ownerElement())
2539 child->document()->ownerElement()->scheduleLayerUpdate(); 2539 child->document()->ownerElement()->scheduleLayerUpdate();
2540 } 2540 }
2541 2541
2542 // Compositing also affects the answer to RenderIFrame::requiresAcceleratedC ompositing(), so 2542 // Compositing also affects the answer to RenderIFrame::requiresAcceleratedC ompositing(), so
2543 // we need to schedule a style recalc in our parent document. 2543 // we need to schedule a style recalc in our parent document.
2544 if (HTMLFrameOwnerElement* ownerElement = m_renderView->document().ownerElem ent()) 2544 if (HTMLFrameOwnerElement* ownerElement = m_renderView->document().ownerElem ent())
2545 ownerElement->scheduleLayerUpdate(); 2545 ownerElement->scheduleLayerUpdate();
2546 } 2546 }
2547 2547
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
2698 2698
2699 GraphicsLayerFactory* RenderLayerCompositor::graphicsLayerFactory() const 2699 GraphicsLayerFactory* RenderLayerCompositor::graphicsLayerFactory() const
2700 { 2700 {
2701 if (Page* page = this->page()) 2701 if (Page* page = this->page())
2702 return page->chrome().client().graphicsLayerFactory(); 2702 return page->chrome().client().graphicsLayerFactory();
2703 return 0; 2703 return 0;
2704 } 2704 }
2705 2705
2706 Page* RenderLayerCompositor::page() const 2706 Page* RenderLayerCompositor::page() const
2707 { 2707 {
2708 if (Frame* frame = m_renderView->frameView()->frame()) 2708 return m_renderView->frameView()->frame().page();
2709 return frame->page();
2710
2711 return 0;
2712 } 2709 }
2713 2710
2714 String RenderLayerCompositor::debugName(const GraphicsLayer* graphicsLayer) 2711 String RenderLayerCompositor::debugName(const GraphicsLayer* graphicsLayer)
2715 { 2712 {
2716 String name; 2713 String name;
2717 if (graphicsLayer == m_rootContentLayer.get()) { 2714 if (graphicsLayer == m_rootContentLayer.get()) {
2718 name = "Content Root Layer"; 2715 name = "Content Root Layer";
2719 #if ENABLE(RUBBER_BANDING) 2716 #if ENABLE(RUBBER_BANDING)
2720 } else if (graphicsLayer == m_layerForOverhangAreas.get()) { 2717 } else if (graphicsLayer == m_layerForOverhangAreas.get()) {
2721 name = "Overhang Areas Layer"; 2718 name = "Overhang Areas Layer";
(...skipping 13 matching lines...) Expand all
2735 } else if (graphicsLayer == m_scrollLayer.get()) { 2732 } else if (graphicsLayer == m_scrollLayer.get()) {
2736 name = "Frame Scrolling Layer"; 2733 name = "Frame Scrolling Layer";
2737 } else { 2734 } else {
2738 ASSERT_NOT_REACHED(); 2735 ASSERT_NOT_REACHED();
2739 } 2736 }
2740 2737
2741 return name; 2738 return name;
2742 } 2739 }
2743 2740
2744 } // namespace WebCore 2741 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderLayerBacking.cpp ('k') | Source/core/rendering/RenderTreeAsText.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698