OLD | NEW |
---|---|
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/renderer/render_thread_impl.h" | 5 #include "content/renderer/render_thread_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 #include <map> | 9 #include <map> |
10 #include <vector> | 10 #include <vector> |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
50 #include "content/renderer/media/audio_input_message_filter.h" | 50 #include "content/renderer/media/audio_input_message_filter.h" |
51 #include "content/renderer/media/audio_message_filter.h" | 51 #include "content/renderer/media/audio_message_filter.h" |
52 #include "content/renderer/media/media_stream_center.h" | 52 #include "content/renderer/media/media_stream_center.h" |
53 #include "content/renderer/media/video_capture_impl_manager.h" | 53 #include "content/renderer/media/video_capture_impl_manager.h" |
54 #include "content/renderer/media/video_capture_message_filter.h" | 54 #include "content/renderer/media/video_capture_message_filter.h" |
55 #include "content/renderer/plugin_channel_host.h" | 55 #include "content/renderer/plugin_channel_host.h" |
56 #include "content/renderer/render_process_impl.h" | 56 #include "content/renderer/render_process_impl.h" |
57 #include "content/renderer/render_view_impl.h" | 57 #include "content/renderer/render_view_impl.h" |
58 #include "content/renderer/renderer_webkitplatformsupport_impl.h" | 58 #include "content/renderer/renderer_webkitplatformsupport_impl.h" |
59 #include "content/renderer/renderer_webstoragearea_impl.h" | 59 #include "content/renderer/renderer_webstoragearea_impl.h" |
60 #include "content/renderer/renderer_webstoragenamespace_impl.h" | |
60 #include "grit/content_resources.h" | 61 #include "grit/content_resources.h" |
61 #include "ipc/ipc_channel_handle.h" | 62 #include "ipc/ipc_channel_handle.h" |
62 #include "ipc/ipc_platform_file.h" | 63 #include "ipc/ipc_platform_file.h" |
63 #include "media/base/media.h" | 64 #include "media/base/media.h" |
64 #include "net/base/net_errors.h" | 65 #include "net/base/net_errors.h" |
65 #include "net/base/net_util.h" | 66 #include "net/base/net_util.h" |
66 #include "third_party/tcmalloc/chromium/src/gperftools/malloc_extension.h" | 67 #include "third_party/tcmalloc/chromium/src/gperftools/malloc_extension.h" |
67 #include "third_party/WebKit/Source/WebKit/chromium/public/WebColorName.h" | 68 #include "third_party/WebKit/Source/WebKit/chromium/public/WebColorName.h" |
68 #include "third_party/WebKit/Source/WebKit/chromium/public/WebCompositor.h" | 69 #include "third_party/WebKit/Source/WebKit/chromium/public/WebCompositor.h" |
69 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDatabase.h" | 70 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDatabase.h" |
(...skipping 736 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
806 } | 807 } |
807 | 808 |
808 void RenderThreadImpl::OnSetZoomLevelForCurrentURL(const std::string& host, | 809 void RenderThreadImpl::OnSetZoomLevelForCurrentURL(const std::string& host, |
809 double zoom_level) { | 810 double zoom_level) { |
810 RenderViewZoomer zoomer(host, zoom_level); | 811 RenderViewZoomer zoomer(host, zoom_level); |
811 content::RenderView::ForEach(&zoomer); | 812 content::RenderView::ForEach(&zoomer); |
812 } | 813 } |
813 | 814 |
814 void RenderThreadImpl::OnDOMStorageEvent( | 815 void RenderThreadImpl::OnDOMStorageEvent( |
815 const DOMStorageMsg_Event_Params& params) { | 816 const DOMStorageMsg_Event_Params& params) { |
816 if (!dom_storage_event_dispatcher_.get()) { | 817 EnsureWebKitInitialized(); |
817 EnsureWebKitInitialized(); | 818 |
818 dom_storage_event_dispatcher_.reset(WebStorageEventDispatcher::create()); | 819 bool originated_in_process = params.connection_id != 0; |
820 RendererWebStorageAreaImpl* originating_area = NULL; | |
821 if (originated_in_process) { | |
822 originating_area = RendererWebStorageAreaImpl::FromConnectionId( | |
823 params.connection_id); | |
819 } | 824 } |
820 | 825 |
821 // TODO(michaeln): Return early until webkit/webcore is modified to not | 826 if (params.namespace_id == dom_storage::kLocalStorageNamespaceId) { |
822 // raise LocalStorage events internally. Looks like i have some multi-side | 827 WebStorageEventDispatcher::dispatchLocalStorageEvent( |
823 // patch engineering in front of me todo. | 828 params.key, |
824 if (params.connection_id) | 829 params.old_value, |
825 return; | 830 params.new_value, |
826 | 831 params.origin, |
827 // TODO(michaeln): fix the webkit api so we don't need to convert from | 832 params.page_url, |
828 // string types to url types and to pass in the 'area' which | 833 originating_area, |
829 // caused this event to occur and to get rid of the is_local param. | 834 originated_in_process); |
830 // RendererWebStorageAreaImpl* originating_area = | 835 } else if (originated_in_process) { |
831 // RendererWebStorageAreaImpl::FromConnectionId(params.connection_id); | 836 // For now, we only raise session storage events into the process which |
832 | 837 // cause the event to occur. However there are cases where sessions |
833 // SessionStorage events are always raised internally by webkit/webcore. | 838 // can span process boundaries, so there are correctness issues here. |
ericu
2012/04/25 19:40:35
Should be a TODO to make it more obvious.
michaeln
2012/04/25 20:22:12
Done
| |
834 const bool kIsLocalStorage = true; | 839 RendererWebStorageNamespaceImpl |
835 dom_storage_event_dispatcher_->dispatchStorageEvent( | 840 session_namespace_for_event_dispatch(params.namespace_id); |
836 params.key, | 841 WebStorageEventDispatcher::dispatchSessionStorageEvent( |
837 params.old_value, | 842 params.key, |
838 params.new_value, | 843 params.old_value, |
839 UTF8ToUTF16(params.origin.spec()), | 844 params.new_value, |
840 params.page_url, | 845 params.origin, |
841 kIsLocalStorage); | 846 params.page_url, |
847 session_namespace_for_event_dispatch, | |
848 originating_area, | |
849 originated_in_process); | |
850 } | |
842 } | 851 } |
843 | 852 |
844 bool RenderThreadImpl::OnControlMessageReceived(const IPC::Message& msg) { | 853 bool RenderThreadImpl::OnControlMessageReceived(const IPC::Message& msg) { |
845 ObserverListBase<RenderProcessObserver>::Iterator it(observers_); | 854 ObserverListBase<RenderProcessObserver>::Iterator it(observers_); |
846 RenderProcessObserver* observer; | 855 RenderProcessObserver* observer; |
847 while ((observer = it.GetNext()) != NULL) { | 856 while ((observer = it.GetNext()) != NULL) { |
848 if (observer->OnControlMessageReceived(msg)) | 857 if (observer->OnControlMessageReceived(msg)) |
849 return true; | 858 return true; |
850 } | 859 } |
851 | 860 |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
998 | 1007 |
999 scoped_refptr<base::MessageLoopProxy> | 1008 scoped_refptr<base::MessageLoopProxy> |
1000 RenderThreadImpl::GetFileThreadMessageLoopProxy() { | 1009 RenderThreadImpl::GetFileThreadMessageLoopProxy() { |
1001 DCHECK(message_loop() == MessageLoop::current()); | 1010 DCHECK(message_loop() == MessageLoop::current()); |
1002 if (!file_thread_.get()) { | 1011 if (!file_thread_.get()) { |
1003 file_thread_.reset(new base::Thread("Renderer::FILE")); | 1012 file_thread_.reset(new base::Thread("Renderer::FILE")); |
1004 file_thread_->Start(); | 1013 file_thread_->Start(); |
1005 } | 1014 } |
1006 return file_thread_->message_loop_proxy(); | 1015 return file_thread_->message_loop_proxy(); |
1007 } | 1016 } |
OLD | NEW |