OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 package org.chromium.chromecast.shell; | 5 package org.chromium.chromecast.shell; |
6 | 6 |
7 import android.content.Context; | 7 import android.content.Context; |
8 import android.content.Intent; | 8 import android.content.Intent; |
9 import android.net.Uri; | 9 import android.net.Uri; |
10 import android.support.v4.content.LocalBroadcastManager; | 10 import android.support.v4.content.LocalBroadcastManager; |
(...skipping 22 matching lines...) Expand all Loading... |
33 public class CastWindowAndroid extends LinearLayout { | 33 public class CastWindowAndroid extends LinearLayout { |
34 public static final String TAG = "CastWindowAndroid"; | 34 public static final String TAG = "CastWindowAndroid"; |
35 | 35 |
36 public static final String ACTION_PAGE_LOADED = "castPageLoaded"; | 36 public static final String ACTION_PAGE_LOADED = "castPageLoaded"; |
37 public static final String ACTION_ENABLE_DEV_TOOLS = "castEnableDevTools"; | 37 public static final String ACTION_ENABLE_DEV_TOOLS = "castEnableDevTools"; |
38 public static final String ACTION_DISABLE_DEV_TOOLS = "castDisableDevTools"; | 38 public static final String ACTION_DISABLE_DEV_TOOLS = "castDisableDevTools"; |
39 | 39 |
40 private ContentViewCore mContentViewCore; | 40 private ContentViewCore mContentViewCore; |
41 private ContentViewRenderView mContentViewRenderView; | 41 private ContentViewRenderView mContentViewRenderView; |
42 private NavigationController mNavigationController; | 42 private NavigationController mNavigationController; |
| 43 private int mRenderProcessId; |
43 private WebContents mWebContents; | 44 private WebContents mWebContents; |
44 private WebContentsObserver mWebContentsObserver; | 45 private WebContentsObserver mWebContentsObserver; |
45 private WindowAndroid mWindow; | 46 private WindowAndroid mWindow; |
46 | 47 |
47 /** | 48 /** |
48 * Constructor for inflating via XML. | 49 * Constructor for inflating via XML. |
49 */ | 50 */ |
50 public CastWindowAndroid(Context context, AttributeSet attrs) { | 51 public CastWindowAndroid(Context context, AttributeSet attrs) { |
51 super(context, attrs); | 52 super(context, attrs); |
52 } | 53 } |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 } else { | 91 } else { |
91 mNavigationController.loadUrl(new LoadUrlParams(normalizeUrl(url))); | 92 mNavigationController.loadUrl(new LoadUrlParams(normalizeUrl(url))); |
92 } | 93 } |
93 | 94 |
94 // TODO(aurimas): Remove this when crbug.com/174541 is fixed. | 95 // TODO(aurimas): Remove this when crbug.com/174541 is fixed. |
95 mContentViewCore.getContainerView().clearFocus(); | 96 mContentViewCore.getContainerView().clearFocus(); |
96 mContentViewCore.getContainerView().requestFocus(); | 97 mContentViewCore.getContainerView().requestFocus(); |
97 } | 98 } |
98 | 99 |
99 /** | 100 /** |
| 101 * Returns the render_process_id for the associated web contents |
| 102 */ |
| 103 public int getRenderProcessId() { |
| 104 return mRenderProcessId; |
| 105 } |
| 106 |
| 107 /** |
100 * Given a URI String, performs minimal normalization to attempt to build a
usable URL from it. | 108 * Given a URI String, performs minimal normalization to attempt to build a
usable URL from it. |
101 * @param uriString The passed-in path to be normalized. | 109 * @param uriString The passed-in path to be normalized. |
102 * @return The normalized URL, as a string. | 110 * @return The normalized URL, as a string. |
103 */ | 111 */ |
104 private static String normalizeUrl(String uriString) { | 112 private static String normalizeUrl(String uriString) { |
105 if (uriString == null) return uriString; | 113 if (uriString == null) return uriString; |
106 Uri uri = Uri.parse(uriString); | 114 Uri uri = Uri.parse(uriString); |
107 if (uri.getScheme() == null) { | 115 if (uri.getScheme() == null) { |
108 uri = Uri.parse("http://" + uriString); | 116 uri = Uri.parse("http://" + uriString); |
109 } | 117 } |
110 return uri.toString(); | 118 return uri.toString(); |
111 } | 119 } |
112 | 120 |
113 /** | 121 /** |
114 * Initializes the ContentView based on the native tab contents pointer pass
ed in. | 122 * Initializes the ContentView based on the native tab contents pointer pass
ed in. |
115 * @param nativeWebContents The pointer to the native tab contents object. | 123 * @param nativeWebContents The pointer to the native tab contents object. |
116 */ | 124 */ |
117 @SuppressWarnings("unused") | 125 @SuppressWarnings("unused") |
118 @CalledByNative | 126 @CalledByNative |
119 private void initFromNativeWebContents(long nativeWebContents) { | 127 private void initFromNativeWebContents(long nativeWebContents, int renderPro
cessId) { |
120 Context context = getContext(); | 128 Context context = getContext(); |
121 mContentViewCore = new ContentViewCore(context); | 129 mContentViewCore = new ContentViewCore(context); |
122 ContentView view = ContentView.newInstance(context, mContentViewCore); | 130 ContentView view = ContentView.newInstance(context, mContentViewCore); |
123 mContentViewCore.initialize(view, view, nativeWebContents, mWindow); | 131 mContentViewCore.initialize(view, view, nativeWebContents, mWindow); |
124 mWebContents = mContentViewCore.getWebContents(); | 132 mWebContents = mContentViewCore.getWebContents(); |
125 mNavigationController = mWebContents.getNavigationController(); | 133 mNavigationController = mWebContents.getNavigationController(); |
| 134 mRenderProcessId = renderProcessId; |
126 | 135 |
127 if (getParent() != null) mContentViewCore.onShow(); | 136 if (getParent() != null) mContentViewCore.onShow(); |
128 ((FrameLayout) findViewById(R.id.contentview_holder)).addView(view, | 137 ((FrameLayout) findViewById(R.id.contentview_holder)).addView(view, |
129 new FrameLayout.LayoutParams( | 138 new FrameLayout.LayoutParams( |
130 FrameLayout.LayoutParams.MATCH_PARENT, | 139 FrameLayout.LayoutParams.MATCH_PARENT, |
131 FrameLayout.LayoutParams.MATCH_PARENT)); | 140 FrameLayout.LayoutParams.MATCH_PARENT)); |
132 view.requestFocus(); | 141 view.requestFocus(); |
133 mContentViewRenderView.setCurrentContentViewCore(mContentViewCore); | 142 mContentViewRenderView.setCurrentContentViewCore(mContentViewCore); |
134 | 143 |
135 mWebContentsObserver = new WebContentsObserver(mWebContents) { | 144 mWebContentsObserver = new WebContentsObserver(mWebContents) { |
(...skipping 16 matching lines...) Expand all Loading... |
152 return mContentViewCore.getContainerView(); | 161 return mContentViewCore.getContainerView(); |
153 } | 162 } |
154 | 163 |
155 /** | 164 /** |
156 * @return The {@link ContentViewCore} currently managing the view shown by
this Shell. | 165 * @return The {@link ContentViewCore} currently managing the view shown by
this Shell. |
157 */ | 166 */ |
158 public ContentViewCore getContentViewCore() { | 167 public ContentViewCore getContentViewCore() { |
159 return mContentViewCore; | 168 return mContentViewCore; |
160 } | 169 } |
161 } | 170 } |
OLD | NEW |