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

Side by Side Diff: third_party/WebKit/Source/modules/mediacapturefromelement/CanvasCaptureMediaStreamTrack.cpp

Issue 2583093002: Reduce SuspendableObjects (Closed)
Patch Set: Created 4 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "modules/mediacapturefromelement/CanvasCaptureMediaStreamTrack.h" 5 #include "modules/mediacapturefromelement/CanvasCaptureMediaStreamTrack.h"
6 6
7 #include "core/html/HTMLCanvasElement.h" 7 #include "core/html/HTMLCanvasElement.h"
8 #include "modules/mediacapturefromelement/AutoCanvasDrawListener.h" 8 #include "modules/mediacapturefromelement/AutoCanvasDrawListener.h"
9 #include "modules/mediacapturefromelement/OnRequestCanvasDrawListener.h" 9 #include "modules/mediacapturefromelement/OnRequestCanvasDrawListener.h"
10 #include "modules/mediacapturefromelement/TimedCanvasDrawListener.h" 10 #include "modules/mediacapturefromelement/TimedCanvasDrawListener.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 visitor->trace(m_drawListener); 52 visitor->trace(m_drawListener);
53 MediaStreamTrack::trace(visitor); 53 MediaStreamTrack::trace(visitor);
54 } 54 }
55 55
56 CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack( 56 CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack(
57 const CanvasCaptureMediaStreamTrack& track, 57 const CanvasCaptureMediaStreamTrack& track,
58 MediaStreamComponent* component) 58 MediaStreamComponent* component)
59 : MediaStreamTrack(track.m_canvasElement->getExecutionContext(), component), 59 : MediaStreamTrack(track.m_canvasElement->getExecutionContext(), component),
60 m_canvasElement(track.m_canvasElement), 60 m_canvasElement(track.m_canvasElement),
61 m_drawListener(track.m_drawListener) { 61 m_drawListener(track.m_drawListener) {
62 suspendIfNeeded();
63 m_canvasElement->addListener(m_drawListener.get()); 62 m_canvasElement->addListener(m_drawListener.get());
64 } 63 }
65 64
66 CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack( 65 CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack(
67 MediaStreamComponent* component, 66 MediaStreamComponent* component,
68 HTMLCanvasElement* element, 67 HTMLCanvasElement* element,
69 std::unique_ptr<WebCanvasCaptureHandler> handler) 68 std::unique_ptr<WebCanvasCaptureHandler> handler)
70 : MediaStreamTrack(element->getExecutionContext(), component), 69 : MediaStreamTrack(element->getExecutionContext(), component),
71 m_canvasElement(element) { 70 m_canvasElement(element) {
72 suspendIfNeeded();
73 m_drawListener = AutoCanvasDrawListener::create(std::move(handler)); 71 m_drawListener = AutoCanvasDrawListener::create(std::move(handler));
74 m_canvasElement->addListener(m_drawListener.get()); 72 m_canvasElement->addListener(m_drawListener.get());
75 } 73 }
76 74
77 CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack( 75 CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack(
78 MediaStreamComponent* component, 76 MediaStreamComponent* component,
79 HTMLCanvasElement* element, 77 HTMLCanvasElement* element,
80 std::unique_ptr<WebCanvasCaptureHandler> handler, 78 std::unique_ptr<WebCanvasCaptureHandler> handler,
81 double frameRate) 79 double frameRate)
82 : MediaStreamTrack(element->getExecutionContext(), component), 80 : MediaStreamTrack(element->getExecutionContext(), component),
83 m_canvasElement(element) { 81 m_canvasElement(element) {
84 suspendIfNeeded();
85 if (frameRate == 0) { 82 if (frameRate == 0) {
86 m_drawListener = OnRequestCanvasDrawListener::create(std::move(handler)); 83 m_drawListener = OnRequestCanvasDrawListener::create(std::move(handler));
87 } else { 84 } else {
88 m_drawListener = 85 m_drawListener =
89 TimedCanvasDrawListener::create(std::move(handler), frameRate); 86 TimedCanvasDrawListener::create(std::move(handler), frameRate);
90 } 87 }
91 m_canvasElement->addListener(m_drawListener.get()); 88 m_canvasElement->addListener(m_drawListener.get());
92 } 89 }
93 90
94 } // namespace blink 91 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698