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 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 #include "third_party/WebKit/public/web/WebFrame.h" | 131 #include "third_party/WebKit/public/web/WebFrame.h" |
132 #include "third_party/WebKit/public/web/WebImageCache.h" | 132 #include "third_party/WebKit/public/web/WebImageCache.h" |
133 #include "third_party/WebKit/public/web/WebKit.h" | 133 #include "third_party/WebKit/public/web/WebKit.h" |
134 #include "third_party/WebKit/public/web/WebNetworkStateNotifier.h" | 134 #include "third_party/WebKit/public/web/WebNetworkStateNotifier.h" |
135 #include "third_party/WebKit/public/web/WebPopupMenu.h" | 135 #include "third_party/WebKit/public/web/WebPopupMenu.h" |
136 #include "third_party/WebKit/public/web/WebRuntimeFeatures.h" | 136 #include "third_party/WebKit/public/web/WebRuntimeFeatures.h" |
137 #include "third_party/WebKit/public/web/WebScriptController.h" | 137 #include "third_party/WebKit/public/web/WebScriptController.h" |
138 #include "third_party/WebKit/public/web/WebSecurityPolicy.h" | 138 #include "third_party/WebKit/public/web/WebSecurityPolicy.h" |
139 #include "third_party/WebKit/public/web/WebView.h" | 139 #include "third_party/WebKit/public/web/WebView.h" |
140 #include "third_party/icu/source/i18n/unicode/timezone.h" | 140 #include "third_party/icu/source/i18n/unicode/timezone.h" |
| 141 #include "third_party/mojo/src/mojo/public/cpp/bindings/strong_binding.h" |
141 #include "third_party/skia/include/core/SkGraphics.h" | 142 #include "third_party/skia/include/core/SkGraphics.h" |
142 #include "ui/base/layout.h" | 143 #include "ui/base/layout.h" |
143 #include "ui/base/ui_base_switches.h" | 144 #include "ui/base/ui_base_switches.h" |
144 #include "v8/include/v8.h" | 145 #include "v8/include/v8.h" |
145 | 146 |
146 #if defined(OS_ANDROID) | 147 #if defined(OS_ANDROID) |
147 #include <cpu-features.h> | 148 #include <cpu-features.h> |
148 #include "content/renderer/android/synchronous_compositor_factory.h" | 149 #include "content/renderer/android/synchronous_compositor_factory.h" |
149 #include "content/renderer/media/android/renderer_demuxer_android.h" | 150 #include "content/renderer/media/android/renderer_demuxer_android.h" |
150 #endif | 151 #endif |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
333 v8::Date::DateTimeConfigurationChangeNotification(isolate); | 334 v8::Date::DateTimeConfigurationChangeNotification(isolate); |
334 } | 335 } |
335 | 336 |
336 void LowMemoryNotificationOnThisThread() { | 337 void LowMemoryNotificationOnThisThread() { |
337 v8::Isolate* isolate = v8::Isolate::GetCurrent(); | 338 v8::Isolate* isolate = v8::Isolate::GetCurrent(); |
338 if (!isolate) | 339 if (!isolate) |
339 return; | 340 return; |
340 isolate->LowMemoryNotification(); | 341 isolate->LowMemoryNotification(); |
341 } | 342 } |
342 | 343 |
343 class RenderFrameSetupImpl : public mojo::InterfaceImpl<RenderFrameSetup> { | 344 class RenderFrameSetupImpl : public RenderFrameSetup { |
344 public: | 345 public: |
345 RenderFrameSetupImpl() | 346 explicit RenderFrameSetupImpl( |
346 : routing_id_highmark_(-1) { | 347 mojo::InterfaceRequest<RenderFrameSetup> request) |
347 } | 348 : routing_id_highmark_(-1), binding_(this, request.Pass()) {} |
348 | 349 |
349 void ExchangeServiceProviders( | 350 void ExchangeServiceProviders( |
350 int32_t frame_routing_id, | 351 int32_t frame_routing_id, |
351 mojo::InterfaceRequest<mojo::ServiceProvider> services, | 352 mojo::InterfaceRequest<mojo::ServiceProvider> services, |
352 mojo::ServiceProviderPtr exposed_services) | 353 mojo::ServiceProviderPtr exposed_services) |
353 override { | 354 override { |
354 // TODO(morrita): This is for investigating http://crbug.com/415059 and | 355 // TODO(morrita): This is for investigating http://crbug.com/415059 and |
355 // should be removed once it is fixed. | 356 // should be removed once it is fixed. |
356 CHECK_LT(routing_id_highmark_, frame_routing_id); | 357 CHECK_LT(routing_id_highmark_, frame_routing_id); |
357 routing_id_highmark_ = frame_routing_id; | 358 routing_id_highmark_ = frame_routing_id; |
358 | 359 |
359 RenderFrameImpl* frame = RenderFrameImpl::FromRoutingID(frame_routing_id); | 360 RenderFrameImpl* frame = RenderFrameImpl::FromRoutingID(frame_routing_id); |
360 // We can receive a GetServiceProviderForFrame message for a frame not yet | 361 // We can receive a GetServiceProviderForFrame message for a frame not yet |
361 // created due to a race between the message and a ViewMsg_New IPC that | 362 // created due to a race between the message and a ViewMsg_New IPC that |
362 // triggers creation of the RenderFrame we want. | 363 // triggers creation of the RenderFrame we want. |
363 if (!frame) { | 364 if (!frame) { |
364 RenderThreadImpl::current()->RegisterPendingRenderFrameConnect( | 365 RenderThreadImpl::current()->RegisterPendingRenderFrameConnect( |
365 frame_routing_id, services.Pass(), exposed_services.Pass()); | 366 frame_routing_id, services.Pass(), exposed_services.Pass()); |
366 return; | 367 return; |
367 } | 368 } |
368 | 369 |
369 frame->BindServiceRegistry(services.Pass(), exposed_services.Pass()); | 370 frame->BindServiceRegistry(services.Pass(), exposed_services.Pass()); |
370 } | 371 } |
371 | 372 |
372 private: | 373 private: |
373 int32_t routing_id_highmark_; | 374 int32_t routing_id_highmark_; |
| 375 mojo::StrongBinding<RenderFrameSetup> binding_; |
374 }; | 376 }; |
375 | 377 |
376 void CreateRenderFrameSetup(mojo::InterfaceRequest<RenderFrameSetup> request) { | 378 void CreateRenderFrameSetup(mojo::InterfaceRequest<RenderFrameSetup> request) { |
377 mojo::BindToRequest(new RenderFrameSetupImpl(), &request); | 379 new RenderFrameSetupImpl(request.Pass()); |
378 } | 380 } |
379 | 381 |
380 blink::WebGraphicsContext3D::Attributes GetOffscreenAttribs() { | 382 blink::WebGraphicsContext3D::Attributes GetOffscreenAttribs() { |
381 blink::WebGraphicsContext3D::Attributes attributes; | 383 blink::WebGraphicsContext3D::Attributes attributes; |
382 attributes.shareResources = true; | 384 attributes.shareResources = true; |
383 attributes.depth = false; | 385 attributes.depth = false; |
384 attributes.stencil = false; | 386 attributes.stencil = false; |
385 attributes.antialias = false; | 387 attributes.antialias = false; |
386 attributes.noAutomaticFlushes = true; | 388 attributes.noAutomaticFlushes = true; |
387 return attributes; | 389 return attributes; |
(...skipping 1497 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1885 } | 1887 } |
1886 | 1888 |
1887 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() { | 1889 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() { |
1888 size_t erased = | 1890 size_t erased = |
1889 RenderThreadImpl::current()->pending_render_frame_connects_.erase( | 1891 RenderThreadImpl::current()->pending_render_frame_connects_.erase( |
1890 routing_id_); | 1892 routing_id_); |
1891 DCHECK_EQ(1u, erased); | 1893 DCHECK_EQ(1u, erased); |
1892 } | 1894 } |
1893 | 1895 |
1894 } // namespace content | 1896 } // namespace content |
OLD | NEW |