1 // Copyright 2019 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "third_party/blink/renderer/platform/scheduler/public/web_scheduling_priority.h" 6 7 namespace blink { 8 9 namespace { 10 UserBlockingPriorityKeyword()11const AtomicString& UserBlockingPriorityKeyword() { 12 DEFINE_STATIC_LOCAL(const AtomicString, user_blocking_priority, 13 ("user-blocking")); 14 return user_blocking_priority; 15 } 16 UserVisiblePriorityKeyword()17const AtomicString& UserVisiblePriorityKeyword() { 18 DEFINE_STATIC_LOCAL(const AtomicString, user_visible_priority, 19 ("user-visible")); 20 return user_visible_priority; 21 } 22 BackgroundPriorityKeyword()23const AtomicString& BackgroundPriorityKeyword() { 24 DEFINE_STATIC_LOCAL(const AtomicString, background_priority, ("background")); 25 return background_priority; 26 } 27 28 } // namespace 29 WebSchedulingPriorityToString(WebSchedulingPriority priority)30AtomicString WebSchedulingPriorityToString(WebSchedulingPriority priority) { 31 switch (priority) { 32 case WebSchedulingPriority::kUserBlockingPriority: 33 return UserBlockingPriorityKeyword(); 34 case WebSchedulingPriority::kUserVisiblePriority: 35 return UserVisiblePriorityKeyword(); 36 case WebSchedulingPriority::kBackgroundPriority: 37 return BackgroundPriorityKeyword(); 38 } 39 40 NOTREACHED(); 41 return g_empty_atom; 42 } 43 WebSchedulingPriorityFromString(const AtomicString & priority)44WebSchedulingPriority WebSchedulingPriorityFromString( 45 const AtomicString& priority) { 46 if (priority == UserBlockingPriorityKeyword()) 47 return WebSchedulingPriority::kUserBlockingPriority; 48 if (priority == UserVisiblePriorityKeyword()) 49 return WebSchedulingPriority::kUserVisiblePriority; 50 if (priority == BackgroundPriorityKeyword()) 51 return WebSchedulingPriority::kBackgroundPriority; 52 NOTREACHED(); 53 return WebSchedulingPriority::kUserVisiblePriority; 54 } 55 56 } // namespace blink 57