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_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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 #include "content/renderer/idle_user_detector.h" | 69 #include "content/renderer/idle_user_detector.h" |
70 #include "content/renderer/input_tag_speech_dispatcher.h" | 70 #include "content/renderer/input_tag_speech_dispatcher.h" |
71 #include "content/renderer/java/java_bridge_dispatcher.h" | 71 #include "content/renderer/java/java_bridge_dispatcher.h" |
72 #include "content/renderer/load_progress_tracker.h" | 72 #include "content/renderer/load_progress_tracker.h" |
73 #include "content/renderer/media/media_stream_dependency_factory.h" | 73 #include "content/renderer/media/media_stream_dependency_factory.h" |
74 #include "content/renderer/media/media_stream_dispatcher.h" | 74 #include "content/renderer/media/media_stream_dispatcher.h" |
75 #include "content/renderer/media/media_stream_impl.h" | 75 #include "content/renderer/media/media_stream_impl.h" |
76 #include "content/renderer/media/render_audiosourceprovider.h" | 76 #include "content/renderer/media/render_audiosourceprovider.h" |
77 #include "content/renderer/media/render_media_log.h" | 77 #include "content/renderer/media/render_media_log.h" |
78 #include "content/renderer/media/renderer_gpu_video_decoder_factories.h" | 78 #include "content/renderer/media/renderer_gpu_video_decoder_factories.h" |
| 79 #include "content/renderer/media/renderer_webaudiodevice_impl.h" |
79 #include "content/renderer/mhtml_generator.h" | 80 #include "content/renderer/mhtml_generator.h" |
80 #include "content/renderer/notification_provider.h" | 81 #include "content/renderer/notification_provider.h" |
81 #include "content/renderer/p2p/socket_dispatcher.h" | 82 #include "content/renderer/p2p/socket_dispatcher.h" |
82 #include "content/renderer/plugin_channel_host.h" | 83 #include "content/renderer/plugin_channel_host.h" |
83 #include "content/renderer/render_process.h" | 84 #include "content/renderer/render_process.h" |
84 #include "content/renderer/render_thread_impl.h" | 85 #include "content/renderer/render_thread_impl.h" |
85 #include "content/renderer/render_view_mouse_lock_dispatcher.h" | 86 #include "content/renderer/render_view_mouse_lock_dispatcher.h" |
86 #include "content/renderer/render_widget_fullscreen_pepper.h" | 87 #include "content/renderer/render_widget_fullscreen_pepper.h" |
87 #include "content/renderer/renderer_accessibility.h" | 88 #include "content/renderer/renderer_accessibility.h" |
88 #include "content/renderer/renderer_accessibility_complete.h" | 89 #include "content/renderer/renderer_accessibility_complete.h" |
(...skipping 2270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2359 media::FilterCollection* collection = new media::FilterCollection(); | 2360 media::FilterCollection* collection = new media::FilterCollection(); |
2360 RenderMediaLog* render_media_log = new RenderMediaLog(); | 2361 RenderMediaLog* render_media_log = new RenderMediaLog(); |
2361 | 2362 |
2362 RenderAudioSourceProvider* audio_source_provider = NULL; | 2363 RenderAudioSourceProvider* audio_source_provider = NULL; |
2363 | 2364 |
2364 // Add in any custom filter factories first. | 2365 // Add in any custom filter factories first. |
2365 const CommandLine* cmd_line = CommandLine::ForCurrentProcess(); | 2366 const CommandLine* cmd_line = CommandLine::ForCurrentProcess(); |
2366 if (!cmd_line->HasSwitch(switches::kDisableAudio)) { | 2367 if (!cmd_line->HasSwitch(switches::kDisableAudio)) { |
2367 // audio_source_provider is a "provider" to WebKit, and a sink | 2368 // audio_source_provider is a "provider" to WebKit, and a sink |
2368 // from the perspective of the audio renderer. | 2369 // from the perspective of the audio renderer. |
2369 audio_source_provider = new RenderAudioSourceProvider(); | 2370 audio_source_provider = new RenderAudioSourceProvider(routing_id_); |
2370 | 2371 |
2371 // Add the chrome specific audio renderer, using audio_source_provider | 2372 // Add the chrome specific audio renderer, using audio_source_provider |
2372 // as the sink. | 2373 // as the sink. |
2373 media::AudioRendererImpl* audio_renderer = | 2374 media::AudioRendererImpl* audio_renderer = |
2374 new media::AudioRendererImpl(audio_source_provider); | 2375 new media::AudioRendererImpl(audio_source_provider); |
2375 collection->AddAudioRenderer(audio_renderer); | 2376 collection->AddAudioRenderer(audio_renderer); |
2376 } | 2377 } |
2377 | 2378 |
2378 // Accelerated video decode is not enabled by default on Linux. | 2379 // Accelerated video decode is not enabled by default on Linux. |
2379 // crbug.com/137247 | 2380 // crbug.com/137247 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2419 | 2420 |
2420 WebApplicationCacheHost* RenderViewImpl::createApplicationCacheHost( | 2421 WebApplicationCacheHost* RenderViewImpl::createApplicationCacheHost( |
2421 WebFrame* frame, WebApplicationCacheHostClient* client) { | 2422 WebFrame* frame, WebApplicationCacheHostClient* client) { |
2422 if (!frame || !frame->view()) | 2423 if (!frame || !frame->view()) |
2423 return NULL; | 2424 return NULL; |
2424 return new RendererWebApplicationCacheHostImpl( | 2425 return new RendererWebApplicationCacheHostImpl( |
2425 FromWebView(frame->view()), client, | 2426 FromWebView(frame->view()), client, |
2426 RenderThreadImpl::current()->appcache_dispatcher()->backend_proxy()); | 2427 RenderThreadImpl::current()->appcache_dispatcher()->backend_proxy()); |
2427 } | 2428 } |
2428 | 2429 |
| 2430 |
| 2431 WebKit::WebAudioDevice* |
| 2432 RenderViewImpl::createAudioDevice( |
| 2433 size_t bufferSize, |
| 2434 unsigned numberOfChannels, |
| 2435 double sampleRate, |
| 2436 WebKit::WebAudioDevice::RenderCallback* callback) { |
| 2437 ChannelLayout layout = CHANNEL_LAYOUT_UNSUPPORTED; |
| 2438 |
| 2439 // The |numberOfChannels| does not exactly identify the channel layout of the |
| 2440 // device. The switch statement below assigns a best guess to the channel |
| 2441 // layout based on number of channels. |
| 2442 // TODO(crogers): WebKit should give the channel layout instead of the hard |
| 2443 // channel count. See http://crbug.com/139882. |
| 2444 switch (numberOfChannels) { |
| 2445 case 1: |
| 2446 layout = CHANNEL_LAYOUT_MONO; |
| 2447 break; |
| 2448 case 2: |
| 2449 layout = CHANNEL_LAYOUT_STEREO; |
| 2450 break; |
| 2451 case 3: |
| 2452 layout = CHANNEL_LAYOUT_2_1; |
| 2453 break; |
| 2454 case 4: |
| 2455 layout = CHANNEL_LAYOUT_4_0; |
| 2456 break; |
| 2457 case 5: |
| 2458 layout = CHANNEL_LAYOUT_5_0; |
| 2459 break; |
| 2460 case 6: |
| 2461 layout = CHANNEL_LAYOUT_5_1; |
| 2462 break; |
| 2463 case 7: |
| 2464 layout = CHANNEL_LAYOUT_7_0; |
| 2465 break; |
| 2466 case 8: |
| 2467 layout = CHANNEL_LAYOUT_7_1; |
| 2468 break; |
| 2469 default: |
| 2470 layout = CHANNEL_LAYOUT_STEREO; |
| 2471 break; |
| 2472 } |
| 2473 |
| 2474 media::AudioParameters params( |
| 2475 media::AudioParameters::AUDIO_PCM_LOW_LATENCY, layout, |
| 2476 static_cast<int>(sampleRate), 16, bufferSize); |
| 2477 |
| 2478 return new RendererWebAudioDeviceImpl( |
| 2479 routing_id_, params, callback); |
| 2480 } |
| 2481 |
2429 WebCookieJar* RenderViewImpl::cookieJar(WebFrame* frame) { | 2482 WebCookieJar* RenderViewImpl::cookieJar(WebFrame* frame) { |
2430 return &cookie_jar_; | 2483 return &cookie_jar_; |
2431 } | 2484 } |
2432 | 2485 |
2433 void RenderViewImpl::frameDetached(WebFrame* frame) { | 2486 void RenderViewImpl::frameDetached(WebFrame* frame) { |
2434 FOR_EACH_OBSERVER(RenderViewObserver, observers_, FrameDetached(frame)); | 2487 FOR_EACH_OBSERVER(RenderViewObserver, observers_, FrameDetached(frame)); |
2435 } | 2488 } |
2436 | 2489 |
2437 void RenderViewImpl::willClose(WebFrame* frame) { | 2490 void RenderViewImpl::willClose(WebFrame* frame) { |
2438 FOR_EACH_OBSERVER(RenderViewObserver, observers_, FrameWillClose(frame)); | 2491 FOR_EACH_OBSERVER(RenderViewObserver, observers_, FrameWillClose(frame)); |
(...skipping 3276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5715 bool RenderViewImpl::WebWidgetHandlesCompositorScheduling() const { | 5768 bool RenderViewImpl::WebWidgetHandlesCompositorScheduling() const { |
5716 return !!RenderThreadImpl::current()->compositor_thread(); | 5769 return !!RenderThreadImpl::current()->compositor_thread(); |
5717 } | 5770 } |
5718 | 5771 |
5719 void RenderViewImpl::OnJavaBridgeInit() { | 5772 void RenderViewImpl::OnJavaBridgeInit() { |
5720 DCHECK(!java_bridge_dispatcher_); | 5773 DCHECK(!java_bridge_dispatcher_); |
5721 #if defined(ENABLE_JAVA_BRIDGE) | 5774 #if defined(ENABLE_JAVA_BRIDGE) |
5722 java_bridge_dispatcher_ = new JavaBridgeDispatcher(this); | 5775 java_bridge_dispatcher_ = new JavaBridgeDispatcher(this); |
5723 #endif | 5776 #endif |
5724 } | 5777 } |
OLD | NEW |