| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 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 "ios/web/web_thread_adapter.h" | |
| 6 | |
| 7 #include "content/public/browser/browser_thread.h" | |
| 8 | |
| 9 namespace web { | |
| 10 | |
| 11 namespace { | |
| 12 | |
| 13 WebThread::ID WebThreadIDFromBrowserThreadID( | |
| 14 content::BrowserThread::ID identifier) { | |
| 15 switch (identifier) { | |
| 16 case content::BrowserThread::UI: | |
| 17 return WebThread::UI; | |
| 18 case content::BrowserThread::DB: | |
| 19 return WebThread::DB; | |
| 20 case content::BrowserThread::FILE: | |
| 21 return WebThread::FILE; | |
| 22 case content::BrowserThread::FILE_USER_BLOCKING: | |
| 23 return WebThread::FILE_USER_BLOCKING; | |
| 24 case content::BrowserThread::CACHE: | |
| 25 return WebThread::CACHE; | |
| 26 case content::BrowserThread::IO: | |
| 27 return WebThread::IO; | |
| 28 default: | |
| 29 NOTREACHED() << "Unknown content::BrowserThread::ID: " << identifier; | |
| 30 return WebThread::UI; | |
| 31 } | |
| 32 } | |
| 33 | |
| 34 } // namespace | |
| 35 | |
| 36 content::BrowserThread::ID BrowserThreadIDFromWebThreadID( | |
| 37 WebThread::ID identifier) { | |
| 38 switch (identifier) { | |
| 39 case WebThread::UI: | |
| 40 return content::BrowserThread::UI; | |
| 41 case WebThread::DB: | |
| 42 return content::BrowserThread::DB; | |
| 43 case WebThread::FILE: | |
| 44 return content::BrowserThread::FILE; | |
| 45 case WebThread::FILE_USER_BLOCKING: | |
| 46 return content::BrowserThread::FILE_USER_BLOCKING; | |
| 47 case WebThread::CACHE: | |
| 48 return content::BrowserThread::CACHE; | |
| 49 case WebThread::IO: | |
| 50 return content::BrowserThread::IO; | |
| 51 default: | |
| 52 NOTREACHED() << "Unknown web::WebThread::ID: " << identifier; | |
| 53 return content::BrowserThread::UI; | |
| 54 } | |
| 55 } | |
| 56 | |
| 57 #pragma mark - web_thread.h implementation | |
| 58 | |
| 59 // static | |
| 60 bool WebThread::PostTask(ID identifier, | |
| 61 const tracked_objects::Location& from_here, | |
| 62 const base::Closure& task) { | |
| 63 return content::BrowserThread::PostTask( | |
| 64 BrowserThreadIDFromWebThreadID(identifier), from_here, task); | |
| 65 } | |
| 66 | |
| 67 // static | |
| 68 bool WebThread::PostDelayedTask(ID identifier, | |
| 69 const tracked_objects::Location& from_here, | |
| 70 const base::Closure& task, | |
| 71 base::TimeDelta delay) { | |
| 72 return content::BrowserThread::PostDelayedTask( | |
| 73 BrowserThreadIDFromWebThreadID(identifier), from_here, task, delay); | |
| 74 } | |
| 75 | |
| 76 // static | |
| 77 bool WebThread::PostNonNestableTask(ID identifier, | |
| 78 const tracked_objects::Location& from_here, | |
| 79 const base::Closure& task) { | |
| 80 return content::BrowserThread::PostNonNestableTask( | |
| 81 BrowserThreadIDFromWebThreadID(identifier), from_here, task); | |
| 82 } | |
| 83 | |
| 84 // static | |
| 85 bool WebThread::PostNonNestableDelayedTask( | |
| 86 ID identifier, | |
| 87 const tracked_objects::Location& from_here, | |
| 88 const base::Closure& task, | |
| 89 base::TimeDelta delay) { | |
| 90 return content::BrowserThread::PostNonNestableDelayedTask( | |
| 91 BrowserThreadIDFromWebThreadID(identifier), from_here, task, delay); | |
| 92 } | |
| 93 | |
| 94 // static | |
| 95 bool WebThread::PostTaskAndReply(ID identifier, | |
| 96 const tracked_objects::Location& from_here, | |
| 97 const base::Closure& task, | |
| 98 const base::Closure& reply) { | |
| 99 return content::BrowserThread::PostTaskAndReply( | |
| 100 BrowserThreadIDFromWebThreadID(identifier), from_here, task, reply); | |
| 101 } | |
| 102 | |
| 103 // static | |
| 104 bool WebThread::PostBlockingPoolTask(const tracked_objects::Location& from_here, | |
| 105 const base::Closure& task) { | |
| 106 return content::BrowserThread::PostBlockingPoolTask(from_here, task); | |
| 107 } | |
| 108 | |
| 109 // static | |
| 110 bool WebThread::PostBlockingPoolTaskAndReply( | |
| 111 const tracked_objects::Location& from_here, | |
| 112 const base::Closure& task, | |
| 113 const base::Closure& reply) { | |
| 114 return content::BrowserThread::PostBlockingPoolTaskAndReply(from_here, task, | |
| 115 reply); | |
| 116 } | |
| 117 | |
| 118 // static | |
| 119 bool WebThread::PostBlockingPoolSequencedTask( | |
| 120 const std::string& sequence_token_name, | |
| 121 const tracked_objects::Location& from_here, | |
| 122 const base::Closure& task) { | |
| 123 return content::BrowserThread::PostBlockingPoolSequencedTask( | |
| 124 sequence_token_name, from_here, task); | |
| 125 } | |
| 126 | |
| 127 // static | |
| 128 base::SequencedWorkerPool* WebThread::GetBlockingPool() { | |
| 129 return content::BrowserThread::GetBlockingPool(); | |
| 130 } | |
| 131 | |
| 132 // static | |
| 133 base::MessageLoop* WebThread::UnsafeGetMessageLoopForThread(ID identifier) { | |
| 134 return content::BrowserThread::UnsafeGetMessageLoopForThread( | |
| 135 BrowserThreadIDFromWebThreadID(identifier)); | |
| 136 } | |
| 137 | |
| 138 // static | |
| 139 bool WebThread::IsThreadInitialized(ID identifier) { | |
| 140 return content::BrowserThread::IsThreadInitialized( | |
| 141 BrowserThreadIDFromWebThreadID(identifier)); | |
| 142 } | |
| 143 | |
| 144 // static | |
| 145 bool WebThread::CurrentlyOn(ID identifier) { | |
| 146 return content::BrowserThread::CurrentlyOn( | |
| 147 BrowserThreadIDFromWebThreadID(identifier)); | |
| 148 } | |
| 149 | |
| 150 // static | |
| 151 bool WebThread::IsMessageLoopValid(ID identifier) { | |
| 152 return content::BrowserThread::IsMessageLoopValid( | |
| 153 BrowserThreadIDFromWebThreadID(identifier)); | |
| 154 } | |
| 155 | |
| 156 // static | |
| 157 bool WebThread::GetCurrentThreadIdentifier(ID* identifier) { | |
| 158 content::BrowserThread::ID content_identifier; | |
| 159 bool result = | |
| 160 content::BrowserThread::GetCurrentThreadIdentifier(&content_identifier); | |
| 161 if (result) | |
| 162 *identifier = WebThreadIDFromBrowserThreadID(content_identifier); | |
| 163 return result; | |
| 164 } | |
| 165 | |
| 166 // static | |
| 167 scoped_refptr<base::SingleThreadTaskRunner> WebThread::GetTaskRunnerForThread( | |
| 168 ID identifier) { | |
| 169 return content::BrowserThread::GetMessageLoopProxyForThread( | |
| 170 BrowserThreadIDFromWebThreadID(identifier)); | |
| 171 } | |
| 172 | |
| 173 // static | |
| 174 std::string WebThread::GetDCheckCurrentlyOnErrorMessage(ID expected) { | |
| 175 return content::BrowserThread::GetDCheckCurrentlyOnErrorMessage( | |
| 176 BrowserThreadIDFromWebThreadID(expected)); | |
| 177 } | |
| 178 | |
| 179 } // namespace web | |
| OLD | NEW |