17dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Copyright (c) 2012 The Chromium Authors. All rights reserved.
27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// found in the LICENSE file.
47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
57dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/nacl_host/nacl_infobar_delegate.h"
67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/infobars/infobar_service.h"
803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "chrome/grit/generated_resources.h"
90529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "components/infobars/core/infobar.h"
107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "content/public/browser/render_view_host.h"
117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "content/public/browser/web_contents.h"
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "grit/components_strings.h"
137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "ui/base/l10n/l10n_util.h"
147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "url/gurl.h"
157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// static
187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid NaClInfoBarDelegate::Create(int render_process_id, int render_view_id) {
197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  content::RenderViewHost* rvh =
207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      content::RenderViewHost::FromID(render_process_id, render_view_id);
217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  if (!rvh)
227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch    return;
237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  content::WebContents* web_contents =
247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      content::WebContents::FromRenderViewHost(rvh);
257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  if (!web_contents)
267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch    return;
277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  InfoBarService* infobar_service =
287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      InfoBarService::FromWebContents(web_contents);
29ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  if (infobar_service) {
30a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar(
31a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)        scoped_ptr<ConfirmInfoBarDelegate>(new NaClInfoBarDelegate())));
32ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  }
337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
35a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)NaClInfoBarDelegate::NaClInfoBarDelegate() : ConfirmInfoBarDelegate() {
367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
387dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochNaClInfoBarDelegate::~NaClInfoBarDelegate() {
397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::string16 NaClInfoBarDelegate::GetMessageText() const {
427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return l10n_util::GetStringUTF16(IDS_NACL_APP_MISSING_ARCH_MESSAGE);
437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochint NaClInfoBarDelegate::GetButtons() const {
467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return BUTTON_NONE;
477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::string16 NaClInfoBarDelegate::GetLinkText() const {
507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return l10n_util::GetStringUTF16(IDS_LEARN_MORE);
517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochbool NaClInfoBarDelegate::LinkClicked(WindowOpenDisposition disposition) {
54a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  InfoBarService::WebContentsFromInfoBar(infobar())->OpenURL(
55a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch      content::OpenURLParams(
56a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch          GURL("https://support.google.com/chrome/?p=ib_nacl"),
57a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch          content::Referrer(),
58a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch          (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition,
591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci          ui::PAGE_TRANSITION_LINK, false));
607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return false;
617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
62