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

Side by Side Diff: content/renderer/render_view_impl.cc

Issue 7685006: Implement input type=color UI (common part) (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: forgot to turn off flag Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/renderer/render_view_impl.h" 5 #include "content/renderer/render_view_impl.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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 #include "content/renderer/media/render_media_log.h" 59 #include "content/renderer/media/render_media_log.h"
60 #include "content/renderer/mhtml_generator.h" 60 #include "content/renderer/mhtml_generator.h"
61 #include "content/renderer/notification_provider.h" 61 #include "content/renderer/notification_provider.h"
62 #include "content/renderer/p2p/socket_dispatcher.h" 62 #include "content/renderer/p2p/socket_dispatcher.h"
63 #include "content/renderer/plugin_channel_host.h" 63 #include "content/renderer/plugin_channel_host.h"
64 #include "content/renderer/render_process.h" 64 #include "content/renderer/render_process.h"
65 #include "content/renderer/render_thread_impl.h" 65 #include "content/renderer/render_thread_impl.h"
66 #include "content/renderer/render_widget_fullscreen_pepper.h" 66 #include "content/renderer/render_widget_fullscreen_pepper.h"
67 #include "content/renderer/renderer_accessibility.h" 67 #include "content/renderer/renderer_accessibility.h"
68 #include "content/renderer/renderer_webapplicationcachehost_impl.h" 68 #include "content/renderer/renderer_webapplicationcachehost_impl.h"
69 #if defined(ENABLE_INPUT_COLOR)
70 #include "content/renderer/renderer_webcolorchooser_impl.h"
71 #endif
69 #include "content/renderer/renderer_webstoragenamespace_impl.h" 72 #include "content/renderer/renderer_webstoragenamespace_impl.h"
70 #include "content/renderer/speech_input_dispatcher.h" 73 #include "content/renderer/speech_input_dispatcher.h"
71 #include "content/renderer/text_input_client_observer.h" 74 #include "content/renderer/text_input_client_observer.h"
72 #include "content/renderer/v8_value_converter_impl.h" 75 #include "content/renderer/v8_value_converter_impl.h"
73 #include "content/renderer/web_ui_bindings.h" 76 #include "content/renderer/web_ui_bindings.h"
74 #include "content/renderer/webplugin_delegate_proxy.h" 77 #include "content/renderer/webplugin_delegate_proxy.h"
75 #include "content/renderer/websharedworker_proxy.h" 78 #include "content/renderer/websharedworker_proxy.h"
76 #include "media/base/filter_collection.h" 79 #include "media/base/filter_collection.h"
77 #include "media/base/media_switches.h" 80 #include "media/base/media_switches.h"
78 #include "media/base/message_loop_factory_impl.h" 81 #include "media/base/message_loop_factory_impl.h"
(...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 IPC_MESSAGE_HANDLER(ViewMsg_AllowBindings, OnAllowBindings) 624 IPC_MESSAGE_HANDLER(ViewMsg_AllowBindings, OnAllowBindings)
622 IPC_MESSAGE_HANDLER(ViewMsg_SetWebUIProperty, OnSetWebUIProperty) 625 IPC_MESSAGE_HANDLER(ViewMsg_SetWebUIProperty, OnSetWebUIProperty)
623 IPC_MESSAGE_HANDLER(ViewMsg_SetInitialFocus, OnSetInitialFocus) 626 IPC_MESSAGE_HANDLER(ViewMsg_SetInitialFocus, OnSetInitialFocus)
624 IPC_MESSAGE_HANDLER(ViewMsg_ScrollFocusedEditableNodeIntoRect, 627 IPC_MESSAGE_HANDLER(ViewMsg_ScrollFocusedEditableNodeIntoRect,
625 OnScrollFocusedEditableNodeIntoRect) 628 OnScrollFocusedEditableNodeIntoRect)
626 IPC_MESSAGE_HANDLER(ViewMsg_UpdateTargetURL_ACK, OnUpdateTargetURLAck) 629 IPC_MESSAGE_HANDLER(ViewMsg_UpdateTargetURL_ACK, OnUpdateTargetURLAck)
627 IPC_MESSAGE_HANDLER(ViewMsg_UpdateWebPreferences, OnUpdateWebPreferences) 630 IPC_MESSAGE_HANDLER(ViewMsg_UpdateWebPreferences, OnUpdateWebPreferences)
628 IPC_MESSAGE_HANDLER(ViewMsg_SetAltErrorPageURL, OnSetAltErrorPageURL) 631 IPC_MESSAGE_HANDLER(ViewMsg_SetAltErrorPageURL, OnSetAltErrorPageURL)
629 IPC_MESSAGE_HANDLER(ViewMsg_EnumerateDirectoryResponse, 632 IPC_MESSAGE_HANDLER(ViewMsg_EnumerateDirectoryResponse,
630 OnEnumerateDirectoryResponse) 633 OnEnumerateDirectoryResponse)
634 #if defined(ENABLE_INPUT_COLOR)
635 IPC_MESSAGE_HANDLER(ViewMsg_DidChooseColorResponse,
636 OnDidChooseColorResponse)
637 IPC_MESSAGE_HANDLER(ViewMsg_DidCleanupColorChooser,
638 OnDidCleanupColorChooser)
639 #endif // defined(ENABLE_INPUT_COLOR)
631 IPC_MESSAGE_HANDLER(ViewMsg_RunFileChooserResponse, OnFileChooserResponse) 640 IPC_MESSAGE_HANDLER(ViewMsg_RunFileChooserResponse, OnFileChooserResponse)
632 IPC_MESSAGE_HANDLER(ViewMsg_ShouldClose, OnShouldClose) 641 IPC_MESSAGE_HANDLER(ViewMsg_ShouldClose, OnShouldClose)
633 IPC_MESSAGE_HANDLER(ViewMsg_SwapOut, OnSwapOut) 642 IPC_MESSAGE_HANDLER(ViewMsg_SwapOut, OnSwapOut)
634 IPC_MESSAGE_HANDLER(ViewMsg_ClosePage, OnClosePage) 643 IPC_MESSAGE_HANDLER(ViewMsg_ClosePage, OnClosePage)
635 IPC_MESSAGE_HANDLER(ViewMsg_ThemeChanged, OnThemeChanged) 644 IPC_MESSAGE_HANDLER(ViewMsg_ThemeChanged, OnThemeChanged)
636 IPC_MESSAGE_HANDLER(ViewMsg_DisassociateFromPopupCount, 645 IPC_MESSAGE_HANDLER(ViewMsg_DisassociateFromPopupCount,
637 OnDisassociateFromPopupCount) 646 OnDisassociateFromPopupCount)
638 IPC_MESSAGE_HANDLER(ViewMsg_MoveOrResizeStarted, OnMoveOrResizeStarted) 647 IPC_MESSAGE_HANDLER(ViewMsg_MoveOrResizeStarted, OnMoveOrResizeStarted)
639 IPC_MESSAGE_HANDLER(ViewMsg_ClearFocusedNode, OnClearFocusedNode) 648 IPC_MESSAGE_HANDLER(ViewMsg_ClearFocusedNode, OnClearFocusedNode)
640 IPC_MESSAGE_HANDLER(ViewMsg_SetBackground, OnSetBackground) 649 IPC_MESSAGE_HANDLER(ViewMsg_SetBackground, OnSetBackground)
(...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after
1557 // seems safest to not execute the rest. 1566 // seems safest to not execute the rest.
1558 if (!frame->executeCommand(WebString::fromUTF8(it->name), 1567 if (!frame->executeCommand(WebString::fromUTF8(it->name),
1559 WebString::fromUTF8(it->value))) 1568 WebString::fromUTF8(it->value)))
1560 break; 1569 break;
1561 did_execute_command = true; 1570 did_execute_command = true;
1562 } 1571 }
1563 1572
1564 return did_execute_command; 1573 return did_execute_command;
1565 } 1574 }
1566 1575
1576 #if defined(ENABLE_INPUT_COLOR)
1577 WebKit::WebColorChooser* RenderViewImpl::colorChooser() {
1578 if (!color_chooser_.get()) {
1579 color_chooser_.reset(new RendererWebColorChooserImpl(this));
1580 }
1581 return static_cast<WebKit::WebColorChooser*>(color_chooser_.get());
1582 }
1583 #endif
1584
1567 bool RenderViewImpl::runFileChooser( 1585 bool RenderViewImpl::runFileChooser(
1568 const WebKit::WebFileChooserParams& params, 1586 const WebKit::WebFileChooserParams& params,
1569 WebFileChooserCompletion* chooser_completion) { 1587 WebFileChooserCompletion* chooser_completion) {
1570 // Do not open the file dialog in a hidden RenderView. 1588 // Do not open the file dialog in a hidden RenderView.
1571 if (is_hidden()) 1589 if (is_hidden())
1572 return false; 1590 return false;
1573 ViewHostMsg_RunFileChooser_Params ipc_params; 1591 ViewHostMsg_RunFileChooser_Params ipc_params;
1574 if (params.directory) 1592 if (params.directory)
1575 ipc_params.mode = ViewHostMsg_RunFileChooser_Mode::OpenFolder; 1593 ipc_params.mode = ViewHostMsg_RunFileChooser_Mode::OpenFolder;
1576 else if (params.multiSelect) 1594 else if (params.multiSelect)
(...skipping 2175 matching lines...) Expand 10 before | Expand all | Expand 10 after
3752 return; 3770 return;
3753 3771
3754 WebVector<WebString> ws_file_names(paths.size()); 3772 WebVector<WebString> ws_file_names(paths.size());
3755 for (size_t i = 0; i < paths.size(); ++i) 3773 for (size_t i = 0; i < paths.size(); ++i)
3756 ws_file_names[i] = webkit_glue::FilePathToWebString(paths[i]); 3774 ws_file_names[i] = webkit_glue::FilePathToWebString(paths[i]);
3757 3775
3758 enumeration_completions_[id]->didChooseFile(ws_file_names); 3776 enumeration_completions_[id]->didChooseFile(ws_file_names);
3759 enumeration_completions_.erase(id); 3777 enumeration_completions_.erase(id);
3760 } 3778 }
3761 3779
3780 #if defined(ENABLE_INPUT_COLOR)
3781 void RenderViewImpl::OnDidChooseColorResponse(WebKit::WebColor color) {
3782 if(color_chooser_.get()) {
3783 color_chooser_->didChooseColor(color);
3784 }
3785 }
3786
3787 void RenderViewImpl::OnDidCleanupColorChooser() {
3788 if(color_chooser_.get()) {
3789 color_chooser_->didCleanup();
3790 color_chooser_.reset();
3791 }
3792 }
3793 #endif
3794
3762 void RenderViewImpl::OnFileChooserResponse(const std::vector<FilePath>& paths) { 3795 void RenderViewImpl::OnFileChooserResponse(const std::vector<FilePath>& paths) {
3763 // This could happen if we navigated to a different page before the user 3796 // This could happen if we navigated to a different page before the user
3764 // closed the chooser. 3797 // closed the chooser.
3765 if (file_chooser_completions_.empty()) 3798 if (file_chooser_completions_.empty())
3766 return; 3799 return;
3767 3800
3768 WebVector<WebString> ws_file_names(paths.size()); 3801 WebVector<WebString> ws_file_names(paths.size());
3769 for (size_t i = 0; i < paths.size(); ++i) 3802 for (size_t i = 0; i < paths.size(); ++i)
3770 ws_file_names[i] = webkit_glue::FilePathToWebString(paths[i]); 3803 ws_file_names[i] = webkit_glue::FilePathToWebString(paths[i]);
3771 3804
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
3875 3908
3876 WebPageSerializer::serialize(webview()->mainFrame(), true, this, weburl_links, 3909 WebPageSerializer::serialize(webview()->mainFrame(), true, this, weburl_links,
3877 webstring_paths, 3910 webstring_paths,
3878 webkit_glue::FilePathToWebString( 3911 webkit_glue::FilePathToWebString(
3879 local_directory_name)); 3912 local_directory_name));
3880 } 3913 }
3881 3914
3882 void RenderViewImpl::OnShouldClose() { 3915 void RenderViewImpl::OnShouldClose() {
3883 bool should_close = webview()->dispatchBeforeUnloadEvent(); 3916 bool should_close = webview()->dispatchBeforeUnloadEvent();
3884 Send(new ViewHostMsg_ShouldClose_ACK(routing_id_, should_close)); 3917 Send(new ViewHostMsg_ShouldClose_ACK(routing_id_, should_close));
3918 #if defined(ENABLE_INPUT_COLOR)
3919 if (color_chooser_.get())
3920 color_chooser_->cleanup();
3921 #endif
3885 } 3922 }
3886 3923
3887 void RenderViewImpl::OnSwapOut(const ViewMsg_SwapOut_Params& params) { 3924 void RenderViewImpl::OnSwapOut(const ViewMsg_SwapOut_Params& params) {
3888 if (is_swapped_out_) 3925 if (is_swapped_out_)
3889 return; 3926 return;
3890 3927
3891 // Swap this RenderView out so the tab can navigate to a page rendered by a 3928 // Swap this RenderView out so the tab can navigate to a page rendered by a
3892 // different process. This involves running the unload handler and clearing 3929 // different process. This involves running the unload handler and clearing
3893 // the page. Once WasSwappedOut is called, we also allow this process to exit 3930 // the page. Once WasSwappedOut is called, we also allow this process to exit
3894 // if there are no other active RenderViews in it. 3931 // if there are no other active RenderViews in it.
(...skipping 801 matching lines...) Expand 10 before | Expand all | Expand 10 after
4696 return webview()->settings()->useThreadedCompositor(); 4733 return webview()->settings()->useThreadedCompositor();
4697 } 4734 }
4698 4735
4699 void RenderViewImpl::OnJavaBridgeInit( 4736 void RenderViewImpl::OnJavaBridgeInit(
4700 const IPC::ChannelHandle& channel_handle) { 4737 const IPC::ChannelHandle& channel_handle) {
4701 DCHECK(!java_bridge_dispatcher_.get()); 4738 DCHECK(!java_bridge_dispatcher_.get());
4702 #if defined(ENABLE_JAVA_BRIDGE) 4739 #if defined(ENABLE_JAVA_BRIDGE)
4703 java_bridge_dispatcher_.reset(new JavaBridgeDispatcher(this, channel_handle)); 4740 java_bridge_dispatcher_.reset(new JavaBridgeDispatcher(this, channel_handle));
4704 #endif 4741 #endif
4705 } 4742 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698