diff --git a/DEPS b/DEPS
index 4eabce1..6a2dd11 100644
--- a/DEPS
+++ b/DEPS
@@ -756,7 +756,7 @@
     'action': ['python',
                'src/build/get_syzygy_binaries.py',
                '--output-dir=src/third_party/syzygy/binaries',
-               '--revision=8c8dd2565ba9bdf2e426d872650b8d183638009b',
+               '--revision=24abcb05aa6cc35545111d244378ef37b5d5218c',
                '--overwrite',
     ],
   },
diff --git a/ash/shelf/shelf_view_unittest.cc b/ash/shelf/shelf_view_unittest.cc
index efd75ad..80091d3 100644
--- a/ash/shelf/shelf_view_unittest.cc
+++ b/ash/shelf/shelf_view_unittest.cc
@@ -243,8 +243,7 @@
 // value of IsAppPinned(...) is configurable.
 class TestShelfDelegateForShelfView : public ShelfDelegate {
  public:
-  explicit TestShelfDelegateForShelfView(ShelfModel* model)
-      : model_(model) {}
+  TestShelfDelegateForShelfView() {}
   ~TestShelfDelegateForShelfView() override {}
 
   void set_is_app_pinned(bool is_pinned) { is_app_pinned_ = is_pinned; }
@@ -278,8 +277,6 @@
   void UnpinAppWithID(const std::string& app_id) override { NOTREACHED(); }
 
  private:
-  ShelfModel* model_;
-
   // Tracks whether apps are pinned or not.
   bool is_app_pinned_ = false;
 
@@ -681,7 +678,7 @@
     // Replace ShelfDelegate.
     test::ShellTestApi shell_test_api(Shell::GetInstance());
     shell_test_api.SetShelfDelegate(NULL);
-    shelf_delegate_ = new TestShelfDelegateForShelfView(model_);
+    shelf_delegate_ = new TestShelfDelegateForShelfView();
     shell_test_api.SetShelfDelegate(shelf_delegate_);
     test::ShelfTestAPI(Shelf::ForPrimaryDisplay())
         .SetShelfDelegate(shelf_delegate_);
diff --git a/ash/test/test_shell_delegate.cc b/ash/test/test_shell_delegate.cc
index 08c7219..ed468dc 100644
--- a/ash/test/test_shell_delegate.cc
+++ b/ash/test/test_shell_delegate.cc
@@ -85,9 +85,7 @@
 TestShellDelegate::TestShellDelegate()
     : num_exit_requests_(0),
       multi_profiles_enabled_(false),
-      force_maximize_on_first_run_(false),
-      test_session_state_delegate_(NULL) {
-}
+      force_maximize_on_first_run_(false) {}
 
 TestShellDelegate::~TestShellDelegate() {
 }
diff --git a/ash/test/test_shell_delegate.h b/ash/test/test_shell_delegate.h
index 2985ff1..f6872fa 100644
--- a/ash/test/test_shell_delegate.h
+++ b/ash/test/test_shell_delegate.h
@@ -79,8 +79,6 @@
   base::ObserverList<ash::VirtualKeyboardStateObserver>
       keyboard_state_observer_list_;
 
-  TestSessionStateDelegate* test_session_state_delegate_;  // Not owned.
-
   DISALLOW_COPY_AND_ASSIGN(TestShellDelegate);
 };
 
diff --git a/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc b/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc
index 8c361f70..2013712 100644
--- a/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc
+++ b/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc
@@ -369,7 +369,6 @@
     size_t initial_widget_count_;
     content::RenderWidgetHost* last_render_widget_host_;
     scoped_refptr<content::MessageLoopRunner> message_loop_;
-    bool seen_new_widget_;
 
     DISALLOW_COPY_AND_ASSIGN(PopupCreatedObserver);
   };
diff --git a/chrome/browser/extensions/api/messaging/native_process_launcher.cc b/chrome/browser/extensions/api/messaging/native_process_launcher.cc
index a60b166..224664c 100644
--- a/chrome/browser/extensions/api/messaging/native_process_launcher.cc
+++ b/chrome/browser/extensions/api/messaging/native_process_launcher.cc
@@ -78,8 +78,10 @@
 
     bool allow_user_level_hosts_;
 
+#if defined(OS_WIN)
     // Handle of the native window corresponding to the extension.
     intptr_t window_handle_;
+#endif // OS_WIN
 
     DISALLOW_COPY_AND_ASSIGN(Core);
   };
@@ -92,9 +94,11 @@
 NativeProcessLauncherImpl::Core::Core(bool allow_user_level_hosts,
                                       intptr_t window_handle)
     : detached_(false),
