Chromium Code Reviews| Index: content/renderer/render_view.cc |
| =================================================================== |
| --- content/renderer/render_view.cc (revision 79652) |
| +++ content/renderer/render_view.cc (working copy) |
| @@ -41,31 +41,21 @@ |
| #include "chrome/common/url_constants.h" |
| #include "chrome/common/web_apps.h" |
| #include "chrome/renderer/about_handler.h" |
| -#include "chrome/renderer/autofill/autofill_agent.h" |
| #include "chrome/renderer/autofill/form_manager.h" |
| -#include "chrome/renderer/autofill/password_autofill_manager.h" |
| #include "chrome/renderer/automation/dom_automation_controller.h" |
| -#include "chrome/renderer/devtools_agent.h" |
| #include "chrome/renderer/devtools_client.h" |
| #include "chrome/renderer/extension_groups.h" |
| #include "chrome/renderer/extensions/bindings_utils.h" |
| #include "chrome/renderer/extensions/event_bindings.h" |
| -#include "chrome/renderer/extensions/extension_helper.h" |
| #include "chrome/renderer/extensions/extension_process_bindings.h" |
| #include "chrome/renderer/extensions/extension_resource_request_policy.h" |
| #include "chrome/renderer/extensions/renderer_extension_bindings.h" |
| #include "chrome/renderer/external_host_bindings.h" |
| #include "chrome/renderer/localized_error.h" |
| -#include "chrome/renderer/page_click_tracker.h" |
| #include "chrome/renderer/page_load_histograms.h" |
| -#include "chrome/renderer/print_web_view_helper.h" |
| #include "chrome/renderer/render_process.h" |
| #include "chrome/renderer/render_thread.h" |
| -#include "chrome/renderer/safe_browsing/malware_dom_details.h" |
| -#include "chrome/renderer/safe_browsing/phishing_classifier_delegate.h" |
| -#include "chrome/renderer/searchbox.h" |
| #include "chrome/renderer/spellchecker/spellcheck.h" |
| -#include "chrome/renderer/spellchecker/spellcheck_provider.h" |
| #include "chrome/renderer/translate_helper.h" |
| #include "chrome/renderer/user_script_idle_scheduler.h" |
| #include "chrome/renderer/user_script_slave.h" |
| @@ -277,9 +267,7 @@ |
| using WebKit::WebWorker; |
| using WebKit::WebWorkerClient; |
| using appcache::WebApplicationCacheHostImpl; |
| -using autofill::AutofillAgent; |
| using autofill::FormManager; |
| -using autofill::PasswordAutofillManager; |
| using base::Time; |
| using base::TimeDelta; |
| using webkit_glue::AltErrorPageResourceFetcher; |
| @@ -515,14 +503,10 @@ |
| }; |
| RenderView::RenderView(RenderThreadBase* render_thread, |
| - gfx::NativeViewId parent_hwnd, |
| - int32 opener_id, |
| - const RendererPreferences& renderer_prefs, |
| const WebPreferences& webkit_prefs, |
| SharedRenderViewCounter* counter, |
| int32 routing_id, |
| - int64 session_storage_namespace_id, |
| - const string16& frame_name) |
| + int64 session_storage_namespace_id) |
| : RenderWidget(render_thread, WebKit::WebPopupTypeNone), |
| webkit_preferences_(webkit_prefs), |
| send_content_state_immediately_(false), |
| @@ -556,9 +540,6 @@ |
| geolocation_dispatcher_(NULL), |
| speech_input_dispatcher_(NULL), |
| device_orientation_dispatcher_(NULL), |
| - print_helper_(NULL), |
| - searchbox_(NULL), |
| - spellcheck_provider_(NULL), |
| accessibility_ack_pending_(false), |
| p2p_socket_dispatcher_(NULL), |
| pending_app_icon_requests_(0), |
| @@ -567,8 +548,6 @@ |
| ClearBlockedContentSettings(); |
| routing_id_ = routing_id; |
| - if (opener_id != MSG_ROUTING_NONE) |
| - opener_id_ = opener_id; |
| if (counter) { |
| shared_popup_counter_ = counter; |
| @@ -580,14 +559,15 @@ |
| } |
| notification_provider_ = new NotificationProvider(this); |
| +} |
| - devtools_agent_ = new DevToolsAgent(this); |
| - PasswordAutofillManager* password_autofill_manager = |
| - new PasswordAutofillManager(this); |
| - AutofillAgent* autofill_agent = new AutofillAgent(this, |
| - password_autofill_manager); |
| - |
| - webwidget_ = WebView::create(this, devtools_agent_, autofill_agent); |
| +void RenderView::Init(gfx::NativeViewId parent_hwnd, |
| + int32 opener_id, |
| + const RendererPreferences& renderer_prefs, |
| + const string16& frame_name, |
| + WebKit::WebAutoFillClient* autofill_agent, |
| + WebKit::WebDevToolsAgentClient* devtools_agent) { |
| + webwidget_ = WebView::create(this, devtools_agent, autofill_agent); |
| g_view_map.Get().insert(std::make_pair(webview(), this)); |
| webkit_preferences_.Apply(webview()); |
| webview()->initializeMainFrame(this); |
| @@ -609,6 +589,8 @@ |
| if (opener_id == MSG_ROUTING_NONE) { |
| did_show_ = true; |
| CompleteInit(parent_hwnd); |
| + } else { |
| + opener_id_ = opener_id; |
| } |
| host_window_ = parent_hwnd; |
| @@ -622,34 +604,10 @@ |
| audio_message_filter_ = new AudioMessageFilter(routing_id_); |
| render_thread_->AddFilter(audio_message_filter_); |
| - PageClickTracker* page_click_tracker = new PageClickTracker(this); |
| - // Note that the order of insertion of the listeners is important. |
| - // The password_autocomplete_manager takes the first shot at processing the |
| - // notification and can stop the propagation. |
| - page_click_tracker->AddListener(password_autofill_manager); |
| - page_click_tracker->AddListener(autofill_agent); |
| - new TranslateHelper(this); |
| - print_helper_ = new PrintWebViewHelper(this); |
| - searchbox_ = new SearchBox(this); |
| - |
| - RenderThread* current_thread = RenderThread::current(); |
| - SpellCheck* spellcheck = current_thread ? current_thread->spellchecker() : 0; |
| - spellcheck_provider_ = new SpellCheckProvider(this, spellcheck); |
| - |
| if (CommandLine::ForCurrentProcess()->HasSwitch( |
| switches::kEnableP2PApi)) { |
| p2p_socket_dispatcher_ = new P2PSocketDispatcher(this); |
| } |
| - |
| - if (CommandLine::ForCurrentProcess()->HasSwitch( |
| - switches::kEnableClientSidePhishingDetection)) { |
| - new safe_browsing::PhishingClassifierDelegate(this, NULL); |
| - } |
| - |
| - // Observer for Malware DOM details messages. |
| - new safe_browsing::MalwareDOMDetails(this); |
| - |
| - new ExtensionHelper(this); |
| } |
| RenderView::~RenderView() { |
| @@ -711,27 +669,18 @@ |
| } |
| /*static*/ |
| -RenderView* RenderView::Create( |
| - RenderThreadBase* render_thread, |
| - gfx::NativeViewId parent_hwnd, |
| - int32 opener_id, |
| - const RendererPreferences& renderer_prefs, |
| - const WebPreferences& webkit_prefs, |
| - SharedRenderViewCounter* counter, |
| - int32 routing_id, |
| - int64 session_storage_namespace_id, |
| - const string16& frame_name) { |
| +RenderView* RenderView::Create(RenderThreadBase* render_thread, |
| + const WebPreferences& webkit_prefs, |
| + SharedRenderViewCounter* counter, |
| + int32 routing_id, |
| + int64 session_storage_namespace_id) { |
| DCHECK(routing_id != MSG_ROUTING_NONE); |
| return new RenderView( |
| render_thread, |
| - parent_hwnd, |
| - opener_id, |
| - renderer_prefs, |
| webkit_prefs, |
| counter, |
| routing_id, |
| - session_storage_namespace_id, |
| - frame_name); // adds reference |
| + session_storage_namespace_id); // adds reference |
| } |
| // static |
| @@ -2000,14 +1949,16 @@ |
| return NULL; |
| RenderView* view = RenderView::Create(render_thread_, |
| - 0, |
| - routing_id_, |
| - renderer_preferences_, |
| webkit_preferences_, |
| shared_popup_counter_, |
| routing_id, |
| - cloned_session_storage_namespace_id, |
| - frame_name); |
| + cloned_session_storage_namespace_id); |
| + view->Init(0, |
| + routing_id_, |
| + renderer_preferences_, |
| + frame_name, |
| + NULL, |
| + NULL); |
| view->opened_by_user_gesture_ = params.user_gesture; |
| // Record whether the creator frame is trying to suppress the opener field. |
| @@ -2076,8 +2027,8 @@ |
| UTF16ToWideHack(source_name))); |
| } |
| -void RenderView::printPage(WebFrame* frame) { |
| - print_helper_->ScriptInitiatedPrint(frame); |
| +void RenderView::printPage(WebKit::WebFrame* frame) { |
| + FOR_EACH_OBSERVER(RenderViewObserver, observers_, printPage(frame)); |
| } |
| WebKit::WebNotificationPresenter* RenderView::notificationPresenter() { |
| @@ -2257,7 +2208,9 @@ |
| void RenderView::requestCheckingOfText( |
| const WebString& text, |
| WebKit::WebTextCheckingCompletion* completion) { |
| - spellcheck_provider_->RequestTextChecking(text, document_tag_, completion); |
| + FOR_EACH_OBSERVER(RenderViewObserver, |
| + observers_, |
| + RequestTextChecking(text, document_tag_, completion)); |
|
jam
2011/03/29 18:31:59
http://codereview.chromium.org/6764001/ removes th
Lei Zhang
2011/03/30 22:05:43
Right, but we still have the spellcheck_provider_
|
| } |
| WebString RenderView::autoCorrectWord(const WebKit::WebString& word) { |