Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(855)

Side by Side Diff: content/shell/android/java/src/org/chromium/content_shell/Shell.java

Issue 481803004: Removing ContentViewCore dependencies from few functions which acts as direct wrapper to WebContents (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed nits. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 package org.chromium.content_shell; 5 package org.chromium.content_shell;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.graphics.drawable.ClipDrawable; 8 import android.graphics.drawable.ClipDrawable;
9 import android.text.TextUtils; 9 import android.text.TextUtils;
10 import android.util.AttributeSet; 10 import android.util.AttributeSet;
11 import android.view.KeyEvent; 11 import android.view.KeyEvent;
12 import android.view.View; 12 import android.view.View;
13 import android.view.ViewGroup; 13 import android.view.ViewGroup;
14 import android.view.inputmethod.EditorInfo; 14 import android.view.inputmethod.EditorInfo;
15 import android.view.inputmethod.InputMethodManager; 15 import android.view.inputmethod.InputMethodManager;
16 import android.widget.EditText; 16 import android.widget.EditText;
17 import android.widget.FrameLayout; 17 import android.widget.FrameLayout;
18 import android.widget.ImageButton; 18 import android.widget.ImageButton;
19 import android.widget.LinearLayout; 19 import android.widget.LinearLayout;
20 import android.widget.TextView; 20 import android.widget.TextView;
21 import android.widget.TextView.OnEditorActionListener; 21 import android.widget.TextView.OnEditorActionListener;
22 22
23 import org.chromium.base.CalledByNative; 23 import org.chromium.base.CalledByNative;
24 import org.chromium.base.JNINamespace; 24 import org.chromium.base.JNINamespace;
25 import org.chromium.content.browser.ContentView; 25 import org.chromium.content.browser.ContentView;
26 import org.chromium.content.browser.ContentViewClient; 26 import org.chromium.content.browser.ContentViewClient;
27 import org.chromium.content.browser.ContentViewCore; 27 import org.chromium.content.browser.ContentViewCore;
28 import org.chromium.content.browser.ContentViewRenderView; 28 import org.chromium.content.browser.ContentViewRenderView;
29 import org.chromium.content_public.browser.LoadUrlParams; 29 import org.chromium.content_public.browser.LoadUrlParams;
30 import org.chromium.content_public.browser.NavigationController;
31 import org.chromium.content_public.browser.WebContents;
30 import org.chromium.ui.base.WindowAndroid; 32 import org.chromium.ui.base.WindowAndroid;
31 33
32 /** 34 /**
33 * Container for the various UI components that make up a shell window. 35 * Container for the various UI components that make up a shell window.
34 */ 36 */
35 @JNINamespace("content") 37 @JNINamespace("content")
36 public class Shell extends LinearLayout { 38 public class Shell extends LinearLayout {
37 39
38 private static final long COMPLETED_PROGRESS_TIMEOUT_MS = 200; 40 private static final long COMPLETED_PROGRESS_TIMEOUT_MS = 200;
39 41
40 private final Runnable mClearProgressRunnable = new Runnable() { 42 private final Runnable mClearProgressRunnable = new Runnable() {
41 @Override 43 @Override
42 public void run() { 44 public void run() {
43 mProgressDrawable.setLevel(0); 45 mProgressDrawable.setLevel(0);
44 } 46 }
45 }; 47 };
46 48
47 private ContentViewCore mContentViewCore; 49 private ContentViewCore mContentViewCore;
50 private WebContents mWebContents;
51 private NavigationController mNavigationController;
48 private ContentViewClient mContentViewClient; 52 private ContentViewClient mContentViewClient;
49 private EditText mUrlTextView; 53 private EditText mUrlTextView;
50 private ImageButton mPrevButton; 54 private ImageButton mPrevButton;
51 private ImageButton mNextButton; 55 private ImageButton mNextButton;
52 private ImageButton mStopButton; 56 private ImageButton mStopButton;
53 private ImageButton mReloadButton; 57 private ImageButton mReloadButton;
54 58
55 private ClipDrawable mProgressDrawable; 59 private ClipDrawable mProgressDrawable;
56 60
57 private long mNativeShell; 61 private long mNativeShell;
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 return true; 159 return true;
156 } 160 }
157 }); 161 });
158 mUrlTextView.setOnFocusChangeListener(new OnFocusChangeListener() { 162 mUrlTextView.setOnFocusChangeListener(new OnFocusChangeListener() {
159 @Override 163 @Override
160 public void onFocusChange(View v, boolean hasFocus) { 164 public void onFocusChange(View v, boolean hasFocus) {
161 setKeyboardVisibilityForUrl(hasFocus); 165 setKeyboardVisibilityForUrl(hasFocus);
162 mNextButton.setVisibility(hasFocus ? GONE : VISIBLE); 166 mNextButton.setVisibility(hasFocus ? GONE : VISIBLE);
163 mPrevButton.setVisibility(hasFocus ? GONE : VISIBLE); 167 mPrevButton.setVisibility(hasFocus ? GONE : VISIBLE);
164 if (!hasFocus) { 168 if (!hasFocus) {
165 mUrlTextView.setText(mContentViewCore.getUrl()); 169 mUrlTextView.setText(mWebContents.getUrl());
166 } 170 }
167 } 171 }
168 }); 172 });
169 mUrlTextView.setOnKeyListener(new OnKeyListener() { 173 mUrlTextView.setOnKeyListener(new OnKeyListener() {
170 @Override 174 @Override
171 public boolean onKey(View v, int keyCode, KeyEvent event) { 175 public boolean onKey(View v, int keyCode, KeyEvent event) {
172 if (keyCode == KeyEvent.KEYCODE_BACK) { 176 if (keyCode == KeyEvent.KEYCODE_BACK) {
173 mContentViewCore.getContainerView().requestFocus(); 177 mContentViewCore.getContainerView().requestFocus();
174 return true; 178 return true;
175 } 179 }
176 return false; 180 return false;
177 } 181 }
178 }); 182 });
179 } 183 }
180 184
181 /** 185 /**
182 * Loads an URL. This will perform minimal amounts of sanitizing of the URL to attempt to 186 * Loads an URL. This will perform minimal amounts of sanitizing of the URL to attempt to
183 * make it valid. 187 * make it valid.
184 * 188 *
185 * @param url The URL to be loaded by the shell. 189 * @param url The URL to be loaded by the shell.
186 */ 190 */
187 public void loadUrl(String url) { 191 public void loadUrl(String url) {
188 if (url == null) return; 192 if (url == null) return;
189 193
190 if (TextUtils.equals(url, mContentViewCore.getUrl())) { 194 if (TextUtils.equals(url, mWebContents.getUrl())) {
191 mContentViewCore.reload(true); 195 mNavigationController.reload(true);
192 } else { 196 } else {
193 mContentViewCore.loadUrl(new LoadUrlParams(sanitizeUrl(url))); 197 mNavigationController.loadUrl(new LoadUrlParams(sanitizeUrl(url)));
194 } 198 }
195 mUrlTextView.clearFocus(); 199 mUrlTextView.clearFocus();
196 // TODO(aurimas): Remove this when crbug.com/174541 is fixed. 200 // TODO(aurimas): Remove this when crbug.com/174541 is fixed.
197 mContentViewCore.getContainerView().clearFocus(); 201 mContentViewCore.getContainerView().clearFocus();
198 mContentViewCore.getContainerView().requestFocus(); 202 mContentViewCore.getContainerView().requestFocus();
199 } 203 }
200 204
201 /** 205 /**
202 * Given an URL, this performs minimal sanitizing to ensure it will be valid . 206 * Given an URL, this performs minimal sanitizing to ensure it will be valid .
203 * @param url The url to be sanitized. 207 * @param url The url to be sanitized.
204 * @return The sanitized URL. 208 * @return The sanitized URL.
205 */ 209 */
206 public static String sanitizeUrl(String url) { 210 public static String sanitizeUrl(String url) {
207 if (url == null) return null; 211 if (url == null) return null;
208 if (url.startsWith("www.") || url.indexOf(":") == -1) url = "http://" + url; 212 if (url.startsWith("www.") || url.indexOf(":") == -1) url = "http://" + url;
209 return url; 213 return url;
210 } 214 }
211 215
212 private void initializeNavigationButtons() { 216 private void initializeNavigationButtons() {
213 mPrevButton = (ImageButton) findViewById(R.id.prev); 217 mPrevButton = (ImageButton) findViewById(R.id.prev);
214 mPrevButton.setOnClickListener(new OnClickListener() { 218 mPrevButton.setOnClickListener(new OnClickListener() {
215 @Override 219 @Override
216 public void onClick(View v) { 220 public void onClick(View v) {
217 if (mContentViewCore.canGoBack()) mContentViewCore.goBack(); 221 if (mNavigationController.canGoBack()) mNavigationController.goB ack();
218 } 222 }
219 }); 223 });
220 224
221 mNextButton = (ImageButton) findViewById(R.id.next); 225 mNextButton = (ImageButton) findViewById(R.id.next);
222 mNextButton.setOnClickListener(new OnClickListener() { 226 mNextButton.setOnClickListener(new OnClickListener() {
223 @Override 227 @Override
224 public void onClick(View v) { 228 public void onClick(View v) {
225 if (mContentViewCore.canGoForward()) mContentViewCore.goForward( ); 229 if (mNavigationController.canGoForward()) mNavigationController. goForward();
226 } 230 }
227 }); 231 });
228 mStopButton = (ImageButton)findViewById(R.id.stop); 232 mStopButton = (ImageButton)findViewById(R.id.stop);
229 mStopButton.setOnClickListener(new OnClickListener() { 233 mStopButton.setOnClickListener(new OnClickListener() {
230 @Override 234 @Override
231 public void onClick(View v) { 235 public void onClick(View v) {
232 if (mLoading) mContentViewCore.stopLoading(); 236 if (mLoading) mWebContents.stop();
233 } 237 }
234 }); 238 });
235 mReloadButton = (ImageButton)findViewById(R.id.reload); 239 mReloadButton = (ImageButton)findViewById(R.id.reload);
236 mReloadButton.setOnClickListener(new OnClickListener() { 240 mReloadButton.setOnClickListener(new OnClickListener() {
237 @Override 241 @Override
238 public void onClick(View v) { 242 public void onClick(View v) {
239 mContentViewCore.reload(true); 243 mNavigationController.reload(true);
240 } 244 }
241 }); 245 });
242 } 246 }
243 247
244 @SuppressWarnings("unused") 248 @SuppressWarnings("unused")
245 @CalledByNative 249 @CalledByNative
246 private void onUpdateUrl(String url) { 250 private void onUpdateUrl(String url) {
247 mUrlTextView.setText(url); 251 mUrlTextView.setText(url);
248 } 252 }
249 253
(...skipping 25 matching lines...) Expand all
275 * @param nativeWebContents The pointer to the native tab contents object. 279 * @param nativeWebContents The pointer to the native tab contents object.
276 */ 280 */
277 @SuppressWarnings("unused") 281 @SuppressWarnings("unused")
278 @CalledByNative 282 @CalledByNative
279 private void initFromNativeTabContents(long nativeWebContents) { 283 private void initFromNativeTabContents(long nativeWebContents) {
280 Context context = getContext(); 284 Context context = getContext();
281 mContentViewCore = new ContentViewCore(context); 285 mContentViewCore = new ContentViewCore(context);
282 ContentView cv = ContentView.newInstance(context, mContentViewCore); 286 ContentView cv = ContentView.newInstance(context, mContentViewCore);
283 mContentViewCore.initialize(cv, cv, nativeWebContents, mWindow); 287 mContentViewCore.initialize(cv, cv, nativeWebContents, mWindow);
284 mContentViewCore.setContentViewClient(mContentViewClient); 288 mContentViewCore.setContentViewClient(mContentViewClient);
285 289 mWebContents = mContentViewCore.getWebContents();
290 mNavigationController = mWebContents.getNavigationController();
286 if (getParent() != null) mContentViewCore.onShow(); 291 if (getParent() != null) mContentViewCore.onShow();
287 if (mContentViewCore.getUrl() != null) mUrlTextView.setText(mContentView Core.getUrl()); 292 if (mWebContents.getUrl() != null) {
293 mUrlTextView.setText(mWebContents.getUrl());
294 }
288 ((FrameLayout) findViewById(R.id.contentview_holder)).addView(cv, 295 ((FrameLayout) findViewById(R.id.contentview_holder)).addView(cv,
289 new FrameLayout.LayoutParams( 296 new FrameLayout.LayoutParams(
290 FrameLayout.LayoutParams.MATCH_PARENT, 297 FrameLayout.LayoutParams.MATCH_PARENT,
291 FrameLayout.LayoutParams.MATCH_PARENT)); 298 FrameLayout.LayoutParams.MATCH_PARENT));
292 cv.requestFocus(); 299 cv.requestFocus();
293 mContentViewRenderView.setCurrentContentViewCore(mContentViewCore); 300 mContentViewRenderView.setCurrentContentViewCore(mContentViewCore);
294 } 301 }
295 302
296 /** 303 /**
297 * Enable/Disable navigation(Prev/Next) button if navigation is allowed/disa llowed 304 * Enable/Disable navigation(Prev/Next) button if navigation is allowed/disa llowed
(...skipping 30 matching lines...) Expand all
328 Context.INPUT_METHOD_SERVICE); 335 Context.INPUT_METHOD_SERVICE);
329 if (visible) { 336 if (visible) {
330 imm.showSoftInput(mUrlTextView, InputMethodManager.SHOW_IMPLICIT); 337 imm.showSoftInput(mUrlTextView, InputMethodManager.SHOW_IMPLICIT);
331 } else { 338 } else {
332 imm.hideSoftInputFromWindow(mUrlTextView.getWindowToken(), 0); 339 imm.hideSoftInputFromWindow(mUrlTextView.getWindowToken(), 0);
333 } 340 }
334 } 341 }
335 342
336 private static native void nativeCloseShell(long shellPtr); 343 private static native void nativeCloseShell(long shellPtr);
337 } 344 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698