summaryrefslogtreecommitdiffstats
path: root/content/public
diff options
context:
space:
mode:
authorstevenjb@google.com <stevenjb@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-21 19:13:31 +0000
committerstevenjb@google.com <stevenjb@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-21 19:13:31 +0000
commit50462bf085b6504b0fe0d947664348870b0f26c7 (patch)
tree94474e4a310b97410ef4a449edd7d31d8d629abc /content/public
parent3a08f3fcd05e5f4b703b043ee1a7ff48cc4c86f4 (diff)
downloadchromium_src-50462bf085b6504b0fe0d947664348870b0f26c7.zip
chromium_src-50462bf085b6504b0fe0d947664348870b0f26c7.tar.gz
chromium_src-50462bf085b6504b0fe0d947664348870b0f26c7.tar.bz2
Add ChromeBrowserMainExtraParts for non main parts. (take 3)
This was originally submitted as http://codereview.chromium.org/8539038/ which was reverted because of a failing test on win. This reverts the code back to a single instance of BrowserMainParts, with auxillary parts (Gtk, Views, Aura, Touch) implemented from a new base class, ChromeBrowserParts, which has a Chrome specific interface, allowing initialization to be better subdivided. This should fix the notifications auto tests. This CL also addresses the test failure on win (and a test failure on linux_chromeos triggered by the windows fix). BUG=103821 TEST=Make sure all tests and autotests run TBR=jam@chromium.org Review URL: http://codereview.chromium.org/8480032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110972 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/public')
-rw-r--r--content/public/browser/browser_main_parts.h15
-rw-r--r--content/public/browser/content_browser_client.h5
2 files changed, 7 insertions, 13 deletions
diff --git a/content/public/browser/browser_main_parts.h b/content/public/browser/browser_main_parts.h
index 0bbaa83..860541c 100644
--- a/content/public/browser/browser_main_parts.h
+++ b/content/public/browser/browser_main_parts.h
@@ -15,9 +15,8 @@ namespace content {
// Each stage is represented by a single BrowserMainParts method, called from
// the corresponding method in |BrowserMainLoop| (e.g., EarlyInitialization())
// which does the following:
-// - calls a method (e.g., "PreEarlyInitialization()") for each member of
-// |parts_|. Parts will implement platform or tookit specific code for that
-// stage.
+// - calls a method (e.g., "PreEarlyInitialization()") which implements
+// platform / tookit specific code for that stage.
// - calls various methods for things common to all platforms (for that stage).
// - calls a method (e.g., "PostEarlyInitialization()") for platform-specific
// code to be called after the common code.
@@ -49,9 +48,6 @@ namespace content {
// existing chunk which makes it longer than one or two lines, please move
// the code out into a separate method.)
//
-// There can be any number of "Parts". These should be constructed in
-// ContentBrowserClient::CreateBrowserMainParts. Each stage will be called
-// for each part in the order it was added. Destruction is in the inverse order.
class CONTENT_EXPORT BrowserMainParts {
public:
BrowserMainParts() {}
@@ -63,17 +59,16 @@ class CONTENT_EXPORT BrowserMainParts {
virtual void PreMainMessageLoopStart() = 0;
+ virtual void PostMainMessageLoopStart() = 0;
+
// Allows an embedder to do any extra toolkit initialization.
virtual void ToolkitInitialized() = 0;
- virtual void PostMainMessageLoopStart() = 0;
-
virtual void PreMainMessageLoopRun() = 0;
// Returns true if the message loop was run, false otherwise.
+ // If this returns false, the default implementation will be run.
// May set |result_code|, which will be returned by |BrowserMain()|.
- // If no BrowserMainParts implementations return true, the default
- // implementation will be run.
virtual bool MainMessageLoopRun(int* result_code) = 0;
virtual void PostMainMessageLoopRun() = 0;
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 2a2a9f7..7d5438e 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -85,9 +85,8 @@ class ContentBrowserClient {
// Allows the embedder to set any number of custom BrowserMainParts
// implementations for the browser startup code. See comments in
// browser_main_parts.h.
- virtual void CreateBrowserMainParts(
- const content::MainFunctionParams& parameters,
- std::vector<BrowserMainParts*>* parts_list) = 0;
+ virtual BrowserMainParts* CreateBrowserMainParts(
+ const content::MainFunctionParams& parameters) = 0;
// Platform-specific creator. Use this to construct new RenderWidgetHostViews
// rather than using RenderWidgetHostViewWin & friends.