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

Side by Side Diff: third_party/WebKit/Source/modules/budget/WorkerNavigatorBudget.cpp

Issue 2646383002: Use a new Supplement constructor for (Worker)Navigator supplements (Closed)
Patch Set: temp Created 3 years, 11 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 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/budget/WorkerNavigatorBudget.h" 5 #include "modules/budget/WorkerNavigatorBudget.h"
6 6
7 #include "core/workers/WorkerNavigator.h" 7 #include "core/workers/WorkerNavigator.h"
8 #include "modules/budget/BudgetService.h" 8 #include "modules/budget/BudgetService.h"
9 9
10 namespace blink { 10 namespace blink {
11 11
12 WorkerNavigatorBudget::WorkerNavigatorBudget() {} 12 WorkerNavigatorBudget::WorkerNavigatorBudget(WorkerNavigator& workerNavigator)
13 : Supplement<WorkerNavigator>(workerNavigator) {}
13 14
14 // static 15 // static
15 const char* WorkerNavigatorBudget::supplementName() { 16 const char* WorkerNavigatorBudget::supplementName() {
16 return "WorkerNavigatorBudget"; 17 return "WorkerNavigatorBudget";
17 } 18 }
18 19
19 // static 20 // static
20 WorkerNavigatorBudget& WorkerNavigatorBudget::from( 21 WorkerNavigatorBudget& WorkerNavigatorBudget::from(
21 WorkerNavigator& workerNavigator) { 22 WorkerNavigator& workerNavigator) {
22 // Get the unique WorkerNavigatorBudget associated with this workerNavigator. 23 // Get the unique WorkerNavigatorBudget associated with this workerNavigator.
23 WorkerNavigatorBudget* workerNavigatorBudget = 24 WorkerNavigatorBudget* workerNavigatorBudget =
24 static_cast<WorkerNavigatorBudget*>( 25 static_cast<WorkerNavigatorBudget*>(
25 Supplement<WorkerNavigator>::from(workerNavigator, supplementName())); 26 Supplement<WorkerNavigator>::from(workerNavigator, supplementName()));
26 if (!workerNavigatorBudget) { 27 if (!workerNavigatorBudget) {
27 // If there isn't one already, create it now and associate it. 28 // If there isn't one already, create it now and associate it.
28 workerNavigatorBudget = new WorkerNavigatorBudget(); 29 workerNavigatorBudget = new WorkerNavigatorBudget(workerNavigator);
29 Supplement<WorkerNavigator>::provideTo(workerNavigator, supplementName(), 30 Supplement<WorkerNavigator>::provideTo(workerNavigator, supplementName(),
30 workerNavigatorBudget); 31 workerNavigatorBudget);
31 } 32 }
32 return *workerNavigatorBudget; 33 return *workerNavigatorBudget;
33 } 34 }
34 35
35 BudgetService* WorkerNavigatorBudget::budget() { 36 BudgetService* WorkerNavigatorBudget::budget() {
36 if (!m_budget) 37 if (!m_budget)
37 m_budget = BudgetService::create(); 38 m_budget = BudgetService::create();
38 return m_budget.get(); 39 return m_budget.get();
39 } 40 }
40 41
41 // static 42 // static
42 BudgetService* WorkerNavigatorBudget::budget(WorkerNavigator& workerNavigator) { 43 BudgetService* WorkerNavigatorBudget::budget(WorkerNavigator& workerNavigator) {
43 return WorkerNavigatorBudget::from(workerNavigator).budget(); 44 return WorkerNavigatorBudget::from(workerNavigator).budget();
44 } 45 }
45 46
46 DEFINE_TRACE(WorkerNavigatorBudget) { 47 DEFINE_TRACE(WorkerNavigatorBudget) {
47 visitor->trace(m_budget); 48 visitor->trace(m_budget);
48 Supplement<WorkerNavigator>::trace(visitor); 49 Supplement<WorkerNavigator>::trace(visitor);
49 } 50 }
50 51
51 } // namespace blink 52 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698