| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/automation/automation_util.h" | 5 #include "chrome/browser/automation/automation_util.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 switch (chrome::GetViewType(web_contents)) { | 421 switch (chrome::GetViewType(web_contents)) { |
| 422 case chrome::VIEW_TYPE_EXTENSION_POPUP: | 422 case chrome::VIEW_TYPE_EXTENSION_POPUP: |
| 423 type = AutomationId::kTypeExtensionPopup; | 423 type = AutomationId::kTypeExtensionPopup; |
| 424 break; | 424 break; |
| 425 case chrome::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE: | 425 case chrome::VIEW_TYPE_EXTENSION_BACKGROUND_PAGE: |
| 426 type = AutomationId::kTypeExtensionBgPage; | 426 type = AutomationId::kTypeExtensionBgPage; |
| 427 break; | 427 break; |
| 428 case chrome::VIEW_TYPE_EXTENSION_INFOBAR: | 428 case chrome::VIEW_TYPE_EXTENSION_INFOBAR: |
| 429 type = AutomationId::kTypeExtensionInfobar; | 429 type = AutomationId::kTypeExtensionInfobar; |
| 430 break; | 430 break; |
| 431 case chrome::VIEW_TYPE_APP_SHELL: |
| 432 type = AutomationId::kTypeAppShell; |
| 433 break; |
| 431 default: | 434 default: |
| 432 type = AutomationId::kTypeInvalid; | 435 type = AutomationId::kTypeInvalid; |
| 433 break; | 436 break; |
| 434 } | 437 } |
| 435 // Since these extension views do not permit navigation, using the | 438 // Since these extension views do not permit navigation, using the |
| 436 // renderer process and view ID should suffice. | 439 // renderer process and view ID should suffice. |
| 437 std::string id = base::StringPrintf("%d|%d", | 440 std::string id = base::StringPrintf("%d|%d", |
| 438 render_view_host->GetRoutingID(), | 441 render_view_host->GetRoutingID(), |
| 439 render_view_host->GetProcess()->GetID()); | 442 render_view_host->GetProcess()->GetID()); |
| 440 return AutomationId(type, id); | 443 return AutomationId(type, id); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 510 case AutomationId::kTypeTab: { | 513 case AutomationId::kTypeTab: { |
| 511 WebContents* tab; | 514 WebContents* tab; |
| 512 if (!GetTabForId(id, &tab)) | 515 if (!GetTabForId(id, &tab)) |
| 513 return false; | 516 return false; |
| 514 *rvh = tab->GetRenderViewHost(); | 517 *rvh = tab->GetRenderViewHost(); |
| 515 break; | 518 break; |
| 516 } | 519 } |
| 517 case AutomationId::kTypeExtensionPopup: | 520 case AutomationId::kTypeExtensionPopup: |
| 518 case AutomationId::kTypeExtensionBgPage: | 521 case AutomationId::kTypeExtensionBgPage: |
| 519 case AutomationId::kTypeExtensionInfobar: | 522 case AutomationId::kTypeExtensionInfobar: |
| 523 case AutomationId::kTypeAppShell: |
| 520 if (!GetExtensionRenderViewForId(id, profile, rvh)) | 524 if (!GetExtensionRenderViewForId(id, profile, rvh)) |
| 521 return false; | 525 return false; |
| 522 break; | 526 break; |
| 523 default: | 527 default: |
| 524 return false; | 528 return false; |
| 525 } | 529 } |
| 526 return true; | 530 return true; |
| 527 } | 531 } |
| 528 | 532 |
| 529 bool GetExtensionForId( | 533 bool GetExtensionForId( |
| (...skipping 11 matching lines...) Expand all Loading... |
| 541 } | 545 } |
| 542 | 546 |
| 543 bool DoesObjectWithIdExist(const AutomationId& id, Profile* profile) { | 547 bool DoesObjectWithIdExist(const AutomationId& id, Profile* profile) { |
| 544 switch (id.type()) { | 548 switch (id.type()) { |
| 545 case AutomationId::kTypeTab: { | 549 case AutomationId::kTypeTab: { |
| 546 WebContents* tab; | 550 WebContents* tab; |
| 547 return GetTabForId(id, &tab); | 551 return GetTabForId(id, &tab); |
| 548 } | 552 } |
| 549 case AutomationId::kTypeExtensionPopup: | 553 case AutomationId::kTypeExtensionPopup: |
| 550 case AutomationId::kTypeExtensionBgPage: | 554 case AutomationId::kTypeExtensionBgPage: |
| 551 case AutomationId::kTypeExtensionInfobar: { | 555 case AutomationId::kTypeExtensionInfobar: |
| 556 case AutomationId::kTypeAppShell: { |
| 552 RenderViewHost* rvh; | 557 RenderViewHost* rvh; |
| 553 return GetExtensionRenderViewForId(id, profile, &rvh); | 558 return GetExtensionRenderViewForId(id, profile, &rvh); |
| 554 } | 559 } |
| 555 case AutomationId::kTypeExtension: { | 560 case AutomationId::kTypeExtension: { |
| 556 const extensions::Extension* extension; | 561 const extensions::Extension* extension; |
| 557 return GetExtensionForId(id, profile, &extension); | 562 return GetExtensionForId(id, profile, &extension); |
| 558 } | 563 } |
| 559 default: | 564 default: |
| 560 break; | 565 break; |
| 561 } | 566 } |
| 562 return false; | 567 return false; |
| 563 } | 568 } |
| 564 | 569 |
| 565 } // namespace automation_util | 570 } // namespace automation_util |
| OLD | NEW |