Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(313)

Side by Side Diff: content/browser/webui/web_ui_impl.cc

Issue 1315723003: Make WebUIImpl a WebContentsObserver to re-use RenderViewCreated() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/webui/web_ui_impl.h" 5 #include "content/browser/webui/web_ui_impl.h"
6 6
7 #include "base/json/json_writer.h" 7 #include "base/json/json_writer.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "content/browser/child_process_security_policy_impl.h" 10 #include "content/browser/child_process_security_policy_impl.h"
(...skipping 26 matching lines...) Expand all
37 parameters += base::char16(','); 37 parameters += base::char16(',');
38 38
39 base::JSONWriter::Write(*arg_list[i], &json); 39 base::JSONWriter::Write(*arg_list[i], &json);
40 parameters += base::UTF8ToUTF16(json); 40 parameters += base::UTF8ToUTF16(json);
41 } 41 }
42 return base::ASCIIToUTF16(function_name) + 42 return base::ASCIIToUTF16(function_name) +
43 base::char16('(') + parameters + base::char16(')') + base::char16(';'); 43 base::char16('(') + parameters + base::char16(')') + base::char16(';');
44 } 44 }
45 45
46 WebUIImpl::WebUIImpl(WebContents* contents) 46 WebUIImpl::WebUIImpl(WebContents* contents)
47 : link_transition_type_(ui::PAGE_TRANSITION_LINK), 47 : WebContentsObserver(contents),
48 link_transition_type_(ui::PAGE_TRANSITION_LINK),
48 bindings_(BINDINGS_POLICY_WEB_UI), 49 bindings_(BINDINGS_POLICY_WEB_UI),
49 web_contents_(contents) { 50 web_contents_(contents) {
50 DCHECK(contents); 51 DCHECK(contents);
51 } 52 }
52 53
53 WebUIImpl::~WebUIImpl() { 54 WebUIImpl::~WebUIImpl() {
54 // Delete the controller first, since it may also be keeping a pointer to some 55 // Delete the controller first, since it may also be keeping a pointer to some
55 // of the handlers and can call them at destruction. 56 // of the handlers and can call them at destruction.
56 controller_.reset(); 57 controller_.reset();
57 } 58 }
(...skipping 17 matching lines...) Expand all
75 !WebUIControllerFactoryRegistry::GetInstance()->IsURLAcceptableForWebUI( 76 !WebUIControllerFactoryRegistry::GetInstance()->IsURLAcceptableForWebUI(
76 web_contents_->GetBrowserContext(), source_url)) { 77 web_contents_->GetBrowserContext(), source_url)) {
77 NOTREACHED() << "Blocked unauthorized use of WebUIBindings."; 78 NOTREACHED() << "Blocked unauthorized use of WebUIBindings.";
78 return; 79 return;
79 } 80 }
80 81
81 ProcessWebUIMessage(source_url, message, args); 82 ProcessWebUIMessage(source_url, message, args);
82 } 83 }
83 84
84 void WebUIImpl::RenderViewCreated(RenderViewHost* render_view_host) { 85 void WebUIImpl::RenderViewCreated(RenderViewHost* render_view_host) {
85 controller_->RenderViewCreated(render_view_host); 86 controller_->RenderViewCreated(render_view_host);
Charlie Reis 2015/08/28 17:05:56 Do we need to check whether this is our RVH before
86 } 87 }
87 88
88 WebContents* WebUIImpl::GetWebContents() const { 89 WebContents* WebUIImpl::GetWebContents() const {
89 return web_contents_; 90 return web_contents_;
90 } 91 }
91 92
92 float WebUIImpl::GetDeviceScaleFactor() const { 93 float WebUIImpl::GetDeviceScaleFactor() const {
93 return GetScaleFactorForView(web_contents_->GetRenderWidgetHostView()); 94 return GetScaleFactorForView(web_contents_->GetRenderWidgetHostView());
94 } 95 }
95 96
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 } 242 }
242 243
243 void WebUIImpl::AddToSetIfFrameNameMatches( 244 void WebUIImpl::AddToSetIfFrameNameMatches(
244 std::set<RenderFrameHost*>* frame_set, 245 std::set<RenderFrameHost*>* frame_set,
245 RenderFrameHost* host) { 246 RenderFrameHost* host) {
246 if (host->GetFrameName() == frame_name_) 247 if (host->GetFrameName() == frame_name_)
247 frame_set->insert(host); 248 frame_set->insert(host);
248 } 249 }
249 250
250 } // namespace content 251 } // namespace content
OLDNEW
« content/browser/webui/web_ui_impl.h ('K') | « content/browser/webui/web_ui_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698