| Index: ios/chrome/browser/passwords/password_generation_utils.mm
|
| diff --git a/ios/chrome/browser/passwords/password_generation_utils.mm b/ios/chrome/browser/passwords/password_generation_utils.mm
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7f1abd44dba9920598c3052e76e67307dae93191
|
| --- /dev/null
|
| +++ b/ios/chrome/browser/passwords/password_generation_utils.mm
|
| @@ -0,0 +1,50 @@
|
| +// Copyright 2014 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 "ios/chrome/browser/passwords/password_generation_utils.h"
|
| +
|
| +#include "base/i18n/rtl.h"
|
| +#include "ios/chrome/browser/ui/ui_util.h"
|
| +
|
| +namespace passwords {
|
| +
|
| +namespace {
|
| +
|
| +const CGFloat kPadding = IsIPadIdiom() ? 16 : 8;
|
| +
|
| +// The actual implementation of |RunPipeline| that begins with the first block
|
| +// in |blocks|.
|
| +void RunSearchPipeline(NSArray* blocks,
|
| + PipelineCompletionBlock on_complete,
|
| + NSUInteger from_index) {
|
| + if (from_index == [blocks count]) {
|
| + on_complete(NSNotFound);
|
| + return;
|
| + }
|
| + PipelineBlock block = blocks[from_index];
|
| + block(^(BOOL success) {
|
| + if (success)
|
| + on_complete(from_index);
|
| + else
|
| + RunSearchPipeline(blocks, on_complete, from_index + 1);
|
| + });
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +CGRect GetGenerationAccessoryFrame(CGRect outer_frame, CGRect inner_frame) {
|
| + CGFloat x = kPadding;
|
| + if (base::i18n::IsRTL())
|
| + x = CGRectGetWidth(outer_frame) - CGRectGetWidth(inner_frame) - kPadding;
|
| + const CGFloat y =
|
| + (CGRectGetHeight(outer_frame) - CGRectGetHeight(inner_frame)) / 2.0;
|
| + inner_frame.origin = CGPointMake(x, y);
|
| + return inner_frame;
|
| +}
|
| +
|
| +void RunSearchPipeline(NSArray* blocks, PipelineCompletionBlock on_complete) {
|
| + RunSearchPipeline(blocks, on_complete, 0);
|
| +}
|
| +
|
| +} // namespace passwords
|
|
|