Compare commits
9
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3cf1a58964 | ||
|
|
ef1fa37452 | ||
|
|
7cb31f2c7a | ||
|
|
252be1a850 | ||
|
|
4cef551b01 | ||
|
|
dbc43b5c36 | ||
|
|
92aba62fdf | ||
|
|
d8db805929 | ||
|
|
9ea0219fce |
+6
-33
@@ -1,3 +1,9 @@
|
||||
# 68.0.3440.87
|
||||
* add export button to Bookmarks activity page
|
||||
|
||||
# 68.0.3440.81
|
||||
* fix issue with filters with an excluded domain option
|
||||
|
||||
# 68.0.3440.72
|
||||
* fix crash during some canvas rendering (fixes https://github.com/bromite/bromite/issues/95)
|
||||
* new approach to adblock filtering (fixes https://github.com/bromite/bromite/issues/90)
|
||||
@@ -8,11 +14,9 @@
|
||||
* disable ads metrics by default
|
||||
* disable all field trials (fixes https://github.com/bromite/bromite/issues/83)
|
||||
* re-introduced own battery API patch (fixes https://github.com/bromite/bromite/issues/80)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.107
|
||||
* removed patch to use Android Media Player for URLs (fixes https://github.com/bromite/bromite/issues/71)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.101
|
||||
* set home page to new tab page
|
||||
@@ -29,7 +33,6 @@
|
||||
* safe_browsing: disable cookie transmission
|
||||
* extensions: always show component extensions in the ext list
|
||||
* translate: disable fetching of translate languages from server
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.95
|
||||
* reduce headers sent in DoH requests (fixes https://github.com/bromite/bromite/issues/70)
|
||||
@@ -37,11 +40,9 @@
|
||||
* `CloudFlare` -> `Cloudflare` (fixes https://github.com/bromite/bromite/issues/73)
|
||||
* fingerprint mitigations: cover also `ConvertToArrayBufferContents`
|
||||
* removed redundant own patch for battery API
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.92
|
||||
* improve randomization for each retrieved Canvas data (fixes https://github.com/bromite/bromite/issues/69)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.88
|
||||
* add flag for DNS-over-HTTPS (Google experimental DNS) (fixes https://github.com/bromite/bromite/issues/68)
|
||||
@@ -52,90 +53,70 @@
|
||||
* use Android Media Player for URLs
|
||||
* add exit menu item
|
||||
* hide "send reports to Google" menu item
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.82
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.76
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.72
|
||||
* add global toggle for adblock engine (https://github.com/bromite/bromite/issues/53)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.67
|
||||
* updated AdBlock filters
|
||||
|
||||
# 66.0.3359.202
|
||||
* fix DevTools integration (https://github.com/bromite/bromite/issues/23)
|
||||
* allow toggling of Javascript from New Tab Page (fixes https://github.com/bromite/bromite/issues/60)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 66.0.3359.200
|
||||
* updated AdBlock filters
|
||||
|
||||
# 66.0.3359.196
|
||||
* updated AdBlock filters
|
||||
|
||||
# 66.0.3359.188
|
||||
* updated AdBlock filters
|
||||
* increase max (persistent) connections per server from 6 to 15
|
||||
* preliminary work for better canvas fingerprinting mitigations
|
||||
|
||||
# 66.0.3359.161
|
||||
* updated AdBlock filters
|
||||
|
||||
# 66.0.3359.148
|
||||
* disable permanently all custom tab intents (https://github.com/bromite/bromite/issues/17)
|
||||
* updated AdBlock filters
|
||||
* reduce randomization for client rects from 5% to 3%
|
||||
|
||||
# 65.0.3325.230
|
||||
* fixed permission to access Google account issue (https://github.com/bromite/bromite/issues/11)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 65.0.3325.218
|
||||
* always set WideVine version
|
||||
* updated AdBlock filters
|
||||
|
||||
# 65.0.3325.204
|
||||
* add menu option to toggle global Javascript preferences setting (https://github.com/bromite/bromite/issues/37)
|
||||
* add fingeprinting mitigation for getClientRects, getBoundingClientRect
|
||||
* set audio latency to fixed number
|
||||
* updated AdBlock filters
|
||||
|
||||
# 65.0.3325.198
|
||||
* re-landed support for third-party AdBlock filters
|
||||
* completed patches cleanup
|
||||
* updated AdBlock filters
|
||||
|
||||
# 65.0.3325.190
|
||||
* block some Canvas and AudioBuffer APIs mostly used for fingerprinting (https://github.com/bromite/bromite/issues/15)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 65.0.3325.176
|
||||
* block plugins enumeration API
|
||||
* block battery API
|
||||
* remove device name and build id from User Agent
|
||||
* added Qwant search engine
|
||||
* updated AdBlock filters
|
||||
* disable non-working 3rd-party filters support
|
||||
|
||||
# 64.0.3282.204
|
||||
* use H264 NEON optimizations also for arm64
|
||||
* fix build of Stable channel
|
||||
* updated AdBlock filters
|
||||
* started building vanilla Chromium releases as well
|
||||
|
||||
# 64.0.3282.193
|
||||
* updated AdBlock filters
|
||||
* disable reporting
|
||||
|
||||
# 64.0.3282.182
|
||||
* add support for domain-based adblock filters
|
||||
* optimized memory allocation for filters
|
||||
* updated AdBlock filters
|
||||
|
||||
# 64.0.3282.168
|
||||
* extension: allow playing youtube/vimeo videos in background (https://github.com/bromite/bromite/issues/16)
|
||||
@@ -152,20 +133,16 @@
|
||||
* disabled plugin untraceable URLs (ungoogled-chromium)
|
||||
|
||||
# 64.0.3282.149
|
||||
* updated AdBlock filters
|
||||
|
||||
# 63.0.3239.150
|
||||
* fixed crash when clicking on address bar lock (page info) or opening site settings (https://github.com/bromite/bromite/issues/28)
|
||||
* build H264 with NEON optimizations for ARMv7
|
||||
* updated AdBlock filters
|
||||
* more builds for arm64 architecture
|
||||
|
||||
# 63.0.3239.144
|
||||
* fixed invalid AdBlock filter rule blocking all connections (https://github.com/bromite/bromite/issues/26)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 63.0.3239.129
|
||||
* updated AdBlock filters
|
||||
|
||||
# 63.0.3239.122
|
||||
* disable webRTC completely (https://github.com/bromite/bromite/issues/9)
|
||||
@@ -178,23 +155,19 @@
|
||||
* revert /deep/ and ::shadow feature drop to attempt fixing DevTools support (https://github.com/bromite/bromite/issues/23)
|
||||
* remove also ads from search results
|
||||
* add Google search engine with English-only results, no RLZ and field trials
|
||||
* updated adBlock filters
|
||||
* fix build of x86 version (was broken in previous version)
|
||||
|
||||
# 63.0.3239.85
|
||||
* no suggest URL for DuckDuckGo (https://github.com/bromite/bromite/issues/19)
|
||||
* fixed 4chan blocking rule
|
||||
* limit AMP links cleanup to search results only (fixes broken images/news result tabs)
|
||||
* updated adBlock filters
|
||||
|
||||
# 63.0.3239.78
|
||||
* correctly set version and build numbers
|
||||
* updated adBlock filters
|
||||
|
||||
# 63.0.3239.73
|
||||
|
||||
# 63.0.3239.64
|
||||
* updated adblock filters
|
||||
* fixed an issue with incognito new tab
|
||||
* permanent disable for ToS/metrics and unused auto-updates check
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Bromite - Take back your browser
|
||||
|
||||
<img src="https://www.bromite.org/release.svg" alt="current Bromite release" title="current Bromite release" /> [![license][license-image]][license-url]
|
||||
<img src="https://www.bromite.org/release.svg" alt="current Bromite release" title="current Bromite release" /> <img src="https://www.bromite.org/license.svg" alt="GNU GPL v3" title="GNU VPL v3" />
|
||||
|
||||
<img title="Bromite - take back your browser!" src="https://www.bromite.org/android-icon-192x192.png" width="96" alt="Bromite" />
|
||||
|
||||
@@ -57,7 +57,9 @@ We cannot add add-ons to Bromite (merely some features) and anyway HTTPS everywh
|
||||
No, and this is unlikely to change. The Play Store would not allow total freedom on the adblocking choice, amongst other limitations.
|
||||
|
||||
## Is Bromite on F-Droid?
|
||||
No and there are no plans to support it; but feel free to submit it yourself.
|
||||
It is not on the official F-Droid repository and there are no (more) plans to submit it.
|
||||
|
||||
You can use F-Droid client to install and receive updates via [the official Bromite F-Droid repository](https://www.bromite.org/fdroid).
|
||||
|
||||
## Does Bromite support WebRTC?
|
||||
No, it is not built-in.
|
||||
@@ -67,10 +69,14 @@ No, it is not built-in.
|
||||
* baked-in adblock engine with filters from EasyList, EasyPrivacy and others
|
||||
* remove click-tracking and AMP from search results
|
||||
* DNS-over-HTTPS support via Google/CloudFlare servers
|
||||
* allow playing videos in background
|
||||
* [StartPage](https://startpage.com/), [DuckDuckGo](https://duckduckgo.com/) and [Qwant](https://www.qwant.com/) search engines
|
||||
* chrome flag to hide NTP tiles and to disable custom intents
|
||||
* privacy enhancement patches from [Iridium](https://iridiumbrowser.de/), [Inox patchset](https://github.com/gcarq/inox-patchset), [Brave](https://brave.com/) and [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) projects
|
||||
* webRTC, canvas, audio and other anti-fingerprinting mitigations
|
||||
|
||||
## Features not related to privacy
|
||||
* export bookmarks
|
||||
* allow playing videos in background
|
||||
* all codecs included (proprietary, open H.264 etc.)
|
||||
* built with official speed optimizations
|
||||
|
||||
@@ -83,7 +89,9 @@ All built versions are available as [releases](https://github.com/bromite/bromit
|
||||
Each tag corresponds to a Chromium Stable release tag.
|
||||
|
||||
Bromite is currently built for ARM, ARM64 and x86 and for the Android SDKs versions 16 and 21
|
||||
Additionally, [SystemWebView](https://www.bromite.org/system_web_view), Monochrome and the [vanilla Chromium](https://www.bromite.org/chromium) builds are provided.
|
||||
Additionally, [SystemWebView](https://www.bromite.org/system_web_view) and the [vanilla Chromium](https://www.bromite.org/chromium) builds are provided.
|
||||
|
||||
The official releases are also available through the [official third-party F-Droid repository](https://www.bromite.org/fdroid).
|
||||
|
||||
## Integrity and authenticity
|
||||
|
||||
|
||||
+1018
-615
File diff suppressed because one or more lines are too long
@@ -152,7 +152,7 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums
|
||||
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
|
||||
--- a/tools/metrics/histograms/histograms.xml
|
||||
+++ b/tools/metrics/histograms/histograms.xml
|
||||
@@ -111319,6 +111319,7 @@ uploading your change for review.
|
||||
@@ -111339,6 +111339,7 @@ uploading your change for review.
|
||||
<suffix name="Overestimate"
|
||||
label="Tracks when the compositor's estimates were too high and by how
|
||||
much."/>
|
||||
|
||||
@@ -434,12 +434,12 @@ new file mode 100644
|
||||
+bool url_match_domain(adblock_entry *entry, const std::string &origin_host) {
|
||||
+ bool match_domain = true;
|
||||
+ // check for a negative domain match
|
||||
+ if (entry->domains_neg) {
|
||||
+ if (entry->domains_skip) {
|
||||
+ if (origin_host.empty()) {
|
||||
+ // skip this rule, cannot match on domain
|
||||
+ return false;
|
||||
+ }
|
||||
+ for (int d = 0; const char *domain = entry->domains_neg[d]; d++) {
|
||||
+ for (int d = 0; const char *domain = entry->domains_skip[d]; d++) {
|
||||
+ if (domain == origin_host) {
|
||||
+ match_domain = false;
|
||||
+ break;
|
||||
|
||||
@@ -12,9 +12,9 @@ approach to change color components.
|
||||
---
|
||||
.../modules/webgl/webgl_debug_renderer_info.cc | 4 +-
|
||||
.../platform/graphics/image_data_buffer.cc | 5 +
|
||||
.../platform/graphics/static_bitmap_image.cc | 153 +++++++++++++++++++++
|
||||
.../platform/graphics/static_bitmap_image.cc | 154 +++++++++++++++++++++
|
||||
.../platform/graphics/static_bitmap_image.h | 2 +
|
||||
4 files changed, 162 insertions(+), 2 deletions(-)
|
||||
4 files changed, 163 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc b/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc
|
||||
--- a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc
|
||||
@@ -58,15 +58,16 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b
|
||||
diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc b/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
||||
--- a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
||||
+++ b/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
||||
@@ -4,6 +4,7 @@
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
|
||||
|
||||
+#include "base/rand_util.h"
|
||||
+#include "base/logging.h"
|
||||
#include "gpu/command_buffer/client/gles2_interface.h"
|
||||
#include "third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.h"
|
||||
#include "third_party/blink/renderer/platform/graphics/graphics_context.h"
|
||||
@@ -15,6 +16,7 @@
|
||||
@@ -15,6 +17,7 @@
|
||||
#include "third_party/skia/include/core/SkCanvas.h"
|
||||
#include "third_party/skia/include/core/SkImage.h"
|
||||
#include "third_party/skia/include/core/SkPaint.h"
|
||||
@@ -74,7 +75,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
||||
#include "third_party/skia/include/gpu/GrContext.h"
|
||||
|
||||
namespace blink {
|
||||
@@ -161,10 +163,161 @@ bool StaticBitmapImage::ConvertToArrayBufferContents(
|
||||
@@ -161,10 +164,161 @@ bool StaticBitmapImage::ConvertToArrayBufferContents(
|
||||
DCHECK(read_pixels_successful ||
|
||||
!sk_image->bounds().intersect(SkIRect::MakeXYWH(
|
||||
rect.X(), rect.Y(), info.width(), info.height())));
|
||||
@@ -112,7 +113,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
||||
+ auto colorType = info.colorType();
|
||||
+ auto fRowBytes = info.minRowBytes(); // stride
|
||||
+
|
||||
+ LOG(DEBUG) << "BRM: ShuffleSubchannelColorData() w=" << w << " h=" << h << " colorType=" << colorType << " fRowBytes=" << fRowBytes;
|
||||
+ DLOG(INFO) << "BRM: ShuffleSubchannelColorData() w=" << w << " h=" << h << " colorType=" << colorType << " fRowBytes=" << fRowBytes;
|
||||
+
|
||||
+ // second random number (for y/height)
|
||||
+ double shuffleY = base::RandDouble();
|
||||
@@ -212,7 +213,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
||||
+ break;
|
||||
+ default:
|
||||
+ // the remaining formats are not expected to be used in Chromium
|
||||
+ LOG(INFO) << "BRM: ShuffleSubchannelColorData(): Ignoring pixel format";
|
||||
+ LOG(WARNING) << "BRM: ShuffleSubchannelColorData(): Ignoring pixel format";
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
|
||||
@@ -14,17 +14,17 @@ Subject: Add flag to show/hide NTP tiles
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -1285,6 +1285,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kWebrtcNewEncodeCpuLoadEstimatorDescription, kOsAll,
|
||||
FEATURE_VALUE_TYPE(media::kNewEncodeCpuLoadEstimator)},
|
||||
#if defined(OS_ANDROID)
|
||||
@@ -1916,6 +1916,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kChromeModernAlternateCardLayoutName,
|
||||
flag_descriptions::kChromeModernAlternateCardLayoutDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(chrome::android::kChromeModernAlternateCardLayout)},
|
||||
+ {"hide-ntp-tiles",
|
||||
+ flag_descriptions::kHideNTPTilesName,
|
||||
+ flag_descriptions::kHideNTPTilesDescription, kOsAndroid,
|
||||
+ SINGLE_VALUE_TYPE(switches::kHideNTPTiles)},
|
||||
{"clear-old-browsing-data", flag_descriptions::kClearOldBrowsingDataName,
|
||||
flag_descriptions::kClearOldBrowsingDataDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(features::kClearOldBrowsingData)},
|
||||
{"force-enable-home-page-button", flag_descriptions::kHomePageButtonName,
|
||||
flag_descriptions::kHomePageButtonDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(chrome::android::kHomePageButtonForceEnabled)},
|
||||
diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
|
||||
--- a/chrome/browser/android/ntp/most_visited_sites_bridge.cc
|
||||
+++ b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
|
||||
|
||||
@@ -50,7 +50,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -1302,6 +1302,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -1298,6 +1298,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kMediaScreenCaptureName,
|
||||
flag_descriptions::kMediaScreenCaptureDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(chrome::android::kUserMediaScreenCapturing)},
|
||||
|
||||
@@ -0,0 +1,235 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 1 Aug 2018 09:19:40 +0200
|
||||
Subject: Add export button to Bookmarks activity page
|
||||
|
||||
---
|
||||
chrome/android/java/res/menu/bookmark_action_bar_menu.xml | 7 +++++++
|
||||
.../chrome/browser/bookmarks/BookmarkActionBar.java | 6 ++++++
|
||||
.../chromium/chrome/browser/bookmarks/BookmarkBridge.java | 10 ++++++++++
|
||||
.../chromium/chrome/browser/bookmarks/BookmarkDelegate.java | 5 +++++
|
||||
.../chromium/chrome/browser/bookmarks/BookmarkManager.java | 5 +++++
|
||||
chrome/android/java/strings/android_chrome_strings.grd | 3 +++
|
||||
chrome/browser/BUILD.gn | 4 ++--
|
||||
chrome/browser/android/bookmarks/bookmark_bridge.cc | 13 +++++++++++++
|
||||
chrome/browser/android/bookmarks/bookmark_bridge.h | 3 +++
|
||||
chrome/utility/BUILD.gn | 7 +++++--
|
||||
10 files changed, 59 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
|
||||
--- a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
|
||||
+++ b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
|
||||
@@ -15,6 +15,13 @@
|
||||
app:showAsAction="ifRoom"
|
||||
app:iconTint="@color/dark_mode_tint" />
|
||||
<item
|
||||
+ android:id="@+id/export_menu_id"
|
||||
+ android:icon="@drawable/ic_file_download_white_24dp"
|
||||
+ android:title="@string/export"
|
||||
+ android:visible="true"
|
||||
+ app:showAsAction="ifRoom"
|
||||
+ app:iconTint="@color/dark_mode_tint" />
|
||||
+ <item
|
||||
android:id="@+id/search_menu_id"
|
||||
android:icon="@drawable/ic_search"
|
||||
android:title="@string/search"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
|
||||
@@ -82,6 +82,9 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
|
||||
} else if (menuItem.getItemId() == R.id.search_menu_id) {
|
||||
mDelegate.openSearchUI();
|
||||
return true;
|
||||
+ } else if (menuItem.getItemId() == R.id.export_menu_id) {
|
||||
+ mDelegate.exportBookmarks();
|
||||
+ return true;
|
||||
}
|
||||
|
||||
SelectionDelegate<BookmarkId> selectionDelegate = mDelegate.getSelectionDelegate();
|
||||
@@ -125,6 +128,7 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
|
||||
void showLoadingUi() {
|
||||
setTitle(null);
|
||||
setNavigationButton(NAVIGATION_BUTTON_NONE);
|
||||
+ getMenu().findItem(R.id.export_menu_id).setVisible(false);
|
||||
getMenu().findItem(R.id.search_menu_id).setVisible(false);
|
||||
getMenu().findItem(R.id.edit_menu_id).setVisible(false);
|
||||
}
|
||||
@@ -134,6 +138,7 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
|
||||
super.showNormalView();
|
||||
|
||||
if (mDelegate == null) {
|
||||
+ getMenu().findItem(R.id.export_menu_id).setVisible(false);
|
||||
getMenu().findItem(R.id.search_menu_id).setVisible(false);
|
||||
getMenu().findItem(R.id.edit_menu_id).setVisible(false);
|
||||
}
|
||||
@@ -166,6 +171,7 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
|
||||
public void onFolderStateSet(BookmarkId folder) {
|
||||
mCurrentFolder = mDelegate.getModel().getBookmarkById(folder);
|
||||
|
||||
+ getMenu().findItem(R.id.export_menu_id).setVisible(true);
|
||||
getMenu().findItem(R.id.search_menu_id).setVisible(true);
|
||||
getMenu().findItem(R.id.edit_menu_id).setVisible(mCurrentFolder.isEditable());
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
@@ -508,6 +508,15 @@ public class BookmarkBridge {
|
||||
}
|
||||
|
||||
/**
|
||||
+ * Export bookmarks to the specified path.
|
||||
+ * @param path The path of the bookmarks HTML export.
|
||||
+ */
|
||||
+ public void exportBookmarks() {
|
||||
+ assert mIsNativeBookmarkModelLoaded;
|
||||
+ nativeExportBookmarks(mNativeBookmarkBridge);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
* Synchronously gets a list of bookmarks that match the specified search query.
|
||||
* @param query Keyword used for searching bookmarks.
|
||||
* @param maxNumberOfResult Maximum number of result to fetch.
|
||||
@@ -906,6 +915,7 @@ public class BookmarkBridge {
|
||||
boolean getFolders, boolean getBookmarks, List<BookmarkId> bookmarksList);
|
||||
private native BookmarkId nativeGetChildAt(long nativeBookmarkBridge, long id, int type,
|
||||
int index);
|
||||
+ private native void nativeExportBookmarks(long nativeBookmarkBridge);
|
||||
private native int nativeGetTotalBookmarkCount(long nativeBookmarkBridge, long id, int type);
|
||||
private native void nativeSetBookmarkTitle(long nativeBookmarkBridge, long id, int type,
|
||||
String title);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java
|
||||
@@ -69,6 +69,11 @@ interface BookmarkDelegate {
|
||||
void openSearchUI();
|
||||
|
||||
/**
|
||||
+ * Exports the bookmarks.
|
||||
+ */
|
||||
+ void exportBookmarks();
|
||||
+
|
||||
+ /**
|
||||
* Dismisses the search UI.
|
||||
*/
|
||||
void closeSearchUI();
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
|
||||
@@ -416,6 +416,11 @@ public class BookmarkManager implements BookmarkDelegate, SearchDelegate,
|
||||
}
|
||||
|
||||
@Override
|
||||
+ public void exportBookmarks() {
|
||||
+ mBookmarkModel.exportBookmarks();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
public void openSearchUI() {
|
||||
setState(BookmarkUIState.createSearchState());
|
||||
mSelectableListLayout.onStartSearch();
|
||||
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
--- a/chrome/android/java/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
@@ -209,6 +209,9 @@ CHAR-LIMIT guidelines:
|
||||
<message name="IDS_SEARCH" desc="The label for a search button.">
|
||||
Search
|
||||
</message>
|
||||
+ <message name="IDS_EXPORT" desc="The label for an export button.">
|
||||
+ Export
|
||||
+ </message>
|
||||
<message name="IDS_SHOW_INFO" desc="The label for a info button to show info.">
|
||||
Show Info
|
||||
</message>
|
||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -135,6 +135,8 @@ jumbo_split_static_library("browser") {
|
||||
"bitmap_fetcher/bitmap_fetcher_service.h",
|
||||
"bitmap_fetcher/bitmap_fetcher_service_factory.cc",
|
||||
"bitmap_fetcher/bitmap_fetcher_service_factory.h",
|
||||
+ "bookmarks/bookmark_html_writer.cc",
|
||||
+ "bookmarks/bookmark_html_writer.h",
|
||||
"bookmarks/bookmark_model_factory.cc",
|
||||
"bookmarks/bookmark_model_factory.h",
|
||||
"bookmarks/bookmark_stats.cc",
|
||||
@@ -2422,8 +2424,6 @@ jumbo_split_static_library("browser") {
|
||||
"banners/app_banner_infobar_delegate_desktop.h",
|
||||
"banners/app_banner_manager_desktop.cc",
|
||||
"banners/app_banner_manager_desktop.h",
|
||||
- "bookmarks/bookmark_html_writer.cc",
|
||||
- "bookmarks/bookmark_html_writer.h",
|
||||
"certificate_viewer.h",
|
||||
"chrome_browser_field_trials_desktop.cc",
|
||||
"chrome_browser_field_trials_desktop.h",
|
||||
diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
--- a/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
+++ b/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
@@ -11,9 +11,11 @@
|
||||
|
||||
#include "base/android/jni_array.h"
|
||||
#include "base/android/jni_string.h"
|
||||
+#include "base/android/path_utils.h"
|
||||
#include "base/containers/stack.h"
|
||||
#include "base/containers/stack_container.h"
|
||||
#include "base/i18n/string_compare.h"
|
||||
+#include "chrome/browser/bookmarks/bookmark_html_writer.h"
|
||||
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
|
||||
#include "chrome/browser/bookmarks/managed_bookmark_service_factory.h"
|
||||
#include "chrome/browser/profiles/incognito_helpers.h"
|
||||
@@ -470,6 +472,17 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
return count;
|
||||
}
|
||||
|
||||
+void BookmarkBridge::ExportBookmarks(JNIEnv* env,
|
||||
+ const JavaParamRef<jobject>& obj) {
|
||||
+ DCHECK(IsLoaded());
|
||||
+ base::FilePath path;
|
||||
+ if (!base::android::GetDownloadsDirectory(&path)) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ bookmark_html_writer::WriteBookmarks(profile_, path.Append(FILE_PATH_LITERAL("bookmarks.html")), NULL);
|
||||
+}
|
||||
+
|
||||
void BookmarkBridge::SetBookmarkTitle(JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj,
|
||||
jlong id,
|
||||
diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser/android/bookmarks/bookmark_bridge.h
|
||||
--- a/chrome/browser/android/bookmarks/bookmark_bridge.h
|
||||
+++ b/chrome/browser/android/bookmarks/bookmark_bridge.h
|
||||
@@ -116,6 +116,9 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
jlong id,
|
||||
jint type);
|
||||
|
||||
+ void ExportBookmarks(JNIEnv* env,
|
||||
+ const base::android::JavaParamRef<jobject>& obj);
|
||||
+
|
||||
void SetBookmarkTitle(JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj,
|
||||
jlong id,
|
||||
diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
|
||||
--- a/chrome/utility/BUILD.gn
|
||||
+++ b/chrome/utility/BUILD.gn
|
||||
@@ -55,8 +55,6 @@ static_library("utility") {
|
||||
|
||||
if (!is_android) {
|
||||
sources += [
|
||||
- "importer/bookmark_html_reader.cc",
|
||||
- "importer/bookmark_html_reader.h",
|
||||
"importer/bookmarks_file_importer.cc",
|
||||
"importer/bookmarks_file_importer.h",
|
||||
"importer/edge_database_reader_win.cc",
|
||||
@@ -160,6 +158,11 @@ static_library("utility") {
|
||||
]
|
||||
}
|
||||
|
||||
+ sources += [
|
||||
+ "importer/bookmark_html_reader.cc",
|
||||
+ "importer/bookmark_html_reader.h",
|
||||
+ ]
|
||||
+
|
||||
if (use_nss_certs) {
|
||||
sources += [
|
||||
"importer/nss_decryptor_system_nss.cc",
|
||||
--
|
||||
2.7.4
|
||||
|
||||
Reference in New Issue
Block a user