diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-14 23:29:48 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-14 23:29:48 +0000 |
commit | ac381f190519f153566503e5cba87e310c1a3f96 (patch) | |
tree | 4fa928efb7f8964738e06d2de5b71f33ffcebca4 /content/utility/utility_thread_impl.h | |
parent | 4e3ce3ba829b7b0251948538ff08010c312a8ec0 (diff) | |
download | chromium_src-ac381f190519f153566503e5cba87e310c1a3f96.zip chromium_src-ac381f190519f153566503e5cba87e310c1a3f96.tar.gz chromium_src-ac381f190519f153566503e5cba87e310c1a3f96.tar.bz2 |
Create content::UtilityThread interface and make chrome code use that. This interface is implemented
by the UtilityThreadImpl class in content\utility\utility_thread_impl.cc/.h which are renamed incarnations
of the content\utility\utility_thread.cc/.h files.
Changes as part of creating a content API.
BUG=98716
TEST=No change in functionality.
Review URL: http://codereview.chromium.org/8276026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105610 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/utility/utility_thread_impl.h')
-rw-r--r-- | content/utility/utility_thread_impl.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/content/utility/utility_thread_impl.h b/content/utility/utility_thread_impl.h new file mode 100644 index 0000000..3af6c32 --- /dev/null +++ b/content/utility/utility_thread_impl.h @@ -0,0 +1,72 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_UTILITY_UTILITY_THREAD_IMPL_H_ +#define CONTENT_UTILITY_UTILITY_THREAD_IMPL_H_ +#pragma once + +#include <string> +#include <vector> + +#include "base/basictypes.h" +#include "base/compiler_specific.h" +#include "base/string16.h" +#include "content/common/child_thread.h" +#include "content/common/content_export.h" +#include "content/public/utility/utility_thread.h" + +class FilePath; +class IndexedDBKey; +class SerializedScriptValue; + +namespace webkit { +struct WebPluginInfo; +} + +namespace webkit_glue { +class WebKitPlatformSupportImpl; +} + +// This class represents the background thread where the utility task runs. +class UtilityThreadImpl : public content::UtilityThread, + public ChildThread { + public: + UtilityThreadImpl(); + virtual ~UtilityThreadImpl(); + + virtual bool Send(IPC::Message* msg) OVERRIDE; + + virtual void ReleaseProcessIfNeeded() OVERRIDE; + + private: + // ChildThread implementation. + virtual bool OnControlMessageReceived(const IPC::Message& msg) OVERRIDE; + + // IPC message handlers. + void OnIDBKeysFromValuesAndKeyPath( + int id, + const std::vector<SerializedScriptValue>& serialized_script_values, + const string16& idb_key_path); + void OnInjectIDBKey(const IndexedDBKey& key, + const SerializedScriptValue& value, + const string16& key_path); + void OnBatchModeStarted(); + void OnBatchModeFinished(); + +#if defined(OS_POSIX) + void OnLoadPlugins( + const std::vector<FilePath>& extra_plugin_paths, + const std::vector<FilePath>& extra_plugin_dirs, + const std::vector<webkit::WebPluginInfo>& internal_plugins); +#endif // OS_POSIX + + // True when we're running in batch mode. + bool batch_mode_; + + scoped_ptr<webkit_glue::WebKitPlatformSupportImpl> webkit_platform_support_; + + DISALLOW_COPY_AND_ASSIGN(UtilityThreadImpl); +}; + +#endif // CONTENT_UTILITY_UTILITY_THREAD_IMPL_H_ |