// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_IMAGE_DECODER_IMAGE_DECODER_H_ #define CHROME_BROWSER_IMAGE_DECODER_IMAGE_DECODER_H_ #include <map> #include <string> #include <vector> #include "base/memory/raw_ptr.h" #include "base/memory/ref_counted.h" #include "base/no_destructor.h" #include "base/sequence_checker.h" #include "base/synchronization/lock.h" #include "base/task/sequenced_task_runner.h" #include "ui/gfx/geometry/size.h" namespace data_decoder { class DataDecoder; } // namespace data_decoder namespace gfx { class Size; } // namespace gfx class SkBitmap; // This is a helper class for decoding images safely in a sandboxed service. To // use this, call ImageDecoder::Start(...) or // ImageDecoder::StartWithOptions(...) on any thread. // // ImageRequest::OnImageDecoded or ImageRequest::OnDecodeImageFailed is posted // back to the |task_runner_| associated with the ImageRequest. // // The Cancel() method runs on whichever thread called it. // // TODO(rockot): Use of this class should be replaced with direct image_decoder // client library usage. class ImageDecoder { … }; #endif // CHROME_BROWSER_IMAGE_DECODER_IMAGE_DECODER_H_