1. 14 May, 2015 2 commits
    • spang's avatar
      crypto: Load libchaps.so with RTLD_DEEPBIND · ba254c4e
      spang authored
      This fixes the component=shared_library build on Chrome OS. Previously,
      the TPM token initialization would crash the browser because libchaps.so
      loads a 2nd, incompatible copy of the protobuf-lite library into the
      browser.
      
      The crash happens because by default the global scope takes precedence,
      so symbols in the bundled copy shadow symbols in the system copy. This
      can lead to accessing the wrong object or calling the wrong function.
      The usual symptom is a crash during static initialization of libchaps.so.
      
      RTL_DEEPBIND rearranges the scope for libchaps.so so that the system
      library takes precedence instead. The scope for chrome is unaffected.
      
      Some other possibilities were considered:
      
        - Unbundling the library. This would cause us to lose our local
          modifications to libprotobuf on Chrome OS.
      
        - Fixing the soname so that the bundled copy is used by chaps. This
          doesn't even link because the bundled code is not ABI compatible
          with upstream.
      
        - Statically linking libchaps.so. This is tricky because we need
          position-independent static libs for its deps, and we don't support
          building those currently. It will also cause bloat.
      
      This hack is minimally invasive and allows use of shared library builds
      on Chrome OS devices.
      
      BUG=175508
      TEST=cros chrome-sdk --board=link
        GYP_DEFINES="$GYP_DEFINES component=shared_library" gclient runhooks
        ninja -C out_link/Release chrome chrome-sandbox
        deploy_chrome --board link --build-dir out_link/Release --to $IP
        Log into the system. No crash.
        TPM-backed user certs show up in chrome://certificate-manager.
      
      Review URL: https://codereview.chromium.org/1111373003
      
      Cr-Commit-Position: refs/heads/master@{#329743}
      ba254c4e
    • mpearson's avatar
      Omnibox - Strip Extra Whitespace from Custom Search Engine Names · 3c6d7afb
      mpearson authored
      Whitespace in the form of tabs and line feeds and the like can screw
      things up.
      
      This fixes the fresh.amazon.com bug.  (I tested it interatively.)
      
      By the way, there is no need to do a migration pass.
      The data will be correctly loaded when read from the
      database.  (I checked.)  While it's true the database
      will be out of date until written again, given that
      the actual data used is correct, I don't think that's
      an issue.
      
      TBR=rdevlin.cronin,isherman,lazyboy,pvalenzuela,kmadhusu,avi
      rdevlin.cronin - this trivial template URL data API change required some changes in chrome/browser/extensions
      isherman - this trivial template URL data API change required some changes in chrome/browser/importer
      lazyboy - this trivial template URL data API change required some changes in chrome/browser/renderer_context_menu
      pvalenzuela - this trivial template URL data API change required some changes in chrome/browser/sync/test/integration
      kmadhusu - this trivial template URL data API change required some changes in chrome/browser/ui/search/
      avi - this trivial template URL data API change required some changes in chrome/browser/ui/cocoa/browser/
      
      BUG=485357
      
      Review URL: https://codereview.chromium.org/1135163002
      
      Cr-Commit-Position: refs/heads/master@{#329742}
      3c6d7afb
  2. 13 May, 2015 38 commits