Index: chrome/browser/image_decoder.h |
diff --git a/chrome/browser/image_decoder.h b/chrome/browser/image_decoder.h |
index 24f4d89bad6070486eb3b985f6a22b52143744f3..b1c9f19598dc8998f47f6f135667c341d073cc61 100644 |
--- a/chrome/browser/image_decoder.h |
+++ b/chrome/browser/image_decoder.h |
@@ -9,6 +9,7 @@ |
#include <vector> |
#include "base/compiler_specific.h" |
+#include "base/threading/sequenced_worker_pool.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/utility_process_host_client.h" |
@@ -42,9 +43,13 @@ class ImageDecoder : public content::UtilityProcessHostClient { |
const std::string& image_data, |
ImageCodec image_codec); |
- // Starts image decoding. |
+ // Starts image decoding on well-known threads. |
void Start(); |
+ // Starts image decoding on a sequence worker thread with a sequence token |
+ // |sequence_token|. |
+ void Start(const base::SequencedWorkerPool::SequenceToken& sequence_token); |
+ |
const std::vector<unsigned char>& get_image_data() const { |
return image_data_; |
} |
@@ -58,6 +63,10 @@ class ImageDecoder : public content::UtilityProcessHostClient { |
// Overidden from UtilityProcessHostClient: |
virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; |
+ // True if on valid thread or named worker thread associated with |
+ // |sequence_token_name_|. |
+ bool CalledOnValidThreadOrWorkerThread(); |
+ |
// IPC message handlers. |
void OnDecodeImageSucceeded(const SkBitmap& decoded_image); |
void OnDecodeImageFailed(); |
@@ -69,6 +78,8 @@ class ImageDecoder : public content::UtilityProcessHostClient { |
std::vector<unsigned char> image_data_; |
const ImageCodec image_codec_; |
content::BrowserThread::ID target_thread_id_; |
+ base::SequencedWorkerPool::SequenceToken sequence_token_; |
+ bool decode_on_sequence_worker_thread_; |
DISALLOW_COPY_AND_ASSIGN(ImageDecoder); |
}; |