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
7a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "chrome/browser/infobars/infobar.h"
87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/infobars/infobar_service.h"
97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "content/public/browser/render_view_host.h"
107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "content/public/browser/web_contents.h"
117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "grit/generated_resources.h"
127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "ui/base/l10n/l10n_util.h"
137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "url/gurl.h"
147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// static
177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid NaClInfoBarDelegate::Create(int render_process_id, int render_view_id) {
187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  content::RenderViewHost* rvh =
197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      content::RenderViewHost::FromID(render_process_id, render_view_id);
207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  if (!rvh)
217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch    return;
227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  content::WebContents* web_contents =
237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      content::WebContents::FromRenderViewHost(rvh);
247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  if (!web_contents)
257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch    return;
267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  InfoBarService* infobar_service =
277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      InfoBarService::FromWebContents(web_contents);
28ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  if (infobar_service) {
29a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar(
30a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)        scoped_ptr<ConfirmInfoBarDelegate>(new NaClInfoBarDelegate())));
31ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  }
327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
34a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)NaClInfoBarDelegate::NaClInfoBarDelegate() : ConfirmInfoBarDelegate() {
357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
377dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochNaClInfoBarDelegate::~NaClInfoBarDelegate() {
387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
40d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)base::string16 NaClInfoBarDelegate::GetMessageText() const {
417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return l10n_util::GetStringUTF16(IDS_NACL_APP_MISSING_ARCH_MESSAGE);
427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochint NaClInfoBarDelegate::GetButtons() const {
457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return BUTTON_NONE;
467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
48d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)base::string16 NaClInfoBarDelegate::GetLinkText() const {
497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return l10n_util::GetStringUTF16(IDS_LEARN_MORE);
507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochbool NaClInfoBarDelegate::LinkClicked(WindowOpenDisposition disposition) {
537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  web_contents()->OpenURL(content::OpenURLParams(
547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      GURL("https://support.google.com/chrome/?p=ib_nacl"), content::Referrer(),
557dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      (disposition == CURRENT_TAB) ? NEW_FOREGROUND_TAB : disposition,
567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      content::PAGE_TRANSITION_LINK, false));
577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return false;
587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
59