chromium 原生實現(xiàn)
3個關(guān)鍵類
SavePasswordsPreferences extends Fragment //password 界面
//負(fù)責(zé)和native層進(jìn)行交互
public final class PasswordUIView {
//內(nèi)部類, 代表一項password item
public static final class SavedPasswordEntry {
private final String mUrl;
private final String mName;
}
public interface PasswordListObserver {
/**
* Called when passwords list is updated.
* @param count Number of entries in the password list.
*/
void passwordListAvailable(int count);
/**
* Called when password exceptions list is updated.
* @param count Number of entries in the password exception list.
*/
void passwordExceptionListAvailable(int count);
}
private ObserverList<PasswordListObserver> mObservers =
new ObserverList<PasswordListObserver>();
//底層保存密碼完后, jni調(diào)用java層的passwordListAvailable(), 進(jìn)而通知所有的observer.
@CalledByNative
private void passwordListAvailable(int count) {
JLog.i(count);
for (PasswordListObserver observer : mObservers) {
observer.passwordListAvailable(count);
}
}
}
PasswordEntryEditor.java //Password entry editor that allows to view and delete passwords stored in Chrome.
項目自定義的實現(xiàn)
2個關(guān)鍵類
PasswordSettingActivity //保存密碼的界面
PasswordAdapter //密碼列表使用的adapter
保存密碼的文件
chrome保存的位置:
/data/data/com.android.chrome/app_chrome/Default/Login Data
自己瀏覽器保存的位置:
/data/data/com.qihoo.browser/app_chrome/Default/Login Data
注意一點: 明文保存, 有一定的安全隱患.
-----DONE.-----