Index: extensions/renderer/extensions_render_frame_observer.cc |
diff --git a/extensions/renderer/extensions_render_frame_observer.cc b/extensions/renderer/extensions_render_frame_observer.cc |
index be6dbccd2f1e12e36e90bbc7021516595a1dbbec..4fff370bdda0739779be50689ecb50be21b1bd30 100644 |
--- a/extensions/renderer/extensions_render_frame_observer.cc |
+++ b/extensions/renderer/extensions_render_frame_observer.cc |
@@ -9,9 +9,12 @@ |
#include "base/strings/string_split.h" |
#include "base/strings/utf_string_conversions.h" |
#include "content/public/renderer/render_frame.h" |
+#include "content/public/renderer/render_view.h" |
#include "extensions/common/extension_messages.h" |
#include "extensions/common/stack_frame.h" |
+#include "services/service_manager/public/cpp/interface_registry.h" |
#include "third_party/WebKit/public/web/WebLocalFrame.h" |
+#include "third_party/WebKit/public/web/WebView.h" |
namespace extensions { |
@@ -76,12 +79,37 @@ StackTrace GetStackTraceFromMessage(base::string16* message, |
ExtensionsRenderFrameObserver::ExtensionsRenderFrameObserver( |
content::RenderFrame* render_frame) |
- : content::RenderFrameObserver(render_frame) { |
+ : content::RenderFrameObserver(render_frame), |
+ webview_visually_deemphasized_(false) { |
+ render_frame->GetInterfaceRegistry()->AddInterface( |
+ base::Bind(&ExtensionsRenderFrameObserver::AssociateBindings, |
+ base::Unretained(this))); |
} |
ExtensionsRenderFrameObserver::~ExtensionsRenderFrameObserver() { |
} |
+void ExtensionsRenderFrameObserver::AssociateBindings( |
+ mojom::AppWindowHandlerRequest request) { |
+ bindings_.AddBinding(this, std::move(request)); |
+} |
+ |
+void ExtensionsRenderFrameObserver::SetVisuallyDeemphasized(bool deemphasized) { |
+ if (webview_visually_deemphasized_ == deemphasized) |
+ return; |
+ |
+ webview_visually_deemphasized_ = deemphasized; |
+ |
+ if (deemphasized) { |
+ // 70% opaque grey. |
+ SkColor greyish = SkColorSetARGB(178, 0, 0, 0); |
+ render_frame()->GetRenderView()->GetWebView()->setPageOverlayColor(greyish); |
+ } else { |
+ render_frame()->GetRenderView()->GetWebView()->setPageOverlayColor( |
+ SK_ColorTRANSPARENT); |
Devlin
2017/03/07 19:39:05
I realize this was just copy-paste, so not your co
catmullings
2017/03/08 01:52:02
Done.
|
+ } |
+} |
+ |
void ExtensionsRenderFrameObserver::DetailedConsoleMessageAdded( |
const base::string16& message, |
const base::string16& source, |