-      allow_user_level_hosts_(allow_user_level_hosts),
-      window_handle_(window_handle) {
-}
+      allow_user_level_hosts_(allow_user_level_hosts)
+#if defined(OS_WIN)
+      , window_handle_(window_handle)
+#endif // OS_WIN
+{}
 
 NativeProcessLauncherImpl::Core::~Core() {
   DCHECK(detached_);
diff --git a/chrome/browser/extensions/api/sync_file_system/sync_file_system_browsertest.cc b/chrome/browser/extensions/api/sync_file_system/sync_file_system_browsertest.cc
index f257865..b1095e22 100644
--- a/chrome/browser/extensions/api/sync_file_system/sync_file_system_browsertest.cc
+++ b/chrome/browser/extensions/api/sync_file_system/sync_file_system_browsertest.cc
@@ -58,9 +58,7 @@
                            public drive::FakeDriveService::ChangeObserver {
  public:
   SyncFileSystemTest()
-      : fake_drive_service_(NULL),
-        local_service_(NULL),
-        remote_service_(NULL) {
+      : remote_service_(NULL) {
   }
 
   void SetUpInProcessBrowserTestFixture() override {
@@ -156,8 +154,6 @@
 
   scoped_ptr<FakeSigninManagerForTesting> fake_signin_manager_;
 
-  drive::FakeDriveService* fake_drive_service_;
-  LocalFileSyncService* local_service_;
   drive_backend::SyncEngine* remote_service_;
 
   int64_t real_minimum_preserved_space_;
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
index 687f06df4..d98cfe47 100644
--- a/chrome/browser/metrics/chrome_metrics_service_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -133,7 +133,9 @@
 ChromeMetricsServiceClient::ChromeMetricsServiceClient(
     metrics::MetricsStateManager* state_manager)
     : metrics_state_manager_(state_manager),
+#if defined(OS_CHROMEOS)
       chromeos_metrics_provider_(nullptr),
+#endif
       waiting_for_collect_final_metrics_step_(false),
       num_async_histogram_fetches_in_progress_(0),
       profiler_metrics_provider_(nullptr),
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.h b/chrome/browser/metrics/chrome_metrics_service_client.h
index 7cb7a43b..9282aba 100644
--- a/chrome/browser/metrics/chrome_metrics_service_client.h
+++ b/chrome/browser/metrics/chrome_metrics_service_client.h
@@ -149,9 +149,11 @@
 
   content::NotificationRegistrar registrar_;
 
+#if defined(OS_CHROMEOS)
   // On ChromeOS, holds a weak pointer to the ChromeOSMetricsProvider instance
   // that has been registered with MetricsService. On other platforms, is NULL.
   ChromeOSMetricsProvider* chromeos_metrics_provider_;
+#endif
 
   // Saved callback received from CollectFinalMetricsForLog().
   base::Closure collect_final_metrics_done_callback_;
diff --git a/chrome/browser/password_manager/native_backend_gnome_x.cc b/chrome/browser/password_manager/native_backend_gnome_x.cc
index d53eaf7..6771e7d 100644
--- a/chrome/browser/password_manager/native_backend_gnome_x.cc
+++ b/chrome/browser/password_manager/native_backend_gnome_x.cc
@@ -526,7 +526,7 @@
 }  // namespace
 
 NativeBackendGnome::NativeBackendGnome(LocalProfileId id)
-    : profile_id_(id), app_string_(GetProfileSpecificAppString(id)) {
+    : app_string_(GetProfileSpecificAppString(id)) {
 }
 
 NativeBackendGnome::~NativeBackendGnome() {
diff --git a/chrome/browser/password_manager/native_backend_gnome_x.h b/chrome/browser/password_manager/native_backend_gnome_x.h
index 6042c99..ba3e2a8 100644
--- a/chrome/browser/password_manager/native_backend_gnome_x.h
+++ b/chrome/browser/password_manager/native_backend_gnome_x.h
@@ -148,9 +148,6 @@
                            TimestampToCompare date_to_compare,
                            password_manager::PasswordStoreChangeList* changes);
 
-  // The local profile id, used to generate the app string.
-  const LocalProfileId profile_id_;
-
   // The app string, possibly based on the local profile id.
   std::string app_string_;
 
diff --git a/chrome/browser/ssl/bad_clock_blocking_page.cc b/chrome/browser/ssl/bad_clock_blocking_page.cc
index 693e827f5..280bf32 100644
--- a/chrome/browser/ssl/bad_clock_blocking_page.cc
+++ b/chrome/browser/ssl/bad_clock_blocking_page.cc
@@ -60,7 +60,6 @@
     const base::Callback<void(bool)>& callback)
     : SecurityInterstitialPage(web_contents, request_url),
       callback_(callback),
-      cert_error_(cert_error),
       ssl_info_(ssl_info),
       time_triggered_(time_triggered),
       controller_(new ChromeControllerClient(web_contents)) {
diff --git a/chrome/browser/ssl/bad_clock_blocking_page.h b/chrome/browser/ssl/bad_clock_blocking_page.h
index 456df55..a6b9f17 100644
--- a/chrome/browser/ssl/bad_clock_blocking_page.h
+++ b/chrome/browser/ssl/bad_clock_blocking_page.h
@@ -66,7 +66,6 @@
   void NotifyDenyCertificate();
 
   base::Callback<void(bool)> callback_;
-  const int cert_error_;
   const net::SSLInfo ssl_info_;
   const base::Time time_triggered_;
   scoped_ptr<ChromeControllerClient> controller_;
diff --git a/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc b/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc
index 31469f6d..8e20dc07 100644
--- a/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc
+++ b/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc
@@ -101,7 +101,6 @@
                                      base::Bind(&MockCallback)),
         message_loop_runner_(runner),
         use_validation_(false),
-        sign_in_user_index_(0U),
         weak_ptr_factory_(this) {
     Profile* profile =
         Profile::FromBrowserContext(contents->GetBrowserContext());
@@ -200,9 +199,6 @@
   // This is used to control what |CurrentNotifications()| returns for testing.
   std::vector<DialogNotification> notifications_;
 
-  // The user index that is assigned in IsSignInContinueUrl().
-  size_t sign_in_user_index_;
-
   // Allows generation of WeakPtrs, so controller liveness can be tested.
   base::WeakPtrFactory<TestAutofillDialogController> weak_ptr_factory_;
 
diff --git a/chrome/browser/ui/views/media_router/media_router_ui_browsertest.cc b/chrome/browser/ui/views/media_router/media_router_ui_browsertest.cc
index 75beee6..5054bc4 100644
--- a/chrome/browser/ui/views/media_router/media_router_ui_browsertest.cc
+++ b/chrome/browser/ui/views/media_router/media_router_ui_browsertest.cc
@@ -45,7 +45,7 @@
 
     // Sets delegate on |media_router_action_|.
     toolbar_action_view_.reset(
-        new ToolbarActionView(media_router_action_.get(), browser()->profile(),
+        new ToolbarActionView(media_router_action_.get(),
                               browser_actions_container));
   }
 
diff --git a/chrome/browser/ui/views/toolbar/browser_actions_container.cc b/chrome/browser/ui/views/toolbar/browser_actions_container.cc
index 56277e18b..1c13755 100644
--- a/chrome/browser/ui/views/toolbar/browser_actions_container.cc
+++ b/chrome/browser/ui/views/toolbar/browser_actions_container.cc
@@ -223,8 +223,7 @@
   if (chevron_)
     chevron_->CloseMenu();
 
-  ToolbarActionView* view =
-      new ToolbarActionView(view_controller, browser_->profile(), this);
+  ToolbarActionView* view = new ToolbarActionView(view_controller, this);
   toolbar_action_views_.insert(toolbar_action_views_.begin() + index, view);
   AddChildViewAt(view, index);
 }
diff --git a/chrome/browser/ui/views/toolbar/toolbar_action_view.cc b/chrome/browser/ui/views/toolbar/toolbar_action_view.cc
index 13198fb2a..f4deaea 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_action_view.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_action_view.cc
@@ -8,7 +8,6 @@
 
 #include "base/auto_reset.h"
 #include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/sessions/session_tab_helper.h"
 #include "chrome/browser/ui/toolbar/toolbar_action_view_controller.h"
 #include "chrome/browser/ui/toolbar/toolbar_actions_bar.h"
@@ -56,11 +55,9 @@
 
 ToolbarActionView::ToolbarActionView(
     ToolbarActionViewController* view_controller,
-    Profile* profile,
     ToolbarActionView::Delegate* delegate)
     : MenuButton(nullptr, base::string16(), this, false),
       view_controller_(view_controller),
-      profile_(profile),
       delegate_(delegate),
       called_register_command_(false),
       wants_to_run_(false),
diff --git a/chrome/browser/ui/views/toolbar/toolbar_action_view.h b/chrome/browser/ui/views/toolbar/toolbar_action_view.h
index 6997401..8d9b9ff4 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_action_view.h
+++ b/chrome/browser/ui/views/toolbar/toolbar_action_view.h
@@ -15,7 +15,6 @@
 #include "ui/views/view.h"
 
 class ExtensionAction;
-class Profile;
 
 namespace extensions {
 class Extension;
@@ -67,7 +66,6 @@
   using ContextMenuCallback = base::Callback<void(ToolbarActionView*)>;
 
   ToolbarActionView(ToolbarActionViewController* view_controller,
-                    Profile* profile,
                     Delegate* delegate);
   ~ToolbarActionView() override;
 
@@ -140,9 +138,6 @@
   // The controller for this toolbar action view.
   ToolbarActionViewController* view_controller_;
 
-  // The associated profile.
-  Profile* profile_;
-
   // Delegate that usually represents a container for ToolbarActionView.
   Delegate* delegate_;
 
diff --git a/chrome/browser/ui/views/toolbar/toolbar_action_view_unittest.cc b/chrome/browser/ui/views/toolbar/toolbar_action_view_unittest.cc
index 5439c50..d28937e8 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_action_view_unittest.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_action_view_unittest.cc
@@ -155,7 +155,7 @@
   generator.MoveMouseTo(gfx::Point(300, 300));
 
   // Create a new toolbar action view.
-  ToolbarActionView view(&controller, &profile, &action_view_delegate);
+  ToolbarActionView view(&controller, &action_view_delegate);
   view.set_owned_by_client();
   view.SetBoundsRect(gfx::Rect(0, 0, 200, 20));
   widget()->SetContentsView(&view);
diff --git a/components/autofill/core/browser/autofill_manager_unittest.cc b/components/autofill/core/browser/autofill_manager_unittest.cc
index dd4d0f1..4a10a88 100644
--- a/components/autofill/core/browser/autofill_manager_unittest.cc
+++ b/components/autofill/core/browser/autofill_manager_unittest.cc
@@ -479,7 +479,6 @@
         autofill_enabled_(true),
         credit_card_upload_enabled_(false),
         credit_card_was_uploaded_(false),
-        expect_all_unknown_possible_types_(false),
         expected_observed_submission_(true) {
     set_payments_client(
         new TestPaymentsClient(driver->GetURLRequestContext(), this));
@@ -605,7 +604,6 @@
   bool autofill_enabled_;
   bool credit_card_upload_enabled_;
   bool credit_card_was_uploaded_;
-  bool expect_all_unknown_possible_types_;
   bool expected_observed_submission_;
 
   scoped_ptr<base::RunLoop> run_loop_;
diff --git a/components/gcm_driver/instance_id/instance_id_impl.cc b/components/gcm_driver/instance_id/instance_id_impl.cc
index 4871497..9a99a79d 100644
--- a/components/gcm_driver/instance_id/instance_id_impl.cc
+++ b/components/gcm_driver/instance_id/instance_id_impl.cc
@@ -56,7 +56,6 @@
                                gcm::GCMDriver* gcm_driver)
     : InstanceID(app_id),
       gcm_driver_(gcm_driver),
-      load_from_store_(false),
       weak_ptr_factory_(this) {
   GetInstanceIDHandler()->GetInstanceIDData(
       app_id,
diff --git a/components/gcm_driver/instance_id/instance_id_impl.h b/components/gcm_driver/instance_id/instance_id_impl.h
index 8b0d942..1f8749e 100644
--- a/components/gcm_driver/instance_id/instance_id_impl.h
+++ b/components/gcm_driver/instance_id/instance_id_impl.h
@@ -73,9 +73,6 @@
 
   gcm::GCMDelayedTaskController delayed_task_controller_;
 
-  // Flag to indicate that we have tries to load the data from the store.
-  bool load_from_store_;
-
   // The generated Instance ID.
   std::string id_;
 
diff --git a/components/mus/ws/window_tree_apptest.cc b/components/mus/ws/window_tree_apptest.cc
index 58dc59b..da25034 100644
--- a/components/mus/ws/window_tree_apptest.cc
+++ b/components/mus/ws/window_tree_apptest.cc
@@ -122,9 +122,8 @@
 class TestWindowTreeClientImpl : public mojom::WindowTreeClient,
                                  public TestChangeTracker::Delegate {
  public:
-  explicit TestWindowTreeClientImpl(mojo::ApplicationImpl* app)
+  TestWindowTreeClientImpl()
       : binding_(this),
-        app_(app),
         connection_id_(0),
         root_window_id_(0),
         // Start with a random large number so tests can use lower ids if they
@@ -378,7 +377,6 @@
   scoped_ptr<WaitState> wait_state_;
 
   mojo::Binding<WindowTreeClient> binding_;
-  mojo::ApplicationImpl* app_;
   Id connection_id_;
   Id root_window_id_;
   uint32_t next_change_id_;
@@ -395,7 +393,7 @@
 class WindowTreeClientFactory
     : public mojo::InterfaceFactory<WindowTreeClient> {
  public:
-  explicit WindowTreeClientFactory(mojo::ApplicationImpl* app) : app_(app) {}
+  WindowTreeClientFactory() {}
   ~WindowTreeClientFactory() override {}
 
   // Runs a nested MessageLoop until a new instance has been created.
@@ -413,13 +411,12 @@
   // InterfaceFactory<WindowTreeClient>:
   void Create(ApplicationConnection* connection,
               InterfaceRequest<WindowTreeClient> request) override {
-    client_impl_.reset(new TestWindowTreeClientImpl(app_));
+    client_impl_.reset(new TestWindowTreeClientImpl());
     client_impl_->Bind(std::move(request));
     if (run_loop_.get())
       run_loop_->Quit();
   }
 
-  mojo::ApplicationImpl* app_;
   scoped_ptr<TestWindowTreeClientImpl> client_impl_;
   scoped_ptr<base::RunLoop> run_loop_;
 
@@ -531,13 +528,13 @@
   ApplicationDelegate* GetApplicationDelegate() override { return this; }
   void SetUp() override {
     ApplicationTestBase::SetUp();
-    client_factory_.reset(new WindowTreeClientFactory(application_impl()));
+    client_factory_.reset(new WindowTreeClientFactory());
 
     mojom::WindowTreeHostFactoryPtr factory;
     application_impl()->ConnectToService("mojo:mus", &factory);
 
     mojom::WindowTreeClientPtr tree_client_ptr;
-    ws_client1_.reset(new TestWindowTreeClientImpl(application_impl()));
+    ws_client1_.reset(new TestWindowTreeClientImpl());
     ws_client1_->Bind(GetProxy(&tree_client_ptr));
 
     factory->CreateWindowTreeHost(GetProxy(&host_),
@@ -1642,7 +1639,7 @@
 TEST_F(WindowTreeAppTest, EmbedSupplyingWindowTreeClient) {
   ASSERT_TRUE(ws_client1()->NewWindow(1));
 
-  TestWindowTreeClientImpl client2(application_impl());
+  TestWindowTreeClientImpl client2;
   mojom::WindowTreeClientPtr client2_ptr;
   mojo::Binding<WindowTreeClient> client2_binding(&client2, &client2_ptr);
   ASSERT_TRUE(Embed(ws1(), BuildWindowId(connection_id_1(), 1),
diff --git a/components/policy/core/common/remote_commands/remote_commands_service_unittest.cc b/components/policy/core/common/remote_commands/remote_commands_service_unittest.cc
index 24ffd9f..e3756f1 100644
--- a/components/policy/core/common/remote_commands/remote_commands_service_unittest.cc
+++ b/components/policy/core/common/remote_commands/remote_commands_service_unittest.cc
@@ -276,8 +276,6 @@
   scoped_refptr<ScopedMockTimeTaskRunner> task_runner_;
 
  private:
-  bool service_started_ = false;
-
   base::ThreadTaskRunnerHandle runner_handle_;
 
   DISALLOW_COPY_AND_ASSIGN(RemoteCommandsServiceTest);
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc
index 08f4c26b..6aacbff 100644
--- a/content/browser/site_per_process_browsertest.cc
+++ b/content/browser/site_per_process_browsertest.cc
@@ -545,7 +545,6 @@
       message_loop_runner_->Quit();
   }
 
-  RenderWidgetHostImpl* render_widget_host_;
   bool expected_visibility_state_;
   scoped_refptr<MessageLoopRunner> message_loop_runner_;
   NotificationRegistrar registrar_;
diff --git a/content/shell/browser/shell_content_browser_client.cc b/content/shell/browser/shell_content_browser_client.cc
index d9a30a2..925778d 100644
--- a/content/shell/browser/shell_content_browser_client.cc
+++ b/content/shell/browser/shell_content_browser_client.cc
@@ -348,7 +348,7 @@
 
 DevToolsManagerDelegate*
 ShellContentBrowserClient::GetDevToolsManagerDelegate() {
-  return new ShellDevToolsManagerDelegate(browser_context());
+  return new ShellDevToolsManagerDelegate();
 }
 
 void ShellContentBrowserClient::OpenURL(
diff --git a/content/shell/browser/shell_devtools_manager_delegate.cc b/content/shell/browser/shell_devtools_manager_delegate.cc
index 39e290f..cfc09c7 100644
--- a/content/shell/browser/shell_devtools_manager_delegate.cc
+++ b/content/shell/browser/shell_devtools_manager_delegate.cc
@@ -161,13 +161,10 @@
       HandleWebSocketConnection(const std::string& path) override;
 
  private:
-  BrowserContext* browser_context_;
-
   DISALLOW_COPY_AND_ASSIGN(ShellDevToolsDelegate);
 };
 
-ShellDevToolsDelegate::ShellDevToolsDelegate(BrowserContext* browser_context)
-    : browser_context_(browser_context) {
+ShellDevToolsDelegate::ShellDevToolsDelegate(BrowserContext* browser_context) {
   devtools_discovery::DevToolsDiscoveryManager::GetInstance()->
       SetCreateCallback(base::Bind(&CreateNewShellTarget,
                                    base::Unretained(browser_context)));
@@ -224,9 +221,7 @@
       GetShellUserAgent());
 }
 
-ShellDevToolsManagerDelegate::ShellDevToolsManagerDelegate(
-    BrowserContext* browser_context)
-    : browser_context_(browser_context) {
+ShellDevToolsManagerDelegate::ShellDevToolsManagerDelegate() {
 }
 
 ShellDevToolsManagerDelegate::~ShellDevToolsManagerDelegate() {
diff --git a/content/shell/browser/shell_devtools_manager_delegate.h b/content/shell/browser/shell_devtools_manager_delegate.h
index 1c9a462..840be68f 100644
--- a/content/shell/browser/shell_devtools_manager_delegate.h
+++ b/content/shell/browser/shell_devtools_manager_delegate.h
@@ -23,7 +23,7 @@
   static devtools_http_handler::DevToolsHttpHandler* CreateHttpHandler(
       BrowserContext* browser_context);
 
-  explicit ShellDevToolsManagerDelegate(BrowserContext* browser_context);
+  ShellDevToolsManagerDelegate();
   ~ShellDevToolsManagerDelegate() override;
 
   // DevToolsManagerDelegate implementation.
@@ -35,8 +35,6 @@
                                        base::DictionaryValue* command) override;
 
  private:
-  BrowserContext* browser_context_;
-
   DISALLOW_COPY_AND_ASSIGN(ShellDevToolsManagerDelegate);
 };
 
diff --git a/content/shell/renderer/layout_test/blink_test_runner.h b/content/shell/renderer/layout_test/blink_test_runner.h
index 55d0d3aa..4b62441 100644
--- a/content/shell/renderer/layout_test/blink_test_runner.h
+++ b/content/shell/renderer/layout_test/blink_test_runner.h
@@ -200,7 +200,6 @@
   bool focus_on_next_commit_;
 
   scoped_ptr<LeakDetector> leak_detector_;
-  bool needs_leak_detector_;
 
   DISALLOW_COPY_AND_ASSIGN(BlinkTestRunner);
 };
diff --git a/extensions/browser/user_script_loader.h b/extensions/browser/user_script_loader.h
index 80b13d6..ff6772a 100644
--- a/extensions/browser/user_script_loader.h
+++ b/extensions/browser/user_script_loader.h
@@ -165,9 +165,6 @@
   // finishes.  This boolean tracks whether another load is pending.
   bool pending_load_;
 
-  // Whether or not we are currently loading.
-  bool is_loading_;
-
   // The browser_context for which the scripts managed here are installed.
   content::BrowserContext* browser_context_;
 
diff --git a/extensions/shell/browser/shell_content_browser_client.cc b/extensions/shell/browser/shell_content_browser_client.cc
index 52ebc5b..9f2441d 100644
--- a/extensions/shell/browser/shell_content_browser_client.cc
+++ b/extensions/shell/browser/shell_content_browser_client.cc
@@ -241,7 +241,7 @@
 
 content::DevToolsManagerDelegate*
 ShellContentBrowserClient::GetDevToolsManagerDelegate() {
-  return new content::ShellDevToolsManagerDelegate(GetBrowserContext());
+  return new content::ShellDevToolsManagerDelegate();
 }
 
 ShellBrowserMainParts* ShellContentBrowserClient::CreateShellBrowserMainParts(
diff --git a/media/blink/multibuffer_data_source_unittest.cc b/media/blink/multibuffer_data_source_unittest.cc
index cdeeff62..ead1269 100644
--- a/media/blink/multibuffer_data_source_unittest.cc
+++ b/media/blink/multibuffer_data_source_unittest.cc
@@ -201,9 +201,6 @@
   // Whether the resource is downloading or deferred.
   bool downloading_;
 
-  // Whether the resource load has starting loading but yet to been cancelled.
-  bool loading_;
-
   DISALLOW_COPY_AND_ASSIGN(MockMultibufferDataSource);
 };
 
diff --git a/media/cast/net/rtcp/rtcp_unittest.cc b/media/cast/net/rtcp/rtcp_unittest.cc
index 5262f69..f26f935 100644
--- a/media/cast/net/rtcp/rtcp_unittest.cc
+++ b/media/cast/net/rtcp/rtcp_unittest.cc
@@ -70,7 +70,6 @@
   base::SimpleTestTickClock* const clock_;
   base::TimeDelta packet_delay_;
   RtcpSession* rtcp_session_;  //  RTCP destination.
-  bool paused_;
 
   DISALLOW_COPY_AND_ASSIGN(FakeRtcpTransport);
 };
diff --git a/media/mojo/services/mojo_cdm_service.cc b/media/mojo/services/mojo_cdm_service.cc
index 31781b1..e2fa9e2 100644
--- a/media/mojo/services/mojo_cdm_service.cc
+++ b/media/mojo/services/mojo_cdm_service.cc
@@ -79,12 +79,10 @@
 
 MojoCdmService::MojoCdmService(
     base::WeakPtr<MojoCdmServiceContext> context,
-    mojo::ServiceProvider* service_provider,
     CdmFactory* cdm_factory,
     mojo::InterfaceRequest<interfaces::ContentDecryptionModule> request)
     : binding_(this, std::move(request)),
       context_(context),
-      service_provider_(service_provider),
       cdm_factory_(cdm_factory),
       cdm_id_(CdmContext::kInvalidCdmId),
       weak_factory_(this) {
diff --git a/media/mojo/services/mojo_cdm_service.h b/media/mojo/services/mojo_cdm_service.h
index 76dd115..c99ef31a 100644
--- a/media/mojo/services/mojo_cdm_service.h
+++ b/media/mojo/services/mojo_cdm_service.h
@@ -18,7 +18,6 @@
 #include "media/mojo/services/mojo_cdm_service_context.h"
 #include "media/mojo/services/mojo_decryptor_service.h"
 #include "mojo/public/cpp/bindings/strong_binding.h"
-#include "mojo/shell/public/interfaces/service_provider.mojom.h"
 
 namespace media {
 
@@ -41,7 +40,6 @@
   // Constructs a MojoCdmService and strongly binds it to the |request|.
   MojoCdmService(
       base::WeakPtr<MojoCdmServiceContext> context,
-      mojo::ServiceProvider* service_provider,
       CdmFactory* cdm_factory,
       mojo::InterfaceRequest<interfaces::ContentDecryptionModule> request);
 
@@ -117,7 +115,6 @@
   mojo::StrongBinding<interfaces::ContentDecryptionModule> binding_;
   base::WeakPtr<MojoCdmServiceContext> context_;
 
-  mojo::ServiceProvider* service_provider_;
   CdmFactory* cdm_factory_;
   scoped_refptr<MediaKeys> cdm_;
 
diff --git a/media/mojo/services/service_factory_impl.cc b/media/mojo/services/service_factory_impl.cc
index d00efdb..2c515be 100644
--- a/media/mojo/services/service_factory_impl.cc
+++ b/media/mojo/services/service_factory_impl.cc
@@ -55,8 +55,8 @@
 void ServiceFactoryImpl::CreateCdm(
     mojo::InterfaceRequest<interfaces::ContentDecryptionModule> request) {
   // The created object is owned by the pipe.
-  new MojoCdmService(cdm_service_context_.GetWeakPtr(), service_provider_,
-                     GetCdmFactory(), std::move(request));
+  new MojoCdmService(cdm_service_context_.GetWeakPtr(), GetCdmFactory(),
+                     std::move(request));
 }
 
 RendererFactory* ServiceFactoryImpl::GetRendererFactory() {
diff --git a/net/http/http_stream_factory_impl.cc b/net/http/http_stream_factory_impl.cc
index c9272a83..8c7e8677f 100644
--- a/net/http/http_stream_factory_impl.cc
+++ b/net/http/http_stream_factory_impl.cc
@@ -375,12 +375,8 @@
   if (session_->params().transport_security_state->IsGooglePinnedHost(host))
     return true;
 
-  std::string lower_host = base::ToLowerASCII(host);
-  if (ContainsKey(session_->params().quic_host_whitelist, lower_host))
-    return true;
-
-  return base::EndsWith(lower_host, ".snapchat.com",
-                        base::CompareCase::SENSITIVE);
+  return ContainsKey(session_->params().quic_host_whitelist,
+                     base::ToLowerASCII(host));
 }
 
 }  // namespace net
diff --git a/sync/internal_api/public/util/proto_value_ptr_unittest.cc b/sync/internal_api/public/util/proto_value_ptr_unittest.cc
index d5223171..f439825f 100644
--- a/sync/internal_api/public/util/proto_value_ptr_unittest.cc
+++ b/sync/internal_api/public/util/proto_value_ptr_unittest.cc
@@ -100,7 +100,6 @@
   static int g_delete_count;
 
   scoped_ptr<IntValue> value_;
-  bool is_initialized_;
   bool is_default_;
 
   DISALLOW_COPY_AND_ASSIGN(TestValue);
diff --git a/third_party/WebKit/LayoutTests/fast/events/select-onchange-mouse-released-outside.html b/third_party/WebKit/LayoutTests/fast/events/select-onchange-mouse-released-outside.html
new file mode 100644
index 0000000..7673164
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/events/select-onchange-mouse-released-outside.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+</head>
+<body>
+<div style="height: 100px; overflow: scroll;">
+  <select multiple size="3" id="listbox">
+    <option>item 1</option>
+    <option>item 2</option>
+    <option>item 3</option>
+  </select>
+  <div style="height: 100px;">
+  </div>
+</div>
+<div id="log"></div>
+<script>
+test(function() {
+    var changeEventFired = false;
+    var listbox = document.getElementById("listbox");
+    listbox.addEventListener("change", function() {
+        changeEventFired = true;
+    });
+    if (!window.eventSender)
+        return;
+    var x = listbox.offsetLeft + listbox.offsetWidth / 2;
+    var y = listbox.offsetTop + 5;
+    eventSender.dragMode = false;
+    eventSender.mouseMoveTo(x, y);
+    eventSender.mouseDown();
+    // Move outside of listbox and then release mouse.
+    eventSender.mouseMoveTo(x + 1, y);
+    eventSender.mouseMoveTo(x + listbox.offsetWidth, y);
+    eventSender.mouseUp();
+    assert_true(changeEventFired, "changeEventFired");
+}, "Event listener on the select element should be triggered.");
+</script>
+</body>
+</html>
diff --git a/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp b/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp
index 2a9cd6f..1d9ec98 100644
--- a/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp
+++ b/third_party/WebKit/Source/core/dom/IntersectionObserver.cpp
@@ -317,19 +317,22 @@
         || m_leftMargin.type() == Percent);
 }
 
-void IntersectionObserver::rootDisappearedCallback(Visitor* visitor, void* self)
+#if ENABLE(OILPAN)
+void IntersectionObserver::clearWeakMembers(Visitor* visitor)
 {
-    IntersectionObserver* observer = static_cast<IntersectionObserver*>(self);
-    observer->disconnect();
+    if (Heap::isHeapObjectAlive(m_root))
+        return;
+    disconnect();
+    m_root = nullptr;
 }
+#endif
 
 DEFINE_TRACE(IntersectionObserver)
 {
 #if ENABLE(OILPAN)
-    visitor->registerWeakMembers(this, m_root.get(), IntersectionObserver::rootDisappearedCallback);
+    visitor->template registerWeakMembers<IntersectionObserver, &IntersectionObserver::clearWeakMembers>(this);
 #endif
     visitor->trace(m_callback);
-    visitor->trace(m_root);
     visitor->trace(m_observations);
     visitor->trace(m_entries);
 }
diff --git a/third_party/WebKit/Source/core/dom/IntersectionObserver.h b/third_party/WebKit/Source/core/dom/IntersectionObserver.h
index a918acb..d3e61cd9 100644
--- a/third_party/WebKit/Source/core/dom/IntersectionObserver.h
+++ b/third_party/WebKit/Source/core/dom/IntersectionObserver.h
@@ -27,7 +27,6 @@
 public:
     static IntersectionObserver* create(const IntersectionObserverInit&, IntersectionObserverCallback&, ExceptionState&);
     static void resumeSuspendedObservers();
-    static void rootDisappearedCallback(Visitor*, void*);
 
     // API methods
     void observe(Element*, ExceptionState&);
@@ -56,6 +55,9 @@
 
 private:
     explicit IntersectionObserver(IntersectionObserverCallback&, Node&, const Vector<Length>& rootMargin, const Vector<float>& thresholds);
+#if ENABLE(OILPAN)
+    void clearWeakMembers(Visitor*);
+#endif
 
     Member<IntersectionObserverCallback> m_callback;
     WeakPtrWillBeWeakMember<Node> m_root;
diff --git a/third_party/WebKit/Source/core/page/AutoscrollController.cpp b/third_party/WebKit/Source/core/page/AutoscrollController.cpp
index a0d2a27..e3b067cb 100644
--- a/third_party/WebKit/Source/core/page/AutoscrollController.cpp
+++ b/third_party/WebKit/Source/core/page/AutoscrollController.cpp
@@ -51,6 +51,7 @@
 AutoscrollController::AutoscrollController(Page& page)
     : m_page(&page)
     , m_autoscrollLayoutObject(nullptr)
+    , m_pressedLayoutObject(nullptr)
     , m_autoscrollType(NoAutoscroll)
     , m_dragAndDropAutoscrollStartTime(0)
 {
@@ -81,6 +82,8 @@
         scrollable = layoutObject->isListBox() ? toLayoutListBox(layoutObject) : nullptr;
     if (!scrollable)
         return;
+
+    m_pressedLayoutObject = layoutObject && layoutObject->isBox() ? toLayoutBox(layoutObject) : nullptr;
     m_autoscrollType = AutoscrollForSelection;
     m_autoscrollLayoutObject = scrollable;
     startAutoscroll();
@@ -88,13 +91,16 @@
 
 void AutoscrollController::stopAutoscroll()
 {
+    if (m_pressedLayoutObject) {
+        m_pressedLayoutObject->stopAutoscroll();
+        m_pressedLayoutObject = nullptr;
+    }
     LayoutBox* scrollable = m_autoscrollLayoutObject;
     m_autoscrollLayoutObject = nullptr;
 
     if (!scrollable)
         return;
 
-    scrollable->stopAutoscroll();
 #if OS(WIN)
     if (panScrollInProgress()) {
         if (FrameView* view = scrollable->frame()->view()) {
@@ -108,6 +114,9 @@
 
 void AutoscrollController::stopAutoscrollIfNeeded(LayoutObject* layoutObject)
 {
+    if (m_pressedLayoutObject == layoutObject)
+        m_pressedLayoutObject = nullptr;
+
     if (m_autoscrollLayoutObject != layoutObject)
         return;
     m_autoscrollLayoutObject = nullptr;
@@ -133,7 +142,7 @@
 
     LayoutBox* autoscrollLayoutObject = layoutObject && layoutObject->isBox() ? toLayoutBox(layoutObject) : nullptr;
     if (m_autoscrollLayoutObject && !autoscrollLayoutObject)
-        stopAutoscrollIfNeeded(m_autoscrollLayoutObject);
+        m_autoscrollType = NoAutoscroll;
 
     m_autoscrollLayoutObject = autoscrollLayoutObject;
 }
diff --git a/third_party/WebKit/Source/core/page/AutoscrollController.h b/third_party/WebKit/Source/core/page/AutoscrollController.h
index 4fa7ff6..1e1dc275e 100644
--- a/third_party/WebKit/Source/core/page/AutoscrollController.h
+++ b/third_party/WebKit/Source/core/page/AutoscrollController.h
@@ -85,6 +85,7 @@
 
     RawPtrWillBeMember<Page> m_page;
     LayoutBox* m_autoscrollLayoutObject;
+    LayoutBox* m_pressedLayoutObject;
     AutoscrollType m_autoscrollType;
     IntPoint m_dragAndDropAutoscrollReferencePosition;
     double m_dragAndDropAutoscrollStartTime;
diff --git a/ui/app_list/views/app_list_view_unittest.cc b/ui/app_list/views/app_list_view_unittest.cc
index 63872f6..477875f 100644
--- a/ui/app_list/views/app_list_view_unittest.cc
+++ b/ui/app_list/views/app_list_view_unittest.cc
@@ -727,7 +727,11 @@
   class AppListViewTestViewsDelegate : public views::TestViewsDelegate {
    public:
     explicit AppListViewTestViewsDelegate(AppListViewTestDesktop* parent)
-        : parent_(parent) {}
+#if defined(OS_CHROMEOS)
+        : parent_(parent)
+#endif
+    {
+    }
 
     // Overridden from views::ViewsDelegate:
     void OnBeforeWidgetInit(
@@ -735,7 +739,9 @@
         views::internal::NativeWidgetDelegate* delegate) override;
 
    private:
+#if defined(OS_CHROMEOS)
     AppListViewTestDesktop* parent_;
+#endif
 
     DISALLOW_COPY_AND_ASSIGN(AppListViewTestViewsDelegate);
   };
diff --git a/ui/message_center/fake_message_center_tray_delegate.h b/ui/message_center/fake_message_center_tray_delegate.h
index cee0c799..d0e95792 100644
--- a/ui/message_center/fake_message_center_tray_delegate.h
+++ b/ui/message_center/fake_message_center_tray_delegate.h
@@ -34,7 +34,6 @@
  private:
   scoped_ptr<MessageCenterTray> tray_;
   base::Closure quit_closure_;
-  bool displayed_first_run_balloon_;
 
   DISALLOW_COPY_AND_ASSIGN(FakeMessageCenterTrayDelegate);
 };