Chromium Code Reviews| OLD | NEW | 
|---|---|
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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/browser/android/content_view_core_impl.h" | 5 #include "content/browser/android/content_view_core_impl.h" | 
| 6 | 6 | 
| 7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" | 
| 8 #include "base/android/jni_array.h" | 8 #include "base/android/jni_array.h" | 
| 9 #include "base/android/jni_string.h" | 9 #include "base/android/jni_string.h" | 
| 10 #include "base/android/scoped_java_ref.h" | 10 #include "base/android/scoped_java_ref.h" | 
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 163 java_ref_(env, obj), | 163 java_ref_(env, obj), | 
| 164 web_contents_(static_cast<WebContentsImpl*>(web_contents)), | 164 web_contents_(static_cast<WebContentsImpl*>(web_contents)), | 
| 165 root_layer_(cc::Layer::Create()), | 165 root_layer_(cc::Layer::Create()), | 
| 166 tab_crashed_(false), | 166 tab_crashed_(false), | 
| 167 vsync_interval_(base::TimeDelta::FromMicroseconds( | 167 vsync_interval_(base::TimeDelta::FromMicroseconds( | 
| 168 kDefaultVSyncIntervalMicros)), | 168 kDefaultVSyncIntervalMicros)), | 
| 169 expected_browser_composite_time_(base::TimeDelta::FromMicroseconds( | 169 expected_browser_composite_time_(base::TimeDelta::FromMicroseconds( | 
| 170 kDefaultVSyncIntervalMicros * kDefaultBrowserCompositeVSyncFraction)), | 170 kDefaultVSyncIntervalMicros * kDefaultBrowserCompositeVSyncFraction)), | 
| 171 view_android_(view_android), | 171 view_android_(view_android), | 
| 172 window_android_(window_android), | 172 window_android_(window_android), | 
| 173 device_orientation_(0) { | 173 device_orientation_(0), | 
| 174 compositor_(NULL) { | |
| 174 CHECK(web_contents) << | 175 CHECK(web_contents) << | 
| 175 "A ContentViewCoreImpl should be created with a valid WebContents."; | 176 "A ContentViewCoreImpl should be created with a valid WebContents."; | 
| 176 | 177 | 
| 177 // When a tab is restored (from a saved state), it does not have a renderer | 178 // When a tab is restored (from a saved state), it does not have a renderer | 
| 178 // process. We treat it like the tab is crashed. If the content is loaded | 179 // process. We treat it like the tab is crashed. If the content is loaded | 
| 179 // when the tab is shown, tab_crashed_ will be reset. | 180 // when the tab is shown, tab_crashed_ will be reset. | 
| 180 UpdateTabCrashedFlag(); | 181 UpdateTabCrashedFlag(); | 
| 181 | 182 | 
| 182 // TODO(leandrogracia): make use of the hardware_accelerated argument. | 183 // TODO(leandrogracia): make use of the hardware_accelerated argument. | 
| 183 | 184 | 
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 224 Source<WebContents>(web_contents_)); | 225 Source<WebContents>(web_contents_)); | 
| 225 notification_registrar_.Add( | 226 notification_registrar_.Add( | 
| 226 this, NOTIFICATION_RENDERER_PROCESS_CREATED, | 227 this, NOTIFICATION_RENDERER_PROCESS_CREATED, | 
| 227 content::NotificationService::AllBrowserContextsAndSources()); | 228 content::NotificationService::AllBrowserContextsAndSources()); | 
| 228 notification_registrar_.Add( | 229 notification_registrar_.Add( | 
| 229 this, NOTIFICATION_WEB_CONTENTS_CONNECTED, | 230 this, NOTIFICATION_WEB_CONTENTS_CONNECTED, | 
| 230 Source<WebContents>(web_contents_)); | 231 Source<WebContents>(web_contents_)); | 
| 231 | 232 | 
| 232 static_cast<WebContentsViewAndroid*>(web_contents_->GetView())-> | 233 static_cast<WebContentsViewAndroid*>(web_contents_->GetView())-> | 
| 233 SetContentViewCore(this); | 234 SetContentViewCore(this); | 
| 235 | |
| 
 
aelias_OOO_until_Jul13
2013/10/19 03:43:27
nit: unnecessary newline
 
powei
2013/11/08 21:34:47
Done.
 
 | |
