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

Side by Side Diff: Source/core/page/Page.cpp

Issue 117703004: Free temporary GPU and memory resources held by inactive or hidden 2D canvases (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: fixed upstream git branch Created 7 years 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) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All R ights Reserved. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All R ights Reserved.
3 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 3 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 #include "core/page/PageGroup.h" 49 #include "core/page/PageGroup.h"
50 #include "core/page/PageLifecycleNotifier.h" 50 #include "core/page/PageLifecycleNotifier.h"
51 #include "core/page/PointerLockController.h" 51 #include "core/page/PointerLockController.h"
52 #include "core/frame/Settings.h" 52 #include "core/frame/Settings.h"
53 #include "core/page/ValidationMessageClient.h" 53 #include "core/page/ValidationMessageClient.h"
54 #include "core/page/scrolling/ScrollingCoordinator.h" 54 #include "core/page/scrolling/ScrollingCoordinator.h"
55 #include "core/rendering/RenderView.h" 55 #include "core/rendering/RenderView.h"
56 #include "core/rendering/TextAutosizer.h" 56 #include "core/rendering/TextAutosizer.h"
57 #include "core/storage/StorageNamespace.h" 57 #include "core/storage/StorageNamespace.h"
58 #include "core/workers/SharedWorkerRepositoryClient.h" 58 #include "core/workers/SharedWorkerRepositoryClient.h"
59 #include "platform/graphics/Canvas2DLayerManager.h"
59 #include "platform/plugins/PluginData.h" 60 #include "platform/plugins/PluginData.h"
60 #include "wtf/HashMap.h" 61 #include "wtf/HashMap.h"
61 #include "wtf/RefCountedLeakCounter.h" 62 #include "wtf/RefCountedLeakCounter.h"
62 #include "wtf/StdLibExtras.h" 63 #include "wtf/StdLibExtras.h"
63 #include "wtf/text/Base64.h" 64 #include "wtf/text/Base64.h"
64 65
65 namespace WebCore { 66 namespace WebCore {
66 67
67 static HashSet<Page*>* allPages; 68 static HashSet<Page*>* allPages;
68 69
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 if (visibilityState == WebCore::PageVisibilityStateHidden) 460 if (visibilityState == WebCore::PageVisibilityStateHidden)
460 setTimerAlignmentInterval(DOMTimer::hiddenPageAlignmentInterval()); 461 setTimerAlignmentInterval(DOMTimer::hiddenPageAlignmentInterval());
461 else 462 else
462 setTimerAlignmentInterval(DOMTimer::visiblePageAlignmentInterval()); 463 setTimerAlignmentInterval(DOMTimer::visiblePageAlignmentInterval());
463 464
464 if (!isInitialState) 465 if (!isInitialState)
465 lifecycleNotifier().notifyPageVisibilityChanged(); 466 lifecycleNotifier().notifyPageVisibilityChanged();
466 467
467 if (!isInitialState && m_mainFrame) 468 if (!isInitialState && m_mainFrame)
468 m_mainFrame->dispatchVisibilityStateChangeEvent(); 469 m_mainFrame->dispatchVisibilityStateChangeEvent();
470
471 if (visibilityState == WebCore::PageVisibilityStateHidden)
472 Canvas2DLayerManager::get().didHidePage();
469 } 473 }
470 474
471 PageVisibilityState Page::visibilityState() const 475 PageVisibilityState Page::visibilityState() const
472 { 476 {
473 return m_visibilityState; 477 return m_visibilityState;
474 } 478 }
475 479
476 void Page::addMultisamplingChangedObserver(MultisamplingChangedObserver* observe r) 480 void Page::addMultisamplingChangedObserver(MultisamplingChangedObserver* observe r)
477 { 481 {
478 m_multisamplingChangedObservers.add(observer); 482 m_multisamplingChangedObservers.add(observer);
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 , backForwardClient(0) 555 , backForwardClient(0)
552 , spellCheckerClient(0) 556 , spellCheckerClient(0)
553 { 557 {
554 } 558 }
555 559
556 Page::PageClients::~PageClients() 560 Page::PageClients::~PageClients()
557 { 561 {
558 } 562 }
559 563
560 } // namespace WebCore 564 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698