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