Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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.chrome.browser.webapps; | 5 package org.chromium.chrome.browser.webapps; |
| 6 | 6 |
| 7 import android.content.Intent; | 7 import android.content.Intent; |
| 8 import android.graphics.Bitmap; | 8 import android.graphics.Bitmap; |
| 9 import android.graphics.Color; | 9 import android.graphics.Color; |
| 10 import android.graphics.drawable.Drawable; | 10 import android.graphics.drawable.Drawable; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 56 private boolean mOldWebappCleanupStarted; | 56 private boolean mOldWebappCleanupStarted; |
| 57 | 57 |
| 58 private ViewGroup mSplashScreen; | 58 private ViewGroup mSplashScreen; |
| 59 private WebappUrlBar mUrlBar; | 59 private WebappUrlBar mUrlBar; |
| 60 | 60 |
| 61 private boolean mIsInitialized; | 61 private boolean mIsInitialized; |
| 62 private Integer mBrandColor; | 62 private Integer mBrandColor; |
| 63 | 63 |
| 64 private WebappUma mWebappUma; | 64 private WebappUma mWebappUma; |
| 65 | 65 |
| 66 private Bitmap mLargestFavicon; | |
| 67 | |
| 66 /** | 68 /** |
| 67 * Construct all the variables that shouldn't change. We do it here both to clarify when the | 69 * Construct all the variables that shouldn't change. We do it here both to clarify when the |
| 68 * objects are created and to ensure that they exist throughout the parallel ized initialization | 70 * objects are created and to ensure that they exist throughout the parallel ized initialization |
| 69 * of the WebappActivity. | 71 * of the WebappActivity. |
| 70 */ | 72 */ |
| 71 public WebappActivity() { | 73 public WebappActivity() { |
| 72 mWebappInfo = WebappInfo.createEmpty(); | 74 mWebappInfo = WebappInfo.createEmpty(); |
| 73 mDirectoryManager = new WebappDirectoryManager(); | 75 mDirectoryManager = new WebappDirectoryManager(); |
| 74 mWebappUma = new WebappUma(); | 76 mWebappUma = new WebappUma(); |
| 75 } | 77 } |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 280 mUrlBar.update(tab.getUrl(), tab.getSecurityLevel()); | 282 mUrlBar.update(tab.getUrl(), tab.getSecurityLevel()); |
| 281 } | 283 } |
| 282 | 284 |
| 283 private boolean isWebappDomain() { | 285 private boolean isWebappDomain() { |
| 284 return UrlUtilities.sameDomainOrHost( | 286 return UrlUtilities.sameDomainOrHost( |
| 285 getActivityTab().getUrl(), getWebappInfo().uri().toString(), tru e); | 287 getActivityTab().getUrl(), getWebappInfo().uri().toString(), tru e); |
| 286 } | 288 } |
| 287 | 289 |
| 288 protected TabObserver createTabObserver() { | 290 protected TabObserver createTabObserver() { |
| 289 return new EmptyTabObserver() { | 291 return new EmptyTabObserver() { |
| 292 | |
| 290 @Override | 293 @Override |
| 291 public void onSSLStateUpdated(Tab tab) { | 294 public void onSSLStateUpdated(Tab tab) { |
| 292 updateUrlBar(); | 295 updateUrlBar(); |
| 293 } | 296 } |
| 294 | 297 |
| 295 @Override | 298 @Override |
| 296 public void onDidStartProvisionalLoadForFrame( | 299 public void onDidStartProvisionalLoadForFrame( |
| 297 Tab tab, long frameId, long parentFrameId, boolean isMainFra me, | 300 Tab tab, long frameId, long parentFrameId, boolean isMainFra me, |
| 298 String validatedUrl, boolean isErrorPage, boolean isIframeSr cdoc) { | 301 String validatedUrl, boolean isErrorPage, boolean isIframeSr cdoc) { |
| 299 if (isMainFrame) updateUrlBar(); | 302 if (isMainFrame) updateUrlBar(); |
| 300 } | 303 } |
| 301 | 304 |
| 302 @Override | 305 @Override |
| 303 public void onDidChangeThemeColor(Tab tab, int color) { | 306 public void onDidChangeThemeColor(Tab tab, int color) { |
| 304 if (!isWebappDomain()) return; | 307 if (!isWebappDomain()) return; |
| 305 mBrandColor = color; | 308 mBrandColor = color; |
| 306 updateTaskDescription(); | 309 updateTaskDescription(); |
| 307 } | 310 } |
| 308 | 311 |
| 309 @Override | 312 @Override |
| 310 public void onTitleUpdated(Tab tab) { | 313 public void onTitleUpdated(Tab tab) { |
| 311 if (!isWebappDomain()) return; | 314 if (!isWebappDomain()) return; |
| 312 updateTaskDescription(); | 315 updateTaskDescription(); |
| 313 } | 316 } |
| 314 | 317 |
| 315 @Override | 318 @Override |
| 316 public void onFaviconUpdated(Tab tab) { | 319 public void onFaviconUpdated(Tab tab, Bitmap icon) { |
| 317 if (!isWebappDomain()) return; | 320 if (!isWebappDomain()) return; |
| 318 updateTaskDescription(); | 321 if (mWebappInfo.icon() != null) return; |
|
gone
2015/11/20 23:37:13
Why'd this new condition appear? Seems like we sh
Yusuf
2015/11/20 23:38:54
See updateTaskDescription where if there is an ico
Yusuf
2015/11/20 23:47:33
Done.
| |
| 322 if (mLargestFavicon == null || icon.getWidth() > mLargestFavicon .getWidth() | |
| 323 || icon.getHeight() > mLargestFavicon.getHeight()) { | |
| 324 mLargestFavicon = icon; | |
| 325 updateTaskDescription(); | |
| 326 } | |
| 319 } | 327 } |
| 320 | 328 |
| 321 @Override | 329 @Override |
| 322 public void onDidNavigateMainFrame(Tab tab, String url, String baseU rl, | 330 public void onDidNavigateMainFrame(Tab tab, String url, String baseU rl, |
| 323 boolean isNavigationToDifferentPage, boolean isNavigationInP age, | 331 boolean isNavigationToDifferentPage, boolean isNavigationInP age, |
| 324 int statusCode) { | 332 int statusCode) { |
| 325 updateUrlBar(); | 333 updateUrlBar(); |
| 326 } | 334 } |
| 327 | 335 |
| 328 @Override | 336 @Override |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 384 if (!TextUtils.isEmpty(mWebappInfo.shortName())) { | 392 if (!TextUtils.isEmpty(mWebappInfo.shortName())) { |
| 385 title = mWebappInfo.shortName(); | 393 title = mWebappInfo.shortName(); |
| 386 } else if (getActivityTab() != null) { | 394 } else if (getActivityTab() != null) { |
| 387 title = getActivityTab().getTitle(); | 395 title = getActivityTab().getTitle(); |
| 388 } | 396 } |
| 389 | 397 |
| 390 Bitmap icon = null; | 398 Bitmap icon = null; |
| 391 if (mWebappInfo.icon() != null) { | 399 if (mWebappInfo.icon() != null) { |
| 392 icon = mWebappInfo.icon(); | 400 icon = mWebappInfo.icon(); |
| 393 } else if (getActivityTab() != null) { | 401 } else if (getActivityTab() != null) { |
| 394 icon = getActivityTab().getFavicon(); | 402 icon = mLargestFavicon; |
| 395 } | 403 } |
| 396 | 404 |
| 397 if (mBrandColor == null && mWebappInfo.hasValidThemeColor()) { | 405 if (mBrandColor == null && mWebappInfo.hasValidThemeColor()) { |
| 398 mBrandColor = (int) mWebappInfo.themeColor(); | 406 mBrandColor = (int) mWebappInfo.themeColor(); |
| 399 } | 407 } |
| 400 | 408 |
| 401 int taskDescriptionColor = | 409 int taskDescriptionColor = |
| 402 ApiCompatibilityUtils.getColor(getResources(), R.color.default_p rimary_color); | 410 ApiCompatibilityUtils.getColor(getResources(), R.color.default_p rimary_color); |
| 403 int statusBarColor = Color.BLACK; | 411 int statusBarColor = Color.BLACK; |
| 404 if (mBrandColor != null) { | 412 if (mBrandColor != null) { |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 499 return visible; | 507 return visible; |
| 500 } | 508 } |
| 501 | 509 |
| 502 // We're temporarily disable CS on webapp since there are some issues. (http ://crbug.com/471950) | 510 // We're temporarily disable CS on webapp since there are some issues. (http ://crbug.com/471950) |
| 503 // TODO(changwan): re-enable it once the issues are resolved. | 511 // TODO(changwan): re-enable it once the issues are resolved. |
| 504 @Override | 512 @Override |
| 505 protected boolean isContextualSearchAllowed() { | 513 protected boolean isContextualSearchAllowed() { |
| 506 return false; | 514 return false; |
| 507 } | 515 } |
| 508 } | 516 } |
| OLD | NEW |