Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(517)

Side by Side Diff: content/common/content_client.h

Issue 8336007: Move content_client.h into content/public. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add back a needed include. Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/browser/tab_contents/tab_contents.cc ('k') | content/common/content_client.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011 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 #ifndef CONTENT_COMMON_CONTENT_CLIENT_H_
6 #define CONTENT_COMMON_CONTENT_CLIENT_H_
7 #pragma once
8
9 #include <string>
10 #include <vector>
11
12 #include "base/basictypes.h"
13 #include "base/string16.h"
14 #include "build/build_config.h"
15 #include "content/common/content_export.h"
16
17 class CommandLine;
18 class GURL;
19 struct GPUInfo;
20 struct PepperPluginInfo;
21
22 namespace IPC {
23 class Message;
24 }
25
26 namespace base {
27 class StringPiece;
28 }
29
30 namespace sandbox {
31 class TargetPolicy;
32 }
33
34 namespace content {
35
36 class ContentBrowserClient;
37 class ContentClient;
38 class ContentPluginClient;
39 class ContentRendererClient;
40 class ContentUtilityClient;
41
42 // Setter and getter for the client. The client should be set early, before any
43 // content code is called.
44 CONTENT_EXPORT void SetContentClient(ContentClient* client);
45 CONTENT_EXPORT ContentClient* GetContentClient();
46
47 // Returns the user agent string being used by the browser. SetContentClient()
48 // must be called prior to calling this, and this routine must be used
49 // instead of webkit_glue::GetUserAgent() in order to ensure that we use
50 // the same user agent string everywhere.
51 // TODO(dpranke): This is caused by webkit_glue being a library that can
52 // get linked into multiple linkable objects, causing us to have multiple
53 // static values of the user agent. This will be fixed when we clean up
54 // webkit_glue.
55 CONTENT_EXPORT const std::string& GetUserAgent(const GURL& url);
56
57 // Interface that the embedder implements.
58 class CONTENT_EXPORT ContentClient {
59 public:
60 ContentClient();
61 virtual ~ContentClient();
62
63 ContentBrowserClient* browser() { return browser_; }
64 void set_browser(ContentBrowserClient* c) { browser_ = c; }
65 ContentPluginClient* plugin() { return plugin_; }
66 void set_plugin(ContentPluginClient* p) { plugin_ = p; }
67 ContentRendererClient* renderer() { return renderer_; }
68 void set_renderer(ContentRendererClient* r) { renderer_ = r; }
69 ContentUtilityClient* utility() { return utility_; }
70 void set_utility(ContentUtilityClient* u) { utility_ = u; }
71
72 // Sets the currently active URL. Use GURL() to clear the URL.
73 virtual void SetActiveURL(const GURL& url) = 0;
74
75 // Sets the data on the current gpu.
76 virtual void SetGpuInfo(const GPUInfo& gpu_info) = 0;
77
78 // Gives the embedder a chance to register its own pepper plugins.
79 virtual void AddPepperPlugins(std::vector<PepperPluginInfo>* plugins) = 0;
80
81 // Returns whether the given message should be allowed to be sent from a
82 // swapped out renderer.
83 virtual bool CanSendWhileSwappedOut(const IPC::Message* msg) = 0;
84
85 // Returns whether the given message should be processed in the browser on
86 // behalf of a swapped out renderer.
87 virtual bool CanHandleWhileSwappedOut(const IPC::Message& msg) = 0;
88
89 // Returns the user agent and a flag indicating whether the returned
90 // string should always be used (if false, callers may override the
91 // value as needed to work around various user agent sniffing bugs).
92 virtual std::string GetUserAgent(bool *overriding) const = 0;
93
94 // Returns a string resource given its id.
95 virtual string16 GetLocalizedString(int message_id) const = 0;
96
97 // Return the contents of a resource in a StringPiece given the resource id.
98 virtual base::StringPiece GetDataResource(int resource_id) const = 0;
99
100 #if defined(OS_WIN)
101 // Allows the embedder to sandbox a plugin, and apply a custom policy.
102 virtual bool SandboxPlugin(CommandLine* command_line,
103 sandbox::TargetPolicy* policy) = 0;
104 #endif
105
106 private:
107 // The embedder API for participating in browser logic.
108 ContentBrowserClient* browser_;
109 // The embedder API for participating in plugin logic.
110 ContentPluginClient* plugin_;
111 // The embedder API for participating in renderer logic.
112 ContentRendererClient* renderer_;
113 // The embedder API for participating in utility logic.
114 ContentUtilityClient* utility_;
115 };
116
117 } // namespace content
118
119 #endif // CONTENT_COMMON_CONTENT_CLIENT_H_
OLDNEW
« no previous file with comments | « content/browser/tab_contents/tab_contents.cc ('k') | content/common/content_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698