Clean up filter and content encoding handling 

Centralize translation functions (text of "Content-Encoding" to enum) 
in filter.cc

Centralize error recovery (for damaged content encoding headers) in filter.cc
Error recovery includes a loss of SDCH encoding headers, plus handling
of Apache server bug with gzip files are tagged as also being gzip encoded.

Centralize and add a pile of unit tests to this filter code.

r=openvcdiff,huanr
Review URL: http://codereview.chromium.org/8018

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4004 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: 423041b0a7182411149472ae1e7fd87317173097
diff --git a/base/base_lib.scons b/base/base_lib.scons
index 17c3543..3019e02 100644
--- a/base/base_lib.scons
+++ b/base/base_lib.scons
@@ -39,6 +39,7 @@
     'command_line.cc',
     'debug_util.cc',
     'event_recorder.cc',
+    'field_trial.cc',
     'file_path.cc',
     'file_util.cc',
     'file_version_info.cc',
diff --git a/base/field_trial.h b/base/field_trial.h
index e70ab1a..a812d4d 100644
--- a/base/field_trial.h
+++ b/base/field_trial.h
@@ -71,7 +71,10 @@
   // data that is gathered before the application has reach sufficient
   // stability (example: most DLL have loaded, etc.)
   static Time application_start_time() {
-    return global_->application_start_time_;
+    if (global_)
+      return global_->application_start_time_;
+    // For testing purposes only, or when we don't yet have a start time.
+    return Time::Now();
   }
 
  private: