summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/browser_init.cc1
-rw-r--r--chrome/browser/browser_process_impl.cc204
-rw-r--r--chrome/browser/browser_process_impl.h189
-rw-r--r--chrome/browser/plugin_service.h1
-rw-r--r--chrome/browser/renderer_host/resource_message_filter.cc1
-rw-r--r--chrome/common/visitedlink_common.cc5
-rw-r--r--chrome/common/visitedlink_common.h9
-rw-r--r--chrome/renderer/render_thread.cc13
-rw-r--r--chrome/renderer/render_thread.h16
-rw-r--r--chrome_frame/test/net/fake_external_tab.cc1
10 files changed, 236 insertions, 204 deletions
diff --git a/chrome/browser/browser_init.cc b/chrome/browser/browser_init.cc
index e5b15e2..1ac7f7b 100644
--- a/chrome/browser/browser_init.cc
+++ b/chrome/browser/browser_init.cc
@@ -14,6 +14,7 @@
#include "base/path_service.h"
#include "base/scoped_ptr.h"
#include "chrome/browser/automation/automation_provider.h"
+#include "chrome/browser/automation/automation_provider_list.h"
#include "chrome/browser/automation/chrome_frame_automation_provider.h"
#include "chrome/browser/browser_list.h"
#include "chrome/browser/browser_process.h"
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
index 2fac31a..0e6a96fa 100644
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -14,6 +14,7 @@
#include "base/thread.h"
#include "base/waitable_event.h"
#include "chrome/browser/appcache/chrome_appcache_service.h"
+#include "chrome/browser/automation/automation_provider_list.h"
#include "chrome/browser/browser_child_process_host.h"
#include "chrome/browser/browser_list.h"
#include "chrome/browser/browser_main.h"
@@ -262,6 +263,135 @@ void BrowserProcessImpl::EndSession() {
MessageLoop::current()->Run();
}
+ResourceDispatcherHost* BrowserProcessImpl::resource_dispatcher_host() {
+ DCHECK(CalledOnValidThread());
+ if (!created_resource_dispatcher_host_)
+ CreateResourceDispatcherHost();
+ return resource_dispatcher_host_.get();
+}
+
+MetricsService* BrowserProcessImpl::metrics_service() {
+ DCHECK(CalledOnValidThread());
+ if (!created_metrics_service_)
+ CreateMetricsService();
+ return metrics_service_.get();
+}
+
+IOThread* BrowserProcessImpl::io_thread() {
+ DCHECK(CalledOnValidThread());
+ if (!created_io_thread_)
+ CreateIOThread();
+ return io_thread_.get();
+}
+
+base::Thread* BrowserProcessImpl::file_thread() {
+ DCHECK(CalledOnValidThread());
+ if (!created_file_thread_)
+ CreateFileThread();
+ return file_thread_.get();
+}
+
+base::Thread* BrowserProcessImpl::db_thread() {
+ DCHECK(CalledOnValidThread());
+ if (!created_db_thread_)
+ CreateDBThread();
+ return db_thread_.get();
+}
+
+base::Thread* BrowserProcessImpl::process_launcher_thread() {
+ DCHECK(CalledOnValidThread());
+ if (!created_process_launcher_thread_)
+ CreateProcessLauncherThread();
+ return process_launcher_thread_.get();
+}
+
+base::Thread* BrowserProcessImpl::cache_thread() {
+ DCHECK(CalledOnValidThread());
+ if (!created_cache_thread_)
+ CreateCacheThread();
+ return cache_thread_.get();
+}
+
+#if defined(USE_X11)
+base::Thread* BrowserProcessImpl::background_x11_thread() {
+ DCHECK(CalledOnValidThread());
+ // The BACKGROUND_X11 thread is created when the IO thread is created.
+ if (!created_io_thread_)
+ CreateIOThread();
+ return background_x11_thread_.get();
+}
+#endif
+
+ProfileManager* BrowserProcessImpl::profile_manager() {
+ DCHECK(CalledOnValidThread());
+ if (!created_profile_manager_)
+ CreateProfileManager();
+ return profile_manager_.get();
+}
+
+PrefService* BrowserProcessImpl::local_state() {
+ DCHECK(CalledOnValidThread());
+ if (!created_local_state_)
+ CreateLocalState();
+ return local_state_.get();
+}
+
+DevToolsManager* BrowserProcessImpl::devtools_manager() {
+ DCHECK(CalledOnValidThread());
+ if (!created_devtools_manager_)
+ CreateDevToolsManager();
+ return devtools_manager_.get();
+}
+
+Clipboard* BrowserProcessImpl::clipboard() {
+ DCHECK(CalledOnValidThread());
+ return clipboard_.get();
+}
+
+NotificationUIManager* BrowserProcessImpl::notification_ui_manager() {
+ DCHECK(CalledOnValidThread());
+ if (!created_notification_ui_manager_)
+ CreateNotificationUIManager();
+ return notification_ui_manager_.get();
+}
+
+StatusTrayManager* BrowserProcessImpl::status_tray_manager() {
+ DCHECK(CalledOnValidThread());
+ if (!status_tray_manager_.get())
+ CreateStatusTrayManager();
+ return status_tray_manager_.get();
+}
+
+IconManager* BrowserProcessImpl::icon_manager() {
+ DCHECK(CalledOnValidThread());
+ if (!created_icon_manager_)
+ CreateIconManager();
+ return icon_manager_.get();
+}
+
+ThumbnailGenerator* BrowserProcessImpl::GetThumbnailGenerator() {
+ return &thumbnail_generator_;
+}
+
+AutomationProviderList* BrowserProcessImpl::InitAutomationProviderList() {
+ DCHECK(CalledOnValidThread());
+ if (automation_provider_list_.get() == NULL) {
+ automation_provider_list_.reset(AutomationProviderList::GetInstance());
+ }
+ return automation_provider_list_.get();
+}
+
+void BrowserProcessImpl::InitDebuggerWrapper(int port, bool useHttp) {
+ DCHECK(CalledOnValidThread());
+ if (!created_debugger_wrapper_)
+ CreateDebuggerWrapper(port, useHttp);
+}
+
+bool BrowserProcessImpl::IsShuttingDown() {
+ DCHECK(CalledOnValidThread());
+ return did_start_ && 0 == module_ref_count_;
+}
+
printing::PrintJobManager* BrowserProcessImpl::print_job_manager() {
// TODO(abarth): DCHECK(CalledOnValidThread());
// http://code.google.com/p/chromium/issues/detail?id=6828
@@ -271,6 +401,60 @@ printing::PrintJobManager* BrowserProcessImpl::print_job_manager() {
return print_job_manager_.get();
}
+GoogleURLTracker* BrowserProcessImpl::google_url_tracker() {
+ DCHECK(CalledOnValidThread());
+ if (!google_url_tracker_.get())
+ CreateGoogleURLTracker();
+ return google_url_tracker_.get();
+}
+
+IntranetRedirectDetector* BrowserProcessImpl::intranet_redirect_detector() {
+ DCHECK(CalledOnValidThread());
+ if (!intranet_redirect_detector_.get())
+ CreateIntranetRedirectDetector();
+ return intranet_redirect_detector_.get();
+}
+
+const std::string& BrowserProcessImpl::GetApplicationLocale() {
+ DCHECK(!locale_.empty());
+ return locale_;
+}
+
+void BrowserProcessImpl::SetApplicationLocale(const std::string& locale) {
+ locale_ = locale;
+ extension_l10n_util::SetProcessLocale(locale);
+}
+
+base::WaitableEvent* BrowserProcessImpl::shutdown_event() {
+ return shutdown_event_.get();
+}
+
+TabCloseableStateWatcher* BrowserProcessImpl::tab_closeable_state_watcher() {
+ DCHECK(CalledOnValidThread());
+ if (!tab_closeable_state_watcher_.get())
+ CreateTabCloseableStateWatcher();
+ return tab_closeable_state_watcher_.get();
+}
+
+void BrowserProcessImpl::CheckForInspectorFiles() {
+ file_thread()->message_loop()->PostTask
+ (FROM_HERE,
+ NewRunnableMethod(this, &BrowserProcessImpl::DoInspectorFilesCheck));
+}
+
+#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
+void BrowserProcessImpl::StartAutoupdateTimer() {
+ autoupdate_timer_.Start(
+ base::TimeDelta::FromHours(kUpdateCheckIntervalHours),
+ this,
+ &BrowserProcessImpl::OnAutoupdateTimer);
+}
+#endif
+
+bool BrowserProcessImpl::have_inspector_files() const {
+ return have_inspector_files_;
+}
+
void BrowserProcessImpl::ClearLocalState(const FilePath& profile_path) {
SQLitePersistentCookieStore::ClearLocalState(profile_path.Append(
chrome::kCookieFilename));
@@ -456,11 +640,6 @@ void BrowserProcessImpl::CreateNotificationUIManager() {
created_notification_ui_manager_ = true;
}
-void BrowserProcessImpl::SetApplicationLocale(const std::string& locale) {
- locale_ = locale;
- extension_l10n_util::SetProcessLocale(locale);
-}
-
void BrowserProcessImpl::CreateStatusTrayManager() {
DCHECK(status_tray_manager_.get() == NULL);
status_tray_manager_.reset(new StatusTrayManager());
@@ -475,21 +654,6 @@ void BrowserProcessImpl::CreateTabCloseableStateWatcher() {
// which don't do any management.
DISABLE_RUNNABLE_METHOD_REFCOUNT(BrowserProcessImpl);
-void BrowserProcessImpl::CheckForInspectorFiles() {
- file_thread()->message_loop()->PostTask
- (FROM_HERE,
- NewRunnableMethod(this, &BrowserProcessImpl::DoInspectorFilesCheck));
-}
-
-#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
-void BrowserProcessImpl::StartAutoupdateTimer() {
- autoupdate_timer_.Start(
- base::TimeDelta::FromHours(kUpdateCheckIntervalHours),
- this,
- &BrowserProcessImpl::OnAutoupdateTimer);
-}
-#endif
-
#if defined(IPC_MESSAGE_LOG_ENABLED)
void BrowserProcessImpl::SetIPCLoggingEnabled(bool enable) {
diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h
index 25ddb4e..65ec61b 100644
--- a/chrome/browser/browser_process_impl.h
+++ b/chrome/browser/browser_process_impl.h
@@ -17,7 +17,6 @@
#include "base/non_thread_safe.h"
#include "base/timer.h"
#include "base/scoped_ptr.h"
-#include "chrome/browser/automation/automation_provider_list.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/tab_contents/thumbnail_generator.h"
#include "ipc/ipc_message.h"
@@ -36,181 +35,43 @@ class BrowserProcessImpl : public BrowserProcess, public NonThreadSafe {
virtual void EndSession();
- virtual ResourceDispatcherHost* resource_dispatcher_host() {
- DCHECK(CalledOnValidThread());
- if (!created_resource_dispatcher_host_)
- CreateResourceDispatcherHost();
- return resource_dispatcher_host_.get();
- }
-
- virtual MetricsService* metrics_service() {
- DCHECK(CalledOnValidThread());
- if (!created_metrics_service_)
- CreateMetricsService();
- return metrics_service_.get();
- }
-
- virtual IOThread* io_thread() {
- DCHECK(CalledOnValidThread());
- if (!created_io_thread_)
- CreateIOThread();
- return io_thread_.get();
- }
-
- virtual base::Thread* file_thread() {
- DCHECK(CalledOnValidThread());
- if (!created_file_thread_)
- CreateFileThread();
- return file_thread_.get();
- }
-
- virtual base::Thread* db_thread() {
- DCHECK(CalledOnValidThread());
- if (!created_db_thread_)
- CreateDBThread();
- return db_thread_.get();
- }
-
- virtual base::Thread* process_launcher_thread() {
- DCHECK(CalledOnValidThread());
- if (!created_process_launcher_thread_)
- CreateProcessLauncherThread();
- return process_launcher_thread_.get();
- }
-
- virtual base::Thread* cache_thread() {
- DCHECK(CalledOnValidThread());
- if (!created_cache_thread_)
- CreateCacheThread();
- return cache_thread_.get();
- }
-
+ virtual ResourceDispatcherHost* resource_dispatcher_host();
+ virtual MetricsService* metrics_service();
+ virtual IOThread* io_thread();
+ virtual base::Thread* file_thread();
+ virtual base::Thread* db_thread();
+ virtual base::Thread* process_launcher_thread();
+ virtual base::Thread* cache_thread();
#if defined(USE_X11)
- virtual base::Thread* background_x11_thread() {
- DCHECK(CalledOnValidThread());
- // The BACKGROUND_X11 thread is created when the IO thread is created.
- if (!created_io_thread_)
- CreateIOThread();
- return background_x11_thread_.get();
- }
+ virtual base::Thread* background_x11_thread();
#endif
-
- virtual ProfileManager* profile_manager() {
- DCHECK(CalledOnValidThread());
- if (!created_profile_manager_)
- CreateProfileManager();
- return profile_manager_.get();
- }
-
- virtual PrefService* local_state() {
- DCHECK(CalledOnValidThread());
- if (!created_local_state_)
- CreateLocalState();
- return local_state_.get();
- }
-
- virtual DevToolsManager* devtools_manager() {
- DCHECK(CalledOnValidThread());
- if (!created_devtools_manager_)
- CreateDevToolsManager();
- return devtools_manager_.get();
- }
-
- virtual Clipboard* clipboard() {
- DCHECK(CalledOnValidThread());
- return clipboard_.get();
- }
-
- virtual NotificationUIManager* notification_ui_manager() {
- DCHECK(CalledOnValidThread());
- if (!created_notification_ui_manager_)
- CreateNotificationUIManager();
- return notification_ui_manager_.get();
- }
-
- virtual StatusTrayManager* status_tray_manager() {
- DCHECK(CalledOnValidThread());
- if (!status_tray_manager_.get())
- CreateStatusTrayManager();
- return status_tray_manager_.get();
- }
-
- virtual IconManager* icon_manager() {
- DCHECK(CalledOnValidThread());
- if (!created_icon_manager_)
- CreateIconManager();
- return icon_manager_.get();
- }
-
- virtual ThumbnailGenerator* GetThumbnailGenerator() {
- return &thumbnail_generator_;
- }
-
- virtual AutomationProviderList* InitAutomationProviderList() {
- DCHECK(CalledOnValidThread());
- if (automation_provider_list_.get() == NULL) {
- automation_provider_list_.reset(AutomationProviderList::GetInstance());
- }
- return automation_provider_list_.get();
- }
-
- virtual void InitDebuggerWrapper(int port, bool useHttp) {
- DCHECK(CalledOnValidThread());
- if (!created_debugger_wrapper_)
- CreateDebuggerWrapper(port, useHttp);
- }
-
+ virtual ProfileManager* profile_manager();
+ virtual PrefService* local_state();
+ virtual DevToolsManager* devtools_manager();
+ virtual Clipboard* clipboard();
+ virtual NotificationUIManager* notification_ui_manager();
+ virtual StatusTrayManager* status_tray_manager();
+ virtual IconManager* icon_manager();
+ virtual ThumbnailGenerator* GetThumbnailGenerator();
+ virtual AutomationProviderList* InitAutomationProviderList();
+ virtual void InitDebuggerWrapper(int port, bool useHttp);
virtual unsigned int AddRefModule();
-
virtual unsigned int ReleaseModule();
-
- virtual bool IsShuttingDown() {
- DCHECK(CalledOnValidThread());
- return did_start_ && 0 == module_ref_count_;
- }
-
+ virtual bool IsShuttingDown();
virtual printing::PrintJobManager* print_job_manager();
-
- virtual GoogleURLTracker* google_url_tracker() {
- DCHECK(CalledOnValidThread());
- if (!google_url_tracker_.get())
- CreateGoogleURLTracker();
- return google_url_tracker_.get();
- }
-
- virtual IntranetRedirectDetector* intranet_redirect_detector() {
- DCHECK(CalledOnValidThread());
- if (!intranet_redirect_detector_.get())
- CreateIntranetRedirectDetector();
- return intranet_redirect_detector_.get();
- }
-
- virtual const std::string& GetApplicationLocale() {
- DCHECK(!locale_.empty());
- return locale_;
- }
+ virtual GoogleURLTracker* google_url_tracker();
+ virtual IntranetRedirectDetector* intranet_redirect_detector();
+ virtual const std::string& GetApplicationLocale();
virtual void SetApplicationLocale(const std::string& locale);
-
- virtual base::WaitableEvent* shutdown_event() {
- return shutdown_event_.get();
- }
-
- virtual TabCloseableStateWatcher* tab_closeable_state_watcher() {
- DCHECK(CalledOnValidThread());
- if (!tab_closeable_state_watcher_.get())
- CreateTabCloseableStateWatcher();
- return tab_closeable_state_watcher_.get();
- }
-
+ virtual base::WaitableEvent* shutdown_event();
+ virtual TabCloseableStateWatcher* tab_closeable_state_watcher();
virtual void CheckForInspectorFiles();
#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS)
void StartAutoupdateTimer();
#endif
- virtual bool have_inspector_files() const {
- return have_inspector_files_;
- }
+ virtual bool have_inspector_files() const;
#if defined(IPC_MESSAGE_LOG_ENABLED)
virtual void SetIPCLoggingEnabled(bool enable);
diff --git a/chrome/browser/plugin_service.h b/chrome/browser/plugin_service.h
index 0d90bd4..cd81b44 100644
--- a/chrome/browser/plugin_service.h
+++ b/chrome/browser/plugin_service.h
@@ -17,7 +17,6 @@
#include "base/ref_counted.h"
#include "base/singleton.h"
#include "base/waitable_event_watcher.h"
-#include "chrome/browser/browser_process.h"
#include "chrome/common/notification_observer.h"
#include "chrome/common/notification_registrar.h"
#include "googleurl/src/gurl.h"
diff --git a/chrome/browser/renderer_host/resource_message_filter.cc b/chrome/browser/renderer_host/resource_message_filter.cc
index ca9d668..bb6db3c 100644
--- a/chrome/browser/renderer_host/resource_message_filter.cc
+++ b/chrome/browser/renderer_host/resource_message_filter.cc
@@ -20,6 +20,7 @@
#include "base/worker_pool.h"
#include "chrome/browser/appcache/appcache_dispatcher_host.h"
#include "chrome/browser/browser_about_handler.h"
+#include "chrome/browser/browser_process.h"
#include "chrome/browser/child_process_security_policy.h"
#include "chrome/browser/chrome_plugin_browsing_context.h"
#include "chrome/browser/chrome_thread.h"
diff --git a/chrome/common/visitedlink_common.cc b/chrome/common/visitedlink_common.cc
index 2782311..899e7a6 100644
--- a/chrome/common/visitedlink_common.cc
+++ b/chrome/common/visitedlink_common.cc
@@ -6,6 +6,7 @@
#include "base/logging.h"
#include "base/md5.h"
+#include "googleurl/src/gurl.h"
const VisitedLinkCommon::Fingerprint VisitedLinkCommon::null_fingerprint_ = 0;
const VisitedLinkCommon::Hash VisitedLinkCommon::null_hash_ = -1;
@@ -29,6 +30,10 @@ bool VisitedLinkCommon::IsVisited(const char* canonical_url,
return IsVisited(ComputeURLFingerprint(canonical_url, url_len));
}
+bool VisitedLinkCommon::IsVisited(const GURL& url) const {
+ return IsVisited(url.spec().data(), url.spec().size());
+}
+
bool VisitedLinkCommon::IsVisited(Fingerprint fingerprint) const {
// Go through the table until we find the item or an empty spot (meaning it
// wasn't found). This loop will terminate as long as the table isn't full,
diff --git a/chrome/common/visitedlink_common.h b/chrome/common/visitedlink_common.h
index 0e79c04..546bd4f 100644
--- a/chrome/common/visitedlink_common.h
+++ b/chrome/common/visitedlink_common.h
@@ -5,12 +5,11 @@
#ifndef CHROME_COMMON_VISITEDLINK_COMMON_H__
#define CHROME_COMMON_VISITEDLINK_COMMON_H__
-#include <string>
#include <vector>
#include "base/basictypes.h"
-#include "base/logging.h"
-#include "googleurl/src/gurl.h"
+
+class GURL;
// number of bytes in the salt
#define LINK_SALT_LENGTH 8
@@ -67,9 +66,7 @@ class VisitedLinkCommon {
// computed if you call one with the string argument. Returns true if found.
// Does not modify the hastable.
bool IsVisited(const char* canonical_url, size_t url_len) const;
- bool IsVisited(const GURL& url) const {
- return IsVisited(url.spec().data(), url.spec().size());
- }
+ bool IsVisited(const GURL& url) const;
bool IsVisited(Fingerprint fingerprint) const;
#ifdef UNIT_TEST
diff --git a/chrome/renderer/render_thread.cc b/chrome/renderer/render_thread.cc
index 1ecd13c..5a0ac80 100644
--- a/chrome/renderer/render_thread.cc
+++ b/chrome/renderer/render_thread.cc
@@ -22,6 +22,8 @@
#include "chrome/common/child_process_logging.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/db_message_filter.h"
+#include "chrome/common/dom_storage_common.h"
+#include "chrome/common/extensions/extension_extent.h"
#include "chrome/common/plugin_messages.h"
#include "chrome/common/render_messages.h"
#include "chrome/common/renderer_preferences.h"
@@ -44,6 +46,7 @@
#include "chrome/renderer/extensions/js_only_v8_extensions.h"
#include "chrome/renderer/extensions/renderer_extension_bindings.h"
#include "chrome/renderer/external_extension.h"
+#include "chrome/renderer/gpu_channel_host.h"
#include "chrome/renderer/indexed_db_dispatcher.h"
#include "chrome/renderer/loadtimes_extension_bindings.h"
#include "chrome/renderer/net/renderer_net_predictor.h"
@@ -51,6 +54,7 @@
#include "chrome/renderer/render_process_impl.h"
#include "chrome/renderer/render_view.h"
#include "chrome/renderer/render_view_visitor.h"
+#include "chrome/renderer/renderer_histogram_snapshots.h"
#include "chrome/renderer/renderer_webindexeddatabase_impl.h"
#include "chrome/renderer/renderer_webkitclient_impl.h"
#include "chrome/renderer/spellchecker/spellcheck.h"
@@ -191,6 +195,15 @@ class RenderViewZoomer : public RenderViewVisitor {
};
} // namespace
+// Contains extension-related data that the renderer needs to know about.
+// TODO(mpcomplete): this doesn't feel like it belongs here. Find a better
+// place.
+struct RenderThread::ExtensionInfo {
+ std::string extension_id;
+ ExtensionExtent web_extent;
+ ExtensionExtent browse_extent;
+};
+
// When we run plugins in process, we actually run them on the render thread,
// which means that we need to make the render thread pump UI events.
RenderThread::RenderThread() {
diff --git a/chrome/renderer/render_thread.h b/chrome/renderer/render_thread.h
index 70c5516..9fbb1ed 100644
--- a/chrome/renderer/render_thread.h
+++ b/chrome/renderer/render_thread.h
@@ -17,10 +17,6 @@
#include "build/build_config.h"
#include "chrome/common/child_thread.h"
#include "chrome/common/css_colors.h"
-#include "chrome/common/dom_storage_common.h"
-#include "chrome/common/extensions/extension_extent.h"
-#include "chrome/renderer/gpu_channel_host.h"
-#include "chrome/renderer/renderer_histogram_snapshots.h"
#include "chrome/renderer/visitedlink_slave.h"
#include "gfx/native_widget_types.h"
#include "ipc/ipc_channel_handle.h"
@@ -31,10 +27,12 @@ class CookieMessageFilter;
class DBMessageFilter;
class DevToolsAgentFilter;
class FilePath;
+class GpuChannelHost;
class IndexedDBDispatcher;
class ListValue;
class NullableString16;
class RendererHistogram;
+class RendererHistogramSnapshots;
class RendererNetPredictor;
class RendererWebKitClientImpl;
class SpellCheck;
@@ -225,15 +223,6 @@ class RenderThread : public RenderThreadBase,
std::string GetExtensionIdByBrowseExtent(const GURL& url);
private:
- // Contains extension-related data that the renderer needs to know about.
- // TODO(mpcomplete): this doesn't feel like it belongs here. Find a better
- // place.
- struct ExtensionInfo {
- std::string extension_id;
- ExtensionExtent web_extent;
- ExtensionExtent browse_extent;
- };
-
virtual void OnControlMessageReceived(const IPC::Message& msg);
void Init();
@@ -368,6 +357,7 @@ class RenderThread : public RenderThreadBase,
// A list of extension web extents, which tells us which URLs belong to an
// installed app.
+ struct ExtensionInfo;
std::vector<ExtensionInfo> extension_extents_;
DISALLOW_COPY_AND_ASSIGN(RenderThread);
diff --git a/chrome_frame/test/net/fake_external_tab.cc b/chrome_frame/test/net/fake_external_tab.cc
index fbdc192..5d8e37f 100644
--- a/chrome_frame/test/net/fake_external_tab.cc
+++ b/chrome_frame/test/net/fake_external_tab.cc
@@ -19,6 +19,7 @@
#include "base/scoped_comptr_win.h"
#include "base/scoped_variant_win.h"
+#include "chrome/browser/automation/automation_provider_list.h"
#include "chrome/browser/browser_prefs.h"
#include "chrome/browser/plugin_service.h"
#include "chrome/browser/pref_service.h"