OLD | NEW |
---|---|
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "chrome/renderer/render_view.h" | 5 #include "chrome/renderer/render_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
510 ALLOW_THIS_IN_INITIALIZER_LIST(page_info_method_factory_(this)), | 510 ALLOW_THIS_IN_INITIALIZER_LIST(page_info_method_factory_(this)), |
511 ALLOW_THIS_IN_INITIALIZER_LIST(autofill_method_factory_(this)), | 511 ALLOW_THIS_IN_INITIALIZER_LIST(autofill_method_factory_(this)), |
512 ALLOW_THIS_IN_INITIALIZER_LIST(accessibility_method_factory_(this)), | 512 ALLOW_THIS_IN_INITIALIZER_LIST(accessibility_method_factory_(this)), |
513 ALLOW_THIS_IN_INITIALIZER_LIST(translate_helper_(this)), | 513 ALLOW_THIS_IN_INITIALIZER_LIST(translate_helper_(this)), |
514 ALLOW_THIS_IN_INITIALIZER_LIST(cookie_jar_(this)), | 514 ALLOW_THIS_IN_INITIALIZER_LIST(cookie_jar_(this)), |
515 ALLOW_THIS_IN_INITIALIZER_LIST( | 515 ALLOW_THIS_IN_INITIALIZER_LIST( |
516 notification_provider_(new NotificationProvider(this))), | 516 notification_provider_(new NotificationProvider(this))), |
517 accessibility_ack_pending_(false), | 517 accessibility_ack_pending_(false), |
518 pending_app_icon_requests_(0), | 518 pending_app_icon_requests_(0), |
519 session_storage_namespace_id_(session_storage_namespace_id), | 519 session_storage_namespace_id_(session_storage_namespace_id), |
520 decrement_shared_popup_at_destruction_(false) { | 520 decrement_shared_popup_at_destruction_(false), |
521 plugin_menu_event_listener_(NULL) { | |
521 #if defined(OS_MACOSX) | 522 #if defined(OS_MACOSX) |
522 // On Mac, the select popups are rendered by the browser. | 523 // On Mac, the select popups are rendered by the browser. |
523 // Note that we don't do this in RenderMain otherwise this would not be called | 524 // Note that we don't do this in RenderMain otherwise this would not be called |
524 // in single-process mode. | 525 // in single-process mode. |
525 WebKit::WebView::setUseExternalPopupMenus(true); | 526 WebKit::WebView::setUseExternalPopupMenus(true); |
526 #endif | 527 #endif |
527 password_autocomplete_manager_.reset(new PasswordAutocompleteManager(this)); | 528 password_autocomplete_manager_.reset(new PasswordAutocompleteManager(this)); |
528 autofill_helper_.reset(new AutoFillHelper(this)); | 529 autofill_helper_.reset(new AutoFillHelper(this)); |
529 page_click_tracker_.reset(new PageClickTracker(this)); | 530 page_click_tracker_.reset(new PageClickTracker(this)); |
530 // Note that the order of insertion of the listeners is important. | 531 // Note that the order of insertion of the listeners is important. |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
800 if (!found || !info.enabled) | 801 if (!found || !info.enabled) |
801 return NULL; | 802 return NULL; |
802 scoped_refptr<pepper::PluginModule> pepper_module( | 803 scoped_refptr<pepper::PluginModule> pepper_module( |
803 PepperPluginRegistry::GetInstance()->GetModule(info.path)); | 804 PepperPluginRegistry::GetInstance()->GetModule(info.path)); |
804 if (pepper_module) | 805 if (pepper_module) |
805 return CreatePepperPlugin(frame, params, info.path, pepper_module.get()); | 806 return CreatePepperPlugin(frame, params, info.path, pepper_module.get()); |
806 else | 807 else |
807 return CreateNPAPIPlugin(frame, params, info.path, mime_type); | 808 return CreateNPAPIPlugin(frame, params, info.path, mime_type); |
808 } | 809 } |
809 | 810 |
811 void RenderView::PluginMenuEventListenerInstall(BlockedPlugin* listening) { | |
812 plugin_menu_event_listener_ = listening; | |
813 } | |
814 | |
815 void RenderView::PluginMenuEventListenerDestroyed(BlockedPlugin* dead) { | |
816 if (plugin_menu_event_listener_ == dead) { | |
brettw
2010/12/07 06:23:56
Don't use {} for single-line conditionals to match
Chris Evans
2010/12/07 15:36:14
Done.
| |
817 plugin_menu_event_listener_ = NULL; | |
818 } | |
819 } | |
820 | |
810 void RenderView::RegisterPluginDelegate(WebPluginDelegateProxy* delegate) { | 821 void RenderView::RegisterPluginDelegate(WebPluginDelegateProxy* delegate) { |
811 plugin_delegates_.insert(delegate); | 822 plugin_delegates_.insert(delegate); |
812 // If the renderer is visible, set initial visibility and focus state. | 823 // If the renderer is visible, set initial visibility and focus state. |
813 if (!is_hidden()) { | 824 if (!is_hidden()) { |
814 #if defined(OS_MACOSX) | 825 #if defined(OS_MACOSX) |
815 delegate->SetContainerVisibility(true); | 826 delegate->SetContainerVisibility(true); |
816 if (webview() && webview()->isActive()) | 827 if (webview() && webview()->isActive()) |
817 delegate->SetWindowFocus(true); | 828 delegate->SetWindowFocus(true); |
818 #endif | 829 #endif |
819 } | 830 } |
(...skipping 1564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2384 // response as RunJavaScriptMessage. | 2395 // response as RunJavaScriptMessage. |
2385 std::wstring ignored_result; | 2396 std::wstring ignored_result; |
2386 SendAndRunNestedMessageLoop(new ViewHostMsg_RunBeforeUnloadConfirm( | 2397 SendAndRunNestedMessageLoop(new ViewHostMsg_RunBeforeUnloadConfirm( |
2387 routing_id_, frame->url(), UTF16ToWideHack(message), &success, | 2398 routing_id_, frame->url(), UTF16ToWideHack(message), &success, |
2388 &ignored_result)); | 2399 &ignored_result)); |
2389 return success; | 2400 return success; |
2390 } | 2401 } |
2391 | 2402 |
2392 void RenderView::showContextMenu( | 2403 void RenderView::showContextMenu( |
2393 WebFrame* frame, const WebContextMenuData& data) { | 2404 WebFrame* frame, const WebContextMenuData& data) { |
2405 plugin_menu_event_listener_ = NULL; | |
2394 ContextMenuParams params = ContextMenuParams(data); | 2406 ContextMenuParams params = ContextMenuParams(data); |
2395 if (!params.misspelled_word.empty() && RenderThread::current()) { | 2407 if (!params.misspelled_word.empty() && RenderThread::current()) { |
2396 int misspelled_offset, misspelled_length; | 2408 int misspelled_offset, misspelled_length; |
2397 bool spelled_right = RenderThread::current()->spellchecker()-> | 2409 bool spelled_right = RenderThread::current()->spellchecker()-> |
2398 SpellCheckWord( | 2410 SpellCheckWord( |
2399 params.misspelled_word.c_str(), params.misspelled_word.size(), | 2411 params.misspelled_word.c_str(), params.misspelled_word.size(), |
2400 document_tag_, | 2412 document_tag_, |
2401 &misspelled_offset, &misspelled_length, | 2413 &misspelled_offset, &misspelled_length, |
2402 ¶ms.dictionary_suggestions); | 2414 ¶ms.dictionary_suggestions); |
2403 if (spelled_right) | 2415 if (spelled_right) |
(...skipping 2279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4683 void RenderView::OnUpdateWebPreferences(const WebPreferences& prefs) { | 4695 void RenderView::OnUpdateWebPreferences(const WebPreferences& prefs) { |
4684 webkit_preferences_ = prefs; | 4696 webkit_preferences_ = prefs; |
4685 webkit_preferences_.Apply(webview()); | 4697 webkit_preferences_.Apply(webview()); |
4686 } | 4698 } |
4687 | 4699 |
4688 void RenderView::OnSetAltErrorPageURL(const GURL& url) { | 4700 void RenderView::OnSetAltErrorPageURL(const GURL& url) { |
4689 alternate_error_page_url_ = url; | 4701 alternate_error_page_url_ = url; |
4690 } | 4702 } |
4691 | 4703 |
4692 void RenderView::OnCustomContextMenuAction(unsigned action) { | 4704 void RenderView::OnCustomContextMenuAction(unsigned action) { |
4693 webview()->performCustomContextMenuAction(action); | 4705 if (plugin_menu_event_listener_) { |
4706 plugin_menu_event_listener_->menuOptionSelected(action); | |
4707 } else { | |
4708 webview()->performCustomContextMenuAction(action); | |
4709 } | |
4694 } | 4710 } |
4695 | 4711 |
4696 void RenderView::OnTranslatePage(int page_id, | 4712 void RenderView::OnTranslatePage(int page_id, |
4697 const std::string& translate_script, | 4713 const std::string& translate_script, |
4698 const std::string& source_lang, | 4714 const std::string& source_lang, |
4699 const std::string& target_lang) { | 4715 const std::string& target_lang) { |
4700 translate_helper_.TranslatePage(page_id, source_lang, target_lang, | 4716 translate_helper_.TranslatePage(page_id, source_lang, target_lang, |
4701 translate_script); | 4717 translate_script); |
4702 } | 4718 } |
4703 | 4719 |
(...skipping 981 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5685 external_popup_menu_.reset(); | 5701 external_popup_menu_.reset(); |
5686 } | 5702 } |
5687 #endif | 5703 #endif |
5688 | 5704 |
5689 void RenderView::AddErrorToRootConsole(const string16& message) { | 5705 void RenderView::AddErrorToRootConsole(const string16& message) { |
5690 if (webview() && webview()->mainFrame()) { | 5706 if (webview() && webview()->mainFrame()) { |
5691 webview()->mainFrame()->addMessageToConsole( | 5707 webview()->mainFrame()->addMessageToConsole( |
5692 WebConsoleMessage(WebConsoleMessage::LevelError, message)); | 5708 WebConsoleMessage(WebConsoleMessage::LevelError, message)); |
5693 } | 5709 } |
5694 } | 5710 } |
OLD | NEW |