Skip to content

Commit

Permalink
Introduce the iOS consumer API.
Browse files Browse the repository at this point in the history
The purpose of this API is to make the iOS port less vulnerable to bustage
during merges while in the process of upstreaming (see
https://sites.google.com/a/chromium.org/dev/developers/design-documents/layered-components-technical-approach).

Review URL: https://chromiumcodereview.appspot.com/16023013

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203144 0039d316-1c4b-4281-b951-d872f2087c98
  • Loading branch information
[email protected] committed May 30, 2013
1 parent da0ac0f commit 2c82e36
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 0 deletions.
4 changes: 4 additions & 0 deletions build/all.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,10 @@
'../webkit/webkit.gyp:*',
'<(libjpeg_gyp_path):*',
],
}, { # 'OS=="ios"'
'dependencies': [
'../ios/consumer/ios_consumer.gyp:*',
],
}],
['os_posix==1 and OS!="android" and OS!="ios"', {
'dependencies': [
Expand Down
3 changes: 3 additions & 0 deletions ios/OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[email protected]
[email protected]
[email protected]
3 changes: 3 additions & 0 deletions ios/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
This directory holds code related to the iOS port of Chromium. See
https://sites.google.com/a/chromium.org/dev/developers/design-documents/structure-of-layered-components-within-the-chromium-codebase
for a description of the structure underneath this directory.
7 changes: 7 additions & 0 deletions ios/consumer/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
This directory exists to allow iOS code that is not yet upstreamed to call
Chromium code without being vulnerable to breakage during a merge.
Specifically, not-yet-upstreamed code is allowed to use the interfaces
provided in public/. Any change to one of these interfaces should get a full
review from an OWNER, as such a change will require corresponding changes to
code not yet upstreamed. Any change to code not under public/ can be TBR'd to
an OWNER.
18 changes: 18 additions & 0 deletions ios/consumer/base/util.mm
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "base/ios/ios_util.h"
#include "ios/consumer/public/base/util.h"

namespace ios {

bool IsRunningOnIOS6OrLater() {
return base::ios::IsRunningOnIOS6OrLater();
}

bool IsRunningOnOrLater(int major, int minor, int bug_fix) {
return base::ios::IsRunningOnOrLater(major, minor, bug_fix);
}

} // namespace ios
24 changes: 24 additions & 0 deletions ios/consumer/ios_consumer.gyp
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Copyright 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
'variables': {
'chromium_code': 1,
},
'targets': [
{
'target_name': 'ios_consumer_base',
'type': 'static_library',
'dependencies': [
'../../base/base.gyp:base',
],
'include_dirs': [
'../..',
],
'sources': [
'base/util.mm',
'public/base/util.h',
],
},
],
}
11 changes: 11 additions & 0 deletions ios/consumer/public/DEPS
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
include_rules = [
# The public interfaces cannot reference Chromium code, so all allowances
# that the top-level DEPS file introduces are removed here. This list should
# be kept in sync with src/DEPS.
"-base",
"-build",
"-googleurl",
"-library_loaders",
"-testing",
"-third_party/icu/public",
]
18 changes: 18 additions & 0 deletions ios/consumer/public/base/util.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_CONSUME_PUBLIC_BASE_UTIL_H_
#define IOS_CONSUME_PUBLIC_BASE_UTIL_H_

namespace ios {

// Returns whether the operating system is iOS 6 or later.
bool IsRunningOnIOS6OrLater();

// Returns whether the operating system is at the given version or later.
bool IsRunningOnOrLater(int major, int minor, int bug_fix);

} // namespace ios

#endif // IOS_CONSUME_PUBLIC_BASE_UTIL_H_

0 comments on commit 2c82e36

Please sign in to comment.