Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support iOS Syncing & Bookmarks #6722

Merged
merged 91 commits into from
Dec 1, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
a3f4335
brave-sync-ios-compiling
jumde Sep 17, 2020
38d87f9
fix compile errors
bridiver May 14, 2020
2595f62
Building works again.. Chromium 83 changed a bunch of interfaces.
Brandon-T Jun 15, 2020
62d88ba
fixing debug builds
jumde Jun 18, 2020
764cf19
Moving all Shared code to one spot in the framework.
Brandon-T Nov 25, 2020
e1246a4
updated i10n
jumde Jul 7, 2020
877732f
Rebased
Brandon-T Jul 7, 2020
448a3f1
fixed sequence checker
jumde Jul 7, 2020
913a97e
fix startup crash
bridiver Jul 8, 2020
1a43f3e
Added Singleton BrowserStateManager.
Brandon-T Jul 8, 2020
4b96a85
use chromium_src overrides for chrome_browser_state so we can use the…
bridiver Jul 8, 2020
edff4ce
Added BookmarkNode Objective-C++ code.
Brandon-T Jul 13, 2020
e8cb58d
localdeviceinfo and passphrase
jumde Jul 20, 2020
ea5b768
Fixing SyncDevice and ProfileSyncServiceFactory for iOS.
Brandon-T Aug 11, 2020
ad3c983
override channel to empty string for now
bridiver Aug 17, 2020
8ea729d
fix connection to brave sync service
Brandon-T Nov 25, 2020
aa9e722
cleanup and api fixes
bridiver Sep 1, 2020
f595e08
Moving the brave-sync worker API.
Brandon-T Sep 10, 2020
d4c3df8
Bookmarks API is feature complete and can actually be used to create …
Brandon-T Sep 16, 2020
e6c9742
Update BraveRewards to link PROPERLY without forcing all symbols to b…
jumde Sep 21, 2020
f225ce0
Rename function to match iOS property access - Apple style guide.
Brandon-T Sep 16, 2020
32d444b
fixing patches after rebase
jumde Sep 14, 2020
86317a6
fix sync build for c86
jumde Sep 14, 2020
95ff2cf
GetOSString should return ios/android for mobile devices
jumde Sep 18, 2020
243c63f
Added Bookmarks Observer. Fixed all nullability for Swift to not make…
Brandon-T Sep 17, 2020
db2c217
add dcheck to make sure we're calling things on the correct thread
Brandon-T Sep 23, 2020
648b0b2
Created SyncService observers for device and service state changes.
Brandon-T Sep 17, 2020
ea0a581
Made APIs a singleton. Exported converting Hex-Seed to Code-Words.
Brandon-T Sep 25, 2020
88820b8
Fixed bug where decryption kept failing due to passphrase being set a…
Brandon-T Sep 29, 2020
09b4fe2
Addressing feedback and using properties instead of functions.
Brandon-T Sep 29, 2020
248d0a2
Added ability to see if a sync code is valid.
Brandon-T Sep 30, 2020
f7e72bc
Fixed device not showing up on sync chain when codes are pasted onto …
Brandon-T Oct 1, 2020
a47e78b
Fix the ChannelInfo override for iOS production/release builds. Fixed…
Brandon-T Oct 1, 2020
0012e30
Minor changes to interface.
Brandon-T Oct 2, 2020
adea3d2
Made all observer functions optional because iOS doesn't need to use …
Brandon-T Oct 2, 2020
2cc336e
No need to MaterialComponents into the BraveRewards framework. Instea…
Brandon-T Oct 8, 2020
0528f44
Import and Export bookmarks Interface linked.
Brandon-T Oct 8, 2020
ca6c899
Added importing and exporting bookmarks.
Brandon-T Oct 13, 2020
3da8431
Add callbacks for Import and Export of bookmarks.
Brandon-T Oct 13, 2020
632a6a9
use task runner for db so it always runs on the same thread (gcd has …
Brandon-T Nov 25, 2020
a296b67
misc cleanup
bridiver Oct 13, 2020
c1e75e8
use task runners for ads db
Brandon-T Nov 25, 2020
f44024e
cleanup
bridiver Oct 13, 2020
b54b8dc
remove unnecessary patch
bridiver Oct 13, 2020
373a32a
misc cleanup
bridiver Oct 15, 2020
7c4fd25
Added Bookmark Export Utility for CoreData.
Brandon-T Oct 16, 2020
3963e2c
Export interface for iOS side to construct a bookmark IR model.
Brandon-T Oct 16, 2020
980e70a
Cleanup `optional` interface.
Brandon-T Oct 20, 2020
d65e262
Fixed threading retaining with weak/strong specifies.
Brandon-T Oct 20, 2020
e4b7b63
Minor changes to the interface to use properties.
Brandon-T Oct 21, 2020
8dc8c8b
Export interface to allow iOS side to control what SyncServiceURL to …
Brandon-T Oct 22, 2020
39a1523
Fixing PR feedback.
Brandon-T Oct 22, 2020
cc1503e
Fix sync worker to NOT use PrepareForFirstSync and CommitSyncChanges.
Brandon-T Oct 22, 2020
2e77e3c
Fixed language issue where incorrect Locale crashes the framework/app.
Brandon-T Oct 26, 2020
a33361b
Remove ability to delete device from sync chain :(
Brandon-T Oct 27, 2020
a1c7565
Fixed a "possible" bug in fav_icon images.
Brandon-T Oct 30, 2020
8ef9352
Addressing weird indentations.
Brandon-T Oct 30, 2020
e154f8d
Added a boolean to determine if the underlying model has suddenly bec…
Brandon-T Nov 6, 2020
58aeff2
update patch
bridiver Nov 10, 2020
7224cd6
make BraveProfileSyncServiceDelegate compatible with ios
bridiver Nov 10, 2020
ac4fb1e
add missing patch update from profile sync delegate
bridiver Nov 11, 2020
f7a23e2
remove unnecessary channel info - this is just a framework in ios
bridiver Nov 12, 2020
85b42bc
handle app notifications
bridiver Nov 12, 2020
5995f92
don't strip in debug
bridiver Nov 12, 2020
23b3481
clang format
bridiver Nov 12, 2020
6d627d3
clang format
bridiver Nov 12, 2020
bf567ea
don't call GetApplicationContext to get the browser state in the obse…
bridiver Nov 12, 2020
a1e2c58
clang format
bridiver Nov 12, 2020
a21e9c4
clang format
bridiver Nov 12, 2020
a695146
clang format
bridiver Nov 12, 2020
5977b45
clang format
bridiver Nov 12, 2020
b64cd13
clang format
bridiver Nov 12, 2020
0bcc76e
lint/clang format
bridiver Nov 12, 2020
f5c5754
lint
bridiver Nov 12, 2020
156b28b
fix weird incorrect lint errors like
bridiver Nov 12, 2020
ee2eaf3
Fixed exporting of bookmark children and nested children for performa…
Brandon-T Nov 15, 2020
fae6eb6
Fixed iOS compiling issues. C++ headers cannot be imported in an expo…
Brandon-T Nov 16, 2020
bb8760b
Fixed bookmarks performance.
Brandon-T Nov 17, 2020
4cba657
fix `GetChannel` namespace forios
bridiver Nov 17, 2020
d1c39c7
Add missing gn deps
bsclifton Nov 17, 2020
c3fdd98
Fixed unit tests linking and execution.
Brandon-T Nov 19, 2020
41766d1
Used the existing `bookmark_codec` to encode bookmarks instead of cop…
Brandon-T Nov 25, 2020
bbdd555
fix lint
bridiver Nov 30, 2020
701995e
cleanup
bridiver Nov 30, 2020
bbb22dc
remove incorrect header
bridiver Nov 30, 2020
5f447ac
clang format cleanup
bridiver Dec 1, 2020
8464de7
Fixed Xcode 12 compiling and sync service URL to be retrieved from GN.
Brandon-T Nov 30, 2020
4f47f85
Added folder filtering for the iOS side to prevent users from moving …
Brandon-T Dec 1, 2020
46a8534
Rename functions and add documentation explaining it.
Brandon-T Dec 1, 2020
91aeecd
make sure brave_sync_endpoint is not empty for official builds
bridiver Dec 1, 2020
c885282
Fixed iOS mobile user agent for Sync UI so it shows "iOS" correctly i…
Brandon-T Dec 1, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion app/brave_generated_resources.grd
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,13 @@
<output filename="brave_generated_resources_en-GB.pak" type="data_package" lang="en-GB" />
<output filename="brave_generated_resources_en-US.pak" type="data_package" lang="en" />
<output filename="brave_generated_resources_es.pak" type="data_package" lang="es" />
<output filename="brave_generated_resources_es-419.pak" type="data_package" lang="es-419" />
<if expr="is_ios">
<!-- iOS uses es-MX for es-419 -->
<output filename="brave_generated_resources_es-MX.pak" type="data_package" lang="es-419" />
</if>
<if expr="not is_ios">
<output filename="brave_generated_resources_es-419.pak" type="data_package" lang="es-419" />
</if>
<output filename="brave_generated_resources_et.pak" type="data_package" lang="et" />
<output filename="brave_generated_resources_fa.pak" type="data_package" lang="fa" />
<output filename="brave_generated_resources_fake-bidi.pak" type="data_package" lang="fake-bidi" />
Expand Down
8 changes: 7 additions & 1 deletion app/brave_strings.grd
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,13 @@ If you update this file, be sure also to update google_chrome_strings.grd. -->
<output filename="chromium_strings_en-GB.pak" type="data_package" lang="en-GB" />
<output filename="chromium_strings_en-US.pak" type="data_package" lang="en" />
<output filename="chromium_strings_es.pak" type="data_package" lang="es" />
<output filename="chromium_strings_es-419.pak" type="data_package" lang="es-419" />
<if expr="is_ios">
<!-- iOS uses es-MX for es-419 -->
<output filename="chromium_strings_es-MX.pak" type="data_package" lang="es-419" />
</if>
<if expr="not is_ios">
<output filename="chromium_strings_es-419.pak" type="data_package" lang="es-419" />
</if>
<output filename="chromium_strings_et.pak" type="data_package" lang="et" />
<output filename="chromium_strings_fa.pak" type="data_package" lang="fa" />
<output filename="chromium_strings_fake-bidi.pak" type="data_package" lang="fake-bidi" />
Expand Down
8 changes: 7 additions & 1 deletion app/generated_resources.grd
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,13 @@ are declared in tools/grit/grit_rule.gni.
<output filename="generated_resources_en-US.pak" type="data_package" lang="en" />
<output filename="generated_resources_en-GB.pak" type="data_package" lang="en-GB" />
<output filename="generated_resources_es.pak" type="data_package" lang="es" />
<output filename="generated_resources_es-419.pak" type="data_package" lang="es-419" />
<if expr="is_ios">
<!-- iOS uses es-MX for es-419 -->
<output filename="generated_resources_es-MX.pak" type="data_package" lang="es-419" />
</if>
<if expr="not is_ios">
<output filename="generated_resources_es-419.pak" type="data_package" lang="es-419" />
</if>
<output filename="generated_resources_et.pak" type="data_package" lang="et" />
<output filename="generated_resources_fa.pak" type="data_package" lang="fa" />
<output filename="generated_resources_fake-bidi.pak" type="data_package" lang="fake-bidi" />
Expand Down
3 changes: 1 addition & 2 deletions browser/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,6 @@ source_set("browser_process") {
"search_engines/search_engine_tracker.h",
"search_engines/tor_window_search_engine_provider_service.cc",
"search_engines/tor_window_search_engine_provider_service.h",
"sync/brave_profile_sync_service_delegate.cc",
"sync/brave_profile_sync_service_delegate.h",
"update_util.cc",
"update_util.h",
]
Expand Down Expand Up @@ -121,6 +119,7 @@ source_set("browser_process") {
"profiles",
"renderer_context_menu",
"search",
"sync",
"themes",
"ui",
"//base",
Expand Down
12 changes: 12 additions & 0 deletions browser/sync/BUILD.gn
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
source_set("sync") {
sources = [
"brave_profile_sync_service_delegate.cc",
"brave_profile_sync_service_delegate.h",
]

deps = [
"//base",
"//components/sync/driver",
"//components/sync_device_info",
]
}
30 changes: 9 additions & 21 deletions browser/sync/brave_profile_sync_service_delegate.cc
Original file line number Diff line number Diff line change
Expand Up @@ -8,31 +8,19 @@
#include <utility>

#include "base/task/post_task.h"
#include "base/threading/thread_task_runner_handle.h"
#include "brave/components/sync/driver/brave_sync_profile_sync_service.h"
#include "chrome/browser/sync/device_info_sync_service_factory.h"
#include "chrome/browser/sync/profile_sync_service_factory.h"
#include "components/sync_device_info/device_info_sync_service.h"
#include "components/sync_device_info/device_info_tracker.h"
#include "components/sync_device_info/local_device_info_provider.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"

namespace syncer {

namespace {
syncer::BraveProfileSyncService* GetSyncService(Profile* profile) {
return ProfileSyncServiceFactory::IsSyncAllowed(profile)
? static_cast<syncer::BraveProfileSyncService*>(
ProfileSyncServiceFactory::GetForProfile(profile))
: nullptr;
}
} // namespace

BraveProfileSyncServiceDelegate::BraveProfileSyncServiceDelegate(
Profile* profile)
: device_info_sync_service_(
DeviceInfoSyncServiceFactory::GetForProfile(profile)),
profile_(profile),
DeviceInfoSyncService* device_info_sync_service)
: device_info_sync_service_(device_info_sync_service),
weak_ptr_factory_(this) {
DCHECK(device_info_sync_service_);

Expand All @@ -48,7 +36,8 @@ BraveProfileSyncServiceDelegate::BraveProfileSyncServiceDelegate(
BraveProfileSyncServiceDelegate::~BraveProfileSyncServiceDelegate() {}

void BraveProfileSyncServiceDelegate::OnDeviceInfoChange() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
DCHECK(profile_sync_service_);

const syncer::DeviceInfo* local_device_info =
local_device_info_provider_->GetLocalDeviceInfo();

Expand All @@ -66,17 +55,16 @@ void BraveProfileSyncServiceDelegate::OnDeviceInfoChange() {
if (!found_local_device) {
// We can't call OnSelfDeviceInfoDeleted directly because we are on
// remove device execution path, so posting task
base::PostTask(
FROM_HERE, {content::BrowserThread::UI},
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE,
base::BindOnce(
&BraveProfileSyncServiceDelegate::OnSelfDeviceInfoDeleted,
weak_ptr_factory_.GetWeakPtr()));
}
}

void BraveProfileSyncServiceDelegate::OnSelfDeviceInfoDeleted(void) {
syncer::BraveProfileSyncService* sync_service = GetSyncService(profile_);
sync_service->OnSelfDeviceInfoDeleted(base::DoNothing::Once());
void BraveProfileSyncServiceDelegate::OnSelfDeviceInfoDeleted() {
profile_sync_service_->OnSelfDeviceInfoDeleted(base::DoNothing::Once());
}

void BraveProfileSyncServiceDelegate::SuspendDeviceObserverForOwnReset() {
Expand Down
5 changes: 3 additions & 2 deletions browser/sync/brave_profile_sync_service_delegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ class Profile;

namespace syncer {

class DeviceInfoSyncService;
class DeviceInfoTracker;
class LocalDeviceInfoProvider;

Expand All @@ -26,7 +27,8 @@ class BraveProfileSyncServiceDelegate
: public ProfileSyncServiceDelegate,
public syncer::DeviceInfoTracker::Observer {
public:
explicit BraveProfileSyncServiceDelegate(Profile* profile);
explicit BraveProfileSyncServiceDelegate(
DeviceInfoSyncService* device_info_sync_service);
~BraveProfileSyncServiceDelegate() override;

void SuspendDeviceObserverForOwnReset() override;
Expand All @@ -44,7 +46,6 @@ class BraveProfileSyncServiceDelegate
device_info_observer_{this};

DeviceInfoSyncService* device_info_sync_service_;
Profile* profile_;

base::WeakPtrFactory<BraveProfileSyncServiceDelegate> weak_ptr_factory_;

Expand Down
12 changes: 8 additions & 4 deletions build/commands/lib/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ var packageConfig = function(key){

const getNPMConfig = (key) => {
if (!NpmConfig) {
const list = run(npmCommand, ['config', 'list', '--json'], {cwd: rootDir})
const list = run(npmCommand, ['config', 'list', '--json', '--userconfig=' + path.join(rootDir, '.npmrc')])
NpmConfig = JSON.parse(list.stdout.toString())
}

Expand Down Expand Up @@ -351,8 +351,8 @@ Config.prototype.buildArgs = function () {
if (this.targetOS === 'ios') {
args.target_os = 'ios'
args.enable_dsyms = true
args.enable_stripping = args.enable_dsyms
args.use_xcode_clang = this.isOfficialBuild()
args.enable_stripping = !this.isDebug()
args.use_xcode_clang = false
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an intentional change, right? Does the 1.15/1.16 forks have this change? Just want to make sure we don't end up having issues submitting to Apple

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change is intentional. This is what Chromium does for Xcode 12.0+. I explicitly changed this to false for use_xcode_clang. I have not tested submitting to Apple's servers but it did pass verification locally.

args.use_clang_coverage = false
// Component builds are not supported for iOS:
// https://chromium.googlesource.com/chromium/src/+/master/docs/component_build.md
Expand All @@ -365,6 +365,11 @@ Config.prototype.buildArgs = function () {
// https://github.com/brave/brave-browser/issues/10334
args.dcheck_always_on = this.isDebug()

args.ios_enable_content_widget_extension = false
args.ios_enable_search_widget_extension = false
args.ios_enable_share_extension = false
args.ios_enable_credential_provider_extension = false

delete args.safebrowsing_api_endpoint
delete args.updater_prod_endpoint
delete args.updater_dev_endpoint
Expand All @@ -384,7 +389,6 @@ Config.prototype.buildArgs = function () {
delete args.binance_client_id
delete args.gemini_client_id
delete args.gemini_client_secret
delete args.brave_services_key
delete args.webcompat_report_api_endpoint
delete args.use_blink_v8_binding_new_idl_interface
delete args.v8_enable_verify_heap
Expand Down
7 changes: 6 additions & 1 deletion chromium_src/base/mac/foundation_util.mm
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,12 @@
// build and chrome::GetChannel() will always return stable in test build.
//
// For safe in non-test build, current seems fine in official build.
#if defined(OS_IOS)
#include "ios/chrome/common/channel_info.h"
#else
#include "chrome/common/channel_info.h"
using chrome::GetChannel;
#endif
#endif

namespace base {
Expand All @@ -39,7 +44,7 @@
#if !defined(OFFICIAL_BUILD)
return "com.brave.Browser.development";
#else
switch (chrome::GetChannel()) {
switch (GetChannel()) {
case version_info::Channel::CANARY:
return "com.brave.Browser.nightly";
case version_info::Channel::DEV:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
#define BRAVE_BUILD_SERVICE_INSTANCE_FOR \
std::make_unique<syncer::BraveProfileSyncService>( \
std::move(init_params), \
std::make_unique<syncer::BraveProfileSyncServiceDelegate>(profile));
std::make_unique<syncer::BraveProfileSyncServiceDelegate>( \
DeviceInfoSyncServiceFactory::GetForProfile(profile)));

#include "../../../../../chrome/browser/sync/profile_sync_service_factory.cc"

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/* Copyright (c) 2020 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "base/build_config.h"

#if defined(OS_IOS)
#define SettingsAllowSigninCookies SettingsAllowSigninCookies_ChromiumImpl
#define SettingsDeleteSigninCookiesOnExit \
SettingsDeleteSigninCookiesOnExit_ChromiumImpl
#endif

#include "../../../../../../components/content_settings/core/browser/cookie_settings_utils.cc"

#if defined(OS_IOS)
bool SettingsAllowSigninCookies(
const content_settings::CookieSettings* cookie_settings) {
return false;
}

bool SettingsDeleteSigninCookiesOnExit(
const content_settings::CookieSettings* cookie_settings) {
return true;
}
#endif
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
/* Copyright (c) 2020 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "build/build_config.h"

#if defined(OS_IOS)
#include "../../../../../../components/content_settings/core/browser/host_content_settings_map.cc"
#else
#include "brave/components/content_settings/core/browser/brave_content_settings_ephemeral_provider.h"
#include "brave/components/content_settings/core/browser/brave_content_settings_pref_provider.h"

Expand All @@ -10,3 +16,4 @@
#include "../../../../../../components/content_settings/core/browser/host_content_settings_map.cc"
#undef EphemeralProvider
#undef PrefProvider
#endif
26 changes: 26 additions & 0 deletions chromium_src/components/sync_device_info/device_info.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/* Copyright (c) 2020 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "components/sync_device_info/device_info.h"

#include <algorithm>

#define ToValue ToValue_ChromiumImpl
#include "../../../../components/sync_device_info/device_info.cc"
#undef ToValue

namespace syncer {
std::unique_ptr<base::DictionaryValue> DeviceInfo::ToValue() const {
std::unique_ptr<base::DictionaryValue> value = ToValue_ChromiumImpl();
if ((device_type_ == sync_pb::SyncEnums_DeviceType_TYPE_PHONE ||
device_type_ == sync_pb::SyncEnums_DeviceType_TYPE_TABLET) &&
sync_user_agent_.find("IOS") != std::string::npos) {
value->SetString("os", "ios");
} else {
value->SetString("os", GetOSString());
}
return value;
}
} // namespace syncer
18 changes: 18 additions & 0 deletions chromium_src/components/sync_device_info/device_info.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/* Copyright (c) 2020 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at https://mozilla.org/MPL/2.0/. */

#ifndef BRAVE_CHROMIUM_SRC_COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_H_
#define BRAVE_CHROMIUM_SRC_COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_H_

#include <string>

#define ToValue \
ToValue_ChromiumImpl() const; \
std::unique_ptr<base::DictionaryValue> ToValue

#include "../../../../components/sync_device_info/device_info.h"
#undef ToValue

#endif // BRAVE_CHROMIUM_SRC_COMPONENTS_SYNC_DEVICE_INFO_DEVICE_INFO_H_
Loading