1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/android/new_tab_page_url_handler.h"
6
7#include <string>
8
9#include "base/strings/string_util.h"
10#include "chrome/common/url_constants.h"
11#include "content/public/common/url_constants.h"
12#include "url/gurl.h"
13
14namespace {
15const char kLegacyBookmarksFragment[] = "bookmarks";
16const char kLegacyOpenTabsFragment[] = "open_tabs";
17const char kLegacyRecentTabsHost[] = "recent_tabs";
18}
19
20namespace chrome {
21namespace android {
22
23bool HandleAndroidNewTabURL(GURL* url,
24                            content::BrowserContext* browser_context) {
25  if (url->SchemeIs(content::kChromeUIScheme) &&
26      url->host() == chrome::kChromeUINewTabHost) {
27    std::string ref = url->ref();
28    if (StartsWithASCII(ref, kLegacyBookmarksFragment, true)) {
29      *url = GURL(chrome::kChromeUINativeBookmarksURL);
30    } else if (ref == kLegacyOpenTabsFragment) {
31      *url = GURL(chrome::kChromeUINativeRecentTabsURL);
32    } else {
33      *url = GURL(chrome::kChromeUINativeNewTabURL);
34    }
35    return true;
36  }
37
38  if (url->SchemeIs(chrome::kChromeNativeScheme) &&
39      url->host() == kLegacyRecentTabsHost) {
40    *url = GURL(chrome::kChromeUINativeRecentTabsURL);
41    return true;
42  }
43
44  return false;
45}
46
47}  // namespace android
48}  // namespace chrome
49