summaryrefslogtreecommitdiffstats
path: root/content/utility/utility_thread_impl.h
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-14 23:29:48 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-14 23:29:48 +0000
commitac381f190519f153566503e5cba87e310c1a3f96 (patch)
tree4fa928efb7f8964738e06d2de5b71f33ffcebca4 /content/utility/utility_thread_impl.h
parent4e3ce3ba829b7b0251948538ff08010c312a8ec0 (diff)
downloadchromium_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.h72
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_