trimmed release 36.0.1985.143
Rebase 'feature/blpwtk2' from upstream/35.0.1916.153 onto upstream/36.0.1985.143

Conflicts:
	src/base/logging.cc
	src/base/message_loop/message_loop.h
	src/build/common.gypi
	src/content/app/content_main_runner.cc
	src/content/browser/browser_main_loop.cc
	src/content/browser/renderer_host/render_process_host_impl.cc
	src/content/browser/renderer_host/render_process_host_impl.h
	src/content/browser/renderer_host/render_view_host_impl.cc
	src/content/browser/renderer_host/render_widget_host_delegate.cc
	src/content/browser/renderer_host/render_widget_host_delegate.h
	src/content/browser/site_instance_impl.cc
	src/content/browser/web_contents/web_contents_impl.cc
	src/content/browser/web_contents/web_contents_impl.h
	src/content/child/runtime_features.cc
	src/content/public/app/content_main_runner.h
	src/content/public/common/content_switches.cc
	src/content/public/common/content_switches.h
	src/content/renderer/render_thread_impl.cc
	src/content/renderer/render_widget.cc
	src/content/renderer/render_widget.h
	src/content/shell/browser/shell_content_browser_client.cc
	src/third_party/WebKit/Source/web/WebDocument.cpp
	src/third_party/WebKit/Source/web/WebKit.cpp
	src/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
	src/third_party/WebKit/Source/web/web.gypi
	src/v8/build/toolchain.gypi
	src/v8/src/api.cc
Disable the V8RecursionScope assertion again

This change [1] was lost in the previous merge because the code was moved to a
new place.  Now that the suppression guard API is available in V8, we can
revisit this issue and maybe revert this change in the future.

[1] 9d2c9a5 "Disable the V8RecursionScope assertion"
Reapply another change lost in the previous merge

[1] 70c72a2 "Keep trace level generated from main document"
Fix compile errors for v36

* New pure virtual function was added to BrowserContext
  (https://codereview.chromium.org/258373002)
* WebLocalFrame has been split from WebFrame
  (https://codereview.chromium.org/232133004)
* WebContentsObserver::WebContentsDestroyed no longer takes a WebContents
  pointer, and the internal web_contents pointer is no longer NULL
  (https://codereview.chromium.org/257153003)
* DevToolsTarget virtual function names changed
  (https://codereview.chromium.org/268673002)
* A bunch of changes to the ResourceLoaderBridge interface
* (https://codereview.chromium.org/216913002,
  https://codereview.chromium.org/218973002,
  https://codereview.chromium.org/146333004)
* MessageLoop::pump_win() has been removed
  (https://codereview.chromium.org/235893016).  It was replaced with get_pump()
  during the merge conflict resolution
* Edit commands were moved back to WebContents from RenderFrameHost
  (https://codereview.chromium.org/226183019)
* WebContentsView is no longer exposed outside content
  (https://codereview.chromium.org/262823006)
* RenderWidgetHostViewPort has been removed
  (https://codereview.chromium.org/264703002)
* WebInputEventFactory has been removed
  (https://codereview.chromium.org/241023003)
* IPC::MessageFilter is now a separate class and not nested in
  IPC::ChannelProxy (https://codereview.chromium.org/245443005)
* RenderWidget::Resize now takes a visible_viewport_size parameter
  (https://codereview.chromium.org/195793004)
* public/web now uses relative includes
  (https://codereview.chromium.org/257773003)
* New WebRemoteFrameImpl class needs to implement the scriptIsolate() pure
  virtual function (https://codereview.chromium.org/248963008)
content_shell: Initialize wm::WMState

This is necessary to setup the environment properly.  Without this,
content_shell crashes when trying to show a context menu.
Dispatch JsWidget events asynchronously

This is necessary because there are guards that forbid scripts from being
executed during these callbacks.  Also, fix a leak where JsWidget was not being
deleted when it was destroyed.