Re: [chromium-dev] Adding myself to the cc list of a bug

2010-01-27 Thread Brian G. Merrell
On Tue, Jan 26, 2010 at 10:43:41AM +, Andrew Haley wrote:
 How do I do this?  There doesn't seem to be any button I can click to
 add myself to a bug's watch list.

Star it, and you'll get updates in the future.

Brian

-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev


[chromium-dev] Re: Setting global preferences/settings in code

2010-01-14 Thread Brian G. Merrell
On Sun, Dec 20, 2009 at 03:03:23AM -0800, Evan Martin wrote:
 On Sat, Dec 19, 2009 at 9:32 PM, cpu c...@chromium.org wrote:
  Yes, the MasterPreferences is what we use so far.  It is just a json
  file in a particular path. I am not sure if we have enabled this for
  the linux build.
 
 It hasn't.
 
 See browser_main.cc around line 540, the part that mentions
 ProcessMasterPreferences:
 http://src.chromium.org/cgi-bin/gitweb.cgi?p=chromium.git;a=blob;f=chrome/browser/browser_main.cc;h=ff1d17d7277b5df9a9e1d901adaf326ee6c2c6ff;hb=HEAD#l539
 
 You could probably follow the Windows implementation of
 ProcessMasterPreferences (see first_run_win) to make a Linux one, but
 it will of course be rather different.

Okay, I started looking into this.  After a bit of work, I'm to the
point where I need to process the master_preferences json file.
That is, I am currently writing a ProcessMasterPreferences function
in first_run_gtk.cc.  It looks like for Windows much of the work for
processing the file is done using install_util, which doesn't appear
to even be included in the build for Linux.  So, I have a couple of
questions...

What would be the preferred approach to processing the
master_preferences file in Linux?  At a glance, it looks like
chrome/installer/util/master_preferences.cc might have everything
needed if it was built it for Linux, but should the parsing be done
somewhere more general and/or more portable?  Documentation says
that chrome/installer has source files and projects for making the
installer (MSI package).

My other question is about the location of the master_preferences
file.  In Windows, the file is required to be located in the same
directory as the chrome EXE (DIR_EXE).  For Linux, I'm not sure that
this would fit.  Any thoughts?

I will attach what I've come up with so far, in case someone is
interested.  There are probably things I've done already that are
completely wrong :)

Thanks much,
Brian
-- 
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-devdiff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc
index 521513f..884968b 100644
--- a/chrome/browser/browser_main.cc
+++ b/chrome/browser/browser_main.cc
@@ -59,6 +59,7 @@
 #include chrome/common/result_codes.h
 #include chrome/installer/util/google_update_settings.h
 #include chrome/installer/util/master_preferences.h
+#include googleurl/src/gurl.h
 #include grit/chromium_strings.h
 #include grit/generated_resources.h
 #include net/base/cookie_monster.h
@@ -258,7 +259,14 @@ void AddFirstRunNewTabs(BrowserInit* browser_init,
 #else
 // TODO(cpu): implement first run experience for other platforms.
 void AddFirstRunNewTabs(BrowserInit* browser_init,
-const std::vectorstd::wstring new_tabs) {
+const std::vectorGURL new_tabs) {
+  std::vectorGURL::const_iterator it = new_tabs.begin();
+  while (it != new_tabs.end()) {
+std::cout  *it  std::endl;
+if (it-is_valid())
+  browser_init-AddFirstRunTab(*it);
+++it;
+  }
 }
 #endif
 
@@ -550,6 +558,26 @@ int BrowserMain(const MainFunctionParams parameters) {
   AddFirstRunNewTabs(browser_init, first_run_tabs);
 #endif  // OS_WIN
 
+#if defined(OS_LINUX)
+// Process master preferences differently for Linux
+std::vectorGURL first_run_tabs;
+
+/*
+// specify some first_run_tabs urls manually just to test that this works
+// in Linux
+GURL a(http://www.landrover.com;);
+GURL b(http://www.pizzahut.com;);
+first_run_tabs.push_back(a);
+first_run_tabs.push_back(b);
+*/
+first_run_ui_bypass = !FirstRun::ProcessMasterPreferences(user_data_dir,
+FilePath(), first_run_tabs, homepage_defined, import_items,
+dont_import_items);
+
+if (first_run_tabs.size())
+  AddFirstRunNewTabs(browser_init, first_run_tabs);
+#endif
+
 // If we are running in App mode, we do not want to show the importer
 // (first run) UI.
 if (!first_run_ui_bypass 
diff --git a/chrome/browser/first_run.h b/chrome/browser/first_run.h
index 3b2d996..3667ae3 100644
--- a/chrome/browser/first_run.h
+++ b/chrome/browser/first_run.h
@@ -11,6 +11,7 @@
 #include app/gfx/native_widget_types.h
 #include base/basictypes.h
 #include chrome/browser/browser_process_impl.h
+#include googleurl/src/gurl.h
 
 class CommandLine;
 class FilePath;
@@ -63,6 +64,14 @@ class FirstRun {
int* do_import_items,
int* dont_import_items);
 #endif  // OS_WIN
+#if defined(OS_LINUX)
+  static bool ProcessMasterPreferences(const FilePath user_data_dir,
+   const FilePath master_prefs_path,
+   std::vectorGURL* new_tabs,
+   bool* homepage_defined,
+   int*