Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java |
| index 1dced8029edb9da52d7f6914942ec023e194b006..5be2a6e165ea8b6c057b03c09a77915a3d49e004 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java |
| @@ -5,6 +5,7 @@ |
| package org.chromium.chrome.browser.offlinepages.evaluation; |
| import org.chromium.base.Callback; |
| +import org.chromium.base.Log; |
| import org.chromium.base.ObserverList; |
| import org.chromium.base.ThreadUtils; |
| import org.chromium.base.annotations.CalledByNative; |
| @@ -14,8 +15,17 @@ import org.chromium.chrome.browser.offlinepages.OfflinePageItem; |
| import org.chromium.chrome.browser.offlinepages.SavePageRequest; |
| import org.chromium.chrome.browser.profiles.Profile; |
| +import java.io.File; |
| +import java.io.FileWriter; |
| +import java.io.IOException; |
| +import java.io.OutputStreamWriter; |
| + |
| +import java.text.SimpleDateFormat; |
| + |
| import java.util.ArrayList; |
| +import java.util.Date; |
| import java.util.List; |
| +import java.util.Locale; |
| /** |
| * Class used for offline page evaluation testing tools. |
| @@ -65,11 +75,14 @@ public class OfflinePageEvaluationBridge { |
| return nativeGetBridgeForProfile(profile, useEvaluationScheduler); |
| } |
| + private static final String TAG = "OPEvalBridge"; |
| private long mNativeOfflinePageEvaluationBridge; |
| private boolean mIsOfflinePageModelLoaded; |
| private ObserverList<OfflinePageEvaluationObserver> mObservers = |
| new ObserverList<OfflinePageEvaluationObserver>(); |
| + private OutputStreamWriter mLogOutput; |
| + |
| /** |
| * Creates an offline page evalutaion bridge for a given profile. |
| */ |
| @@ -152,6 +165,10 @@ public class OfflinePageEvaluationBridge { |
| nativeRemoveRequestsFromQueue(mNativeOfflinePageEvaluationBridge, ids, callback); |
| } |
| + public void setLogOutputFile(File outputFile) throws IOException { |
| + mLogOutput = new FileWriter(outputFile); |
| + } |
| + |
| /** |
| * @return True if the offline page model has fully loaded. |
| */ |
| @@ -160,6 +177,27 @@ public class OfflinePageEvaluationBridge { |
| } |
| @CalledByNative |
| + public void log(String sourceTag, String message) { |
| + try { |
| + Date date = new Date(System.currentTimeMillis()); |
| + SimpleDateFormat formatter = |
| + new SimpleDateFormat("MM-dd HH:mm:ss.SSS", Locale.getDefault()); |
| + mLogOutput.write(formatter.format(date) + ": " + sourceTag + " | " + message |
| + + System.getProperty("line.separator")); |
| + } catch (IOException e) { |
| + Log.e(TAG, e.getMessage(), e); |
|
fgorski
2016/11/30 17:30:47
Wouldn't it be easier (and more widely applicable)
romax
2016/12/01 01:47:52
yes that's a more reasonable way and it would be e
|
| + } |
| + } |
| + |
| + public void closeLog() { |
| + try { |
| + mLogOutput.close(); |
| + } catch (IOException e) { |
| + Log.e(TAG, e.getMessage(), e); |
| + } |
| + } |
| + |
| + @CalledByNative |
| void savePageRequestAdded(SavePageRequest request) { |
| for (OfflinePageEvaluationObserver observer : mObservers) { |
| observer.savePageRequestAdded(request); |