| 234 DCHECK(!web_contents_->GetUserData(kContentViewUserDataKey)); | 236 DCHECK(!web_contents_->GetUserData(kContentViewUserDataKey)); | 
| 235 web_contents_->SetUserData(kContentViewUserDataKey, | 237 web_contents_->SetUserData(kContentViewUserDataKey, | 
| 236 new ContentViewUserData(this)); | 238 new ContentViewUserData(this)); | 
| 237 } | 239 } | 
| 238 | 240 | 
| 239 void ContentViewCoreImpl::Observe(int type, | 241 void ContentViewCoreImpl::Observe(int type, | 
| 240 const NotificationSource& source, | 242 const NotificationSource& source, | 
| 241 const NotificationDetails& details) { | 243 const NotificationDetails& details) { | 
| 242 switch (type) { | 244 switch (type) { | 
| 243 case NOTIFICATION_RENDER_VIEW_HOST_CHANGED: { | 245 case NOTIFICATION_RENDER_VIEW_HOST_CHANGED: { | 
| (...skipping 1355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1599 void ContentViewCoreImpl::SendOrientationChangeEventInternal() { | 1601 void ContentViewCoreImpl::SendOrientationChangeEventInternal() { | 
| 1600 RenderWidgetHostViewAndroid* rwhv = GetRenderWidgetHostViewAndroid(); | 1602 RenderWidgetHostViewAndroid* rwhv = GetRenderWidgetHostViewAndroid(); | 
| 1601 if (rwhv) | 1603 if (rwhv) | 
| 1602 rwhv->UpdateScreenInfo(rwhv->GetNativeView()); | 1604 rwhv->UpdateScreenInfo(rwhv->GetNativeView()); | 
| 1603 | 1605 | 
| 1604 RenderViewHostImpl* rvhi = static_cast<RenderViewHostImpl*>( | 1606 RenderViewHostImpl* rvhi = static_cast<RenderViewHostImpl*>( | 
| 1605 web_contents_->GetRenderViewHost()); | 1607 web_contents_->GetRenderViewHost()); | 
| 1606 rvhi->SendOrientationChangeEvent(device_orientation_); | 1608 rvhi->SendOrientationChangeEvent(device_orientation_); | 
| 1607 } | 1609 } | 
| 1608 | 1610 | 
| 1611 void ContentViewCoreImpl::SetCompositor(Compositor* compositor) { | |
| 1612 compositor_ = compositor; | |
| 1613 DCHECK(web_contents_); | |
| 1614 static_cast<WebContentsViewAndroid*>(web_contents_->GetView())-> | |
| 1615 SetCompositor(compositor); | |
| 1616 } | |
| 1617 | |
| 1609 // This is called for each ContentView. | 1618 // This is called for each ContentView. | 
| 1610 jint Init(JNIEnv* env, jobject obj, | 1619 jint Init(JNIEnv* env, jobject obj, | 
| 1611 jboolean hardware_accelerated, | 1620 jboolean hardware_accelerated, | 
| 1612 jint native_web_contents, | 1621 jint native_web_contents, | 
| 1613 jint view_android, | 1622 jint view_android, | 
| 1614 jint window_android) { | 1623 jint window_android) { | 
| 1615 ContentViewCoreImpl* view = new ContentViewCoreImpl( | 1624 ContentViewCoreImpl* view = new ContentViewCoreImpl( | 
| 1616 env, obj, hardware_accelerated, | 1625 env, obj, hardware_accelerated, | 
| 1617 reinterpret_cast<WebContents*>(native_web_contents), | 1626 reinterpret_cast<WebContents*>(native_web_contents), | 
| 1618 reinterpret_cast<ui::ViewAndroid*>(view_android), | 1627 reinterpret_cast<ui::ViewAndroid*>(view_android), | 
| 1619 reinterpret_cast<ui::WindowAndroid*>(window_android)); | 1628 reinterpret_cast<ui::WindowAndroid*>(window_android)); | 
| 1620 return reinterpret_cast<jint>(view); | 1629 return reinterpret_cast<jint>(view); | 
| 1621 } | 1630 } | 
| 1622 | 1631 | 
| 1623 bool RegisterContentViewCore(JNIEnv* env) { | 1632 bool RegisterContentViewCore(JNIEnv* env) { | 
| 1624 return RegisterNativesImpl(env); | 1633 return RegisterNativesImpl(env); | 
| 1625 } | 1634 } | 
| 1626 | 1635 | 
| 1627 } // namespace content | 1636 } // namespace content | 
| OLD | NEW |