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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/search_engines/TemplateUrlService.java

Issue 2676443002: [Android] Further speculative fixes for search engine crashes. (Closed)
Patch Set: Created 3 years, 10 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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.search_engines; 5 package org.chromium.chrome.browser.search_engines;
6 6
7 import android.support.annotation.IntDef; 7 import android.support.annotation.IntDef;
8 import android.text.TextUtils; 8 import android.text.TextUtils;
9 9
10 import org.chromium.base.ObserverList; 10 import org.chromium.base.ObserverList;
11 import org.chromium.base.ThreadUtils; 11 import org.chromium.base.ThreadUtils;
12 import org.chromium.base.VisibleForTesting; 12 import org.chromium.base.VisibleForTesting;
13 import org.chromium.base.annotations.CalledByNative; 13 import org.chromium.base.annotations.CalledByNative;
14 14
15 import java.lang.annotation.Retention; 15 import java.lang.annotation.Retention;
16 import java.lang.annotation.RetentionPolicy; 16 import java.lang.annotation.RetentionPolicy;
17 import java.util.ArrayList; 17 import java.util.ArrayList;
18 import java.util.List; 18 import java.util.List;
19 import java.util.Locale;
19 20
20 /** 21 /**
21 * Android wrapper of the TemplateUrlService which provides access from the Java 22 * Android wrapper of the TemplateUrlService which provides access from the Java
22 * layer. 23 * layer.
23 * 24 *
24 * Only usable from the UI thread as it's primary purpose is for supporting the Android 25 * Only usable from the UI thread as it's primary purpose is for supporting the Android
25 * preferences UI. 26 * preferences UI.
26 * 27 *
27 * See components/search_engines/template_url_service.h for more details. 28 * See components/search_engines/template_url_service.h for more details.
28 */ 29 */
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 */ 62 */
62 public static class TemplateUrl { 63 public static class TemplateUrl {
63 private final int mIndex; 64 private final int mIndex;
64 private final String mShortName; 65 private final String mShortName;
65 private final boolean mIsPrepopulated; 66 private final boolean mIsPrepopulated;
66 private final String mKeyword; 67 private final String mKeyword;
67 @TemplateUrlType private int mTemplateUrlType; 68 @TemplateUrlType private int mTemplateUrlType;
68 69
69 @CalledByNative("TemplateUrl") 70 @CalledByNative("TemplateUrl")
70 public static TemplateUrl create( 71 public static TemplateUrl create(
71 int id, String shortName, boolean isPrepopulated, String keyword ) { 72 int index, String shortName, boolean isPrepopulated, String keyw ord) {
72 return new TemplateUrl(id, shortName, isPrepopulated, keyword); 73 return new TemplateUrl(index, shortName, isPrepopulated, keyword);
73 } 74 }
74 75
75 public TemplateUrl( 76 public TemplateUrl(
76 int index, String shortName, boolean isPrepopulated, String keyw ord) { 77 int index, String shortName, boolean isPrepopulated, String keyw ord) {
77 mIndex = index; 78 mIndex = index;
78 mShortName = shortName; 79 mShortName = shortName;
79 mIsPrepopulated = isPrepopulated; 80 mIsPrepopulated = isPrepopulated;
80 mKeyword = keyword; 81 mKeyword = keyword;
81 } 82 }
82 83
(...skipping 28 matching lines...) Expand all
111 int result = 1; 112 int result = 1;
112 result = prime * result + mIndex; 113 result = prime * result + mIndex;
113 result = prime * result + ((mShortName == null) ? 0 : mShortName.has hCode()); 114 result = prime * result + ((mShortName == null) ? 0 : mShortName.has hCode());
114 return result; 115 return result;
115 } 116 }
116 117
117 @Override 118 @Override
118 public boolean equals(Object other) { 119 public boolean equals(Object other) {
119 if (!(other instanceof TemplateUrl)) return false; 120 if (!(other instanceof TemplateUrl)) return false;
120 TemplateUrl otherTemplateUrl = (TemplateUrl) other; 121 TemplateUrl otherTemplateUrl = (TemplateUrl) other;
122 // Explicitly excluding mTemplateUrlType as that will change if the search engine is
123 // set as default.
121 return mIndex == otherTemplateUrl.mIndex 124 return mIndex == otherTemplateUrl.mIndex
125 && mIsPrepopulated == otherTemplateUrl.mIsPrepopulated
126 && TextUtils.equals(mKeyword, otherTemplateUrl.mKeyword)
122 && TextUtils.equals(mShortName, otherTemplateUrl.mShortName) ; 127 && TextUtils.equals(mShortName, otherTemplateUrl.mShortName) ;
123 } 128 }
129
130 @Override
131 public String toString() {
132 return String.format(Locale.US,
133 "TemplateURL -- keyword: %s, short name: %s, index: %d, "
134 + "type: %d, prepopulated: %b",
135 mKeyword, mShortName, mIndex, mTemplateUrlType, mIsPrepopula ted);
136 }
124 } 137 }
125 138
126 private static TemplateUrlService sService; 139 private static TemplateUrlService sService;
127 140
128 public static TemplateUrlService getInstance() { 141 public static TemplateUrlService getInstance() {
129 ThreadUtils.assertOnUiThread(); 142 ThreadUtils.assertOnUiThread();
130 if (sService == null) { 143 if (sService == null) {
131 sService = new TemplateUrlService(); 144 sService = new TemplateUrlService();
132 } 145 }
133 return sService; 146 return sService;
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 String query, String currentUrl); 407 String query, String currentUrl);
395 private native String nativeGetUrlForContextualSearchQuery(long nativeTempla teUrlServiceAndroid, 408 private native String nativeGetUrlForContextualSearchQuery(long nativeTempla teUrlServiceAndroid,
396 String query, String alternateTerm, boolean shouldPrefetch, String p rotocolVersion); 409 String query, String alternateTerm, boolean shouldPrefetch, String p rotocolVersion);
397 private native String nativeGetSearchEngineUrlFromTemplateUrl( 410 private native String nativeGetSearchEngineUrlFromTemplateUrl(
398 long nativeTemplateUrlServiceAndroid, String keyword); 411 long nativeTemplateUrlServiceAndroid, String keyword);
399 private native String nativeAddSearchEngineForTesting( 412 private native String nativeAddSearchEngineForTesting(
400 long nativeTemplateUrlServiceAndroid, String keyword, int offset); 413 long nativeTemplateUrlServiceAndroid, String keyword, int offset);
401 private native String nativeUpdateLastVisitedForTesting( 414 private native String nativeUpdateLastVisitedForTesting(
402 long nativeTemplateUrlServiceAndroid, String keyword); 415 long nativeTemplateUrlServiceAndroid, String keyword);
403 } 416 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698