Index: chrome/renderer/net/net_error_page_controller.cc |
diff --git a/chrome/renderer/net/net_error_page_controller.cc b/chrome/renderer/net/net_error_page_controller.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..66ca54f511d5674ec218549b510a1ea47bb21a0b |
--- /dev/null |
+++ b/chrome/renderer/net/net_error_page_controller.cc |
@@ -0,0 +1,89 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/renderer/net/net_error_page_controller.h" |
+ |
+#include "base/strings/string_piece.h" |
+#include "chrome/renderer/net/net_error_helper.h" |
+#include "content/public/renderer/render_frame.h" |
+#include "gin/handle.h" |
+#include "gin/object_template_builder.h" |
+#include "third_party/WebKit/public/web/WebFrame.h" |
+#include "third_party/WebKit/public/web/WebKit.h" |
+ |
+gin::WrapperInfo NetErrorPageController::kWrapperInfo = { |
+ gin::kEmbedderNativeGin}; |
+ |
+// static |
+void NetErrorPageController::Install(content::RenderFrame* render_frame) { |
+ v8::Isolate* isolate = blink::mainThreadIsolate(); |
+ v8::HandleScope handle_scope(isolate); |
+ v8::Handle<v8::Context> context = |
+ render_frame->GetWebFrame()->mainWorldScriptContext(); |
+ if (context.IsEmpty()) |
+ return; |
+ |
+ v8::Context::Scope context_scope(context); |
+ |
+ gin::Handle<NetErrorPageController> controller = gin::CreateHandle( |
+ isolate, new NetErrorPageController(render_frame)); |
+ v8::Handle<v8::Object> global = context->Global(); |
+ global->Set(gin::StringToV8(isolate, "errorPageController"), |
+ controller.ToV8()); |
+} |
+ |
+bool NetErrorPageController::LoadStaleButtonClick() { |
+ if (!render_frame()) |
+ return false; |
+ |
+ NetErrorHelper* net_error_helper = |
+ content::RenderFrameObserverTracker<NetErrorHelper>::Get(render_frame()); |
+ DCHECK(net_error_helper); |
+ net_error_helper->LoadStaleButtonPressed(); |
+ |
+ return true; |
+} |
+ |
+bool NetErrorPageController::ReloadButtonClick() { |
+ if (!render_frame()) |
+ return false; |
+ |
+ NetErrorHelper* net_error_helper = |
+ content::RenderFrameObserverTracker<NetErrorHelper>::Get(render_frame()); |
+ DCHECK(net_error_helper); |
+ net_error_helper->ReloadButtonPressed(); |
+ |
+ return true; |
+} |
+ |
+bool NetErrorPageController::MoreButtonClick() { |
+ if (!render_frame()) |
+ return false; |
+ |
+ NetErrorHelper* net_error_helper = |
+ content::RenderFrameObserverTracker<NetErrorHelper>::Get(render_frame()); |
+ DCHECK(net_error_helper); |
+ net_error_helper->MoreButtonPressed(); |
+ |
+ return true; |
+} |
+ |
+NetErrorPageController::NetErrorPageController( |
+ content::RenderFrame* render_frame) : RenderFrameObserver(render_frame) {} |
+ |
+NetErrorPageController::~NetErrorPageController() {} |
+ |
+gin::ObjectTemplateBuilder NetErrorPageController::GetObjectTemplateBuilder( |
+ v8::Isolate* isolate) { |
+ return gin::Wrappable<NetErrorPageController>::GetObjectTemplateBuilder( |
+ isolate) |
jar (doing other things)
2014/04/21 23:48:19
nit: This should only be indented 4 from the start
Randy Smith (Not in Mondays)
2014/04/22 20:40:02
Done.
|
+ .SetMethod("loadStaleButtonClick", |
+ &NetErrorPageController::LoadStaleButtonClick) |
+ .SetMethod("reloadButtonClick", |
+ &NetErrorPageController::ReloadButtonClick) |
+ .SetMethod("moreButtonClick", |
+ &NetErrorPageController::MoreButtonClick); |
+} |
+ |
+void NetErrorPageController::OnDestruct() {} |