Mac: First run bubble.

Add a BaseBubbleController. Move ContentBlockedBubbleController to use it (other bubbles will follow in later CLs), add FIrstRunBubbleController which uses it.

Move some l10n stuff to l10n_util and use that, too.

Update first run code to actually call the bubble code. Fix a double free while I'm at it (the scoped_ptr<> in DoFirstRun() already does the freeing, no need to do it in FirstRunDone())

BUG=27489,36366
TEST=Firstrun bubble shows up when starting chrome with --first-run, doesn't if starting chrome without that flag. Content blocked bubbles still work.

Review URL: http://codereview.chromium.org/2822026

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50940 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/search_engines/util.h b/chrome/browser/search_engines/util.h
new file mode 100644
index 0000000..07f059cc
--- /dev/null
+++ b/chrome/browser/search_engines/util.h
@@ -0,0 +1,18 @@
+// Copyright (c) 2010 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 CHROME_BROWSER_SEARCH_ENGINES_UTIL_H_
+#define CHROME_BROWSER_SEARCH_ENGINES_UTIL_H_
+
+// This file contains utility functions for search engine functionality.
+
+#include "base/string16.h"
+
+class Profile;
+
+// Returns the short name of the default search engine, or the empty string if
+// none is set. |profile| may be NULL.
+string16 GetDefaultSearchEngineName(Profile* profile);
+
+#endif  // CHROME_BROWSER_SEARCH_ENGINES_UTIL_H_